/*
 * Surcouche CSS de la template storefront ? charg?e APR?S les CSS Grogin, elle corrige et
 * compl?te le rendu sans toucher au th?me. ?ditable librement.
 * Inject?e sur toutes les pages par storefront/src/renderers/chrome.mjs.
 */

/* Garde-fou taille SVG (compl�te le critical inline chrome) */
.sf-nav-cat-svg,
svg.sf-nav-cat-svg {
  width: 16px;
  height: 16px;
  max-width: 20px;
  max-height: 20px;
}

/* Tokens transversaux : une seule ?chelle pour les pages ?ditoriales, les
   accord?ons et le footer. Les composants conservent la couleur marque du
   th?me, mais ne reposent plus sur des tailles ou espacements isol?s. */

:root {
  --primary: #A65B2A;
  --primary-dark: #7A3F18;
  --primary-tint: #F7EFE6;
  --primary-tint-2: #EFE4D8;
  --primary-line: #D9C7B4;
  --sf-ink: #1C1410;
  --sf-surface: #F7F3EE;
  --sf-line: #D9C7B4;
}

/* Coupe le débordement horizontal de page, SANS clipper les menus du header. */
html {
  overflow-x: clip !important;
  max-width: 100%;
}
body {
  overflow-x: clip !important;
  max-width: 100%;
}
#page {
  max-width: 100%;
  min-width: 0;
}
.site-header,
.site-header .header-nav,
.site-header .header-nav .container,
.site-header .header-inner,
.site-header .primary-menu,
.site-header .site-menu,
.site-header .primary-menu > ul.menu,
.site-header .primary-menu > ul.menu > .menu-item {
  max-width: 100%;
  min-width: 0;
  overflow: visible !important;
  overflow-x: visible !important;
}
/* Sous-menus : le thème pose left:-30px → icônes coupées au bord gauche. */
.site-header .primary-menu > ul.menu > .menu-item > .sub-menu,
.site-menu.primary-menu > ul.menu > .menu-item > .sub-menu,
.site-header .site-menu > ul.menu > .menu-item > .sub-menu {
  left: 0 !important;
  right: auto !important;
  margin-left: 0 !important;
  transform: none !important;
}
.site-header .custom-button.has-children {
  flex: 0 0 auto;
  max-width: 100%;
}
/* Logo header : aucun contour / cadre */
/* Logo : le thème force image-rendering:-webkit-optimize-contrast sur toutes les img,
   ce qui dessine un faux contour noir autour du logo redimensionné. */
.header-main .site-brand img,
.header-main .custom-logo,
.header-main .site-logo img,
.site-header .custom-logo,
.sf-footer-logo img,
.site-footer .sf-footer-logo img {
  image-rendering: auto !important;
  -ms-interpolation-mode: bicubic;
}

.header-main .site-brand,
.header-main .site-brand a,
.header-main .custom-logo,
.header-main .site-brand img,
.header-main .site-logo img,
.site-header .custom-logo {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
:root {
  --sf-ink: #1C1410;
  --sf-muted: #6B5B4F;
  --sf-line: #d5dde3;
  --sf-surface: #F7F3EE;
  --sf-page-gutter: clamp(18px, 4vw, 40px);
  --sf-content-width: 940px;
  --sf-space-1: 8px;
  --sf-space-2: 12px;
  --sf-space-3: 16px;
  --sf-space-4: 24px;
  --sf-space-5: 32px;
  --sf-space-6: 48px;
  --sf-title-xl: clamp(28px, 3.2vw, 42px);
  --sf-title-lg: clamp(22px, 2.2vw, 30px);
  --sf-title-md: clamp(18px, 1.6vw, 22px);
  --sf-body: 16px;
  --sf-body-sm: 14px;
  --sf-radius: 12px;
  --sf-button-padding-y: 11px;
  --sf-button-padding-x: 14px;
  --sf-button-radius: 999px;
  --sf-button-line-height: 21px;
}

/* ===========================================================================
 * REBRAND ? Bandeau topbar (.global-notification) : le HTML h?rit? du th?me mirror
 * l'affiche encore dans l'ancien vert marque h?rit?. On force la couleur marque
 * actuelle (--primary = #A65B2A). Override CSS uniquement, mirror non touch?.
 * (GAP P0.2 ? Au Coin du Feu)
 * ========================================================================= */
.global-notification,
.global-notification .global-notification-inner {
  background-color: var(--primary) !important;
}

/* ===========================================================================
 * REBRAND ? R?sidus de l'ancien vert marque h?rit?s des <style> inline du th?me
 * mirror (GAP P1.1). On neutralise les variables de th?me + les rares s?lecteurs
 * qui r?f?rencent encore l'ancien vert (menu actif, prix promo <ins>). Le hex
 * litt?ral est en outre remplac? au build (scrubLegacyBrand). Override CSS seul ici.
 * ========================================================================= */
:root {
  --theme-primary-color: var(--primary);
  --theme-primary-active-color: var(--primary-dark);
  --theme-secondary-color: var(--primary);
  --theme-secondary-active-color: var(--primary-dark);
}
.site-header.header-type4 .header-row .site-menu .menu > .menu-item.current-menu-item > a,
.site-header.header-type4 .header-row .site-menu .menu > .menu-item.current-menu-item > a::before {
  color: var(--primary) !important;
  background-color: var(--primary) !important;
}
.single-product-wrapper .product-detail .product-price-wrapper .price ins {
  color: var(--primary) !important;
}

/* ===========================================================================
 * REBRAND ? Badge de note ? 4,7/5 ? 1389 avis v?rifi?s ? sur panier & checkout
 * (GAP P1.2). Inject? par page.mjs en t?te du contenu commerce.
 * ========================================================================= */
.sf-commerce-rating {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin: 8px 0 28px;
  padding: 14px 16px;
  background: #fff;
  border: 1px solid var(--sf-line, #e5e7eb);
  border-radius: var(--sf-radius);
  font-size: 13.5px;
  color: var(--sf-muted);
}
#sf-cart-page.sf-shop-page,
#sf-checkout-page.sf-shop-page {
  margin-top: 6px;
}
#sf-cart-page .sf-page-head {
  margin-top: 4px;
  margin-bottom: 20px;
}
#sf-cart-page .sf-ship-banner {
  margin-top: 4px;
  margin-bottom: 28px;
}
.sf-commerce-rating-stars { display: inline-flex; gap: 1px; color: #d69200; }
.sf-commerce-rating-star { width: 16px; height: 16px; fill: currentColor; }
.sf-commerce-rating-text { display: inline-flex; align-items: baseline; gap: 6px; }
.sf-commerce-rating-text > strong { color: var(--sf-ink); font-size: 15px; font-weight: 700; }
.sf-commerce-rating-text > span::before { content: "?"; margin-right: 6px; color: var(--sf-muted); }

/* ===========================================================================
 * GABARIT DE CARTE PRODUIT ? un seul style, identique et align? sur TOUTES les
 * grilles (boutique, cat?gorie, Top Ventes, De retour en stock, produits associ?s?).
 * R?gle : toutes les cartes ont la m?me hauteur, chaque info au m?me niveau, le
 * bouton toujours en bas. Antifragile : marche m?me si un produit n'a pas d'avis,
 * pas de prix, ou un titre long/court.
 * ========================================================================= */
.products .product { display: flex !important; align-self: stretch; }
.products .product > .product-wrapper { display: flex !important; flex-direction: column; flex: 1 1 auto; width: 100%; }
.products .product .product-inner { display: flex !important; flex-direction: column; flex: 1 1 auto; }
.products .product .thumbnail-wrapper { flex: 0 0 auto; }
/* SOURCE DU BUG D'?L?VATION : les images produit ont des ratios diff?rents et rendaient des
   hauteurs diff?rentes (ex. Worx 236px vs 195px), ce qui d?calait titre/note/prix vers le bas.
   ? Zone image en RATIO CARR? (aspect-ratio:1/1) : elle grandit/r?tr?cit avec la largeur de la
   carte (RESPONSIVE), tout en restant identique pour toutes les cartes d'une m?me rang?e ?
   prix align?s ? tout viewport, sans hauteur fig?e qui laisse du vide sur mobile. */
.products .product a.product-thumbnail {
  display: flex !important; align-items: center; justify-content: center;
  width: 100%; aspect-ratio: 1 / 1; height: auto; overflow: hidden;
}
.products .product a.product-thumbnail img {
  width: auto !important; height: auto !important;
  max-width: 100%; max-height: 100%; object-fit: contain;
}
.products .product .content-wrapper { display: flex !important; flex-direction: column; flex: 1 1 auto; position: static !important; line-height: normal !important; top: 0 !important; }

/* Titre : 2 lignes fixes ? hauteur de titre identique partout. */
.products .product .product-title {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  min-height: 2.7em; line-height: 1.35; margin-bottom: 6px !important;
}
/* Note : affich?e seulement s'il y a des avis (.sf-has-reviews via JS / build). */
.products .product .product-rating { display: none; align-items: center; gap: 6px; min-height: 18px; margin-bottom: 8px !important; }
/* Prix : hauteur mini r?serv?e + espace net avant le bouton. */
.products .product .product-price-wrapper { min-height: 1.7em; margin: 0 0 0 0; }
/* Bouton toujours en bas, avec un espace garanti au-dessus (jamais coll? au prix). */
.products .product .product-cart { margin-top: auto !important; padding-top: 16px; }

/* Libell? ? Prix sur demande ? pour un produit sans prix. */
.price-on-request { color: var(--primary, var(--primary)); font-weight: 600; }

/* --- Bordures de grille COH?RENTES quel que soit le nombre de colonnes (responsive) ---
   Le th?me dessinait un `border-left` par carte, mais la r?gle "pas de bord ? gauche en d?but
   de rang?e" ?tait cal?e sur un nombre de colonnes fixe ? 1re carte des rang?es 2+ gardait un
   trait, lignes d?salign?es. Solution robuste : le CONTENEUR dessine les bords haut+gauche,
   chaque CARTE dessine ses bords droit+bas ? une seule ligne partout, aucune manquante. */
.shop-products-wrapper .products,
.products.column-6, .products.column-5, .products.column-4,
.products.column-3, .products.column-2 {
  border-top: 1px solid #ececec; border-left: 1px solid #ececec;
}
.products > .product {
  border: 0 !important;
  border-right: 1px solid #ececec !important;
  border-bottom: 1px solid #ececec !important;
}

/* Les listes de catalogue ne doivent jamais ?tirer les rares cartes d'une derni?re
   ligne. Le miroir utilise des cartes compactes : on conserve donc une largeur
   plafond et des colonnes r?guli?res, y compris quand il reste deux produits. */
.shop-products-wrapper .products {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(160px, 224px));
  justify-content: start;
}
.shop-products-wrapper .products > .product {
  width: 100% !important;
  max-width: 224px;
}
@media (max-width: 575.98px) {
  /* Le catalogue du miroir affiche deux cartes par rang?e ? 390 px. La r?gle auto-fit
     plafonnait les cartes ? 224 px et ne pouvait donc en placer qu'une seule. */
  .shop-products-wrapper .products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    justify-content: stretch;
  }
  .shop-products-wrapper .products > .product { max-width: none; }
}

/* Produits associ?s : le miroir les pr?sente en deux cartes par rang?e, quelle
   que soit la largeur. La grille ne doit donc jamais se d?grader en liste. */
#related-products .products { display: grid !important; }
#related-products .products > .product {
  width: 100% !important;
}

/* Bento promotionnel de l'accueil : le CSS Elementor propre ? cette section n'est
   pas pr?sent dans le miroir local. On r?tablit donc ses quatre cartes, sans
   appliquer cette grille aux autres banni?res du site. */
.sf-home-promo-bento > .e-con-inner { display: grid !important; gap: 16px !important; }
.sf-home-promo-bento > .e-con-inner > .e-con { width: auto !important; min-width: 0; }
.sf-home-promo-card { min-width: 0; }
.sf-home-promo-bento .site-banner { position: relative; height: 340px; min-height: 0; }
.sf-home-promo-bento .site-banner .entry-media,
.sf-home-promo-bento .site-banner .entry-media img {
  width: 100%; height: 100%;
}
.sf-home-promo-bento .site-banner .entry-media img { display: block; object-fit: cover; }
@media (min-width: 768px) {
  .sf-home-promo-bento > .e-con-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 992px) {
  .sf-home-promo-bento > .e-con-inner { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
  .sf-home-promo-bento .site-banner { height: var(--banner-mobile-height, 200px); }
}

/* Mobile/tablette : r?afficher les 4 vraies cartes (souvent marqu?es
   elementor-hidden-mobile dans l?export) et cacher le placeholder desktop-hidden
   (image pixel). 1 colonne t?l?phone, 2 colonnes tablette. */
@media (max-width: 991.98px) {
  .sf-home-promo-bento > .e-con-inner {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 16px !important;
  }
  .sf-home-promo-bento > .e-con-inner > .e-con.e-child {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
  }
  .sf-home-promo-bento > .e-con-inner > .e-con.e-child .sf-home-promo-card,
  .sf-home-promo-bento > .e-con-inner > .e-con.e-child .elementor-hidden-mobile,
  .sf-home-promo-bento > .e-con-inner > .e-con.e-child .elementor-hidden-tablet {
    display: block !important;
  }
  /* Placeholder mobile Elementor (souvent image vide) */
  .sf-home-promo-bento > .e-con-inner > .elementor-hidden-desktop,
  .sf-home-promo-bento > .e-con-inner > .sf-home-promo-card.elementor-hidden-desktop {
    display: none !important;
  }
}
@media (min-width: 768px) and (max-width: 991.98px) {
  .sf-home-promo-bento > .e-con-inner { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* Promotions cat?gories de l'accueil (Tracteurs tondeuses, Bois de chauffage,
   Abris de jardin?) : une section diff?rente du bento promotionnel pr?c?dent.
   Le `gap` est port? par son vrai conteneur, donc visible aussi sur t?l?phone r?el. */
@media (max-width: 991.98px) {
  .sf-home-category-promo-bento > .e-con-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 16px !important;
  }
  .sf-home-category-promo-bento > .e-con-inner > .sf-home-category-promo-card {
    width: auto !important;
    min-width: 0;
    margin: 0 !important;
  }
}

/* Bento Conseil / Services, distinct de la promotion ci-dessus : l'export
   Elementor a perdu sa d?finition de grille. Sans ce bloc les trois banni?res
   prennent chacune toute la largeur et leurs images deviennent d?mesur?es. */
.sf-home-expert-bento > .e-con-inner {
  display: grid !important;
  /* L'export Elementor force trois pistes m?me ? 390 px. On l'emporte aussi
     sur cette r?gle afin que chaque carte reste r?ellement lisible sur mobile. */
  grid-template-columns: minmax(0, 1fr) !important;
  /* L'export d?finit aussi DEUX rang?es, laissant une rang?e vide (grand blanc
     mort sous les cartes). On force une hauteur de rang?e automatique. */
  grid-template-rows: auto !important;
  grid-auto-rows: auto !important;
  gap: 16px !important;
  align-items: stretch;
}
.sf-home-expert-bento > .e-con-inner > .sf-home-expert-card {
  width: auto !important;
  min-width: 0;
}
.sf-home-expert-bento .site-banner,
.sf-home-expert-bento .site-banner .entry-media,
.sf-home-expert-bento .site-banner .entry-media img {
  width: 100%;
}
.sf-home-expert-bento .site-banner .entry-media img { display: block; object-fit: cover; }
@media (min-width: 768px) {
  .sf-home-expert-bento > .e-con-inner { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
/* espace au-dessus du bento experts : ne plus le coller ? la section produits */
.sf-home-expert-bento { margin-top: 40px !important; margin-bottom: 8px !important; }
.sf-home-expert-bento .site-banner .entry-wrapper { background: transparent; }

/* La section associ?e reprend le rythme vertical des autres sections produit. */
#related-products,
#recently-viewed,
.recently-viewed,
.site-module.recently-viewed { padding-top: calc(var(--sf-space-6) + var(--sf-space-3)); }

/* Badge "Stock Limit?" du hero : pastille propre, texte parfaitement centr?. */
.banner-badge { display: inline-flex; align-items: center; justify-content: center; padding: 7px 16px; border-radius: 999px; font-size: 12px; font-weight: 700; line-height: 1; letter-spacing: .2px; text-align: center; vertical-align: middle; }
.banner-badge.green { background: var(--primary, var(--primary)) !important; color: #fff !important; box-shadow: none !important; }

/* --- Tiroir panier OFF-CANVAS plein hauteur ? droite (pilot? par custom/storefront.js) --- */
/* On n'utilise plus le mini-cart d?roulant du th?me : on injecte notre propre panneau #sf-drawer. */
.mini-cart-holder { display: none !important; }
.mini-cart-button { position: relative; }
.sf-drawer-overlay {
  position: fixed; inset: 0; background: rgba(17,24,39,.45);
  opacity: 0; visibility: hidden; transition: opacity .3s ease; z-index: 99998;
}
body.sf-drawer-open .sf-drawer-overlay { opacity: 1; visibility: visible; }
.sf-drawer {
  position: fixed; top: 0; right: 0; height: 100%; width: 420px; max-width: 92vw;
  background: #fff; box-shadow: -14px 0 44px rgba(0,0,0,.20);
  transform: translateX(100%); transition: transform .32s cubic-bezier(.4,0,.2,1);
  z-index: 99999; display: flex; flex-direction: column;
}
body.sf-drawer-open .sf-drawer { transform: translateX(0); }
html.sf-drawer-open,
body.sf-drawer-open {
  overflow: hidden;
  overscroll-behavior: none;
}
.add_to_cart_button.sf-atc-busy,
.single_add_to_cart_button.sf-atc-busy,
.ajax_add_to_cart.sf-atc-busy {
  pointer-events: none;
}
.sf-drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px; border-bottom: 1px solid #eef0f2; flex: 0 0 auto; }
.sf-drawer-head h3 { margin: 0; font-size: 17px; font-weight: 800; color: #111827; }
.sf-drawer-close { border: 0; background: none; font-size: 28px; line-height: 1; cursor: pointer; color: #6b7280; padding: 0 4px; }
.sf-drawer-close:hover { color: #111827; }
.sf-drawer-body { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; }
@media (prefers-reduced-motion: reduce) { .sf-drawer, .sf-drawer-overlay { transition: none; } }
.sf-cart-panel { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; }
.sf-cart-panel .klb-cart-free-shipping { padding: 14px 16px; margin: 0; background: var(--primary-tint); }
.sf-cart-panel .cart-notice-progress { height: 6px; background: #e2e8e4; border-radius: 4px; margin-top: 8px; overflow: hidden; }
.sf-cart-panel .cart-notice-progress span { display: block; height: 100%; background: var(--primary, var(--primary)); transition: width .3s; }
.sf-free-ok { color: var(--primary, var(--primary)); }
.sf-cart-items { overflow-y: auto; padding: 6px 0; flex: 1 1 auto; min-height: 0; }
.sf-cart-item { display: grid; grid-template-columns: 56px 1fr 24px; gap: 12px; align-items: center; padding: 12px 16px; border-bottom: 1px solid #f1f2f4; }
.sf-ci-img img { width: 56px; height: 56px; object-fit: contain; border: 1px solid #eef0f2; border-radius: 8px; }
.sf-ci-name { font-size: 13px; font-weight: 600; color: #1f2937; line-height: 1.3; display: block; }
.sf-ci-line { display: flex; align-items: center; justify-content: space-between; margin-top: 8px; }
.sf-ci-qty { display: inline-flex; align-items: center; gap: 8px; border: 1px solid #e5e7eb; border-radius: 999px; padding: 2px 8px; }
.sf-ci-qty .sf-q { border: 0; background: none; font-size: 15px; cursor: pointer; color: #374151; line-height: 1; padding: 2px 4px; }
.sf-ci-price { font-weight: 700; color: #111827; font-size: 13px; }
.sf-ci-remove { border: 0; background: none; font-size: 20px; cursor: pointer; color: #9ca3af; line-height: 1; }
.sf-ci-remove:hover { color: #dc2626; }
.sf-cart-footer { padding: 14px 16px; border-top: 1px solid #eef0f2; background: #fff; }
.sf-cart-subtotal { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; font-size: 15px; }
.sf-cart-subtotal strong { font-size: 18px; }
.sf-cart-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.sf-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 45px; padding: var(--sf-button-padding-y) var(--sf-button-padding-x); border-radius: var(--sf-button-radius); font-weight: 600; font-size: 14px; line-height: var(--sf-button-line-height); text-align: center; cursor: pointer; }
.sf-btn-primary { background: var(--primary, var(--primary)); color: #fff; }
.sf-btn-primary:hover { background: var(--primary-dark); }
.sf-btn-outline { border: 1px solid var(--primary, var(--primary)); color: var(--primary, var(--primary)); }
.sf-btn-outline:hover { background: var(--primary-tint); }
.sf-cart-empty { padding: 28px 16px; text-align: center; color: #6b7280; }
.sf-cart-empty .sf-btn { margin-top: 12px; }

/* ===== Sections au-dessus du footer (r?assurance / newsletter / paiement) ===== */
.sf-footer-extras .container { width: min(100% - 32px, 1360px); margin-inline: auto; }
/* Le footer avait une marge haute de 60px ? bandeau blanc disgracieux au-dessus. Coll? au bloc. */
.sf-footer-extras + .site-footer { margin-top: 0 !important; }
/* Respiration au-dessus de la 1re section (r?assurance) : ?vite le "coll? de partout". */
.sf-footer-extras { margin-top: 56px; }
.sf-reassure { padding-top: 48px; padding-bottom: 40px; }

/* Badge de remise sur les images produit : pastille rouge ? -X % ? en haut ? gauche (storefront). */
.products .product .thumbnail-wrapper { position: relative; }
.thumbnail-badges { position: absolute; top: 10px; left: 10px; z-index: 3; display: flex; flex-direction: column; gap: 6px; pointer-events: none; }
.thumbnail-badges .badge, .product-badges .badge, .banner-badge.sale, .badge.sale {
  font-size: 12.5px !important; font-weight: 700 !important; padding: 5px 9px !important;
  border-radius: 6px !important; line-height: 1 !important;
}
.thumbnail-badges .badge.sale, .badge.sale { background: #e02b2b !important; color: #fff !important; box-shadow: 0 2px 6px rgba(224,43,43,.28); }
.thumbnail-badges .badge.rupture, .badge.rupture {
  background: #4b5563 !important; color: #fff !important; box-shadow: 0 2px 6px rgba(75,85,99,.28);
  text-transform: uppercase; letter-spacing: .02em;
}
.products .product.outofstock {
  opacity: .62; filter: grayscale(.35);
}
.products .product.outofstock .product-thumbnail img,
.products .product.outofstock .thumbnail-wrapper img {
  filter: grayscale(.25);
}
.products .product.outofstock .sf-oos-disabled,
.single-product .sf-oos-disabled,
form.cart .sf-oos-disabled {
  background: #9ca3af !important; border-color: #9ca3af !important; color: #fff !important;
  pointer-events: none; cursor: not-allowed; opacity: .95;
}
.single-product.outofstock .woocommerce-product-gallery,
.product.outofstock .woocommerce-product-gallery {
  opacity: .75; filter: grayscale(.2);
}

/* Deux liens ajout?s ? droite de la barre de navigation principale. */
.sf-nav-right { margin-left: auto !important; margin-right: 8px; gap: 14px; flex: 0 0 auto !important; }
.sf-nav-right a { font-weight: 600; font-size: 14px; color: #030712; white-space: nowrap; }
.sf-nav-right a:hover { color: var(--primary, var(--primary)); }
.site-header .header-inner > .custom-button.has-children { margin-right: 0; }
.badge.sf-promo-badge,
.sf-promo-badge { padding: 3px 8px !important; }

/* Pages de contenu : le texte ne doit jamais coller au bord gauche ? padding sur le bloc.
   IMPORTANT : on NE limite PAS la largeur des pages ?ditoriales/service. Elles contiennent
   des banni?res Elementor (grogin-banner-box) ? hauteur fixe : les r?tr?cir faisait passer
   le titre sur 3 lignes ? le contenu d?bordait et le sur-titre "Conseil/Service" ?tait rogn?.
   Seules les pages L?GALES re?oivent une largeur de lecture confortable. */
[data-elementor-type="wp-page"] {
  padding-left: clamp(18px, 4vw, 40px) !important;
  padding-right: clamp(18px, 4vw, 40px) !important;
  box-sizing: border-box !important;
}
/* La FAQ du miroir s'?tend d'un bord ? l'autre sur mobile. Le padding global de
   pages ?crasait sa largeur utile, puis ses grands intitul?s semblaient disproportionn?s. */
.sf-ptype-faq [data-elementor-type="wp-page"] {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.sf-ptype-legal [data-elementor-type="wp-page"] {
  max-width: 980px !important;
  margin-left: auto !important; margin-right: auto !important;
}
/* Banni?re ?ditoriale ANTIFRAGILE : le texte est align? en HAUT de la carte (au lieu d'?tre
   centr? verticalement). Ainsi, m?me si le contenu venait ? d?passer la hauteur de l'image,
   c'est le bas qui d?borderait ? jamais le sur-titre "Conseil/Service" en haut. On conserve
   la hauteur d'origine (d?finie par l'image) ? rendu fid?le ? l'oracle. Scop? aux pages de contenu. */
.sf-ptype-editorial .elementor-widget-grogin-banner-box .entry-wrapper,
.sf-ptype-service   .elementor-widget-grogin-banner-box .entry-wrapper {
  align-items: flex-start !important;
}

/* ===== Fiche produit : vrais onglets (m?me structure que le miroir) ===== */
/* Onglets classiques : le soulignement actif repose SUR la ligne de s?paration
   (marge n?gative), une seule barre visible au lieu de deux. */
.woocommerce-tabs .wc-tabs { gap: 1.5rem; margin: 0 0 1.4rem; padding: 0; border-bottom: 1px solid var(--sf-line, var(--sf-line)); }
.woocommerce-tabs .wc-tabs li { margin: 0 0 -1px; border: 0 !important; }
/* le th?me dessine son propre indicateur actif via des pseudo-?l?ments : on
   neutralise tout pour ne garder qu'un seul soulignement (celui du lien) */
.woocommerce-tabs .wc-tabs li::before,
.woocommerce-tabs .wc-tabs li::after,
.woocommerce-tabs .wc-tabs li a::before,
.woocommerce-tabs .wc-tabs li a::after { content: none !important; display: none !important; }
.woocommerce-tabs .wc-tabs li a { display: inline-block; padding: 0 2px 12px; border-bottom: 2px solid transparent; border-radius: 0; font-size: 16px; font-weight: 700; color: var(--sf-ink, #111827); cursor: pointer; text-decoration: none !important; }
.woocommerce-tabs .wc-tabs li a:hover { color: var(--sf-ink, #111827); }
.woocommerce-tabs .wc-tabs li.active a { border-bottom-color: var(--primary, var(--primary)); color: var(--primary, var(--primary)); }
.woocommerce-tabs .wc-tabs li a:focus-visible { outline: 2px solid var(--primary, var(--primary)); outline-offset: 4px; border-radius: 2px; }
.woocommerce-tabs .wc-tab[hidden] { display: none !important; }
.woocommerce-tabs .wc-tab:not([hidden]) { display: block !important; }
.woocommerce-tabs > .sf-product-reviews-permanent {
  display: block !important;
  margin-top: var(--sf-space-5);
  padding-top: var(--sf-space-4);
  border-top: 1px solid var(--sf-line);
}
.sf-review-confirmation {
  margin: 0 0 var(--sf-space-3);
  padding: var(--sf-space-3);
  border: 1px solid var(--primary-line);
  border-radius: 8px;
  background: var(--primary-tint);
  color: var(--primary-dark, #7A3F18);
  font-size: var(--sf-body-sm);
  font-weight: 600;
}
@media (min-width: 576px) { .woocommerce-tabs .wc-tabs { gap: 1.875rem; } }

/* Barre d'achat fixe de la fiche produit : le montant courant accompagne le CTA
   uniquement sur mobile, l? o? le prix principal dispara?t au d?filement. */
.sf-sticky-price { display: none; }
@media (max-width: 991.98px) {
  form.cart.single-ajax .single_add_to_cart_button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    white-space: nowrap;
  }
  form.cart.single-ajax .sf-sticky-price {
    display: inline-block;
    padding-left: 8px;
    border-left: 1px solid rgba(255, 255, 255, .42);
    font-weight: 800;
    font-variant-numeric: tabular-nums;
  }
}

/* R?assurance (4 points) */
.sf-reassure { padding: 40px 0; border-top: 1px solid #eef0f2; }
.sf-reassure-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
.sf-reassure-item { display: flex; gap: 14px; align-items: flex-start; }
.sf-reassure-ic { flex: 0 0 auto; width: 40px; height: 40px; color: var(--primary, var(--primary)); }
.sf-reassure-ic svg { width: 40px; height: 40px; }
.sf-reassure-title { margin: 0 0 4px; font-weight: 700; font-size: 15px; color: #111827; }
.sf-reassure-text { margin: 0; font-size: 13px; line-height: 1.5; color: #6b7280; }
@media (max-width: 900px) { .sf-reassure-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .sf-reassure-grid { grid-template-columns: 1fr; } }

/* Newsletter */
.sf-newsletter { background: #1c1f24; padding: 34px 0; }
.sf-newsletter-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.sf-newsletter-title { margin: 0 0 6px; color: #fff; font-size: 20px; font-weight: 800; }
.sf-newsletter-sub { margin: 0; color: #9ca3af; font-size: 14px; }
.sf-newsletter-form { display: flex; gap: 10px; flex: 1 1 380px; max-width: 520px; align-items: stretch; }
/* Champ ET bouton EXACTEMENT la m?me hauteur (le th?me gonflait le <button>). */
.sf-newsletter-input { flex: 1; height: 50px !important; padding: 0 16px !important; box-sizing: border-box; border-radius: 8px; border: 1px solid #3a3f47; background: #2a2e35; color: #fff; font-size: 14px; }
.sf-newsletter-input::placeholder { color: #9ca3af; }
.sf-newsletter-btn { height: 50px !important; padding: 0 28px !important; box-sizing: border-box; border-radius: 8px; border: 0; background: var(--primary, var(--primary)); color: #fff; font-weight: 700; font-size: 14px; line-height: 1 !important; cursor: pointer; white-space: nowrap; }
.sf-newsletter-btn:hover { background: #7A3F18; }

/* Paiement */
.sf-payment { background: var(--primary, var(--primary)); padding: 14px 0; }
.sf-payment-inner { display: flex; align-items: center; justify-content: center; gap: 24px; flex-wrap: wrap; color: #fff; }
.sf-payment-secure { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; }
.sf-payment-badges { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; }
/* pastille de paiement unifi?e (fiche produit, pr?-footer, checkout) :
   fond blanc, bord doux, sans ombre port?e */
.sf-pay { display: inline-flex; align-items: center; justify-content: center; height: 34px; padding: 5px 10px; background: #fff; border: 1px solid #e6ece7; border-radius: 8px; box-shadow: none; }
.sf-pay img { height: 20px; width: auto; max-width: 46px; display: block; }

/* ===== Recherche produits (dropdown typeahead) ===== */
.sf-search-results {
  position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 1100;
  background: #fff; border: 1px solid #eef0f2; border-radius: 12px;
  box-shadow: 0 20px 50px rgba(0,0,0,.16); overflow: hidden; max-height: 70vh; overflow-y: auto;
}
.sf-search-item { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-bottom: 1px solid #f4f5f6; }
.sf-search-item:hover { background: var(--primary-tint); }
.sf-search-thumb img { width: 44px; height: 44px; object-fit: contain; border: 1px solid #eef0f2; border-radius: 8px; }
.sf-search-thumb { width: 44px; height: 44px; flex: 0 0 auto; }
.sf-search-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sf-search-name { font-size: 13px; font-weight: 600; color: #1f2937; line-height: 1.3; }
.sf-search-price { font-size: 13px; font-weight: 700; color: var(--primary, var(--primary)); }
.sf-search-brand { font-size: 12px; font-weight: 600; color: #4b5563; }
.sf-search-all { display: block; padding: 11px 14px; text-align: center; font-weight: 700; font-size: 13px; color: var(--primary, var(--primary)); background: #f7f8f8; }
.sf-search-all:hover { background: #eef2ee; }
.sf-search-empty { padding: 18px 14px; text-align: center; color: #6b7280; font-size: 13px; }
.sf-search-heading { margin: 0 0 14px; padding: 12px 14px; font-size: 15px; color: #374151; background: #f7f8f8; border-radius: 10px; }
.sf-card-brand { margin: 4px 0 0; color: #4b5563; font-size: 12px; font-weight: 600; line-height: 1.2; }

/* Pagination : ne plus coller en bas de la grille */
.shop-products-wrapper {
  padding-bottom: 28px;
}
.shop-products-wrapper .woocommerce-pagination,
.woocommerce-pagination {
  display: flex;
  justify-content: center;
  margin: 28px 0 40px;
  padding: 18px 12px 28px;
}
.woocommerce-pagination ul.page-numbers {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (max-width: 767.98px) {
  .shop-products-wrapper .woocommerce-pagination,
  .woocommerce-pagination {
    margin: 24px 0 36px;
    padding: 16px 10px 24px;
  }
  .woocommerce-pagination ul.page-numbers {
    gap: 10px;
    justify-content: center;
  }
  .woocommerce-pagination ul.page-numbers li .page-numbers,
  .woocommerce-pagination ul.page-numbers li a.page-numbers,
  .woocommerce-pagination ul.page-numbers li span.page-numbers {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 48px !important;
    min-height: 48px !important;
    padding: 0 12px !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    border-radius: 8px !important;
  }
  .woocommerce-pagination ul.page-numbers li .page-numbers.dots {
    min-width: 36px !important;
    font-weight: 600 !important;
  }
}
body.sf-search-mode .woocommerce-pagination { display: none !important; }

/* Filtre marques (sidebar) */
.sf-brand-filter { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--sf-line, #dfe4e7); }
.sf-brand-filter .widget-title { margin: 0 0 10px; font-size: 14px; font-weight: 700; color: var(--sf-ink, #111827); }
.sf-brand-filter-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.sf-brand-opt {
  appearance: none;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 0;
  padding: 8px 10px;
  border: 1px solid var(--sf-line, #dfe4e7);
  border-radius: 8px;
  background: #fff;
  color: #4b5563;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}
.sf-brand-opt:hover { border-color: #b7c0c5; color: var(--primary, var(--primary)); }
.sf-brand-opt.is-active {
  border-color: var(--primary, var(--primary));
  background: var(--primary-tint, #F7EFE6);
  color: var(--primary, var(--primary));
}
.sf-brand-opt-count {
  color: #6b7280;
  font-size: 12px;
  font-weight: 600;
}
.shop-products-wrapper .products > .product.sf-filter-brand,
.shop-products-wrapper .products > .product.sf-filter-subcat { display: none !important; }

/* Fiche produit ? marque au-dessus du titre + ? droite des avis */
.product-detail-inner .sf-product-brand-top {
  margin: 4px 0 14px;
  padding: 0 0 12px;
  border-bottom: 1px solid #d1d5db;
}
.product-detail-inner .sf-product-brand-link {
  color: #4b5563;
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
}
.product-detail-inner .sf-product-brand-link:hover {
  color: var(--primary, var(--primary));
  text-decoration: underline;
}
.product-detail-inner .woocommerce-product-rating {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
}
.product-detail-inner .sf-product-brand-inline {
  margin-left: auto;
}
.product-detail-inner .sf-product-brand-inline .sf-product-brand-link,
.product-detail-inner .sf-product-brand-inline-row .sf-product-brand-link {
  color: #4b5563;
  font-size: 13.5px;
  font-weight: 600;
}
.product-detail-inner .sf-product-brand-inline-row {
  margin: 0 0 8px;
}

/* ===== Comparateur : masquer tout r?sidu inject? c?t? client (feature retir?e) ===== */
.klbcp-btn, .compare-button, .quick-button.compare, .site-compare, .klb-compare,
.klbcp-bar, .klbcp-compare-bar, [class*="add-to-compare"], a[href*="/compare"] { display: none !important; }

/* ===== Pages Panier & Checkout (rendues c?t? client depuis localStorage) ===== */
.sf-shop-page { padding: 8px 0 40px; }
.sf-page-head { margin: 0 0 24px; }
.sf-page-head h1 { font-size: clamp(22px, 3vw, 30px); font-weight: 800; color: #111827; margin: 0 0 6px; }
.sf-page-head p { margin: 0; color: #6b7280; font-size: 14px; }
.sf-empty-block { text-align: center; padding: 60px 20px; }
.sf-empty-block .sf-empty-ic { width: 64px; height: 64px; margin: 0 auto 18px; color: #cbd5e1; }
.sf-empty-block p { color: #6b7280; margin: 0 0 20px; font-size: 15px; }

/* Layout 2 colonnes (contenu + r?cap) */
.sf-cart-layout, .sf-checkout-layout { display: grid; grid-template-columns: minmax(0,1fr) 360px; gap: 32px; align-items: start; }
@media (max-width: 900px) { .sf-cart-layout, .sf-checkout-layout { grid-template-columns: 1fr; } }

/* Tableau panier */
/* Carte panier arrondie (m?me langage visuel que le bento ? Total panier ?). */
.sf-cart-card { border: 1px solid #eef0f2; border-radius: 14px; overflow: hidden; background: #fff; }
.sf-cart-table { width: 100%; border-collapse: collapse; }
/* On neutralise les bordures de cellules du th?me (grille disgracieuse) : on g?re tout nous-m?mes. */
.sf-cart-table th, .sf-cart-table td { border: 0 !important; }
.sf-cart-table thead th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .5px; color: #9ca3af; font-weight: 700; padding: 15px 16px; background: #fafbfc; border-bottom: 1px solid #eef0f2 !important; vertical-align: middle; }
.sf-cart-table tbody td { padding: 18px 16px; border-bottom: 1px solid #f3f4f6 !important; vertical-align: middle; font-size: 14px; color: #374151; }
.sf-cart-table tbody tr:last-child td { border-bottom: 0 !important; }
.sf-cart-table td[data-label="Prix"], .sf-cart-table td.sf-cell-total { white-space: nowrap; font-variant-numeric: tabular-nums; }
.sf-cart-table td.sf-cell-total { font-weight: 700; color: #111827; }
.sf-cart-prod { display: flex; align-items: center; gap: 14px; }
.sf-cart-prod img { width: 64px; height: 64px; object-fit: contain; border: 1px solid #eef0f2; border-radius: 10px; flex: 0 0 auto; background: #fff; }
.sf-cart-prod a { font-weight: 600; color: #1f2937; font-size: 14px; line-height: 1.4; }
.sf-cart-prod a:hover { color: var(--primary, var(--primary)); }
.sf-qtybox { display: inline-flex; align-items: center; border: 1px solid #e5e7eb; border-radius: 999px; padding: 2px 6px; }
.sf-qtybox button { border: 0; background: none; font-size: 17px; cursor: pointer; color: #374151; padding: 4px 8px; line-height: 1; }
.sf-qtybox span { min-width: 22px; text-align: center; font-weight: 600; }
.sf-cell-total { font-weight: 700; color: #111827; white-space: nowrap; }
.sf-cell-remove button { border: 0; background: none; color: #9ca3af; font-size: 20px; cursor: pointer; }
.sf-cell-remove button:hover { color: #dc2626; }
.sf-cart-tools { display: flex; justify-content: space-between; align-items: center; margin-top: 18px; flex-wrap: wrap; gap: 12px; }

/* Carte r?capitulatif (sticky) */
.sf-summary { border: 1px solid #eef0f2; border-radius: 14px; padding: 22px; background: #fff; position: sticky; top: 24px; }
.sf-summary h3 { margin: 0 0 16px; font-size: 16px; font-weight: 800; color: #111827; }
.sf-sum-line { display: flex; justify-content: space-between; font-size: 14px; color: #4b5563; padding: 8px 0; }
.sf-sum-total { display: flex; justify-content: space-between; font-size: 18px; font-weight: 800; color: #111827; padding: 14px 0 6px; border-top: 1px solid #eef0f2; margin-top: 8px; }
.sf-summary .sf-btn { width: 100%; margin-top: 16px; padding: 14px; }
.sf-free-note { font-size: 12.5px; color: var(--primary, var(--primary)); margin: 10px 0 0; text-align: center; }
.sf-free-note.warn { color: #b45309; }
.sf-ship-bar { height: 6px; background: #eef0f2; border-radius: 4px; overflow: hidden; margin: 8px 0 0; }
.sf-ship-bar span { display: block; height: 100%; background: var(--primary, var(--primary)); transition: width .3s; }

/* Formulaire checkout */
.sf-form-card { border: 1px solid #eef0f2; border-radius: 14px; padding: 24px; }
.sf-form-card h3 { margin: 0 0 18px; font-size: 16px; font-weight: 800; color: #111827; }
.sf-field { margin-bottom: 16px; }
.sf-field label { display: block; font-size: 13px; font-weight: 600; color: #374151; margin-bottom: 6px; }
.sf-field input, .sf-field textarea, .sf-field select { width: 100%; box-sizing: border-box; height: 46px; padding: 0 14px; border: 1px solid #e5e7eb; border-radius: 8px; font-size: 16px; background: #fff; }
.sf-field textarea { height: auto; padding: 12px 14px; min-height: 80px; }
.sf-field input:focus, .sf-field textarea:focus { outline: none; border-color: var(--primary, var(--primary)); box-shadow: 0 0 0 3px rgba(166,91,42,.12); }
/* Pr?nom + Nom : m?me rythme vertical que les autres champs (le margin des
   .sf-field internes cr?ait un double espacement, surtout empil?s en mobile) */
.sf-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.sf-field-row .sf-field { margin-bottom: 0; }
/* Anti-zoom iOS/Android : police < 16px sur focus ? zoom page + scroll horizontal. */
@media (max-width: 767.98px) {
  #sf-checkout-page,
  #sf-cart-page {
    overflow-x: clip;
    max-width: 100%;
  }
  #sf-checkout-page .sf-checkout-layout,
  #sf-checkout-page .sf-form-card,
  #sf-cart-page .sf-cart-layout {
    min-width: 0;
    max-width: 100%;
  }
  #sf-checkout-page .sf-field input,
  #sf-checkout-page .sf-field textarea,
  #sf-checkout-page .sf-field select,
  #sf-checkout-page .sf-discount-input,
  #sf-cart-page .sf-discount-input,
  #sf-cart-page input,
  #sf-cart-page select,
  #sf-cart-page textarea {
    font-size: 16px !important;
  }
}
.sf-demo-note { display: flex; gap: 10px; align-items: flex-start; background: var(--primary-tint); border: 1px solid var(--primary-line); color: var(--primary-dark); border-radius: 10px; padding: 12px 14px; font-size: 13px; line-height: 1.5; margin-top: 4px; }
.sf-checkout-ok { text-align: center; padding: 50px 20px; }
.sf-checkout-ok .sf-ok-ic { width: 72px; height: 72px; margin: 0 auto 20px; color: var(--primary, var(--primary)); }
.sf-checkout-ok h2 { font-size: 24px; font-weight: 800; margin: 0 0 10px; color: #111827; }
.sf-checkout-ok p { color: #6b7280; margin: 0 auto 8px; max-width: 460px; }
.sf-mini-item { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid #f1f2f4; }
.sf-mini-item img { width: 48px; height: 48px; object-fit: contain; border: 1px solid #eef0f2; border-radius: 6px; }
.sf-mini-item .sf-mi-name { font-size: 13px; font-weight: 600; color: #374151; line-height: 1.3; }
.sf-mini-item .sf-mi-qty { font-size: 12px; color: #9ca3af; }
.sf-mini-item .sf-mi-price { margin-left: auto; font-weight: 700; font-size: 13px; color: #111827; white-space: nowrap; }
.sf-search-heading { margin: 0 0 14px; padding: 12px 14px; font-size: 15px; color: #374151; background: #f7f8f8; border-radius: 10px; }

/* ===== Responsive mobile pour nos composants inject?s ===== */
@media (max-width: 680px) {
  /* Panier : le tableau 5 colonnes ? cartes empil?es (jamais de scroll horizontal). */
  .sf-cart-card { border: 0; border-radius: 0; overflow: visible; } /* ?vite la carte-dans-carte */
  .sf-cart-table thead { display: none; }
  .sf-cart-table, .sf-cart-table tbody, .sf-cart-table tr, .sf-cart-table td { display: block; width: 100%; }
  .sf-cart-table tr { position: relative; border: 1px solid #eef0f2; border-radius: 12px; padding: 14px 44px 14px 14px; margin-bottom: 14px; }
  .sf-cart-table td { border: 0 !important; padding: 5px 0; display: flex; align-items: center; justify-content: space-between; }
  .sf-cart-table td.sf-cell-prod { display: block; padding-bottom: 10px; }
  .sf-cart-table td[data-label]::before { content: attr(data-label); font-weight: 600; color: #6b7280; font-size: 13px; }
  .sf-cart-table td.sf-cell-total { font-size: 16px; }
  .sf-cart-table td.sf-cell-remove { position: absolute; top: 8px; right: 8px; width: auto; padding: 0; }
  .sf-cart-tools { flex-direction: column; align-items: stretch; }
  .sf-cart-tools .sf-btn { width: 100%; }
}
@media (max-width: 520px) {
  /* Formulaire checkout : pr?nom/nom, CP/ville passent en pleine largeur. */
  .sf-field-row { grid-template-columns: 1fr; }
  .sf-drawer { width: 100%; max-width: 100%; }
  .sf-page-head h1 { font-size: 22px; }
}

/* ============================================================================
 * PANIER & CHECKOUT ? refonte fid?le aux maquettes (boutons rectangulaires,
 * bandeau livraison, options d'exp?dition, bento commande).
 * ========================================================================== */
/* Les pages boutique r?emploient le bouton principal global : m?me hauteur,
   m?me rayon, m?me couleur que le tiroir panier et les autres CTA. */
.sf-btn-dark { background: #111827; color: #fff; }
.sf-btn-dark:hover { background: #000; }
.sf-btn-light { background: #f3f4f6; color: #374151; }
.sf-btn-light:hover { background: #e5e7eb; }
.sf-block { width: 100%; }
/* Boutons de la ligne outils du panier (r?duction / supprimer) : format compact, pas g?ants. */
.sf-cart-tools .sf-btn { padding: 0 18px; min-height: 56px; height: auto; font-size: 13px; }
.sf-discount-input { height: 44px; box-sizing: border-box; }

/* Bandeau livraison gratuite (haut du panier) ? palette ACDF (pas de vert UDJ). */
.sf-ship-banner { background: var(--primary-tint, #F7EFE8); border: 1px solid var(--primary-line, #E8D5C4); border-radius: 12px; padding: 16px 20px; margin: 0 0 26px; }
.sf-ship-banner-top { display: flex; align-items: center; gap: 10px; color: var(--primary, #A65B2A); }
.sf-ship-banner-top p { margin: 0; font-size: 15px; color: #3B2A1F; }
.sf-ship-banner-top p strong { color: var(--primary-dark, #7A3F18); font-weight: 700; }
.sf-ship-banner-ic { display: inline-flex; color: var(--primary, #A65B2A); }
.sf-ship-progress { height: 8px; background: #E8D5C4; border-radius: 5px; overflow: hidden; margin-top: 12px; }
.sf-ship-progress span { display: block; height: 100%; background: var(--primary, #A65B2A); border-radius: 5px; transition: width .3s; }
.sf-ship-banner.ok .sf-ship-banner-top p { color: #3B2A1F; }

/* Table panier : colonne de suppression en t?te de ligne. */
.sf-cart-table td.sf-cell-remove { width: 34px; text-align: center; }
.sf-cart-table th:first-child { width: 34px; }
.sf-cart-main { min-width: 0; }

/* Ligne outils : r?duction (gauche) + supprimer le panier (droite). */
.sf-discount { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.sf-discount-label { font-weight: 600; color: #374151; font-size: 14px; }
.sf-discount-input { height: 46px; padding: 0 14px; border: 1px solid #e5e7eb; border-radius: 8px; font-size: 16px; min-width: 200px; }
.sf-discount-input:focus { outline: none; border-color: var(--primary, var(--primary)); box-shadow: 0 0 0 3px rgba(166,91,42,.12); }
.sf-discount-msg { margin: 10px 2px 0; font-size: 13px; min-height: 0; }
.sf-discount-msg.err { color: #b45309; }

/* Options de livraison (radios) ? partag?es panier & checkout. */
.sf-ship-opts { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; align-items: start; padding: 14px 0; border-top: 1px solid #eef0f2; margin-top: 8px; }
.sf-ship-envoi { color: #9ca3af; font-size: 13px; padding-top: 4px; }
.sf-ship-list { display: flex; flex-direction: column; gap: 10px; }
.sf-ship-opt { display: flex; align-items: flex-start; gap: 9px; font-size: 14px; color: #374151; cursor: pointer; text-align: right; justify-content: flex-end; }
.sf-ship-opt input { margin: 3px 0 0; accent-color: var(--primary, var(--primary)); flex: 0 0 auto; order: 2; }
.sf-ship-label { order: 1; }
.sf-ship-note { grid-column: 2; margin: 2px 0 0; font-size: 12px; color: #9ca3af; text-align: right; }

/* Carte ? Total panier ? (droite du panier). */
.sf-cart-summary h3 { font-size: 17px; }

/* Bento ? Votre commande ? (droite du checkout). */
.sf-order-bento .sf-bento-products { border-bottom: 1px solid #eef0f2; padding-bottom: 8px; margin-bottom: 8px; }
.sf-bento-item { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px 0; font-size: 13px; color: #4b5563; }
.sf-bento-item .sf-ci-img img { width: 48px; height: 48px; }
.sf-bento-name { min-width: 0; line-height: 1.4; }
.sf-bento-x { color: #9ca3af; white-space: nowrap; }
.sf-bento-price { font-weight: 600; color: #111827; white-space: nowrap; }
.sf-pay-method { border-top: 1px solid #eef0f2; margin-top: 8px; padding-top: 14px; }
.sf-pay-opt { display: flex; align-items: center; gap: 9px; font-size: 15px; font-weight: 600; color: #111827; cursor: pointer; }
.sf-pay-opt input { accent-color: var(--primary, var(--primary)); }
.sf-pay-note { margin: 6px 0 0 26px; font-size: 13px; color: #6b7280; }
.sf-commander { margin-top: 14px; padding: var(--sf-button-padding-y) var(--sf-button-padding-x) !important; border-radius: var(--sf-button-radius) !important; }

/* Marqueurs obligatoire / facultatif sur les libell?s. */
.sf-req { color: #dc2626; font-weight: 700; }
.sf-opt { color: #9ca3af; font-weight: 400; text-transform: none; }

/* Sections du formulaire checkout (titre soulign?, comme la maquette). */
.sf-form-section + .sf-form-section { margin-top: 22px; }
.sf-form-section h3 { margin: 0 0 20px; padding-bottom: 14px; border-bottom: 1px solid #eef0f2; font-size: 17px; font-weight: 800; color: #111827; }
.sf-field select { appearance: auto; }
/* notes de commande : champ bas + interligne sain (le th?me force un line-height
   g?ant via --theme-form-input-height, ce qui gonflait la hauteur ? ~110px) */
.sf-field textarea { min-height: 56px; height: 56px; line-height: 1.4 !important; }
#sf-checkout-page .sf-form-section:last-child h3 { margin-bottom: 16px; }

/* Note de paiement s?curis? au-dessus du bouton Commander. */
.sf-secure-note { display: flex; align-items: flex-start; gap: 8px; margin: 16px 0 0; font-size: 12.5px; line-height: 1.45; color: #6b7280; }
.sf-secure-note svg { flex: 0 0 auto; margin-top: 1px; color: var(--primary, var(--primary)); }

/* Checkout : m?mes proportions que les pages de boutique, avec un r?capitulatif
   suffisamment g?n?reux pour les produits, montants et r?assurances. */
#sf-checkout-page { max-width: 1180px; margin-inline: auto; }
.sf-checkout-layout { grid-template-columns: minmax(0, 1fr) minmax(380px, 400px); }
.sf-checkout-layout .sf-form-card { align-self: start; }
.sf-checkout-reassurance { margin: 0 0 18px; }
.sf-delivery-note { margin-bottom: 0; color: var(--primary, var(--primary)); }
.sf-delivery-note strong { font-weight: 700; }

@media (max-width: 900px) {
  /* Bento & sidebar passent sous le contenu ; options de livraison ? gauche. */
  .sf-checkout-layout { grid-template-columns: 1fr; }
  .sf-ship-opt, .sf-ship-note { text-align: left; justify-content: flex-start; }
  .sf-ship-opt input { order: 0; }
  .sf-ship-label { order: 1; }
}
@media (max-width: 680px) {
  .sf-form-card { padding: var(--sf-space-3); }
}

/* ===== Filtres boutique : plus de scroll interne (inutile et disgracieux) ===== */
.widget_price_filter,
.widget_price_filter .price_slider_wrapper,
.filter-sidebar-body,
.shop-sidebar .site-scroll,
.filter-widgets,
.widget-area .site-scroll { overflow: visible !important; max-height: none !important; height: auto !important; }

/* ===== Bloc PROMOTIONS de la navbar : en ORANGE (au lieu de rouge) ===== */
.sf-promo-link { color: #c42222 !important; font-weight: 600; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; font-size: 12px; }
.sf-promo-link:hover { color: #a01c1c !important; }
.badge.sf-promo-badge,
.sf-promo-badge { background: #c42222 !important; background-image: none !important; color: #fff !important; border-radius: 4px; padding: 2px 7px !important; font-weight: 700; font-size: 10px; letter-spacing: .02em; }

/* ============================================================================
 * PAGES DE CONTENU (? propos, Livraison, Retours, Garantie, Guides, Recrutement,
 * Centre logistique) ? typographie soign?e et composants r?utilisables (.sf-doc).
 * ========================================================================== */
.sf-doc { max-width: 940px; margin: 0 auto; color: #374151; font-size: 15.5px; line-height: 1.72; }
.sf-doc-title, .sf-doc > h1 { font-size: clamp(26px, 4vw, 34px); font-weight: 800; color: #111827; margin: 0 0 10px; line-height: 1.15; }
.sf-doc .sf-lead { font-size: 18px; color: #4b5563; margin: 0 0 30px; line-height: 1.6; }
.sf-doc h2 { font-size: 21px; font-weight: 800; color: #111827; margin: 38px 0 14px; }
.sf-doc h3 { font-size: 16px; font-weight: 700; color: #1f2937; margin: 0 0 8px; }
.sf-doc p { margin: 0 0 16px; }
.sf-doc a { color: var(--primary, var(--primary)); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.sf-doc a:hover { color: var(--primary-dark); }
.sf-doc-hr { border: 0; border-top: 1px solid #eef0f2; margin: 36px 0 4px; }
.sf-doc ul { margin: 0 0 18px; padding: 0; list-style: none; }
.sf-doc ul li { position: relative; padding-left: 26px; margin-bottom: 10px; }
.sf-doc ul li::before { content: ""; position: absolute; left: 3px; top: 9px; width: 8px; height: 8px; border-radius: 50%; background: var(--primary, var(--primary)); }
.sf-doc ol.sf-doc-steps { margin: 0 0 18px; padding: 0; list-style: none; counter-reset: step; }
.sf-doc ol.sf-doc-steps li { position: relative; padding-left: 44px; margin-bottom: 14px; min-height: 30px; }
.sf-doc ol.sf-doc-steps li::before { counter-increment: step; content: counter(step); position: absolute; left: 0; top: 0; width: 30px; height: 30px; border-radius: 50%; background: var(--primary, var(--primary)); color: #fff; font-weight: 700; font-size: 14px; display: flex; align-items: center; justify-content: center; }
.sf-doc .sf-callout { display: flex; gap: 12px; background: var(--primary-tint); border: 1px solid var(--primary-line); border-left: 4px solid var(--primary, var(--primary)); border-radius: 10px; padding: 15px 18px; margin: 24px 0; }
.sf-doc .sf-callout p { margin: 0; font-size: 14.5px; color: var(--primary-dark); }
.sf-doc .sf-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; margin: 22px 0; }
.sf-doc .sf-card { border: 1px solid #eef0f2; border-radius: 12px; padding: 20px; background: #fff; }
.sf-doc .sf-card p { margin: 0; font-size: 14px; color: #6b7280; line-height: 1.55; }
.sf-doc .sf-card a { font-size: 14px; }
.sf-doc .sf-cta { margin: 40px 0 8px; padding: 30px 28px; background: #0f1b14; border-radius: 16px; text-align: center; }
.sf-doc .sf-cta h2 { color: #fff; margin: 0 0 8px; }
.sf-doc .sf-cta p { color: #c4d3c9; margin: 0 auto 18px; max-width: 560px; font-size: 15px; }
.sf-doc .sf-cta .sf-btn { display: inline-block; background: var(--primary, var(--primary)); color: #fff; padding: 13px 28px; border-radius: 8px; font-weight: 700; text-decoration: none; }
.sf-doc .sf-cta .sf-btn:hover { background: #7A3F18; color: #fff; }

/* ============================================================================
 * ROUND 5 ? finition globale : pages statiques, accord?ons produit/FAQ, footer.
 * Les r?gles ci-dessous passent par les tokens partag?s d?finis en t?te de fichier.
 * ========================================================================== */

/* --- Rythme commun des pages de contenu --- */
.sf-static-main { box-sizing: border-box; }
.sf-static-hero { max-width: var(--sf-content-width); margin: 0 auto var(--sf-space-5); }
.sf-static-hero h1 {
  margin: 0 0 var(--sf-space-2); color: var(--sf-ink); font-size: var(--sf-title-xl);
  font-weight: 700; line-height: 1.12; letter-spacing: -.02em;
}
.sf-eyebrow {
  margin: 0 0 var(--sf-space-1); color: var(--primary, var(--primary)); font-size: 12px;
  font-weight: 600; letter-spacing: .08em; line-height: 1.3; text-transform: uppercase;
}
.sf-static-lead { max-width: 760px; margin: 0; color: var(--sf-muted); font-size: 18px; line-height: 1.58; }

/* Pages l?gales et de service : une largeur de lecture, des respirations ?gales,
   et une taille qui reste confortable sur t?l?phone. */
.sf-doc {
  max-width: var(--sf-content-width); color: #374151; font-size: var(--sf-body);
  line-height: 1.68;
}
.sf-doc-title, .sf-doc > h1 {
  margin: 0 0 var(--sf-space-2); color: var(--sf-ink); font-size: var(--sf-title-xl);
  font-weight: 700; line-height: 1.12;
}
.sf-doc .sf-lead { margin: 0 0 var(--sf-space-5); color: var(--sf-muted); font-size: 18px; line-height: 1.58; }
.sf-doc h2 { margin: var(--sf-space-6) 0 var(--sf-space-2); color: var(--sf-ink); font-size: var(--sf-title-lg); font-weight: 700; line-height: 1.22; }
.sf-doc h3 { margin: 0 0 var(--sf-space-1); color: var(--sf-ink); font-size: var(--sf-title-md); font-weight: 600; line-height: 1.3; }
.sf-doc p { margin: 0 0 var(--sf-space-3); }
.sf-doc-hr { margin: 0 0 var(--sf-space-5); border-color: var(--sf-line); }
.sf-doc ul { margin-bottom: var(--sf-space-4); }
.sf-doc ul li { margin-bottom: var(--sf-space-2); }
.sf-doc .sf-callout { margin: var(--sf-space-4) 0; border-color: #cfe0d3; border-radius: var(--sf-radius); padding: var(--sf-space-3) var(--sf-space-4); }
.sf-doc .sf-cards { gap: var(--sf-space-3); margin: var(--sf-space-4) 0; }
.sf-doc .sf-card { border-color: var(--sf-line); border-radius: var(--sf-radius); padding: var(--sf-space-4); }
.sf-doc .sf-cta { margin: var(--sf-space-6) 0 0; border-radius: 16px; padding: var(--sf-space-5); }
.sf-readable-section > .e-con-inner { max-width: var(--sf-content-width) !important; margin-inline: auto !important; }
.sf-readable-section .elementor-widget-text-editor { color: #374151; font-size: var(--sf-body); line-height: 1.68; }
.sf-readable-section .elementor-widget-text-editor p { margin-bottom: var(--sf-space-3); }
.sf-legacy-heading { margin: var(--sf-space-5) 0 var(--sf-space-2); color: var(--sf-ink); font-size: var(--sf-title-lg); font-weight: 700; line-height: 1.22; }
.sf-ptype-legal .sf-static-main p > strong:only-child,
.sf-ptype-legal .sf-static-main p > b:only-child { display: block; margin-top: var(--sf-space-5); color: var(--sf-ink); font-size: var(--sf-title-md); font-weight: 700; line-height: 1.3; }

/* --- ? propos : une seule histoire, puis des preuves et services en grille --- */
.sf-ptype-editorial [data-elementor-type="wp-page"] { padding-top: var(--sf-space-6); padding-bottom: var(--sf-space-6); }
.sf-about { max-width: var(--sf-content-width); margin: 0 auto; }
.sf-about-hero { padding-bottom: var(--sf-space-5); border-bottom: 1px solid var(--sf-line); }
.sf-about-intro { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sf-space-3) var(--sf-space-5); margin: var(--sf-space-5) 0; color: var(--sf-muted); font-size: var(--sf-body); line-height: 1.65; }
.sf-about-intro p { margin: 0; }
.sf-about-promise { max-width: 700px; margin: var(--sf-space-5) 0; }
.sf-about-promise h2 { margin: 0 0 var(--sf-space-2); color: var(--sf-ink); font-size: var(--sf-title-lg); font-weight: 700; line-height: 1.22; }
.sf-about-promise p { margin: 0; color: var(--sf-muted); font-size: var(--sf-body); line-height: 1.65; white-space: pre-line; }
.sf-about-services { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sf-space-3); margin: var(--sf-space-5) 0 var(--sf-space-6); }
.sf-about-service { display: flex; flex-direction: column; min-height: 216px; padding: var(--sf-space-4); border: 1px solid var(--sf-line); border-radius: var(--sf-radius); background: var(--sf-surface); }
.sf-about-service h2 { margin: 0 0 var(--sf-space-2); color: var(--sf-ink); font-size: var(--sf-title-md); font-weight: 700; line-height: 1.3; }
.sf-about-service > p:not(.sf-eyebrow) { margin: 0 0 var(--sf-space-4); color: var(--sf-muted); font-size: var(--sf-body-sm); line-height: 1.55; }
.sf-about-service a { align-self: flex-start; margin-top: auto; color: var(--primary, var(--primary)); font-size: var(--sf-body-sm); font-weight: 600; text-decoration: none; }
.sf-about-service a:hover { text-decoration: underline; text-underline-offset: 3px; }
.sf-about .sf-doc { max-width: none; }

/* --- Contact : hero clair, v?ritable formulaire conserv?, coordonn?es en carte --- */
.sf-ptype-contact [data-elementor-type="wp-page"] { padding-top: var(--sf-space-6); padding-bottom: var(--sf-space-6); }
.sf-contact-page { max-width: var(--sf-content-width); margin: 0 auto; }
.sf-contact-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(260px, .72fr); gap: var(--sf-space-5); align-items: start; }
.sf-contact-form, .sf-contact-details { border: 1px solid var(--sf-line); border-radius: var(--sf-radius); background: #fff; }
.sf-contact-form { padding: clamp(20px, 3vw, 32px); }
.sf-contact-details { padding: var(--sf-space-4); background: var(--sf-surface); }
.sf-contact-details h2 { margin: 0 0 var(--sf-space-2); color: var(--sf-ink); font-size: var(--sf-title-md); font-weight: 700; }
.sf-contact-details p { margin: 0 0 var(--sf-space-3); color: var(--sf-muted); font-size: var(--sf-body-sm); line-height: 1.55; }
.sf-contact-details a { color: var(--primary, var(--primary)); font-size: var(--sf-body); font-weight: 600; overflow-wrap: anywhere; }
.sf-contact-form .wpforms-container { margin: 0 !important; }
.sf-contact-form .wpforms-field { padding: 0 0 var(--sf-space-3) !important; }
.sf-contact-form .wpforms-field-label, .sf-contact-form .wpforms-field-sublabel { color: var(--sf-ink) !important; font-size: var(--sf-body-sm) !important; font-weight: 600 !important; }
.sf-contact-form input, .sf-contact-form textarea { border-color: var(--sf-line) !important; border-radius: 8px !important; font-size: var(--sf-body) !important; }
.sf-contact-form textarea { min-height: 152px !important; }
.sf-contact-form .wpforms-submit { min-height: 56px !important; padding: var(--sf-button-padding-y) 28px !important; border: 0 !important; border-radius: var(--sf-button-radius) !important; background: var(--primary, var(--primary)) !important; color: #fff !important; font-size: 15px !important; font-weight: 700 !important; line-height: var(--sf-button-line-height) !important; }
.sf-contact-form input:focus, .sf-contact-form textarea:focus { border-color: var(--primary, var(--primary)) !important; box-shadow: 0 0 0 3px rgba(166,91,42,.12) !important; }


/* --- Presentation / white : devis form (m?me chrome que Contact) --- */
.sf-pres-devis { margin: 28px 0 36px; }
.sf-doc .sf-contact-form-title,
.sf-pres-devis .sf-contact-form-title { margin: 0 0 14px; color: var(--sf-ink); font-size: var(--sf-title-md); font-weight: 700; }
.sf-pres-devis .sf-contact-details h3,
.sf-pres-devis .sf-contact-info-card h3 { margin: 0 0 12px; color: var(--sf-ink); font-size: var(--sf-title-md); font-weight: 700; }
.sf-pres-devis .sf-contact-name-field { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sf-pres-devis .sf-contact-name-field .sf-contact-group-label { grid-column: 1 / -1; }
.sf-pres-devis .sf-contact-info-card small { display: block; color: var(--sf-muted); font-size: 12px; margin-bottom: 2px; }
.sf-doc table { width: 100%; border-collapse: collapse; margin: 8px 0 20px; font-size: 14.5px; }
.sf-doc td { border: 1px solid var(--sf-line); padding: 10px 12px; vertical-align: top; }
.sf-doc td:first-child { width: 28%; background: var(--sf-surface); font-weight: 700; color: var(--sf-ink); }
.sf-doc .sf-doc-pic { width: 100%; max-height: 280px; object-fit: cover; margin: 8px 0 24px; border-radius: 12px; border: 1px solid var(--sf-line); }
@media (max-width: 800px) {
  .sf-pres-devis .sf-contact-name-field { grid-template-columns: 1fr; }
}

/* --- FAQ : cartes compactes et lisibles, avec ?tats ouvert/ferm? explicites --- */
.sf-ptype-faq [data-elementor-type="wp-page"] { max-width: 1020px; margin: 0 auto; padding: var(--sf-space-6) var(--sf-page-gutter) !important; }
.sf-ptype-faq .elementor-widget-heading { max-width: 760px; margin: 0 auto var(--sf-space-4) !important; }
.sf-ptype-faq .elementor-widget-heading h1.elementor-heading-title,
.sf-ptype-faq .elementor-widget-heading h2.elementor-heading-title,
.sf-ptype-faq .elementor-widget-heading h3.elementor-heading-title,
.sf-ptype-faq .elementor-widget-heading h4.elementor-heading-title,
.sf-ptype-faq .elementor-widget-heading h5.elementor-heading-title,
.sf-ptype-faq .elementor-widget-heading h6.elementor-heading-title { margin: 0 0 var(--sf-space-1) !important; color: var(--sf-ink); font-size: var(--sf-title-lg) !important; font-weight: 700 !important; line-height: 1.2 !important; }
.sf-ptype-faq .elementor-widget-heading p.elementor-heading-title,
.sf-ptype-faq .elementor-widget-heading p { margin: 0 !important; color: var(--sf-muted) !important; font-size: var(--sf-body) !important; font-weight: 400 !important; line-height: 1.55 !important; }
.sf-ptype-faq .elementor-widget-n-accordion { max-width: 760px; margin: 0 auto !important; }
.sf-ptype-faq .e-n-accordion-item { margin: 0 0 var(--sf-space-2) !important; border: 1px solid var(--sf-line) !important; border-radius: var(--sf-radius) !important; background: #fff; overflow: hidden; }
.sf-ptype-faq .e-n-accordion-item-title { display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: flex-start !important; gap: var(--sf-space-3) !important; min-height: 58px; padding: var(--sf-space-3) var(--sf-space-4) !important; color: var(--sf-ink) !important; cursor: pointer; }
.sf-ptype-faq .e-n-accordion-item-title-header { order: 1; min-width: 0; flex: 1 1 auto; margin-right: auto !important; text-align: left !important; }
.sf-ptype-faq .e-n-accordion-item-title-text { display: block; width: 100%; color: inherit !important; font-size: var(--sf-body) !important; font-weight: 600 !important; line-height: 1.4 !important; text-align: left !important; }
.sf-ptype-faq .e-n-accordion-item-title-icon { order: 2; flex: 0 0 auto; width: 16px; height: 16px; margin-left: auto; }
.sf-ptype-faq .e-n-accordion-item-title:focus-visible { outline: 3px solid rgba(166,91,42,.3); outline-offset: -3px; }
.sf-ptype-faq .e-n-accordion-item [role="region"] { padding: 0 var(--sf-space-4) var(--sf-space-4) !important; color: var(--sf-muted); font-size: var(--sf-body-sm); line-height: 1.6; }
.sf-ptype-faq .e-n-accordion-item [role="region"] p,
.sf-ptype-faq .e-n-accordion-item [role="region"] ul,
.sf-ptype-faq .e-n-accordion-item [role="region"] ol { margin: 0; padding-inline: var(--sf-space-4) !important; }
.sf-ptype-faq .e-n-accordion-item[open] { border-color: var(--primary-line) !important; box-shadow: 0 5px 16px rgba(20, 65, 35, .06); }
.sf-ptype-faq .e-n-accordion-item[open] .e-n-accordion-item-title { background: var(--sf-surface); }

/* --- Fiche produit : accord?on natif seulement sur t?l?phone --- */
.sf-product-accordion { display: none; }
.sf-sticky-price { font-weight: 500 !important; }
@media (max-width: 1023.98px) {
  /* Le formulaire d'achat reste EN FLUX (bouton visible apr?s le prix). La barre
     fixe est un ?l?ment d?di? (.sf-buybar) pilot? au d?filement. On neutralise
     donc le position:fixed du th?me. */
  .single .product-type-simple form.cart,
  form.cart.single-ajax {
    position: static !important;
    inset: auto !important;
    z-index: auto !important;
    box-shadow: none !important;
    background: transparent !important;
  }
  form.cart.single-ajax { display: flex !important; align-items: stretch !important; gap: var(--sf-space-2) !important; margin: 4px 0 0 !important; padding: 0 !important; min-height: 0 !important; }
  form.cart.single-ajax .quantity { width: 96px !important; min-width: 96px !important; height: auto !important; margin: 0 !important; }
  form.cart.single-ajax .quantity .qty { font-size: var(--sf-body-sm) !important; }
  form.cart.single-ajax .single_add_to_cart_button { flex: 1 1 auto !important; width: auto !important; min-height: 54px !important; padding: 0 var(--sf-space-3) !important; font-size: 15px !important; font-weight: 700 !important; }
  /* le prix est d?j? affich? au-dessus : inutile de le r?p?ter dans le bouton en flux */
  form.cart.single-ajax .sf-sticky-price { display: none !important; }
}
@media (max-width: 767.98px) {
  .woocommerce-tabs > .wc-tabs { display: none !important; }
  .woocommerce-tabs > .wc-tab { display: none !important; }
  .woocommerce-tabs > .sf-product-reviews-permanent { display: block !important; }
  .sf-product-accordion { display: grid; gap: var(--sf-space-2); }
  .sf-product-accordion-item { border: 1px solid var(--sf-line); border-radius: var(--sf-radius); background: #fff; overflow: hidden; }
  .sf-product-accordion-item > summary { display: flex; align-items: center; justify-content: space-between; gap: var(--sf-space-3); min-height: 56px; padding: var(--sf-space-3) var(--sf-space-4); color: var(--sf-ink); font-size: var(--sf-body); font-weight: 600; line-height: 1.35; cursor: pointer; list-style: none; }
  .sf-product-accordion-item > summary::-webkit-details-marker { display: none; }
  .sf-product-accordion-item > summary::after { content: "+"; color: var(--primary, var(--primary)); font-size: 22px; font-weight: 400; line-height: 1; }
  .sf-product-accordion-item[open] > summary { background: var(--sf-surface); }
  .sf-product-accordion-item[open] > summary::after { content: "?"; }
  .sf-product-accordion-item > summary:focus-visible { outline: 3px solid rgba(166,91,42,.3); outline-offset: -3px; }
  .sf-product-accordion-panel { padding: 0 var(--sf-space-4) var(--sf-space-4); }
  .sf-product-accordion-panel .wc-tab { display: block !important; margin: 0 !important; }
  .sf-product-accordion-panel .wc-tab > h2 { margin-top: var(--sf-space-2); font-size: var(--sf-title-md); line-height: 1.3; }
}

/* --- Footer : grille stable, newsletter compacte, moyens de paiement lisibles --- */
.sf-footer-extras { margin-top: var(--sf-space-6); }
.sf-reassure { padding: var(--sf-space-5) 0; }
.sf-newsletter { padding: 22px 0; }
.sf-newsletter-inner { gap: var(--sf-space-4); }
.sf-newsletter-title { margin-bottom: 3px; font-size: var(--sf-body); font-weight: 600; line-height: 1.35; }
.sf-newsletter-sub { font-size: var(--sf-body-sm); line-height: 1.45; }
.sf-newsletter-form { max-width: 460px; }
.sf-newsletter-input, .sf-newsletter-btn { height: 44px !important; font-size: var(--sf-body-sm) !important; }
.sf-newsletter-btn { padding: 0 20px !important; font-weight: 600 !important; }
.sf-payment { padding: 12px 0; }
.sf-payment-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: var(--sf-space-3); flex-wrap: nowrap; }
.sf-payment-secure { font-size: 12px; font-weight: 500; white-space: nowrap; }
.sf-payment-secure:last-child { justify-self: end; }
.sf-payment-badges { gap: 6px; flex-wrap: nowrap; }
.sf-pay { width: 42px; height: 27px; padding: 3px 4px; border-radius: 5px; }
.sf-pay img { max-width: 36px; height: 19px; }
.site-footer .footer-widgets { padding: 44px 0 36px; }
.site-footer .footer-inner { align-items: start; }
.site-footer .footer-contact-block .widget-body > p:first-child { margin: 0 0 var(--sf-space-3); }
.site-footer .footer-contact-block img { display: block; width: 164px !important; height: auto !important; max-width: 100%; margin: 0; }
.site-footer .footer-contact-block .widget-body > p { margin: 0 0 var(--sf-space-2); color: inherit !important; }
.site-footer .footer-contact-block strong { font-size: var(--sf-body-sm); font-weight: 600 !important; }
.site-footer .footer-contact-block .contact-detail p { margin: 0; font-size: var(--sf-body-sm); line-height: 1.55; }
.site-footer .widget-title { margin: 0 0 var(--sf-space-3) !important; font-size: 13px !important; font-weight: 600 !important; letter-spacing: .04em; line-height: 1.3; text-transform: uppercase; }
.site-footer .widget_nav_menu .menu li { margin-bottom: 9px; }
.site-footer .widget_nav_menu .menu a { font-size: var(--sf-body-sm); line-height: 1.4; }
.site-footer .footer-copyright { padding: 18px 0; }

@media (max-width: 767.98px) {
  .sf-static-hero { margin-bottom: var(--sf-space-4); }
  .sf-static-lead, .sf-doc .sf-lead { font-size: 16px; line-height: 1.58; }
  .sf-ptype-editorial [data-elementor-type="wp-page"], .sf-ptype-contact [data-elementor-type="wp-page"] { padding-top: var(--sf-space-5); padding-bottom: var(--sf-space-5); }
  .sf-about-promise { margin: var(--sf-space-4) 0; }
  .sf-about-intro { grid-template-columns: 1fr; gap: var(--sf-space-3); margin: var(--sf-space-4) 0; }
  .sf-about-services { grid-template-columns: 1fr; margin: var(--sf-space-4) 0 var(--sf-space-5); }
  .sf-about-service { min-height: 0; padding: var(--sf-space-4); }
  .sf-contact-layout { grid-template-columns: 1fr !important; gap: var(--sf-space-3) !important; }
  .sf-contact-form { padding: var(--sf-space-4); }
  .sf-contact-details { padding: var(--sf-space-4); }
  .sf-ptype-faq [data-elementor-type="wp-page"] { padding-top: var(--sf-space-5) !important; padding-bottom: var(--sf-space-5) !important; }
  .sf-ptype-faq .e-n-accordion-item-title { min-height: 54px; padding: var(--sf-space-3) !important; }
  .sf-ptype-faq .e-n-accordion-item [role="region"] { padding: 0 0 var(--sf-space-3) !important; }
  .sf-ptype-faq .e-n-accordion-item [role="region"] p,
  .sf-ptype-faq .e-n-accordion-item [role="region"] ul,
  .sf-ptype-faq .e-n-accordion-item [role="region"] ol { padding-inline: var(--sf-space-3) !important; }
  form.cart.single-ajax { min-height: 0 !important; padding: 0 !important; }
  form.cart.single-ajax .quantity { width: 92px !important; min-width: 92px !important; height: auto !important; }
  form.cart.single-ajax .single_add_to_cart_button { min-height: 52px !important; font-size: var(--sf-body-sm) !important; }
  .sf-footer-extras { margin-top: var(--sf-space-5); }
  .sf-reassure { padding: var(--sf-space-4) 0; }
  .sf-newsletter { padding: 40px 0; }
  .sf-newsletter-inner { align-items: stretch; gap: 18px; }
  .sf-newsletter-form { flex: 1 1 100%; max-width: none; }
  .sf-payment-inner { grid-template-columns: 1fr; justify-items: center; gap: var(--sf-space-2); }
  .sf-payment-secure:last-child { justify-self: center; }
  .sf-payment-badges { width: 100%; justify-content: center; }
  .sf-pay { width: 40px; height: 26px; }
  .sf-pay img { max-width: 34px; height: 18px; }
  .site-footer .footer-widgets { padding: var(--sf-space-5) 0; }
  .site-footer .footer-contact-block { margin-bottom: var(--sf-space-5); }
  .site-footer .footer-contact-block img { width: 150px !important; }
  .site-footer .footer-widgets-block .widget-col { margin-bottom: var(--sf-space-4); }
  .site-footer .widget-title { margin-bottom: var(--sf-space-2) !important; }
}

/* ============================================================================
 * ROUND 6 ? composants ?ditoriaux et navigation mobile partag?s.
 * ========================================================================== */

/* Toutes les pages issues du renderer de contenus re?oivent le m?me souffle au
   d?part. Cela corrige les titres coll?s sous le header, y compris les services
   et les pages l?gales, sans r?gle page-par-page. */
.sf-static-main {
  box-sizing: border-box;
  padding: var(--sf-space-6) var(--sf-page-gutter) !important;
}

/* FAQ unique : l'accueil et /foire-aux-questions/ partagent strictement les
   m?mes classes et les m?mes dimensions de composant. */
.sf-faq-section .sf-faq-heading {
  max-width: 760px;
  margin: 0 auto var(--sf-space-4) !important;
}
.sf-faq-section .sf-faq-heading .site-module-header,
.sf-faq-section .sf-faq-heading .site-module-header > .col { display: block !important; }
.sf-faq-section .sf-faq-heading .entry-title,
.sf-faq-section .sf-faq-heading .elementor-heading-title:is(h1, h2, h3, h4, h5, h6) {
  margin: 0 0 var(--sf-space-1) !important;
  color: var(--sf-ink) !important;
  font-size: var(--sf-title-lg) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}
.sf-faq-section .sf-faq-heading p,
.sf-faq-section .sf-faq-heading .elementor-heading-title:is(p) {
  margin: 0 !important;
  color: var(--sf-muted) !important;
  font-size: var(--sf-body) !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
}
.sf-faq-accordion { max-width: 760px; margin: 0 auto !important; }
.sf-faq-accordion .e-n-accordion-item {
  margin: 0 0 var(--sf-space-2) !important;
  border: 1px solid var(--sf-line) !important;
  border-radius: var(--sf-radius) !important;
  background: #fff;
  overflow: hidden;
}
.sf-faq-accordion .e-n-accordion-item-title {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: var(--sf-space-3) !important;
  min-height: 58px;
  padding: var(--sf-space-3) var(--sf-space-4) !important;
  color: var(--sf-ink) !important;
  cursor: pointer;
}
.sf-faq-accordion .e-n-accordion-item-title-header { order: 1; min-width: 0; flex: 1 1 auto; margin-right: auto !important; text-align: left !important; }
.sf-faq-accordion .e-n-accordion-item-title-text { display: block; width: 100%; color: inherit !important; font-size: var(--sf-body) !important; font-weight: 600 !important; line-height: 1.4 !important; text-align: left !important; }
.sf-faq-accordion .e-n-accordion-item-title-icon { order: 2; flex: 0 0 auto; width: 16px; height: 16px; margin-left: auto; color: var(--primary, var(--primary)); }
.sf-faq-accordion .e-n-accordion-item-title-icon svg { fill: currentColor; }
.sf-faq-accordion .e-n-accordion-item-title:focus-visible { outline: 3px solid rgba(166,91,42,.3); outline-offset: -3px; }
.sf-faq-accordion .e-n-accordion-item [role="region"] { padding: 14px var(--sf-space-4) var(--sf-space-4) !important; color: var(--sf-muted); font-size: var(--sf-body-sm); line-height: 1.65; }
.sf-faq-accordion .e-n-accordion-item [role="region"] p,
.sf-faq-accordion .e-n-accordion-item [role="region"] ul,
.sf-faq-accordion .e-n-accordion-item [role="region"] ol { margin: 0; padding-inline: 0 !important; }
.sf-faq-accordion .e-n-accordion-item[open] { border-color: var(--primary-line) !important; box-shadow: 0 5px 16px rgba(20, 65, 35, .06); }
.sf-faq-accordion .e-n-accordion-item[open] .e-n-accordion-item-title { background: var(--sf-surface); }
.sf-home-faq > .e-con-inner { max-width: 1020px; margin-inline: auto; padding-inline: var(--sf-page-gutter); }

/* Hero ?ditorial sans nouvelle image : le d?grad? vert marque reprend la
   fonction de contraste d'un hero photo tout en restant 100 % projet. */
.sf-rich-hero {
  max-width: none;
  margin-bottom: var(--sf-space-4);
  padding: clamp(32px, 6vw, 72px);
  border: 1px solid #7A3F18;
  border-radius: 18px;
  background: radial-gradient(circle at 88% 15%, rgba(255, 160, 90, .28), transparent 33%), linear-gradient(135deg, #3d1f0f, #7A3F18 58%, #A65B2A);
}
.sf-rich-hero .sf-eyebrow { color: #f5d4b8; }
.sf-rich-hero h1 { color: #fff; max-width: 780px; }
.sf-rich-hero .sf-static-lead { color: #f0e6dc; max-width: 690px; }
.sf-key-figures { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0 0 var(--sf-space-5); overflow: hidden; border-radius: var(--sf-radius); background: var(--primary, #A65B2A); }
.sf-key-figures p { display: grid; gap: 3px; min-height: 110px; margin: 0; padding: var(--sf-space-4); align-content: center; background: var(--primary-dark, #7A3F18); text-align: center; }
.sf-key-figures strong { color: #f5d4b8; font-size: clamp(24px, 3vw, 34px); font-weight: 700; line-height: 1; }
.sf-key-figures span { color: #f0e6dc; font-size: var(--sf-body-sm); line-height: 1.4; }

/* Page recrutement : hero, valeurs sous forme de cartes, puis les m?tiers et
   la candidature issus du contenu r?el d?j? pr?sent dans les donn?es. */
.sf-recruitment-page { max-width: var(--sf-content-width); margin: 0 auto; }
.sf-recruitment-content { max-width: none; }
.sf-recruitment-content > h2:first-child { margin-top: 0; }
.sf-recruitment-content > ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sf-space-3); margin: var(--sf-space-4) 0 var(--sf-space-6); padding: 0; list-style: none; }
.sf-recruitment-content > ul li { min-height: 96px; margin: 0; padding: var(--sf-space-4); border: 1px solid var(--sf-line); border-radius: var(--sf-radius); background: var(--sf-surface); line-height: 1.55; }
.sf-recruitment-content > ul li::before { content: ""; display: inline-block; width: 8px; height: 8px; margin: 0 9px 1px 0; border-radius: 50%; background: var(--primary, var(--primary)); }
.sf-recruitment-content .sf-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* Contact : vrai formulaire conserv? ? gauche, informations r?ellement utiles
   et lien vers la FAQ ? droite. */
.sf-contact-details { display: grid; gap: var(--sf-space-3); padding: 0; border: 0; background: transparent; }
.sf-contact-info-card { padding: var(--sf-space-4); border: 1px solid var(--sf-line); border-radius: var(--sf-radius); background: var(--sf-surface); }
.sf-contact-info-card h2 { margin: 0 0 var(--sf-space-3); }
.sf-contact-info-row { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; align-items: start; }
.sf-contact-info-row + .sf-contact-info-row { margin-top: var(--sf-space-3); }
.sf-contact-info-row > span:last-child { color: var(--sf-ink); font-size: var(--sf-body-sm); font-weight: 600; line-height: 1.5; }
.sf-contact-info-row small { display: block; color: var(--sf-muted); font-size: 12px; font-weight: 500; }
.sf-contact-info-row { align-items: center; }
.sf-contact-icon { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 9px; background: var(--primary-tint-2); color: var(--primary, var(--primary)); line-height: 0; }
.sf-contact-icon svg { width: 18px; height: 18px; display: block; }
.sf-contact-faq-short p { margin-bottom: var(--sf-space-2); }
.sf-contact-faq-short > a { font-size: var(--sf-body-sm); }

/* Footer : bloc horaires compact directement sous la signature. */
.site-footer .sf-opening-hours { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 10px; margin: 0 0 var(--sf-space-3); padding: 11px 0; border-top: 1px solid rgba(23, 33, 27, .12); border-bottom: 1px solid rgba(23, 33, 27, .12); color: inherit; }
.site-footer .sf-opening-hours svg { width: 21px; height: 21px; margin-top: 2px; fill: none; stroke: var(--primary, var(--primary)); stroke-width: 1.8; }
.site-footer .sf-opening-hours div { display: grid; gap: 2px; }
.site-footer .sf-opening-hours strong { color: var(--sf-ink); font-size: var(--sf-body-sm); font-weight: 700 !important; }
.site-footer .sf-opening-hours span { font-size: 13px; line-height: 1.4; }

/* Burger -> croix : le m?me contr?le conserve son emplacement ferm? et passe
   au-dessus du panneau lorsqu?il est ouvert. */
.sf-visually-hidden { 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; }
.header-main .menu-drawer-toggle.sf-menu-toggle { display: inline-grid !important; width: 44px !important; height: 44px !important; place-items: center; padding: 0 !important; border: 0 !important; background: transparent !important; }
.sf-menu-toggle-icon { display: grid; width: 20px; height: 16px; align-content: space-between; }
.sf-menu-toggle-icon > span { display: block; width: 20px; height: 2px; border-radius: 2px; background: var(--sf-ink); transform-origin: center; transition: transform .2s ease, opacity .16s ease; }
body.site-menu-drawer-active .header-main .menu-drawer-toggle.sf-menu-toggle { position: fixed !important; top: 10px !important; right: 14px !important; left: auto !important; z-index: 10000000 !important; background: #fff !important; border-radius: 50% !important; box-shadow: 0 2px 12px rgba(15, 45, 28, .14) !important; }
body.site-menu-drawer-active .sf-menu-toggle-icon > span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
body.site-menu-drawer-active .sf-menu-toggle-icon > span:nth-child(2) { opacity: 0; }
body.site-menu-drawer-active .sf-menu-toggle-icon > span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
@media (max-width: 767.98px) {
  .sf-static-main { padding: var(--sf-space-5) var(--sf-page-gutter) !important; }
  .sf-home-faq > .e-con-inner { padding-inline: 0; }
  .sf-faq-accordion .e-n-accordion-item-title { min-height: 54px; padding: var(--sf-space-3) !important; }
  .sf-faq-accordion .e-n-accordion-item [role="region"] { padding: 0 var(--sf-space-3) var(--sf-space-3) !important; }
  .sf-key-figures { grid-template-columns: 1fr; gap: 1px; margin-bottom: var(--sf-space-4); }
  .sf-key-figures p { min-height: 86px; padding: var(--sf-space-3); }
  .sf-rich-hero { padding: var(--sf-space-5) var(--sf-space-4); border-radius: var(--sf-radius); }
  .sf-recruitment-content > ul, .sf-recruitment-content .sf-cards { grid-template-columns: 1fr; }
  .sf-recruitment-content > ul { margin-bottom: var(--sf-space-5); }
  .site-footer .sf-opening-hours { margin-bottom: var(--sf-space-3); }
}

@media (prefers-reduced-motion: reduce) {
  .sf-menu-toggle-icon > span { transition: none; }
}

/* ROUND 7 ? derniers ajustements des composants partag?s. */
/* Les conteneurs Elementor de r?ponse sont export?s en inline : leur padding
   n'indente donc pas leurs enfants. On les r?tablit comme vrais panneaux, sur
   l'accueil comme sur la page FAQ, puis on laisse un seul retrait de composant. */
.sf-faq-accordion .e-n-accordion-item [role="region"] {
  display: block !important;
  box-sizing: border-box;
}
.sf-faq-accordion .e-n-accordion-item [role="region"] p,
.sf-faq-accordion .e-n-accordion-item [role="region"] ul,
.sf-faq-accordion .e-n-accordion-item [role="region"] ol {
  padding-inline: 0 !important;
}

/* Chaque colonne de footer part de la m?me ligne de r?f?rence. Les liens ne
   re?oivent plus le d?calage Bootstrap de 15 px qui les s?parait de la marque. */
.site-footer .footer-inner,
.site-footer .footer-contact-block,
.site-footer .footer-contact-block .widget-body,
.site-footer .footer-widgets-block,
.site-footer .footer-widgets-block .widget-col,
.site-footer .footer-widgets-block .widget,
.site-footer .footer-widgets-block .menu {
  text-align: left !important;
}
.site-footer .footer-inner {
  padding-block: 0 !important;
}
.site-footer .footer-widgets-block .widget-col {
  padding-inline: 0 !important;
}
.site-footer .footer-contact-block .widget-body > p,
.site-footer .footer-contact-block .sf-opening-hours,
.site-footer .footer-contact-block .footer-contact {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* ============================================================================
 * ROUND 8 - details produit, checkout, contact et tri natif.
 * ========================================================================== */

/* Fiche produit : lecture continue des details, puis avis. */
.woocommerce-tabs > .sf-product-detail-section {
  display: block !important;
  margin: 0;
}
.woocommerce-tabs > .sf-product-detail-section + .sf-product-detail-section {
  margin-top: var(--sf-space-5);
  padding-top: var(--sf-space-4);
  border-top: 1px solid var(--sf-line);
}

/* Les miniatures restent de vraies vignettes, et non une seconde galerie. */
.single-product-wrapper .klb-flexslider-thumbnail .flex-control-thumbs li,
.single-product-wrapper .flex-control-thumbs > li {
  width: 64px !important;
  height: 64px !important;
  flex: 0 0 64px !important;
}
.single-product-wrapper .klb-flexslider-thumbnail .flex-control-thumbs li img,
.single-product-wrapper .flex-control-thumbs > li img {
  display: block;
  width: 64px !important;
  height: 64px !important;
  max-width: 64px !important;
  max-height: 64px !important;
  object-fit: cover;
  border-radius: 8px;
  opacity: 1 !important;
  visibility: visible !important;
}

/* Galerie PDP : hauteur max sur la GRANDE image seulement (portraits trop hauts).
   Ne touche PAS aux vignettes (.klb-flexslider-thumbnail / .flex-control-thumbs). */
.single-product-wrapper .woocommerce-product-gallery > .flex-viewport {
  max-height: min(560px, 72vh);
}
.single-product-wrapper .woocommerce-product-gallery > .flex-viewport .woocommerce-product-gallery__image > a > img,
.single-product-wrapper .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image > a > img {
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: min(560px, 72vh) !important;
  object-fit: contain !important;
  object-position: center center;
  display: block;
  margin-inline: auto;
}
/* Les vignettes ne doivent jamais h?riter de la hauteur max de la grande image. */
.single-product-wrapper .klb-flexslider-thumbnail img,
.single-product-wrapper .flex-control-thumbs img {
  max-height: 64px !important;
  width: 64px !important;
  height: 64px !important;
  object-fit: cover !important;
}

/* Le bento de livraison est commun au panier et au checkout. */
@media (max-width: 680px) {
  .sf-ship-banner {
    padding: var(--sf-space-2) 14px;
    margin-bottom: var(--sf-space-4);
    border-radius: 10px;
  }
  .sf-ship-banner-top { gap: 8px; }
  .sf-ship-banner-top svg { width: 17px; height: 17px; }
  .sf-ship-banner-top p { font-size: 13px; line-height: 1.4; }
  .sf-ship-progress { height: 6px; margin-top: 8px; }
}

/* Le select natif est le seul niveau d'interaction du tri. */
.shop-sorting-wrapper .sf-sort-control {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.shop-sorting-wrapper .sf-sort-control > span {
  margin: 0;
  color: #374151;
  font-size: 13px;
  font-weight: 600;
}
.shop-sorting-wrapper .sf-sort-control .woocommerce-ordering { margin: 0; }
.shop-sorting-wrapper .sf-sort-control .orderby {
  min-height: 46px;
  padding: 0 38px 0 14px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background-color: #fff;
  color: #374151;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3;
  box-shadow: none;
  cursor: pointer;
}
.shop-sorting-wrapper .sf-sort-control .orderby:focus {
  outline: none;
  border-color: var(--primary, var(--primary));
  box-shadow: 0 0 0 3px rgba(166,91,42,.12);
}

/* Contact : meme conteneur, memes champs et meme rythme que le checkout. */
.sf-form-card,
.sf-contact-form {
  border: 1px solid #eef0f2;
  border-radius: 14px;
  padding: 24px;
  background: #fff;
}
.sf-contact-form .wpforms-container { margin: 0 !important; }
.sf-contact-form-title {
  margin: 0 0 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid #eef0f2;
  color: #111827;
  font-size: 17px;
  font-weight: 800;
  line-height: 1.3;
}
.sf-contact-form .wpforms-field {
  margin: 0 0 16px;
  padding: 0 !important;
}
.sf-contact-form .wpforms-field-email,
.sf-contact-form .sf-contact-subject,
.sf-contact-form .wpforms-field-email input,
.sf-contact-form .sf-contact-subject input {
  width: 100% !important;
  max-width: none !important;
}
.sf-contact-form .sf-contact-name-field fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.sf-contact-form .sf-contact-group-label {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}
.sf-contact-form .wpforms-field-row {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  width: 100% !important;
  max-width: none !important;
}
.sf-contact-form .wpforms-field-row-block {
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  clear: none !important;
}
.sf-contact-form .wpforms-field-row::before,
.sf-contact-form .wpforms-field-row::after {
  display: none !important;
  content: none !important;
}
.sf-contact-form .wpforms-field-label,
.sf-contact-form .wpforms-field-sublabel {
  display: block;
  margin: 0 0 6px !important;
  color: #374151 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
}
.sf-contact-form input,
.sf-contact-form textarea {
  box-sizing: border-box !important;
  width: 100% !important;
  min-height: 46px;
  margin: 0 !important;
  padding: 0 14px !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 8px !important;
  background: #fff !important;
  color: #374151;
  font-size: 14px !important;
}
.sf-contact-form textarea {
  min-height: 132px !important;
  padding: 12px 14px !important;
}
.sf-contact-form input:focus,
.sf-contact-form textarea:focus {
  outline: none;
  border-color: var(--primary, var(--primary)) !important;
  box-shadow: 0 0 0 3px rgba(166,91,42,.12) !important;
}
.sf-contact-form .wpforms-submit {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-height: 56px !important;
  height: auto !important;
  padding: var(--sf-button-padding-y) 28px !important;
  border: 0 !important;
  border-radius: var(--sf-button-radius) !important;
  background: var(--primary, var(--primary)) !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: var(--sf-button-line-height) !important;
  box-shadow: none !important;
  cursor: pointer;
}
.sf-contact-form .wpforms-submit:hover,
.sf-contact-form .wpforms-submit:focus {
  background: var(--primary-dark) !important;
  color: #fff !important;
}
.sf-contact-form .wpforms-submit-container {
  margin-top: 8px !important;
}
.sf-contact-details { gap: var(--sf-space-3); }
.sf-contact-info-card {
  padding: 24px;
  border: 1px solid #eef0f2;
  border-radius: 14px;
  background: #fff;
}

/* Une seule croix, dans l'entete du tiroir : elle reste au-dessus du panneau
   meme sur l'accueil, ou le bouton du header appartient a un autre contexte. */
body.site-menu-drawer-active .header-main .menu-drawer-toggle.sf-menu-toggle { display: none !important; }
#menu-drawer .site-button.close-button { display: block !important; }
#menu-drawer .sf-menu-drawer-close {
  display: inline-grid;
  width: 40px;
  height: 40px;
  place-items: center;
  padding: 0;
  border: 1px solid var(--sf-line);
  border-radius: 50%;
  background: #fff;
  color: var(--sf-ink);
  cursor: pointer;
}
#menu-drawer .sf-menu-drawer-close > span,
#menu-drawer .sf-menu-drawer-close > span::after {
  display: block;
  width: 16px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  content: "";
  transform: rotate(45deg);
}
#menu-drawer .sf-menu-drawer-close > span::after { transform: rotate(90deg); }
#menu-drawer .sf-menu-drawer-close:focus-visible { outline: 3px solid rgba(166,91,42,.3); outline-offset: 3px; }

/* Menu de tri direct : un seul clic ouvre la liste complete des options. */
.shop-sorting-wrapper .sf-sort-menu {
  position: relative;
  min-width: 230px;
}
.shop-sorting-wrapper .sf-sort-menu > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 46px;
  padding: 0 14px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  color: #374151;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3;
  cursor: pointer;
  list-style: none;
}
.shop-sorting-wrapper .sf-sort-menu > summary::-webkit-details-marker { display: none; }
.shop-sorting-wrapper .sf-sort-menu > summary svg {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  margin-left: var(--sf-space-3);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  transition: transform .16s ease;
}
.shop-sorting-wrapper .sf-sort-menu[open] > summary {
  border-color: var(--primary, var(--primary));
  box-shadow: 0 0 0 3px rgba(166,91,42,.12);
}
.shop-sorting-wrapper .sf-sort-menu[open] > summary svg { transform: rotate(180deg); }
.shop-sorting-wrapper .sf-sort-menu > summary:focus-visible { outline: 3px solid rgba(166,91,42,.3); outline-offset: 3px; }
.shop-sorting-wrapper .sf-sort-options {
  position: absolute;
  z-index: 30;
  top: calc(100% + 6px);
  right: 0;
  left: 0;
  padding: 6px;
  border: 1px solid var(--sf-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(15, 45, 28, .14);
}
.shop-sorting-wrapper .sf-sort-option {
  display: block;
  width: 100%;
  padding: 10px 12px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #374151;
  font: inherit;
  font-size: 13px;
  line-height: 1.35;
  text-align: left;
  cursor: pointer;
}
.shop-sorting-wrapper .sf-sort-option:hover,
.shop-sorting-wrapper .sf-sort-option:focus-visible { background: var(--sf-surface); color: var(--primary, var(--primary)); outline: none; }
.shop-sorting-wrapper .sf-sort-option[aria-current="true"] { color: var(--primary, var(--primary)); font-weight: 700; }

@media (max-width: 767.98px) {
  .woocommerce-tabs > .sf-product-detail-section { display: block !important; }
  .woocommerce-tabs > .sf-product-detail-section + .sf-product-detail-section {
    margin-top: var(--sf-space-4);
    padding-top: var(--sf-space-3);
  }
  .woocommerce-tabs > .sf-product-reviews-permanent {
    margin-top: var(--sf-space-4);
    padding-top: var(--sf-space-3);
  }
  #related-products,
  #recently-viewed,
  .recently-viewed,
  .site-module.recently-viewed { padding-top: var(--sf-space-5); }
  .single-product-wrapper .klb-flexslider-thumbnail .flex-control-thumbs li,
  .single-product-wrapper .flex-control-thumbs > li {
    width: 44px !important;
    height: 44px !important;
    flex-basis: 44px !important;
  }
  .single-product-wrapper .klb-flexslider-thumbnail .flex-control-thumbs li img,
  .single-product-wrapper .flex-control-thumbs > li img {
    width: 44px !important;
    height: 44px !important;
    border-radius: 6px;
  }
  .shop-sorting-wrapper { width: 100%; }
  .before-shop-loop { flex-wrap: wrap; gap: var(--sf-space-2); }
  .before-shop-loop .sf-sort-column { width: 100%; flex: 1 0 100%; order: -1; }
  .before-shop-loop .shop-sorting-wrapper { display: block !important; }
  .shop-sorting-wrapper .sf-sort-control { width: 100%; justify-content: space-between; }
  .shop-sorting-wrapper .sf-sort-control .woocommerce-ordering { min-width: 0; flex: 1 1 auto; }
  .shop-sorting-wrapper .sf-sort-control .orderby { width: 100%; min-height: 44px; font-size: 13px; }
  .shop-sorting-wrapper .sf-sort-menu { min-width: 0; flex: 1 1 auto; }
  .shop-sorting-wrapper .sf-sort-menu > summary { min-height: 44px; font-size: 13px; }
  .shop-sorting-wrapper .sf-sort-options { position: static; margin-top: 6px; box-shadow: none; }
  .sf-contact-form,
  .sf-contact-info-card { padding: var(--sf-space-3); border-radius: 12px; }
  .sf-contact-form-title { margin-bottom: var(--sf-space-3); padding-bottom: var(--sf-space-2); font-size: 16px; }
  .sf-contact-form .wpforms-field-row { grid-template-columns: 1fr; gap: var(--sf-space-3); }
  .sf-contact-form textarea { min-height: 120px !important; }
  /* CTA contact / qui sommes-nous : pleine largeur, texte blanc, hauteur type panier */
  .sf-contact-form .wpforms-submit,
  .sf-about2-contact-block .sf-contact-form .wpforms-submit {
    width: 100% !important;
    min-height: 56px !important;
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 700 !important;
  }
  .sf-about2-contact-block {
    padding: 18px 14px !important;
    border-radius: 14px !important;
  }
  .sf-about2-contact-head h2 { font-size: 24px !important; }
  .sf-about2-contact-head p { font-size: 15px !important; }
  .sf-contact-form input,
  .sf-contact-form textarea {
    font-size: 16px !important; /* anti-zoom iOS */
  }
}

/* ============================================================================
 * ROUND 9 ? composants existants, avec contrats desktop et mobile distincts.
 * ========================================================================== */

/* Une largeur de carte born?e, commune ? la boutique, aux cat?gories, ? l'accueil
   et aux produits associ?s. Les pistes AUTO-FILL restent pr?sentes quand une
   rang?e est incompl?te : l'espace libre demeure ? droite, jamais dans les cartes. */
.sf-product-grid-bounded {
  display: grid !important;
  justify-content: start !important;
  align-items: stretch;
}
.sf-product-grid-bounded > .product {
  min-width: 0;
  width: 100% !important;
}
@media (min-width: 1024px) {
  /* Grille born?e 240 px : accueil / carrousels uniquement ? pas le shop (sinon bandes vides). */
  .sf-home-product-row.sf-product-grid-bounded,
  .products.sf-home-product-row.sf-product-grid-bounded {
    grid-template-columns: repeat(auto-fill, minmax(190px, 240px)) !important;
  }
  .sf-home-product-row.sf-product-grid-bounded > .product,
  .products.sf-home-product-row.sf-product-grid-bounded > .product { max-width: 240px !important; }

  /* Les bentos suivent exactement le conteneur commun des sections, sans marge
     arbitraire ni largeur interne r?tr?cie. */
  .sf-home-promo-bento,
  .sf-home-category-promo-bento {
    width: min(calc(100% - (2 * var(--sf-page-gutter))), 1360px) !important;
    max-width: 1360px !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
    box-sizing: border-box;
  }
  .sf-home-promo-bento > .e-con-inner,
  .sf-home-category-promo-bento > .e-con-inner {
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
    padding: 0 !important;
    box-sizing: border-box;
  }
  .sf-home-category-promo-bento > .e-con-inner {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: var(--sf-space-3) !important;
  }
  .sf-home-category-promo-bento > .e-con-inner > .sf-home-category-promo-card {
    width: auto !important;
    min-width: 0;
    margin: 0 !important;
  }
  .sf-home-promo-bento .sf-home-promo-card { width: 100% !important; margin: 0 !important; }
}
@media (max-width: 430px) {
  .sf-product-grid-bounded {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    justify-content: stretch !important;
  }
  .sf-product-grid-bounded > .product { max-width: none !important; }

  .sf-home-promo-bento,
  .sf-home-category-promo-bento {
    width: calc(100% - (2 * var(--sf-page-gutter))) !important;
    max-width: none !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
    box-sizing: border-box;
  }
  .sf-home-promo-bento > .e-con-inner,
  .sf-home-category-promo-bento > .e-con-inner {
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
    padding: 0 !important;
    box-sizing: border-box;
  }
  .sf-home-category-promo-bento > .e-con-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: var(--sf-space-3) !important;
  }
  .sf-home-promo-bento .sf-home-promo-card { width: 100% !important; margin: 0 !important; }
}

/* Le filtre prix est un bloc complet : aucune zone de d?filement imbriqu?e. */
.widget_price_filter,
.widget_price_filter .price_slider_wrapper,
.widget_price_filter .ui-slider,
.filter-sidebar-body,
.filter-sidebar-body .site-scroll,
.shop-sidebar .site-scroll,
.filter-widgets,
.widget-area .site-scroll {
  overflow: visible !important;
  overflow-y: visible !important;
  max-height: none !important;
  height: auto !important;
}

/* Les CTA principaux r?emploient la base .sf-btn : m?me vert, hauteur, pilule
   et typographie du panier au checkout, des cartes ? l'achat fixe produit. */
.sf-btn-primary,
.sf-btn-dark,
.products .product .add_to_cart_button,
form.cart .single_add_to_cart_button,
form.cart button[name="add-to-cart"] {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 45px !important;
  padding: var(--sf-button-padding-y) var(--sf-button-padding-x) !important;
  border: 0 !important;
  border-radius: var(--sf-button-radius) !important;
  background: var(--primary, var(--primary)) !important;
  color: #fff !important;
  font: inherit;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: var(--sf-button-line-height) !important;
  text-align: center;
}
.sf-btn-primary:hover,
.sf-btn-dark:hover,
.products .product .add_to_cart_button:hover,
form.cart .single_add_to_cart_button:hover,
form.cart button[name="add-to-cart"]:hover { background: var(--primary-dark) !important; color: #fff !important; }
.sf-btn-primary:focus-visible,
.sf-btn-dark:focus-visible,
.products .product .add_to_cart_button:focus-visible,
form.cart .single_add_to_cart_button:focus-visible,
form.cart button[name="add-to-cart"]:focus-visible { outline: 3px solid rgba(166,91,42,.3); outline-offset: 3px; }
.products .product .add_to_cart_button { width: 100%; }
.sf-summary .sf-btn,
.sf-cart-tools .sf-btn,
.sf-commander,
.sf-cart-actions .sf-btn,
.sf-cart-panel .sf-btn,
#sf-cart-page .sf-summary .sf-btn,
#sf-checkout-page .sf-summary .sf-btn,
#sf-checkout-page .sf-commander {
  min-height: 56px !important;
  height: auto !important;
  padding: var(--sf-button-padding-y) var(--sf-button-padding-x) !important;
}
@media (min-width: 1024px) {
  form.cart .single_add_to_cart_button,
  form.cart button[name="add-to-cart"] { min-height: 45px !important; border-radius: var(--sf-button-radius) !important; }
}
@media (max-width: 430px) {
  form.cart.single-ajax .single_add_to_cart_button { min-height: 45px !important; border-radius: var(--sf-button-radius) !important; }
}

/* Les avis ont un aper?u court : les trois premiers restent visibles et le bouton
   reprend le bouton secondaire d?j? employ? par le panier. */
.sf-reviews-toggle { margin-top: var(--sf-space-3); }

/* Mobile panier : une vraie ligne produit compacte, jamais les trois grandes
   lignes Prix / Quantit? / Total. Le total r?p?t? dispara?t, le prix unitaire
   reste ? c?t? du s?lecteur et la suppression reste accessible. */
@media (max-width: 430px) {
  .sf-cart-card { border: 0; border-radius: 0; overflow: visible; }
  .sf-cart-table thead { display: none; }
  .sf-cart-table, .sf-cart-table tbody { display: block; width: 100%; }
  .sf-cart-table tr {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "product remove" "quantity price";
    gap: 8px 12px;
    width: 100%;
    box-sizing: border-box;
    position: relative;
    margin: 0 0 var(--sf-space-2);
    padding: 10px 12px;
    border: 1px solid #eef0f2;
    border-radius: 12px;
    background: #fff;
  }
  .sf-cart-table td { display: block !important; width: auto !important; min-width: 0; padding: 0 !important; border: 0 !important; }
  .sf-cart-table td[data-label]::before { display: none !important; content: none !important; }
  .sf-cart-table td.sf-cell-prod { grid-area: product; padding-right: 8px !important; }
  .sf-cart-table td[data-label="Quantit?"] { grid-area: quantity; align-self: center; }
  .sf-cart-table td[data-label="Prix"] { grid-area: price; align-self: center; justify-self: end; color: #111827; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
  .sf-cart-table td.sf-cell-total { display: none !important; }
  .sf-cart-table td.sf-cell-remove { grid-area: remove; width: auto; align-self: start; justify-self: end; }
  .sf-cell-remove button { display: inline-grid; width: 28px; height: 28px; place-items: center; padding: 0; border-radius: 50%; }
  .sf-cart-prod { gap: 10px; }
  .sf-cart-prod img { width: 54px; height: 54px; border-radius: 8px; }
  .sf-cart-prod a { display: -webkit-box; overflow: hidden; color: #1f2937; font-size: 13px; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .sf-qtybox { min-height: 32px; padding: 1px 4px; }
  .sf-qtybox button { padding: 3px 7px; }
}

/* Le r?capitulatif de livraison du checkout est volontairement plus dense en
   mobile : il garde tous ses messages, mais ne concurrence plus le formulaire. */
@media (max-width: 430px) {
  #sf-checkout-page .sf-ship-banner { padding: 10px 12px; margin-bottom: var(--sf-space-3); }
  #sf-checkout-page .sf-ship-banner-top { gap: 7px; }
  #sf-checkout-page .sf-ship-banner-top p { font-size: 12.5px; line-height: 1.35; }
  #sf-checkout-page .sf-order-bento { padding: var(--sf-space-3); }
  #sf-checkout-page .sf-order-bento .sf-bento-item { grid-template-columns: 40px minmax(0, 1fr) auto; gap: 9px; padding: 8px 0; }
  #sf-checkout-page .sf-order-bento .sf-bento-item .sf-ci-img img { width: 40px; height: 40px; }
  #sf-checkout-page .sf-order-bento .sf-delivery-note { margin-top: 10px; font-size: 12px; line-height: 1.35; }
  #sf-checkout-page .sf-order-bento .sf-secure-note { margin-top: 10px; font-size: 12px; line-height: 1.35; }
}

/* ============================================================================
 * TOUR 10 ? contrats visuels contr?l?s par les captures pleine page.
 * ========================================================================== */

/* Le vrai carrousel promotionnel est distinct du bento de cat?gories. Il prend
   toute la largeur de son conteneur, garde une hauteur utile et son image reste
   au premier plan, plut?t qu'une tuile r?duite ? quelques pixels. */
.sf-home-hero-promo > .e-con-inner,
.sf-home-hero-promo .elementor-widget-container,
.sf-home-hero-promo .site-slider {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
}
.sf-home-hero-promo .site-slider { max-height: none !important; }
.sf-home-hero-promo .site-banner {
  min-height: 360px;
  height: 360px;
}
.sf-home-hero-promo .site-banner .entry-media,
.sf-home-hero-promo .site-banner .entry-media img {
  width: 100%;
  height: 100%;
}
.sf-home-hero-promo .site-banner .entry-media img { display: block; object-fit: cover; }
.sf-home-hero-promo .site-banner .entry-wrapper {
  inset: 0;
  display: flex;
  align-items: center;
}
.sf-home-hero-promo .site-banner .entry-title .sf-hero-em {
  display: inline;
  font-weight: 700;
}
.sf-home-hero-promo .site-banner .entry-footer {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: 14px;
}
.sf-home-hero-promo .site-banner .entry-footer .btn-white {
  background: rgba(255,255,255,.92) !important;
  color: #1a1a1a !important;
  border: 0 !important;
}
@media (max-width: 767.98px) {
  .sf-home-hero-promo .site-banner .entry-footer {
    flex-direction: column;
    align-items: stretch;
  }
  .sf-home-hero-promo .site-banner .entry-footer .btn { width: 100%; justify-content: center; }
}
@media (max-width: 767.98px) {
  .sf-home-hero-promo .elementor-hidden-tablet.elementor-hidden-mobile { display: block !important; }
  /* bento plus haut et plus a?r?, contenu centr? verticalement, textes agrandis */
  /* hero sizes overridden in batch footer */
}

/* Le d?filement appartenait au parent .site-scroll, non au widget test? jusque-l?. */
.filter-sidebar .site-scroll,
.filter-sidebar .theiaStickySidebar,
.filter-sidebar .filter-sidebar-body,
.filter-sidebar .widget_price_filter,
.filter-sidebar .price_slider_wrapper {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  overflow-y: visible !important;
}

/* M?me pilule que le s?lecteur du tiroir panier, fiche produit et barre fixe incluses. */
.sf-ci-qty,
.sf-qtybox,
form.cart .quantity,
form.cart.single-ajax .quantity {
  border-radius: 999px !important;
}

/* Code de r?duction : une action secondaire, int?gr?e au bento du total. */
.sf-cart-summary .sf-discount { margin-top: 14px; }
.sf-discount-control { display: flex; align-items: stretch; width: 100%; }
.sf-discount-control .sf-discount-input {
  min-width: 0;
  width: 100%;
  border-radius: 8px 0 0 8px;
}
.sf-discount-apply {
  display: inline-grid;
  width: 44px;
  min-width: 44px;
  height: 46px;
  place-items: center;
  padding: 0;
  border: 1px solid #e5e7eb;
  border-left: 0;
  border-radius: 0 8px 8px 0;
  background: #fff !important;
  color: #4b5563 !important;
  font-size: 19px;
  line-height: 1;
  cursor: pointer;
}
.sf-discount-apply:hover { background: #f3f4f6 !important; color: #17211b !important; }
.sf-discount-apply:focus-visible { outline: 3px solid rgba(166,91,42,.3); outline-offset: 2px; }
.sf-cart-reassurance { margin-top: 14px; }
.sf-cart-reassurance .sf-secure-note { margin-top: 8px; }
.sf-cart-reassurance + .sf-btn { margin-top: 16px; }

/* Les pictogrammes remplacent les emojis ; ils suivent la couleur sans changer la ligne. */
.sf-inline-icon,
.sf-content-icon {
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-right: .35em;
  vertical-align: -.125em;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.sf-free-ok .sf-inline-icon { fill: currentColor; stroke: currentColor; stroke-width: 1.2; }

/* ROUND 11 ? une seule piste promo du miroir, visible et navigable ? toutes
   les largeurs. Les cartes statiques de secours ne sont plus rendues. */
.sf-home-hero-promo .site-slider .slick-list { overflow: hidden !important; }
.sf-home-hero-promo .site-slider .slick-track { display: flex !important; }
.sf-home-hero-promo .site-slider .slick-slide { height: auto; }
.sf-home-hero-promo .site-slider .slick-slide > div,
.sf-home-hero-promo .site-slider .slider-item { height: 100%; }

/* Point 2 : les associ?s r?emploient la grille produit born?e du catalogue. */
@media (min-width: 1024px) {
  #related-products .products.sf-product-grid-bounded {
    grid-template-columns: repeat(auto-fill, minmax(190px, 240px)) !important;
    justify-content: start !important;
  }
  #related-products .products.sf-product-grid-bounded > .product { max-width: 240px !important; }
}
@media (max-width: 430px) {
  #related-products .products.sf-product-grid-bounded { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  #related-products .products.sf-product-grid-bounded > .product { max-width: none !important; }
}

/* Point 3 : le filtre est une colonne fluide, jamais un panneau d?filant. */
.filter-sidebar .site-scroll,
.filter-sidebar .filter-sidebar-body,
.filter-sidebar .widget_price_filter { display: flow-root !important; padding-bottom: 2px !important; }

/* Point 4 : les trois zones du haut suivent les m?mes rep?res que logo, centre
   et panier. La r?gle mobile reste volontairement compacte. */
@media (min-width: 1024px) {
  .global-notification .container { width: 100% !important; max-width: none !important; padding-inline: 40px !important; }
  .global-notification .global-notification-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    min-height: 40px;
    padding-block: 0 !important;
  }
  .global-notification .global-notification-inner > p { justify-self: start; margin: 0; text-align: left !important; }
  .global-notification .notification-countdown { justify-self: center; }
  .global-notification .global-notification-inner > .sf-topbar-support { justify-self: end; font-weight: 600; }
  .header-topbar .header-inner { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; min-height: 40px; }
  .sf-topbar-guarantee { display: inline-flex; align-items: center; justify-self: start; color: inherit; }
  .sf-topbar-guarantee strong { margin-left: 4px; color: var(--primary, var(--primary)); }
  .sf-topbar-utility { justify-self: end; min-width: 0; }
}

/* Point 5 : note/?toiles et lien explicite pointent sur la m?me section Avis. */
#sf-product-reviews,
#reviews,
.woocommerce-Reviews,
.sf-product-faq-bottom { scroll-margin-top: 120px; }
@media (max-width: 1023.98px) {
  #sf-product-reviews,
  #reviews,
  .woocommerce-Reviews,
  .sf-product-faq-bottom { scroll-margin-top: 150px; }
}
.product-detail-inner .woocommerce-product-rating { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.sf-rating-anchor { display: inline-flex; align-items: center; gap: 7px; color: inherit; text-decoration: none; }
.sf-rating-anchor:hover .star-rating,
.sf-rating-anchor:focus-visible .star-rating { filter: brightness(.82); }
.sf-rating-anchor:focus-visible,
.sf-review-jump:focus-visible { outline: 3px solid rgba(166,91,42,.3); outline-offset: 3px; border-radius: 3px; }
.sf-review-jump { color: var(--primary, var(--primary)); font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* Point 7 : avis issus de reviews.json, en d?filement horizontal contr?lable. */
.sf-checkout-reviews { margin-top: var(--sf-space-3); padding: var(--sf-space-3); border: 1px solid #E8DDD3; border-radius: 12px; background: #fff; }
.sf-checkout-reviews-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sf-space-2); margin-bottom: var(--sf-space-2); }
.sf-checkout-reviews h3 { margin: 0; color: var(--sf-ink); font-size: 15px; }
.sf-checkout-reviews-head p { margin: 3px 0 0; color: var(--sf-muted); font-size: 12px; line-height: 1.35; }
.sf-checkout-review-controls { display: inline-flex; gap: 6px; }
.sf-checkout-review-controls button { display: inline-grid; width: 30px; height: 30px; place-items: center; padding: 0; border: 1px solid var(--primary-line); border-radius: 50%; background: #fff; color: var(--primary, var(--primary)); cursor: pointer; }
.sf-checkout-review-controls button:hover { background: #F7EFE6; }
.sf-checkout-review-controls button:focus-visible { outline: 3px solid rgba(166,91,42,.3); outline-offset: 2px; }
.sf-checkout-review-track { display: flex; gap: var(--sf-space-2); overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x mandatory; scrollbar-width: none; }
.sf-checkout-review-track::-webkit-scrollbar { display: none; }
.sf-checkout-review-card { flex: 0 0 100%; min-width: 0; min-height: 112px; padding: 12px; border: 1px solid var(--sf-line); border-radius: 9px; background: #fff; scroll-snap-align: start; }
.sf-checkout-review-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--sf-ink); font-size: 13px; }
.sf-checkout-review-stars { color: #9a6700; font-weight: 700; white-space: nowrap; }
.sf-checkout-review-card p { margin: 8px 0 0; color: var(--sf-muted); font-size: 12.5px; line-height: 1.45; }
.sf-checkout-layout > *,
.sf-checkout-review-track { min-width: 0; }

/* Une section dans la fiche est un item du flex parent : elle reprend toute la
   ligne avant d'appliquer la grille produit commune. */
#related-products { flex: 0 0 100%; width: 100% !important; }

@media (max-width: 430px) {
  .global-notification .global-notification-inner { justify-content: center !important; gap: 2px 12px; }
  .global-notification .sf-topbar-support { display: none !important; }
  .sf-rating-anchor { gap: 5px; }
  .sf-review-jump { flex-basis: auto; }
  .sf-checkout-reviews { padding: 12px; }
  .sf-checkout-review-card { min-height: 104px; }
}

/* ============================================================================
 * ROUND 12 ? contrats issus des captures plein ?cran.
 * ========================================================================== */

/* FILTRE PRIX ? la cause racine n'?tait pas le widget mais `.site-scroll` : le
   th?me lui redonnait `overflow:auto`, `height:100%` et une goutti?re de 10 px
   via `.scrollbar-active`. Toute la cha?ne est donc un flux sans zone scrollable.
   Le slider lui-m?me garde une vraie hauteur : `height:auto` l'?crasait ? 0 px
   alors que ses poign?es restaient dessin?es, ce qui cr?ait le faux d?bordement. */
.filter-sidebar,
.filter-sidebar .theiaStickySidebar,
.filter-sidebar .site-scroll,
.filter-sidebar .filter-sidebar-body,
.filter-sidebar .widget_price_filter,
.filter-sidebar .widget_price_filter form,
.filter-sidebar .price_slider_wrapper {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  overflow-y: visible !important;
}
.filter-sidebar { align-self: flex-start !important; }
.filter-sidebar .site-scroll.scrollbar-active { padding-right: 0 !important; }
.filter-sidebar .price_slider,
.filter-sidebar .ui-slider {
  height: 8px !important;
  min-height: 8px !important;
  max-height: none !important;
  overflow: visible !important;
  overflow-y: visible !important;
}

/* D?clencheur filtre : visible sous desktop, panneau off-canvas jusqu?? 992 px (th?me Grogin). */
@media (min-width: 992px) {
  .sf-mobile-filter-toggle { display: none !important; }
}

@media (max-width: 991.98px) {
  .shop-sorting-wrapper {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    width: 100%;
    padding-bottom: 18px;
    margin-bottom: 6px;
  }
  .shop-sorting-wrapper .sf-mobile-filter-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    min-height: 48px;
    padding: 10px 14px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #fff;
    color: #374151;
    font: inherit;
    font-size: 15px;
    font-weight: 600;
    box-shadow: 0 1px 2px rgba(23, 33, 27, .07);
    cursor: pointer;
  }
  .shop-sorting-wrapper .sf-mobile-filter-toggle:hover {
    border-color: #c2c8cb;
  }
  .shop-sorting-wrapper .sf-mobile-filter-toggle svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-width: 2;
    color: #9199a0;
  }
  .shop-sorting-wrapper .sf-sort-control {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .shop-sorting-wrapper .sf-sort-control > span {
    flex: 0 0 auto;
    font-size: 14px;
  }
  .shop-sorting-wrapper .sf-sort-menu {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    max-width: none;
  }
  .shop-sorting-wrapper .sf-sort-menu > summary {
    width: 100%;
    min-height: 48px;
    padding: 0 14px;
    font-size: 15px;
    box-sizing: border-box;
  }
  .shop-sorting-wrapper .sf-sort-menu > summary > span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .shop-sorting-wrapper .sf-sort-options {
    position: absolute;
    left: 0;
    right: 0;
    z-index: 40;
  }

  body.sf-mobile-filters-open,
  body.filtered-sidebar-active { overflow: hidden; }
  body.sf-mobile-filters-open #main.main-content,
  body.filtered-sidebar-active #main.main-content { z-index: auto !important; }

  #sidebar.filter-sidebar.sf-category-filter-panel {
    position: fixed !important;
    top: 0;
    left: 0;
    width: min(100%, 22rem) !important;
    height: 100% !important;
    max-height: none !important;
    padding: 0 18px 24px;
    background: #fff;
    z-index: 1000 !important;
    transform: translateX(-105%) !important;
    transition: transform .28s ease, box-shadow .28s ease;
    overflow: auto !important;
    -webkit-overflow-scrolling: touch;
  }
  body.sf-mobile-filters-open #sidebar.filter-sidebar.sf-category-filter-panel,
  body.filtered-sidebar-active #sidebar.filter-sidebar.sf-category-filter-panel {
    transform: translateX(0) !important;
    box-shadow: 10px 0 34px rgba(23, 33, 27, .22);
  }
  body.sf-mobile-filters-open .mobile-overlay,
  body.filtered-sidebar-active .mobile-overlay {
    z-index: 999 !important;
    opacity: 0.6 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
  body:not(.sf-mobile-filters-open):not(.filtered-sidebar-active) .mobile-overlay {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    z-index: 3 !important;
  }
  #sidebar.filter-sidebar.sf-category-filter-panel .filter-sidebar-header {
    display: flex !important;
    margin-inline: -18px;
    padding-inline: 18px;
  }
  #sidebar.filter-sidebar.sf-category-filter-panel .filter-sidebar-header .entry-title { font-size: 16px; }
  #sidebar.filter-sidebar.sf-category-filter-panel .filter-sidebar-body,
  #sidebar.filter-sidebar.sf-category-filter-panel .site-scroll {
    width: 100%;
    height: auto !important;
    max-height: none !important;
    padding-right: 0 !important;
    overflow: visible !important;
  }
}

@media (max-width: 575.98px) {
  #sidebar.filter-sidebar.sf-category-filter-panel { width: 100% !important; }
}

@media (min-width: 1024px) {
  .site-header .custom-button-holder .products > .product { min-width: 0; }
  .site-header .custom-button-holder .products .product .product-inner,
  .site-header .custom-button-holder .products .product .content-wrapper { min-width: 0; }
  .site-header .custom-button-holder .products .product .product-cart {
    position: static !important;
    width: 100%;
    margin-top: auto !important;
    padding-top: 16px !important;
  }
  .site-header .custom-button-holder .products .product .add_to_cart_button {
    position: relative !important;
    display: inline-flex !important;
    width: 100% !important;
    min-height: 45px !important;
    padding: var(--sf-button-padding-y) var(--sf-button-padding-x) !important;
    border-radius: var(--sf-button-radius) !important;
    font-size: 14px !important;
    line-height: var(--sf-button-line-height) !important;
  }
  .site-header .custom-button-holder .products .product .added_to_cart { display: none !important; }
  .sf-cart-panel .klb-cart-free-shipping > p {
    margin: 0;
    font-size: 15px !important;
    font-weight: 600;
    line-height: 1.45;
  }
}

/* Avis checkout : section autonome sur toute la largeur de la zone commande,
   jamais imbriqu?e dans le bento de paiement. */
#sf-checkout-page > .sf-checkout-reviews {
  display: grid;
  grid-template-columns: minmax(180px, 210px) minmax(0, 1fr);
  gap: 24px;
  width: 100%;
  margin-top: 26px;
  padding: 22px 0 2px;
  border: 0;
  border-top: 1px solid #e6ece7;
  border-radius: 0;
  background: transparent;
}
#sf-checkout-page .sf-checkout-reviews-summary { align-self: center; }
#sf-checkout-page .sf-checkout-reviews-eyebrow {
  margin: 0 0 5px;
  color: var(--sf-muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
#sf-checkout-page .sf-checkout-reviews h2 {
  margin: 0;
  color: var(--sf-ink);
  font-size: 17px;
  line-height: 1.2;
}
#sf-checkout-page .sf-checkout-reviews-score {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin: 10px 0 3px;
  color: var(--sf-ink);
}
#sf-checkout-page .sf-checkout-reviews-score strong {
  font-size: 30px;
  font-weight: 800;
  letter-spacing: -.04em;
  line-height: .95;
}
#sf-checkout-page .sf-checkout-reviews-score span { color: var(--sf-muted); font-size: 14px; font-weight: 600; }
#sf-checkout-page .sf-checkout-reviews-count { margin: 9px 0 0; color: var(--sf-muted); font-size: 14px; }
#sf-checkout-page .sf-checkout-review-track {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  min-width: 0;
  overflow: visible;
  scroll-snap-type: none;
}
#sf-checkout-page .sf-checkout-review-card {
  min-width: 0;
  min-height: 0;
  padding: 17px;
  border: 1px solid var(--sf-line);
  border-radius: 12px;
  background: #fff;
}
#sf-checkout-page .sf-checkout-review-meta { display: flex; align-items: center; gap: 10px; color: var(--sf-ink); }
#sf-checkout-page .sf-checkout-review-avatar {
  display: inline-grid;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 50%;
  background: #e1f0e4;
  color: var(--primary, var(--primary));
  font-size: 12px;
  font-weight: 800;
}
#sf-checkout-page .sf-checkout-review-author { display: grid; min-width: 0; gap: 2px; }
#sf-checkout-page .sf-checkout-review-author strong { font-size: 14px; }
#sf-checkout-page .sf-checkout-review-author time { color: var(--sf-muted); font-size: 12px; line-height: 1.25; }
#sf-checkout-page .sf-checkout-review-verified {
  margin-left: auto;
  padding: 4px 7px;
  border-radius: 999px;
  background: #e7f4e9;
  color: #17663a;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
}
#sf-checkout-page .sf-checkout-review-stars {
  display: inline-flex;
  gap: 2px;
  margin-top: 14px;
  color: #d69200;
}
#sf-checkout-page .sf-checkout-review-stars svg { width: 16px; height: 16px; fill: currentColor; stroke: currentColor; stroke-width: 1.2; }
#sf-checkout-page .sf-checkout-review-card p { margin: 10px 0 0; color: var(--sf-muted); font-size: 13px; line-height: 1.5; }
@media (min-width: 1024px) {
  #sf-checkout-page .sf-checkout-review-track { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* BENTO PROMO mobile : la carte fixe de 220 px centrait un contenu de 265 px,
   d'o? les prix rogn?s et les espaces erratiques. La carte suit d?sormais son
   contenu et les deux prix ont un vrai gap plut?t qu'une marge fragile. */
@media (max-width: 430px) {
  .sf-home-hero-promo {
    display: block !important;
    margin-block: var(--sf-space-3) !important;
  }
  .sf-home-hero-promo .site-banner .banner-price { margin-top: 0; }
  .sf-home-hero-promo .site-banner .banner-price .price {
    display: inline-flex !important;
    align-items: baseline;
    gap: 10px !important;
  }
  .sf-home-hero-promo .site-banner .banner-price .price del { margin-left: 0 !important; }

  .sf-home-hero-promo + .sf-home-category-band,
  .sf-home-hero-shell + .sf-home-category-band {
    margin-top: 28px !important;
  }
  .sf-home-category-band + .sf-home-finserie {
    margin-top: 32px !important;
  }
  .sf-home-category-grid { margin-bottom: var(--sf-space-3) !important; }
  .sf-home-category-grid .site-module,
  .sf-home-category-grid .site-module-body { overflow: visible !important; }
  /* 2 colonnes (pas 3) : ?vite les tuiles trop ?troites / texte lettre ? lettre */
  .sf-home-category-grid .site-slider {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: var(--sf-space-2) !important;
    max-height: none !important;
    overflow: visible !important;
  }
  .sf-home-category-grid .site-slider::after,
  .sf-home-category-grid .site-slider > .slick-nav { display: none !important; }
  .sf-home-category-grid .site-slider > .slider-item {
    display: block !important;
    width: auto !important;
    min-width: 0;
    opacity: 1 !important;
    visibility: visible !important;
  }

  /* Grille principale cat?gorie : m?me contrat deux colonnes que les articles
     r?cemment consult?s, sans ?tirer une carte isol?e. */
  #primary .shop-products-wrapper .products.sf-product-grid-bounded {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    justify-content: stretch !important;
  }
  #primary .shop-products-wrapper .products.sf-product-grid-bounded > .product { max-width: none !important; min-width: 0; }

  .sf-mobile-filter-toggle:focus-visible,
  .sf-mobile-filter-close:focus-visible { outline: 3px solid rgba(166,91,42,.32); outline-offset: 3px; }
  .sf-cart-panel .klb-cart-free-shipping > p { font-size: 13px !important; line-height: 1.4; }

  #sf-checkout-page > .sf-checkout-reviews {
    display: block;
    margin-top: 24px;
    padding: 20px;
    border: 1px solid var(--sf-line, var(--sf-line));
    border-radius: 14px;
    background: #fff;
  }
  #sf-checkout-page .sf-checkout-reviews-score strong { font-size: 48px; }
  #sf-checkout-page .sf-checkout-review-track { grid-template-columns: minmax(0, 1fr); margin-top: 20px; }
  #sf-checkout-page .sf-checkout-review-card { padding: 16px; }
  #sf-checkout-page .sf-checkout-review-verified { font-size: 10px; }
}

/* ============================================================================
 * ROND 14 ? /decouvrir/ compose uniquement les primitives storefront existantes.
 * ========================================================================== */
body.sf-ptype-discover .sf-discover-hero { margin: 0 !important; }
body.sf-ptype-discover .sf-discover-hero .entry-title,
body.sf-ptype-discover .sf-discover-feature-banner .entry-title { color: #fff !important; }
body.sf-ptype-discover .sf-discover-hero-secondary {
  border: 1px solid #fff !important;
  background: transparent !important;
  color: #fff !important;
}
body.sf-ptype-discover .sf-discover-hero-secondary:hover { background: rgba(255, 255, 255, .12) !important; }
body.sf-ptype-discover .sf-discover-hero-badges {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sf-space-1);
  width: 100%;
  margin-top: var(--sf-space-3);
}
body.sf-ptype-discover .sf-discover-hero-badges .banner-badge { padding: 6px 10px; font-size: 11px; }

body.sf-ptype-discover .sf-discover-reassurance {
  margin: 0;
  padding: var(--sf-space-3) 0;
  border: 0;
  background: var(--primary, var(--primary));
}
body.sf-ptype-discover .sf-discover-reassurance .sf-reassure-ic,
body.sf-ptype-discover .sf-discover-reassurance .sf-reassure-title,
body.sf-ptype-discover .sf-discover-reassurance .sf-reassure-text { color: #fff; }
body.sf-ptype-discover .sf-discover-reassurance .sf-reassure-title { margin-bottom: 2px; }
body.sf-ptype-discover .sf-discover-reassurance .sf-reassure-text { opacity: .84; }

body.sf-ptype-discover .sf-discover-stats { margin: 0; border: 0; background: var(--sf-surface); }
body.sf-ptype-discover .sf-discover-stats .site-iconbox-detail { width: 100%; }
body.sf-ptype-discover .sf-discover-stats .entry-title { color: var(--primary, var(--primary)); }

body.sf-ptype-discover .sf-discover-brands > .site-module-header,
body.sf-ptype-discover .sf-discover-univers > .site-module-header { margin-bottom: var(--sf-space-3); }
body.sf-ptype-discover .sf-discover-univers > .e-con-inner > * { width: auto !important; min-width: 0; }
body.sf-ptype-discover .sf-discover-univers .site-banner,
body.sf-ptype-discover .sf-discover-univers .site-banner .entry-media,
body.sf-ptype-discover .sf-discover-univers .site-banner .entry-media img { height: 100% !important; }
body.sf-ptype-discover .sf-discover-univers .site-banner .entry-media img { object-fit: cover; }

body.sf-ptype-discover .sf-discover-split .sf-about-intro { align-items: center; }
body.sf-ptype-discover .sf-discover-split .sf-discover-split-media { min-height: 340px; height: 100%; margin: 0; max-width: 100%; overflow: hidden; }
body.sf-ptype-discover .sf-discover-split .sf-discover-split-media .entry-media,
body.sf-ptype-discover .sf-discover-split .sf-discover-split-media .entry-media img { height: 100% !important; max-width: 100% !important; width: 100% !important; }
body.sf-ptype-discover .sf-discover-split .sf-discover-split-media .entry-media img { object-fit: cover; display: block; }
body.sf-ptype-discover .sf-discover-services .site-module-header {
  grid-column: 1 / -1;
  margin-bottom: var(--sf-space-3);
}

/* Les cartes d?avis de d?couverte reprennent exactement la variante v?rifi?e du
   checkout, sans changer son rendu ni ses donn?es. */
body.sf-ptype-discover .sf-discover-reviews {
  display: grid;
  grid-template-columns: minmax(180px, 210px) minmax(0, 1fr);
  gap: var(--sf-space-4);
  width: min(calc(100% - (2 * var(--sf-page-gutter))), 1360px);
  margin: var(--sf-space-6) auto 0;
  padding: var(--sf-space-4) 0 2px;
  border: 0;
  border-top: 1px solid var(--sf-line);
  border-radius: 0;
  background: transparent;
}
body.sf-ptype-discover .sf-discover-reviews .sf-checkout-reviews-summary { align-self: center; }
body.sf-ptype-discover .sf-discover-reviews .sf-checkout-reviews-eyebrow {
  margin: 0 0 5px;
  color: var(--sf-muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
body.sf-ptype-discover .sf-discover-reviews h2 { margin: 0; color: var(--sf-ink); font-size: 17px; line-height: 1.2; }
body.sf-ptype-discover .sf-discover-reviews .sf-checkout-reviews-score {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin: 10px 0 3px;
  color: var(--sf-ink);
}
body.sf-ptype-discover .sf-discover-reviews .sf-checkout-reviews-score strong {
  font-size: 30px;
  font-weight: 800;
  letter-spacing: -.04em;
  line-height: .95;
}
body.sf-ptype-discover .sf-discover-reviews .sf-checkout-reviews-score span,
body.sf-ptype-discover .sf-discover-reviews .sf-checkout-reviews-count { color: var(--sf-muted); font-size: 14px; font-weight: 600; }
body.sf-ptype-discover .sf-discover-reviews .sf-checkout-reviews-count { margin: 9px 0 0; font-weight: 400; }
body.sf-ptype-discover .sf-discover-reviews .sf-checkout-review-track {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--sf-space-3);
  min-width: 0;
  overflow: visible;
  scroll-snap-type: none;
}
body.sf-ptype-discover .sf-discover-reviews .sf-checkout-review-card {
  min-width: 0;
  min-height: 0;
  padding: 17px;
  border: 1px solid var(--sf-line);
  border-radius: var(--sf-radius);
  background: #fff;
}
body.sf-ptype-discover .sf-discover-reviews .sf-checkout-review-meta { display: flex; align-items: center; gap: 10px; color: var(--sf-ink); }
body.sf-ptype-discover .sf-discover-reviews .sf-checkout-review-avatar {
  display: inline-grid;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 50%;
  background: #e1f0e4;
  color: var(--primary, var(--primary));
  font-size: 12px;
  font-weight: 800;
}
body.sf-ptype-discover .sf-discover-reviews .sf-checkout-review-author { display: grid; min-width: 0; gap: 2px; }
body.sf-ptype-discover .sf-discover-reviews .sf-checkout-review-author strong { font-size: 14px; }
body.sf-ptype-discover .sf-discover-reviews .sf-checkout-review-author time { color: var(--sf-muted); font-size: 12px; line-height: 1.25; }
body.sf-ptype-discover .sf-discover-reviews .sf-checkout-review-verified {
  margin-left: auto;
  padding: 4px 7px;
  border-radius: 999px;
  background: #e7f4e9;
  color: #17663a;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
}
body.sf-ptype-discover .sf-discover-reviews .sf-checkout-review-stars {
  display: inline-flex;
  gap: 2px;
  margin-top: 14px;
  color: #d69200;
}
body.sf-ptype-discover .sf-discover-reviews .sf-checkout-review-stars svg { width: 16px; height: 16px; fill: currentColor; stroke: currentColor; stroke-width: 1.2; }
body.sf-ptype-discover .sf-discover-reviews .sf-checkout-review-card p { margin: 10px 0 0; color: var(--sf-muted); font-size: 13px; line-height: 1.5; }

@media (min-width: 1024px) {
  body.sf-ptype-discover .sf-discover-univers > .e-con-inner {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, minmax(0, 170px));
    gap: var(--sf-space-3) !important;
  }
  body.sf-ptype-discover .sf-discover-univers > .e-con-inner > .sf-discover-univers-featured { grid-column: span 2; grid-row: span 2; }
  body.sf-ptype-discover .sf-discover-reviews .sf-checkout-review-track { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 430px) {
  body.sf-ptype-discover .sf-discover-hero .site-banner .entry-inner { max-width: none !important; }
  body.sf-ptype-discover .sf-discover-hero .entry-footer { display: grid !important; grid-template-columns: minmax(0, 1fr); align-items: stretch !important; }
  body.sf-ptype-discover .sf-discover-hero .entry-footer > .btn { justify-content: center; }
  body.sf-ptype-discover .sf-discover-hero-badges { display: grid; grid-template-columns: minmax(0, 1fr); }
  body.sf-ptype-discover .sf-discover-hero-badges .banner-badge { justify-content: flex-start; }

  body.sf-ptype-discover .sf-discover-reassurance .sf-reassure-grid,
  body.sf-ptype-discover .sf-discover-stats .sf-reassure-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sf-space-2); }
  body.sf-ptype-discover .sf-discover-reassurance .sf-reassure-item { gap: var(--sf-space-1); }
  body.sf-ptype-discover .sf-discover-reassurance .sf-reassure-ic,
  body.sf-ptype-discover .sf-discover-reassurance .sf-reassure-ic svg { width: 28px; height: 28px; }
  body.sf-ptype-discover .sf-discover-reassurance .sf-reassure-title { font-size: 12px; line-height: 1.25; }
  body.sf-ptype-discover .sf-discover-reassurance .sf-reassure-text { display: none; }
  body.sf-ptype-discover .sf-discover-stats { padding: var(--sf-space-3) 0; }
  body.sf-ptype-discover .sf-discover-stats .entry-title { font-size: 23px; }
  body.sf-ptype-discover .sf-discover-stats .text-13 { font-size: 11px; line-height: 1.25; }

  body.sf-ptype-discover .sf-discover-univers > .e-con-inner { grid-template-columns: minmax(0, 1fr) !important; grid-template-rows: none; }
  body.sf-ptype-discover .sf-discover-univers > .e-con-inner > .sf-discover-univers-featured { grid-column: auto; grid-row: auto; }
  body.sf-ptype-discover .sf-discover-univers .site-banner { height: var(--banner-mobile-height, 220px) !important; }

  body.sf-ptype-discover .sf-discover-split .sf-about-intro { gap: var(--sf-space-4); margin: var(--sf-space-5) 0; }
  body.sf-ptype-discover .sf-discover-split .sf-discover-split-media { min-height: 220px; }
  body.sf-ptype-discover .sf-discover-services .sf-reassure-grid { grid-template-columns: 1fr; }
  body.sf-ptype-discover .sf-discover-reviews { display: block; width: calc(100% - (2 * var(--sf-page-gutter))); margin-top: var(--sf-space-5); padding: var(--sf-space-4) 0 0; }
  body.sf-ptype-discover .sf-discover-reviews .sf-checkout-reviews-score strong { font-size: 48px; }
  body.sf-ptype-discover .sf-discover-reviews .sf-checkout-review-track { grid-template-columns: minmax(0, 1fr); margin-top: var(--sf-space-4); }
  body.sf-ptype-discover .sf-discover-reviews .sf-checkout-review-card { padding: var(--sf-space-3); }
  body.sf-ptype-discover .sf-discover-reviews .sf-checkout-review-verified { font-size: 10px; }
}

/* ============================================================================
 * ROND 15 ? fiche produit : achat, preuves de confiance et onglets enrichis.
 * ========================================================================== */
.single-product-wrapper .product-detail-inner > .product-meta {
  margin: 0 0 var(--sf-space-2);
}
.single-product-wrapper .product-detail-inner > .product-meta:empty { display: none; }
.single-product-wrapper .product-detail-inner .woocommerce-product-rating { margin: 0; }
.single-product-wrapper .product-detail-inner .product_title { margin-top: 0; }

.sf-product-short-description {
  margin: var(--sf-space-2) 0 0;
  color: var(--sf-muted);
  font-size: var(--sf-body-sm);
  line-height: 1.5;
}
.sf-product-short-description ul,
.sf-product-short-description ol {
  display: grid;
  gap: 5px;
  margin: 0;
  padding: 0 !important;
  list-style: none !important;
}
.sf-product-short-description li {
  display: block !important;
  margin: 0 !important;
  text-transform: none !important;
}
.sf-product-short-description li i { margin-right: 5px !important; color: var(--primary, var(--primary)); font-size: .95em !important; }
.sf-product-short-description strong { color: var(--sf-ink); font-weight: 600; }

.product-detail-inner .sf-product-reassurance {
  display: block !important;
  margin: var(--sf-space-3) 0;
  padding: var(--sf-space-3) 0;
  border-top: 1px solid var(--sf-line);
  border-bottom: 1px solid var(--sf-line);
}
.product-detail-inner .sf-product-reassurance ul {
  display: grid !important;
  gap: 8px;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.product-detail-inner .sf-product-reassurance li {
  display: flex !important;
  align-items: center;
  gap: 9px;
  margin: 0 !important;
  padding: 0 !important;
}
.product-detail-inner .sf-product-reassurance .notice-icon {
  /* le th?me force 42px + margin-right 19px : on neutralise pour recoller
     l'ic?ne au texte (alignement identique aux lignes courtes au-dessus) */
  display: inline-grid !important;
  flex: 0 0 22px !important;
  width: 22px !important;
  height: 22px !important;
  margin: 0 !important;
  padding: 0 !important;
  place-items: center;
  color: var(--primary, var(--primary));
}
.product-detail-inner .sf-product-reassurance .notice-icon svg { width: 19px; height: 19px; }
.product-detail-inner .sf-product-reassurance .notice-detail p {
  margin: 0;
  color: var(--sf-ink);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.3;
}

.product-detail-inner .product-price { display: flex; align-items: center; flex-direction: row !important; flex-wrap: wrap; gap: 10px; }
/* prix + badge promo sur UNE seule ligne (le <p> du th?me prenait 100 % et
   rejetait le badge en dessous) */
.product-detail-inner .product-price p.price,
.product-detail-inner .product-price .price { display: inline-flex; align-items: baseline; flex-wrap: wrap; gap: 8px; width: auto; margin: 0; }
/* bouton principal ?tendu : il occupe toute la largeur restante ? c?t? du
   s?lecteur de quantit? */
.product-detail-inner form.cart button.single_add_to_cart_button,
.product-detail-inner form.cart button[name="add-to-cart"] { flex: 1 1 auto !important; justify-content: center; }
/* preuve sociale : ? 5,0/5 (17 avis) ? sans encadr? du th?me */
.product-detail-inner .woocommerce-product-rating .rating-count { display: inline-flex; align-items: baseline; gap: 5px; margin: 0; padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; }
.product-detail-inner .woocommerce-product-rating .rating-count .rating { margin: 0; padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; color: var(--sf-ink, #111827); font-size: 13px; font-weight: 800; line-height: 1.2; }
.product-detail-inner .woocommerce-product-rating .rating-count .count-text { color: var(--sf-muted, #58645d); font-size: 13px; }
.sf-product-price-discount {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 4px 9px;
  border-radius: 999px;
  background: #fdeceb;
  color: #e02b27;
  font-size: 13.5px;
  font-weight: 800;
  line-height: 1;
}
.sf-price-request-wrapper { margin: var(--sf-space-3) 0 0; }
.sf-price-request { margin: 0; color: var(--sf-ink); font-size: 25px; font-weight: 800; line-height: 1.15; }
.sf-price-request-note { margin: 5px 0 0; color: var(--sf-muted); font-size: 13px; line-height: 1.45; }

.sf-product-purchase-extras { display: grid; gap: 28px; margin-top: 20px; min-width: 0; }

/* colonne d'achat un peu plus ?troite : la galerie photo respire davantage
   (le wrapper a un gap de 40px : chaque colonne en absorbe la moiti?) */
@media (min-width: 1024px) {
  .single-product-wrapper > .column.vertical { flex: 0 0 calc(61.5% - 20px); max-width: calc(61.5% - 20px); }
  .single-product-wrapper > .column.product-detail { flex: 0 0 calc(38.5% - 20px); max-width: calc(38.5% - 20px); }
}

/* encart de raret? sous le bouton (une seule mention, gris, agrandi) ?
   fr?re du formulaire, donc jamais dans la barre d'achat fixe mobile */
.product-detail-inner .sf-stock-hot {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 12px 0 0;
  padding: 13px 16px;
  border: 1px solid #ececec;
  border-radius: 12px;
  background: #f5f5f5;
}
.product-detail-inner .sf-stock-hot .sf-stock-hot-ic { display: inline-flex; flex: 0 0 auto; color: #e8792b; }
.product-detail-inner .sf-stock-hot .sf-stock-hot-ic svg { width: 23px; height: 23px; }
.product-detail-inner .sf-stock-hot .sf-stock-hot-copy { display: grid; gap: 2px; min-width: 0; }
.product-detail-inner .sf-stock-hot strong { color: #4b5563; font-size: 14.5px; font-weight: 700; line-height: 1.2; }
.product-detail-inner .sf-stock-hot small { color: #e02b27; font-size: 13.5px; font-weight: 700; line-height: 1.2; }

/* Onglet livraison produit : image plus grande, layout plat (plus de bento) */
.sf-shipping-split {
  display: grid !important;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) !important;
  gap: 28px 36px !important;
  align-items: start !important;
}
.sf-shipping-media {
  display: block !important;
  margin: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #f3f4f6;
  min-height: 420px;
}
.sf-shipping-media img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  min-height: 420px !important;
  max-height: none !important;
  object-fit: cover !important;
}
.sf-shipping-split .sf-product-tab-copy {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 22px !important;
}
.sf-shipping-split .sf-product-tab-copy section {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.sf-shipping-split h3 { margin: 0 0 10px; font-size: 20px !important; font-weight: 800; color: var(--sf-ink); }
.sf-shipping-split p { margin: 0 0 10px; color: var(--sf-muted); font-size: 15.5px !important; line-height: 1.65 !important; }
.sf-shipping-points { gap: 10px; margin: 8px 0 0; padding: 0 0 0 18px; font-size: 15px !important; line-height: 1.65 !important; }
@media (max-width: 767.98px) {
  .sf-shipping-split { grid-template-columns: 1fr !important; gap: 18px !important; }
  .sf-shipping-media { min-height: 220px; }
  .sf-shipping-media img { min-height: 220px !important; max-height: 280px !important; }
}
.sf-product-payment-row {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 0 var(--sf-space-2);
  border-bottom: 1px solid var(--sf-line);
}
/* logos de paiement : plus petits, sans contour, r?partis sur la largeur */
.sf-product-payment-row { border-bottom: 0; padding-bottom: 4px; }
.sf-product-payment-row .sf-product-payment-badges { display: flex; width: 100%; gap: 8px; }
.sf-product-payment-row .sf-pay { flex: 1 1 0; height: 26px; padding: 2px 6px; border: 0; border-radius: 6px; box-shadow: none; background: transparent; }
.sf-product-payment-row .sf-pay img { height: 17px; max-width: 42px; }

/* --- Fiche produit : espacements & tailles (prix, avis, bouton) --- */
/* prix plus a?r? (au-dessus et en dessous) */
.product-detail-inner .product-price-wrapper { margin: 12px 0 16px; }
/* logos de paiement rapproch?s de la ligne d'achat */
.sf-product-purchase-extras { margin-top: 12px; }
/* preuve sociale au-dessus du titre : ?toiles + texte l?g?rement agrandis */
.product-detail-inner .woocommerce-product-rating { margin-bottom: 8px; }
.product-detail-inner .woocommerce-product-rating .star-rating { font-size: 16px; }
.product-detail-inner .woocommerce-product-rating .rating-count .rating { font-size: 15px; }
.product-detail-inner .woocommerce-product-rating .rating-count .count-text { font-size: 14px; }
.product-detail-inner .woocommerce-product-rating a { font-size: 14px; }
/* bouton d'achat un peu plus g?n?reux sur desktop */
@media (min-width: 1024px) {
  .product-detail-inner form.cart button[name="add-to-cart"],
  .product-detail-inner form.cart .single_add_to_cart_button { min-height: 52px !important; }
}

.sf-product-trust-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--sf-space-2);
  padding: 4px 0;
}
.sf-product-trust-item { display: flex; min-width: 0; align-items: flex-start; gap: 9px; }
.sf-product-trust-item > svg { flex: 0 0 22px; width: 22px; height: 22px; color: var(--primary, var(--primary)); }
.sf-product-trust-item > div { display: grid; min-width: 0; gap: 3px; }
.sf-product-trust-item strong { color: var(--sf-ink); font-size: 12px; font-weight: 600; line-height: 1.2; text-transform: uppercase; letter-spacing: .01em; }
.sf-product-trust-item span { color: var(--sf-muted); font-size: 12px; line-height: 1.3; }

.sf-product-value-bento {
  display: grid;
  overflow: hidden;
  border: 1px solid #d5dde3 !important;
  border-radius: var(--sf-radius);
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}
.sf-product-value-row {
  display: grid;
  grid-template-columns: 27px minmax(0, 1fr) minmax(84px, auto);
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 16px 16px;
}
.sf-product-value-row + .sf-product-value-row { border-top: 1px solid var(--sf-line); }
.sf-product-value-row > svg { width: 21px; height: 21px; color: var(--primary, var(--primary)); }
.sf-product-value-row > span { display: grid; min-width: 0; gap: 3px; }
.sf-product-value-row strong { color: var(--sf-ink); font-size: 13.5px; font-weight: 600; line-height: 1.3; }
.sf-product-value-row small { color: var(--sf-muted); font-size: 12.5px; line-height: 1.35; }
.sf-product-value-row b { color: var(--primary, var(--primary)); font-size: 12px; font-weight: 700; line-height: 1.25; text-align: right; }

.sf-product-seller-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sf-space-2);
  padding: 16px 18px;
  border: 1px solid #d5dde3 !important;
  border-radius: var(--sf-radius);
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}
.sf-product-seller-vendor { display: flex; min-width: 0; flex-direction: column; gap: 8px; }
.sf-product-seller-label { margin: 0; color: var(--sf-ink); font-size: 12.5px; font-weight: 600; line-height: 1.25; }
.sf-product-seller-brand-row { display: flex; align-items: center; gap: 10px; }
.sf-product-seller-brand-row img { display: block; height: 42px; width: auto; max-width: 150px; object-fit: contain; object-position: left center; }
.sf-product-seller-check { width: 18px; height: 18px; flex-shrink: 0; color: var(--primary, var(--primary)); }
p.sf-product-seller-line { display: none !important; }
.sf-product-seller-line, .sf-product-seller-divider,
.sf-product-seller-divider { width: 1px; height: 52px; flex-shrink: 0; margin: 0 18px 0 auto; background: var(--sf-line, var(--sf-line)); }
.sf-product-seller-rating { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; color: var(--sf-muted); font-size: 11.5px; line-height: 1.15; text-align: right; white-space: nowrap; }
.sf-product-seller-rating > strong { color: var(--sf-ink); font-size: 13.5px; font-weight: 600; }
.sf-product-seller-stars { display: inline-flex; gap: 1px; color: #d69200; }
.sf-product-seller-star { width: 15px; height: 15px; fill: currentColor; stroke: currentColor; stroke-width: 1.2; }

/* Ligne de confiance au-dessus du prix ? seul ? Prix TTC ? est en gras. */
.product-detail-inner .sf-buy-trustline { margin: 4px 0 0; color: #444; font-size: 13.5px; font-weight: 400; line-height: 1.5; }
.product-detail-inner .sf-buy-trustline strong { color: var(--sf-ink, #111827); font-weight: 700; }
/* Doublon CSV (.confiance-magasin) + template (.sf-buy-trustline) : on garde le template. */
.sf-product-short-description .confiance-magasin { display: none !important; }
/* Doublon chap? CSV (.prix-mise-en-avant) + buybox prix : on garde le bloc prix. */
.sf-product-short-description .prix-mise-en-avant { display: none !important; }
/* Pastilles galerie sans image : ne pas dessiner un carr? blanc. */
.single-product-wrapper .flex-control-thumbs > li:empty,
.single-product-wrapper .klb-flexslider-thumbnail .flex-control-thumbs li:empty { display: none !important; }

.woocommerce-tabs .wc-tabs { display: flex; flex-wrap: wrap; gap: 0; border-bottom: 1px solid var(--sf-line); }
.woocommerce-tabs .wc-tabs li { margin: 0 !important; list-style: none; }
.woocommerce-tabs .wc-tabs li a { display: block; padding: 0 0 12px; margin-right: 26px; color: var(--sf-ink) !important; font-size: 16px !important; font-weight: 700 !important; line-height: 1.25; text-transform: none; }
.woocommerce-tabs .wc-tabs li.active a { color: var(--primary, var(--primary)) !important; box-shadow: inset 0 -2px 0 var(--primary, var(--primary)); }
.sf-product-tab-copy { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sf-space-3); }
.sf-product-tab-copy section { padding: var(--sf-space-3); border: 1px solid var(--sf-line); border-radius: var(--sf-radius); background: #fff; }
.sf-shipping-split .sf-product-tab-copy section { padding: 0; border: 0; border-radius: 0; background: transparent; }
.sf-product-tab-copy h3 { margin: 0 0 6px; color: var(--sf-ink); font-size: 14px; line-height: 1.3; }
.sf-product-tab-copy p { margin: 0; color: var(--sf-muted); font-size: 14px; line-height: 1.55; }
.sf-product-faq { display: grid; gap: 8px; }
.sf-product-faq-item { overflow: hidden; border: 1px solid var(--sf-line); border-radius: var(--sf-radius); background: #fff; }
.sf-product-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: var(--sf-space-3); min-height: 50px; padding: 12px 14px; color: var(--sf-ink); font-size: 14px; font-weight: 700; line-height: 1.35; cursor: pointer; list-style: none; }
.sf-product-faq-item summary::-webkit-details-marker { display: none; }
.sf-product-faq-item summary::after { content: "+"; flex: 0 0 auto; color: var(--primary, var(--primary)); font-size: 20px; font-weight: 400; }
.sf-product-faq-item[open] summary { background: var(--sf-surface); }
.sf-product-faq-item[open] summary::after { content: "−"; }
.sf-product-faq-bottom { scroll-margin-top: 88px; padding: 28px 0 8px; border-top: 1px solid var(--sf-line); }
.sf-product-faq-bottom h2 { margin: 0 0 8px; font-size: 22px !important; font-weight: 800; color: var(--sf-ink); }
.sf-product-faq-lead { margin: 0 0 16px; color: var(--sf-muted); font-size: 15px; line-height: 1.55; max-width: 62ch; }
.woocommerce-tabs > .sf-product-faq-bottom { display: block !important; }
.sf-product-faq-item summary:focus-visible { outline: 3px solid rgba(166,91,42,.3); outline-offset: -3px; }
.sf-product-faq-item > div { padding: 0 14px 14px; }
.sf-product-faq-item p { margin: 0; color: var(--sf-muted); font-size: 14px; line-height: 1.55; }
.sf-product-faq-item a { color: var(--primary, var(--primary)); font-weight: 700; }

@media (max-width: 767.98px) {
  .single-product-wrapper .product-detail-inner > .product-meta { margin-bottom: 10px; }
  .sf-product-short-description { margin-top: 10px; }
  .product-detail-inner .sf-product-reassurance { margin: var(--sf-space-2) 0; padding: var(--sf-space-2) 0; }
  .sf-product-purchase-extras { gap: 26px; margin-top: var(--sf-space-3); }
  /* espace entre la ligne ? Prix TTC ? ? ? et le prix */
  .product-detail-inner .sf-buy-trustline { margin: 6px 0 10px; font-size: 13px; }
  .sf-product-trust-strip { gap: 10px; padding: 14px 10px; }
  .sf-product-trust-item { gap: 8px; }
  .sf-product-trust-item > svg { flex-basis: 20px; width: 20px; height: 20px; }
  .sf-product-trust-item strong { font-size: 11px; }
  .sf-product-trust-item span { font-size: 11px; }
  .sf-product-value-row { grid-template-columns: 24px minmax(0, 1fr) minmax(72px, auto); gap: 10px; padding: 14px 12px; }
  .sf-product-value-row > svg { width: 19px; height: 19px; }
  .sf-product-value-row strong { font-size: 12.5px; }
  .sf-product-value-row small { font-size: 11.5px; }
  .sf-product-value-row b { font-size: 11px; }
  .sf-product-seller-card { padding: 14px; }
  .sf-product-seller-label { font-size: 11px; }
  .sf-product-seller-brand-row img { height: 30px; }
  .sf-product-seller-line, .sf-product-seller-divider { height: 40px; margin: 0 10px 0 auto; }
  .sf-product-tab-copy { grid-template-columns: 1fr; gap: var(--sf-space-2); }
  .sf-product-tab-copy section { padding: var(--sf-space-3); }
}

@media (max-width: 430px) {
  .sf-product-payment-row .sf-product-payment-badges { gap: 4px; }
  .sf-product-payment-row .sf-pay { height: 23px; padding: 3px 4px; }
  .sf-product-payment-row .sf-pay img { height: 15px; max-width: 31px; }
  .sf-product-seller-brand-row img { height: 26px; }
  .sf-product-seller-label { font-size: 10.5px; }
}

/* ============================================================================
 * ROND 15 ? checkout : r?capitulatif de confiance et ?tapes de commande.
 * ========================================================================== */
#sf-checkout-page .sf-checkout-side {
  display: grid;
  gap: var(--sf-space-3);
  min-width: 0;
  position: sticky;
  top: 24px;
}
#sf-checkout-page .sf-checkout-side .sf-summary { position: static; top: auto; }
#sf-checkout-page .sf-checkout-security-card,
#sf-checkout-page .sf-checkout-useful {
  border: 1px solid var(--primary-line);
  border-radius: var(--sf-radius);
  background: #fff;
  box-shadow: 0 8px 24px rgba(23, 33, 27, .04);
}
#sf-checkout-page .sf-checkout-security-card { padding: 18px; }
#sf-checkout-page .sf-checkout-security-card > header,
#sf-checkout-page .sf-checkout-useful > header {
  display: flex;
  align-items: center;
  gap: 11px;
}
#sf-checkout-page .sf-checkout-security-shield,
#sf-checkout-page .sf-checkout-useful > header > span {
  display: inline-grid;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 50%;
  background: var(--primary-tint);
  color: var(--primary, var(--primary));
}
#sf-checkout-page .sf-checkout-security-shield svg,
#sf-checkout-page .sf-checkout-useful > header > span svg { width: 20px; height: 20px; }
#sf-checkout-page .sf-checkout-security-card h3,
#sf-checkout-page .sf-checkout-useful h2 { margin: 0; color: var(--sf-ink); font-size: 16px; line-height: 1.2; }
#sf-checkout-page .sf-checkout-security-card > header p { display: flex; align-items: center; gap: 6px; margin: 4px 0 0; color: var(--sf-muted); font-size: 12px; line-height: 1.2; }
#sf-checkout-page .sf-checkout-security-card > header p strong { color: var(--sf-ink); font-weight: 700; }
#sf-checkout-page .sf-checkout-security-stars { display: inline-flex; gap: 1px; color: #d69200; }
#sf-checkout-page .sf-checkout-security-stars svg { width: 12px; height: 12px; fill: currentColor; stroke: currentColor; stroke-width: 1.2; }
#sf-checkout-page .sf-checkout-security-rows { display: grid; gap: 0; margin-top: 15px; border-top: 1px solid var(--sf-line); }
#sf-checkout-page .sf-checkout-security-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 11px 0;
}
#sf-checkout-page .sf-checkout-security-row + .sf-checkout-security-row { border-top: 1px solid var(--sf-line); }
#sf-checkout-page .sf-checkout-security-row > svg { flex: 0 0 19px; width: 19px; height: 19px; margin-top: 1px; color: var(--primary, var(--primary)); }
#sf-checkout-page .sf-checkout-security-row > div { display: grid; gap: 2px; min-width: 0; }
#sf-checkout-page .sf-checkout-security-row strong { color: var(--sf-ink); font-size: 13px; line-height: 1.25; }
#sf-checkout-page .sf-checkout-security-row span { color: var(--sf-muted); font-size: 12px; line-height: 1.35; }
#sf-checkout-page .sf-checkout-security-pill {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 5px 0 0;
  padding: 9px 10px;
  border-radius: 8px;
  background: var(--primary-tint);
  color: var(--primary-dark);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.3;
}
#sf-checkout-page .sf-checkout-security-pill svg { flex: 0 0 15px; width: 15px; height: 15px; }

#sf-checkout-page .sf-form-section h3 {
  display: flex;
  align-items: center;
  gap: 9px;
}
#sf-checkout-page .sf-step-number {
  display: inline-grid;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 50%;
  background: var(--primary, var(--primary));
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
}

#sf-checkout-page .sf-checkout-useful {
  width: min(100%, 660px);
  margin-top: var(--sf-space-4);
  padding: 18px;
}
#sf-checkout-page .sf-checkout-useful > header { align-items: flex-start; }
#sf-checkout-page .sf-checkout-useful > header p { margin: 4px 0 0; color: var(--sf-muted); font-size: 12px; line-height: 1.4; }
#sf-checkout-page .sf-checkout-useful-rows { display: grid; gap: 0; margin-top: 14px; border-top: 1px solid var(--sf-line); }
#sf-checkout-page .sf-checkout-useful-row { display: flex; align-items: flex-start; gap: 10px; padding: 11px 0; }
#sf-checkout-page .sf-checkout-useful-row + .sf-checkout-useful-row { border-top: 1px solid var(--sf-line); }
#sf-checkout-page .sf-checkout-useful-row > svg { flex: 0 0 19px; width: 19px; height: 19px; margin-top: 1px; color: var(--primary, var(--primary)); }
#sf-checkout-page .sf-checkout-useful-row > div { min-width: 0; }
#sf-checkout-page .sf-checkout-useful-row strong { display: block; color: var(--sf-ink); font-size: 13px; line-height: 1.25; }
#sf-checkout-page .sf-checkout-useful-row p { margin: 2px 0 0; color: var(--sf-muted); font-size: 12px; line-height: 1.35; }
#sf-checkout-page .sf-checkout-useful-row a { color: var(--primary, var(--primary)); font-weight: 700; }

@media (max-width: 900px) {
  /* mobile : le formulaire d'abord, puis le r?capitulatif (Commander), puis
     les cartes de r?assurance ? jamais le r?cap avant le formulaire */
  #sf-checkout-page .sf-checkout-side { position: static; order: 0; gap: var(--sf-space-4); }
  /* libell?s de champs un peu plus grands (lisibilit?) */
  #sf-checkout-page .sf-field label { font-size: 14.5px; }
  /* espace naturel ? plus ? apr?s le bouton Commander, avant la carte suivante */
  #sf-checkout-page .sf-checkout-security-card { margin-top: 8px; padding: 20px 18px; }
  /* a?ration interne de ? Achat s?curis? ? : lignes plus espac?es */
  #sf-checkout-page .sf-checkout-security-rows { margin-top: 16px; }
  #sf-checkout-page .sf-checkout-security-row { gap: 12px; padding: 14px 0; }
  #sf-checkout-page .sf-checkout-security-row strong { font-size: 14px; line-height: 1.35; }
  #sf-checkout-page .sf-checkout-security-row span { font-size: 12.5px; line-height: 1.5; }
  #sf-checkout-page .sf-checkout-security-card > header p { font-size: 13px; }
}
@media (max-width: 430px) {
  #sf-checkout-page .sf-checkout-security-card,
  #sf-checkout-page .sf-checkout-useful { padding: 18px 16px; }
  #sf-checkout-page .sf-checkout-security-card h3,
  #sf-checkout-page .sf-checkout-useful h2 { font-size: 15.5px; }
  #sf-checkout-page .sf-checkout-security-row { gap: 11px; padding: 13px 0; }
  #sf-checkout-page .sf-checkout-security-row strong,
  #sf-checkout-page .sf-checkout-useful-row strong { font-size: 13.5px; }
  #sf-checkout-page .sf-checkout-security-row span,
  #sf-checkout-page .sf-checkout-useful-row p { font-size: 12px; }
  #sf-checkout-page .sf-checkout-security-pill { padding: 8px; font-size: 10px; }
  #sf-checkout-page .sf-checkout-useful { margin-top: var(--sf-space-3); }
}

/* ============================================================================
 * ROND 16 ? /decouvrir/ : contraste et modules ?ditoriaux autonomes.
 * Ces r?gles restent strictement limit?es ? la page D?couvrir.
 * ========================================================================== */
body.sf-ptype-discover .sf-discover-hero .entry-title,
body.sf-ptype-discover .sf-discover-hero .entry-subtitle,
body.sf-ptype-discover .sf-discover-hero .entry-content,
body.sf-ptype-discover .sf-discover-hero .entry-content p {
  color: var(--sf-ink) !important;
  text-shadow: none !important;
}
body.sf-ptype-discover .sf-discover-hero-secondary {
  border-color: var(--sf-ink) !important;
  background: rgba(255, 255, 255, .72) !important;
  color: var(--sf-ink) !important;
}
body.sf-ptype-discover .sf-discover-hero-secondary:hover {
  background: #fff !important;
  color: var(--sf-ink) !important;
}
body.sf-ptype-discover .sf-discover-hero-badges .banner-badge {
  border: 1px solid #c9decf;
  background: rgba(255, 255, 255, .9) !important;
  color: var(--sf-ink) !important;
  box-shadow: none;
}

body.sf-ptype-discover .sf-discover-univers {
  width: min(calc(100% - (2 * var(--sf-page-gutter))), 1360px) !important;
  margin: var(--sf-space-6) auto 0 !important;
  padding: 0 !important;
}
body.sf-ptype-discover .sf-discover-univers-header { margin-bottom: var(--sf-space-3); }
body.sf-ptype-discover .sf-discover-univers-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--sf-space-3);
}
body.sf-ptype-discover .sf-discover-universe-card {
  position: relative;
  display: block;
  min-width: 0;
  aspect-ratio: 1.34 / 1;
  overflow: hidden;
  border: 1px solid var(--sf-line);
  border-radius: var(--sf-radius);
  background: #eff7f0;
  isolation: isolate;
}
body.sf-ptype-discover .sf-discover-universe-card img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.sf-ptype-discover .sf-discover-universe-card:focus-visible {
  outline: 3px solid rgba(166,91,42,.38);
  outline-offset: 3px;
}
body.sf-ptype-discover .sf-discover-universe-label {
  position: absolute;
  right: 12px;
  bottom: 12px;
  left: 12px;
  z-index: 1;
  display: block;
  width: fit-content;
  max-width: calc(100% - 24px);
  padding: 7px 10px;
  border-radius: 7px;
  background: rgba(255, 255, 255, .96);
  color: var(--sf-ink);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.25;
  box-shadow: 0 3px 12px rgba(23, 33, 27, .12);
}

body.sf-ptype-discover .sf-discover-feature-banner {
  margin: var(--sf-space-6) 0 0;
  padding: 0;
}
body.sf-ptype-discover .sf-discover-feature-card {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  align-items: center;
  min-height: 340px;
  overflow: hidden;
  border: 1px solid #d6e7d9;
  border-radius: var(--sf-radius);
  background: #eef7f0;
}
body.sf-ptype-discover .sf-discover-feature-copy {
  display: grid;
  justify-items: start;
  gap: var(--sf-space-2);
  padding: clamp(24px, 4vw, 52px);
}
body.sf-ptype-discover .sf-discover-feature-copy .sf-eyebrow {
  margin: 0;
  color: var(--primary, var(--primary));
}
body.sf-ptype-discover .sf-discover-feature-copy h2 {
  max-width: 560px;
  margin: 0;
  color: var(--sf-ink);
  font-size: clamp(26px, 3vw, 42px);
  line-height: 1.08;
}
body.sf-ptype-discover .sf-discover-feature-description {
  max-width: 470px;
  margin: 0 0 var(--sf-space-1);
  color: var(--sf-muted);
  font-size: 15px;
  line-height: 1.5;
}
body.sf-ptype-discover .sf-discover-feature-media {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 340px;
  padding: 18px;
}
body.sf-ptype-discover .sf-discover-feature-media img {
  display: block;
  width: 100%;
  max-width: 620px;
  max-height: 304px;
  object-fit: contain;
}

@media (min-width: 1024px) {
  body.sf-ptype-discover .sf-discover-univers-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  body.sf-ptype-discover .sf-discover-products .product .product-cart .button {
    width: auto !important;
    min-width: 164px;
    padding-inline: 14px !important;
    white-space: nowrap !important;
  }
}

@media (prefers-reduced-motion: no-preference) {
  body.sf-ptype-discover .sf-discover-universe-card img { transition: transform .2s ease; }
  body.sf-ptype-discover .sf-discover-universe-card:hover img { transform: scale(1.035); }
}

@media (max-width: 767.98px) {
  body.sf-ptype-discover .sf-discover-univers { margin-top: var(--sf-space-5) !important; }
  body.sf-ptype-discover .sf-discover-univers-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  body.sf-ptype-discover .sf-discover-universe-card { aspect-ratio: 1.18 / 1; }
  body.sf-ptype-discover .sf-discover-universe-label {
    right: 8px;
    bottom: 8px;
    left: 8px;
    max-width: calc(100% - 16px);
    padding: 6px 8px;
    font-size: 12px;
  }

  body.sf-ptype-discover .sf-discover-feature-banner { margin-top: var(--sf-space-5); }
  body.sf-ptype-discover .sf-discover-feature-card {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
  }
  body.sf-ptype-discover .sf-discover-feature-copy { padding: 26px 24px 20px; }
  body.sf-ptype-discover .sf-discover-feature-copy h2 { font-size: 28px; }
  body.sf-ptype-discover .sf-discover-feature-media {
    min-height: 220px;
    height: 220px;
    padding: 12px 24px 20px;
  }
  body.sf-ptype-discover .sf-discover-feature-media img { max-height: 188px; }
}

/* --- Page de confirmation de commande --------------------------------- */
.sf-order-meta { display: flex; flex-wrap: wrap; justify-content: center; margin: 24px auto 0; max-width: 900px; padding: 18px 10px; border: 1px solid var(--sf-line, var(--sf-line)); border-radius: 12px; background: #fff; text-align: left; }
.sf-order-meta > div { display: grid; gap: 4px; min-width: 150px; padding: 4px 22px; border-left: 1px solid var(--sf-line, var(--sf-line)); }
.sf-order-meta > div:first-child { border-left: 0; }
.sf-order-meta span { color: var(--sf-muted, #58645d); font-size: 11px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.sf-order-meta strong { color: var(--sf-ink, #111827); font-size: 14px; font-weight: 600; }
.sf-order-recap { position: static !important; top: auto !important; max-width: 560px; margin: 22px auto 0; text-align: left; }
.sf-order-recap h3 { margin: 0 0 6px; }
.sf-order-line { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; padding: 10px 0; border-bottom: 1px solid var(--sf-line, var(--sf-line)); color: var(--sf-ink, #111827); font-size: 13.5px; }
.sf-order-line b { color: var(--sf-muted, #58645d); font-weight: 600; }
.sf-order-line strong { font-weight: 600; white-space: nowrap; }
.sf-order-sub { margin-top: 4px; }
.sf-order-total { border-bottom: 0; font-size: 15px; }
.sf-order-total strong { color: var(--primary, var(--primary)); font-weight: 800; }
.sf-order-demo { margin-top: 16px; color: var(--sf-muted, #58645d); font-size: 12px; }
.sf-ok-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 20px; }
@media (max-width: 767.98px) {
  .sf-order-meta > div { flex: 1 1 100%; padding: 10px 8px; border-left: 0; border-top: 1px solid var(--sf-line, var(--sf-line)); }
  .sf-order-meta > div:first-child { border-top: 0; }
}

/* ============================================================================
 * ROND 18 ? responsive mobile : h?ro home pleine largeur, boutons cartes,
 * vignettes cat?gories. Aucun effet au-dessus de 767.98 px (PC intact).
 * ========================================================================== */
@media (max-width: 767.98px) {
  /* h?ro home legacy carousel : bento centr?. L??ditorial a ses propres marges. */
  .elementor-3074 .elementor-element-a17a6a5:not(.sf-home-hero-editorial) { margin: 14px 0 !important; padding: 0 !important; }
  .elementor-3074 .elementor-element-a17a6a5:not(.sf-home-hero-editorial) > .e-con-inner { padding: 10px 0 !important; max-width: none !important; width: 100% !important; }
  .elementor-3074 .elementor-element-a17a6a5.sf-home-hero-editorial {
    width: calc(100% - 32px) !important;
    max-width: calc(100% - 32px) !important;
    margin: 18px auto 28px !important;
    padding: 0 !important;
  }
  .elementor-3074 .elementor-element-a17a6a5.sf-home-hero-editorial > .e-con-inner {
    padding: 0 !important;
    max-width: none !important;
    width: 100% !important;
  }
  .sf-home-hero-promo-card .banner-price .price { font-size: 24px; }
  .sf-home-hero-promo-card .banner-price .price-description { font-size: 12px !important; opacity: .65; }

  /* cartes catalogue : ? Ajouter au panier ? sur une seule ligne, interligne serr? */
  .products .product .button.add_to_cart_button,
  .button.add_to_cart_button { font-size: 12px !important; line-height: 1.2 !important; white-space: nowrap !important; padding: 11px 10px !important; }

  /* vignettes cat?gories : libell? lisible sous l'image, sans chevauchement */
  .store-category-box .category-detail .entry-title a { display: block; font-size: 12px; line-height: 1.25; overflow-wrap: break-word; }
  /* l?ger contour sur les vignettes cat?gories cliquables (mobile) */
  .sf-home-category-grid .store-category-box.style-1,
  .sf-home-category-band .store-category-box.style-1 {
    padding: 12px 8px 10px;
    border: 1px solid #e4ebe4;
    border-radius: 12px;
    background: #fff;
    transition: border-color .15s ease, box-shadow .15s ease;
  }
  .sf-home-category-grid .store-category-box.style-1:active {
    border-color: var(--primary, var(--primary));
    box-shadow: 0 4px 14px rgba(166,91,42,.08);
  }
}

/* ============================================================================
 * ROND 20 ? Accueil : FAQ pleine largeur, bande de b?n?fices, avis clients.
 * (carte ? Informations pratiques ? retir?e : trop marketing / pas align?e.)
 * ========================================================================== */
/* bande de b?n?fices sous la FAQ */
.sf-home-benefits { padding: 0 18px; margin: 40px auto 0; max-width: 1290px; }
.sf-home-benefits-inner {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
  padding: 26px;
  border: 1px solid var(--sf-line, var(--sf-line));
  border-radius: 16px;
  background: var(--sf-surface, #f6f8f6);
}
.sf-home-benefit { display: flex; align-items: flex-start; gap: 12px; min-width: 0; }
.sf-home-benefit-ic { display: inline-grid; flex: 0 0 44px; width: 44px; height: 44px; place-items: center; border-radius: 12px; background: var(--primary-tint); color: var(--primary, var(--primary)); }
.sf-home-benefit-ic svg { width: 22px; height: 22px; }
.sf-home-benefit strong { display: block; color: var(--sf-ink, #111827); font-size: 14.5px; font-weight: 700; line-height: 1.25; }
.sf-home-benefit p { margin: 4px 0 0; color: var(--sf-muted, #58645d); font-size: 12.5px; line-height: 1.4; }

/* section avis clients sur l'accueil (m?mes cartes que le checkout, mise en page d?di?e) */
.sf-home-reviews { display: grid; grid-template-columns: minmax(190px, 220px) minmax(0, 1fr); gap: 28px; width: auto; margin: 40px auto 8px; max-width: 1290px; padding: 26px 18px; border: 0; border-top: 1px solid #E8DDD3; border-radius: 0; background: transparent; }
.sf-home-reviews .sf-checkout-reviews-summary { align-self: center; }
.sf-home-reviews .sf-checkout-reviews-eyebrow { margin: 0 0 6px; color: var(--sf-muted, #6B7280); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.sf-home-reviews .sf-checkout-reviews-summary h2 { margin: 0; color: var(--sf-ink, #111827); font-size: 22px; font-weight: 800; }
.sf-home-reviews .sf-checkout-reviews-score { display: flex; align-items: baseline; gap: 6px; margin: 8px 0 4px; }
.sf-home-reviews .sf-checkout-reviews-score strong { color: var(--sf-ink, #111827); font-size: 44px; font-weight: 800; line-height: 1; }
.sf-home-reviews .sf-checkout-reviews-score span { color: var(--sf-muted, #58645d); font-size: 14px; }
.sf-home-reviews .sf-checkout-review-stars { display: inline-flex; gap: 2px; color: #d69200; }
.sf-home-reviews .sf-checkout-review-stars svg { width: 17px; height: 17px; }
.sf-home-reviews .sf-checkout-reviews-count { margin: 6px 0 0; color: var(--sf-muted, #58645d); font-size: 13px; }
.sf-home-reviews .sf-checkout-review-track { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.sf-home-reviews .sf-checkout-review-card { min-width: 0; padding: 16px; border: 1px solid var(--sf-line); border-radius: 12px; background: #fff; }
.sf-home-reviews .sf-checkout-review-meta { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.sf-home-reviews .sf-checkout-review-avatar { display: inline-grid; flex: 0 0 36px; width: 36px; height: 36px; place-items: center; border-radius: 50%; background: var(--primary-tint); color: var(--primary, var(--primary)); font-size: 12px; font-weight: 800; }
.sf-home-reviews .sf-checkout-review-author { display: grid; gap: 1px; min-width: 0; }
.sf-home-reviews .sf-checkout-review-author strong { color: var(--sf-ink, #111827); font-size: 13.5px; }
.sf-home-reviews .sf-checkout-review-author time { color: var(--sf-muted, #58645d); font-size: 11.5px; }
.sf-home-reviews .sf-checkout-review-verified { margin-left: auto; padding: 3px 8px; border-radius: 999px; background: var(--primary-tint); color: var(--primary-dark); font-size: 10.5px; font-weight: 700; white-space: nowrap; }
.sf-home-reviews .sf-checkout-review-card > p:not(.sf-review-order-date) { margin: 8px 0 0; color: var(--sf-ink, #111827); font-size: 13px; line-height: 1.55; }
.sf-home-reviews .sf-review-order-date {
  margin: 10px 0 0;
  color: #9aa3ad;
  font-size: 11px;
  line-height: 1.35;
  font-weight: 500;
}
.sf-home-reviews .sf-review-order-date time { color: inherit; font-style: normal; }

@media (max-width: 991.98px) {
  .sf-home-reviews { grid-template-columns: 1fr; gap: 18px; }
  .sf-home-reviews .sf-checkout-review-track { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
  .sf-home-benefits-inner { grid-template-columns: 1fr 1fr; gap: 16px; padding: 18px; }
  .sf-home-benefits { margin-top: 30px; }
  .sf-home-reviews { margin-top: 30px; padding: 20px 16px; }
}
@media (max-width: 480px) {
  .sf-home-benefits-inner { grid-template-columns: 1fr; }
}

/* ============================================================================
 * ROND 21 ? Barre d'achat fixe mobile d?di?e (.sf-buybar) : n'appara?t que
 * lorsque le bouton ? Ajouter au panier ? en flux quitte l'?cran.
 * ========================================================================== */
.sf-buybar {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 1200;
  display: none;
  align-items: center;
  gap: 12px;
  padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
  background: #fff;
  border-top: 1px solid var(--sf-line, var(--sf-line));
  box-shadow: 0 -6px 20px rgba(17, 24, 39, .08);
}
.sf-buybar.is-visible { display: flex; }
.sf-buybar-info { display: grid; gap: 1px; min-width: 0; flex: 0 0 auto; }
.sf-buybar-info .sf-buybar-label { color: var(--sf-muted, #58645d); font-size: 11px; line-height: 1.1; }
.sf-buybar-info .sf-buybar-price { color: var(--sf-ink, #111827); font-size: 17px; font-weight: 800; line-height: 1.1; }
.sf-buybar-btn {
  flex: 1 1 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 50px;
  padding: 0 16px;
  border: 0;
  border-radius: 999px;
  background: var(--primary, var(--primary));
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
}
.sf-buybar-btn:active { background: var(--primary-dark); }
.sf-buybar-btn svg { width: 18px; height: 18px; }
/* la barre fixe n'existe que sur petit ?cran */
@media (min-width: 1024px) { .sf-buybar { display: none !important; } }
/* de l'air en bas de page pour ne pas masquer le contenu derri?re la barre */
@media (max-width: 1023.98px) {
  body.sf-buybar-active { padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px)); }
  .sf-ship-opt { min-height: 44px; align-items: center; padding: 8px 0; }
  .site-drawer .site-drawer-inner, .site-drawer-inner {
    padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  }
  button.menu-toggle, .toggle-button, [aria-label="Ouvrir le menu"], [aria-label="Fermer le menu"] {
    min-width: 44px; min-height: 44px;
  }
  .products .product a.product-thumbnail { aspect-ratio: 1 / 1; overflow: hidden; }
  .products .product a.product-thumbnail img { width: 100%; height: 100%; object-fit: cover; }
}

/* ============================================================================
 * ROND 19 ? pages de contenu : on retire l'aspect ? template / docs ? (encadr?s
 * verts en admonition, pastilles trop marqu?es) pour rester sur le vocabulaire
 * visuel du reste du site : bo?tes sobres (surface + filet fin, comme la carte
 * "Coordonn?es" du Contact et les cartes "? propos"), liens verts, et de vraies
 * ic?nes coh?rentes avec la barre de r?assurance.
 * ========================================================================== */

/* --- Encadr?s : bo?te neutre, plate, sans teinte verte ni barre d'accent --- */
.sf-doc .sf-callout {
  position: relative;
  gap: 0;
  background: var(--sf-surface);
  border: 1px solid var(--sf-line);
  border-left: 1px solid var(--sf-line);
  border-radius: 10px;
  color: var(--sf-muted);
}
.sf-doc .sf-callout p { color: var(--sf-muted); font-size: var(--sf-body-sm); line-height: 1.6; }
.sf-doc .sf-callout a { color: var(--primary, var(--primary)); font-weight: 600; }

/* Petite ic?ne ? courrier ? sur les blocs qui donnent l'adresse de contact,
   dans le m?me trait que les ic?nes de r?assurance du site. */
.sf-doc .sf-callout:has(a[href^="mailto"]) { padding-left: 48px; }
.sf-doc .sf-callout:has(a[href^="mailto"])::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 16px;
  width: 20px;
  height: 20px;
  background: center / contain no-repeat
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A65B2A' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
}

/* --- Cartes services : filet fin, m?me arrondi que les cartes du site, + ic?ne --- */
.sf-doc .sf-cards { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.sf-doc .sf-card {
  background: var(--sf-surface);
  border: 1px solid var(--sf-line);
  border-radius: 10px;
}
.sf-doc .sf-card h3 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: var(--sf-space-2);
}
.sf-doc .sf-card h3::before {
  content: "";
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  background: center / contain no-repeat;
}
.sf-doc .sf-card:has(a[href*="service-apres-vente"]) h3::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A65B2A' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v5c0 4.2-3 7.4-7 8.4-4-1-7-4.2-7-8.4V6l7-3z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
}
.sf-doc .sf-card:has(a[href*="depannage-urgence"]) h3::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A65B2A' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 4 14h7l-1 8 9-12h-7l1-8z'/%3E%3C/svg%3E");
}
.sf-doc .sf-card:has(a[href*="assistance-technique"]) h3::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A65B2A' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 14v-1a8 8 0 0 1 16 0v1'/%3E%3Crect x='2.5' y='14' width='4' height='6' rx='1.2'/%3E%3Crect x='17.5' y='14' width='4' height='6' rx='1.2'/%3E%3C/svg%3E");
}

/* --- ?tapes : puce num?rot?e discr?te (contour vert) plut?t qu'une pastille pleine --- */
.sf-doc ol.sf-doc-steps li::before {
  background: #fff;
  color: var(--primary, var(--primary));
  border: 1.5px solid var(--primary, var(--primary));
  width: 26px;
  height: 26px;
  font-size: 13px;
}
.sf-doc ol.sf-doc-steps li { padding-left: 40px; min-height: 26px; }

/* ============================================================================
 * GLOBAL ? grille cat?gorie 4/3/2, filtre disponibilit?/promo, tuiles mobile,
 * barre de tri/filtre. (Modifs template globale.)
 * ========================================================================== */

/* Grille catalogue/cat?gorie : colonnes FORC?ES et r?guli?res ? desktop 4,
   ?cran interm?diaire 3, mobile 2. Les cartes dessinent leurs propres filets
   (pas de goutti?re) ? table nette, aucune carte ?tir?e ni ? mang?e ?. */
#primary.primary-column .shop-products-wrapper .products.sf-product-grid-bounded,
.shop-products-wrapper .products.sf-product-grid-bounded {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  justify-content: stretch !important;
  width: 100% !important;
  gap: 0 !important;
}
#primary.primary-column .shop-products-wrapper .products.sf-product-grid-bounded > .product,
.shop-products-wrapper .products.sf-product-grid-bounded > .product {
  max-width: none !important;
  min-width: 0 !important;
  width: 100% !important;
}
.primary-column .before-shop-loop {
  width: 100%;
}
.primary-column .shop-products-wrapper {
  width: 100%;
}
@media (max-width: 1199.98px) {
  #primary.primary-column .shop-products-wrapper .products.sf-product-grid-bounded,
  .shop-products-wrapper .products.sf-product-grid-bounded {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 767.98px) {
  #primary.primary-column .shop-products-wrapper .products.sf-product-grid-bounded,
  .shop-products-wrapper .products.sf-product-grid-bounded {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Masquage ind?pendant des filtres (prix + disponibilit?), cumulables. */
.shop-products-wrapper .products > .product.sf-filter-price,
.shop-products-wrapper .products > .product.sf-filter-stock,
.shop-products-wrapper .products > .product.sf-filter-brand,
.shop-products-wrapper .products > .product.sf-filter-subcat { display: none !important; }

/* Contr?le segment? ? Tout / En stock / En promo ?. */
.sf-stock-filter { display: inline-flex; align-items: stretch; margin: 10px 0 0; border: 1px solid var(--sf-line, #dfe4e7); border-radius: 999px; overflow: hidden; background: #fff; }
.sf-stock-opt { appearance: none; border: 0; background: transparent; margin: 0; padding: 7px 14px; font: inherit; font-size: 13px; font-weight: 600; color: var(--sf-muted, #58645d); cursor: pointer; line-height: 1.2; white-space: nowrap; }
.sf-stock-opt + .sf-stock-opt { border-left: 1px solid var(--sf-line, #dfe4e7); }
.sf-stock-opt:hover { color: var(--primary, var(--primary)); }
.sf-stock-opt.is-active { background: var(--primary, var(--primary)); color: #fff; }
.sf-stock-opt:focus-visible { outline: 3px solid rgba(166,91,42,.3); outline-offset: -2px; }

/* Espacement de la barre de tri/filtre : ? Filtrer ? ne colle plus ? ? Trier par ?. */
.shop-sorting-wrapper .sf-mobile-filter-toggle { margin-right: 12px; }

/* Tuiles cat?gories de l'accueil : 2 colonnes nettes sur mobile (fini le
   carrousel/3 colonnes trop ?troites qui empilaient le texte lettre par lettre). */
@media (max-width: 767.98px) {
  .sf-home-category-grid .site-slider {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    max-height: none !important;
    overflow: visible !important;
  }
  .sf-home-category-grid .site-slider::after,
  .sf-home-category-grid .site-slider > .slick-nav,
  .sf-home-category-grid .site-slider .slick-dots { display: none !important; }
  .sf-home-category-grid .site-slider > .slider-item { display: block !important; width: auto !important; min-width: 0; opacity: 1 !important; visibility: visible !important; }
  .store-category-box .category-detail .entry-title a { font-size: 13px; line-height: 1.3; }

  /* Barre de tri/filtre : le bloc gauche (compteur + filtre dispo) cal? ? gauche,
     le tri en dessous, avec de l'air entre ? Filtrer ? et ? Trier par ?. */
  .before-shop-loop { flex-wrap: wrap; row-gap: 12px; }
  .before-shop-loop > .column:first-child { width: 100%; flex-wrap: wrap; justify-content: flex-start !important; align-items: center; gap: 12px; }
  .before-shop-loop .sf-stock-filter { margin-top: 0; }
  .shop-sorting-wrapper .sf-mobile-filter-toggle { margin-right: 0; margin-bottom: 8px; }
  .before-shop-loop .shop-sorting-wrapper { padding-bottom: 20px; margin-bottom: 8px; }
}

/* ============================================================================
 * ROUND 10 ? barre de catalogue, menu ? Tous nos produits ? et colonne d'achat.
 * ========================================================================== */

/* --- Menus d?roulants en forme de bouton -----------------------------------
   Le libell? occupe la place disponible, le chevron reste coll? au bord droit
   quelle que soit la longueur du texte (? Tri par d?faut ? vs ? Tri du plus
   r?cent au plus ancien ? ne d?calent plus la fl?che). */
.shop-sorting-wrapper .sf-sort-control > span { font-size: 15px; }
.shop-sorting-wrapper .sf-sort-menu {
  min-width: 200px;
  max-width: 280px;
}
.shop-sorting-wrapper .sf-sort-menu > summary {
  min-height: 48px;
  padding: 0 14px;
  gap: 12px;
  border-color: #d7dbdd;
  background: #fff;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.35;
  box-shadow: 0 1px 2px rgba(23, 33, 27, .07);
}
.shop-sorting-wrapper .sf-sort-menu > summary:hover { border-color: #c2c8cb; }
.shop-sorting-wrapper .sf-sort-menu > summary > span {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Le chevron est un rep?re, pas du texte : il reste gris (il h?ritait sinon de
   la couleur du libell? et pesait autant que lui) et cal? au bord droit par
   `margin-left: auto`, quelle que soit la longueur du libell?. */
.shop-sorting-wrapper .sf-sort-menu > summary svg {
  width: 20px;
  height: 20px;
  margin-left: auto;
  color: #9199a0;
  stroke: currentColor;
  stroke-width: 2;
}
.shop-sorting-wrapper .sf-sort-menu[open] > summary { background: #fff; }
.shop-sorting-wrapper .sf-sort-menu[open] > summary svg { color: var(--primary, var(--primary)); }
.shop-sorting-wrapper .sf-sort-options { padding: 8px; }
.shop-sorting-wrapper .sf-sort-option {
  padding: 13px 14px;
  font-size: 15px;
  line-height: 1.5;
}

/* --- ? Tout / En stock / En promo ? ----------------------------------------
   Align? sur l'axe vertical du compteur de r?sultats (le `margin-top` le
   d?calait vers le bas) et d?tach? du nombre d'articles. */
.sf-stock-filter {
  align-self: center;
  margin: 0 0 0 18px;
}
.sf-stock-opt {
  padding: 9px 18px;
  font-size: 14px;
}
.before-shop-loop .woocommerce-result-count { margin: 0; }

/* --- Raccourci ? Voir tous les produits ? en t?te du d?roulant catalogue --- */
.site-menu .menu-item.sf-menu-see-all > a { font-weight: 700; }
.site-menu .sub-menu > .menu-item.sf-menu-see-all { border-bottom: 1px solid var(--sf-line, #dfe4e7); }

/* --- Colonne d'achat : une seule ?chelle typographique ---------------------
   R?f?rence = l'encart ? Stock bient?t ?puis? ? (titre 14.5px / d?tail 13.5px).
   Le bandeau de garanties, le bento d'engagements et la carte vendeur suivaient
   chacun sa propre taille (11.5 ? 13.5px) : tout est ramen? sur cette ?chelle. */
.sf-product-trust-item strong {
  font-size: 14.5px;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0;
}
.sf-product-trust-item span { font-size: 13.5px; }
.sf-product-value-row strong { font-size: 14.5px; font-weight: 700; }
.sf-product-value-row small { font-size: 13.5px; }
.sf-product-value-row b { font-size: 13.5px; }
.sf-product-seller-label { font-size: 14.5px; font-weight: 700; }
.sf-product-seller-rating { font-size: 13.5px; }
.sf-product-seller-rating > strong { font-size: 14.5px; font-weight: 700; }

/* Bandeau de garanties : une seule ligne de trois, pictogramme au-dessus et
   textes centr?s sous lui. */
.sf-product-trust-strip {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 8px 0;
}
.sf-product-trust-item {
  flex-direction: column;
  align-items: center;
  gap: 7px;
  text-align: center;
}
.sf-product-trust-item > svg { flex: 0 0 auto; width: 24px; height: 24px; }
.sf-product-trust-item > div { justify-items: center; gap: 2px; }

/* Galerie produit sous 992 px : le th?me choisit la disposition des vignettes
   (`.vertical` en superposition ? gauche, `.horizontal` en bande sous l'image)
   une seule fois, au chargement, et ne r??value jamais son choix. Apr?s un
   passage du desktop au mobile, la bande restait donc en `.vertical`, en
   position absolue par-dessus la photo. On impose la disposition en ligne ?
   partir de la feuille de style, ind?pendamment de la classe pos?e par le JS. */
@media (max-width: 991.98px) {
  .single-product-wrapper .klb-flexslider-thumbnail.vertical {
    position: static !important;
    width: auto !important;
    height: auto !important;
    margin-top: 10px;
  }
  .single-product-wrapper .klb-flexslider-thumbnail.vertical .flex-viewport {
    height: auto !important;
  }
  .single-product-wrapper .klb-flexslider-thumbnail.vertical .flex-control-thumbs {
    position: static !important;
    display: flex !important;
    width: auto !important;
    height: auto !important;
    flex-wrap: wrap;
    gap: 8px;
    transform: none !important;
  }
}

@media (max-width: 767.98px) {
  /* Le th?me sort `.shop-sorting-wrapper` du flux (position: absolute) sous
     768 px : la barre ? Filtrer + Trier par ? se superposait alors ? la
     premi?re rang?e de cartes, qui apparaissaient rogn?es. On la remet dans le
     flux pour qu'elle pousse r?ellement la grille vers le bas. */
  .before-shop-loop .shop-sorting-wrapper { position: static !important; }
  /* La disponibilit? est le filtre principal : elle reste en t?te, ? Filtrer ? et
     ? Trier par ? suivent (un `order: -1` pos? sur la colonne de tri la renvoyait
     en dernier, sous le tri). */
  .before-shop-loop > .column:first-child { order: -2; }
  .before-shop-loop .sf-sort-column { order: -1; }
  .sf-stock-filter {
    margin: 0 0 4px;
    width: 100%;
    display: flex;
  }
  .sf-stock-opt {
    flex: 1 1 0;
    padding: 9px 8px;
    font-size: 12.5px;
    white-space: nowrap;
    text-align: center;
  }
  .shop-sorting-wrapper .sf-sort-menu > summary { min-height: 50px; font-size: 15.5px; }
  .shop-sorting-wrapper .sf-sort-option { font-size: 15px; }
}

/* ============================================================================
 * ROUND 12 ? menus d?roulants de navigation (barre principale).
 * ========================================================================== */

/* Le th?me rend chaque entr?e de sous-menu en `inline-flex` cal? sur la largeur
   du texte, et son chevron est un `::after` en police d'ic?nes pos? en flux
   normal avec `margin-left: 15px`. R?sultat : la fl?che suivait la fin du
   libell? ? ? Divers ? la pla?ait ? 131 px quand ? Entretenir le Jardin ? la
   mettait ? 210 px. On passe l'entr?e en ligne pleine largeur et on pousse le
   chevron au bord droit, ind?pendamment de la longueur du libell?. */
/* Les r?gles du th?me (`.site-header .primary-menu > ul .sub-menu a`) l'emportent
   en sp?cificit? sur un simple `.site-menu .sub-menu a` : la largeur du panneau
   et la taille du texte sont donc forc?es explicitement. */
.site-menu .sub-menu { min-width: 280px !important; background: #fff; }
.site-menu .sub-menu > .menu-item > a {
  display: flex !important;
  width: 100%;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  padding: 11px 16px 11px 14px !important;
  background: #fff;
  color: var(--sf-ink, #111827);
  font-size: 15px !important;
  font-weight: 500;
  line-height: 1.5 !important;
}
/* Ic?ne ? nom ? fl?che (::after pouss?e ? droite). */
.site-menu .sub-menu > .menu-item > a .sf-nav-cat-ic {
  flex: 0 0 25px;
  width: 25px;
  height: 25px;
  display: inline-grid;
  place-items: center;
  color: #6b7280;
}
.site-menu .sub-menu > .menu-item > a .sf-nav-cat-svg {
  width: 23px;
  height: 23px;
  display: block;
}
.site-menu .sub-menu > .menu-item > a .sf-nav-cat-label {
  flex: 1 1 auto;
  min-width: 0;
}
.site-menu .sub-menu > .menu-item > a::after {
  margin-left: auto !important;
  flex: 0 0 auto;
  color: #9199a0;
}
/* Fond blanc en toutes circonstances : le survol se lit ? la couleur du
   libell? et du chevron, pas ? un aplat. */
.site-menu .sub-menu > .menu-item > a:hover,
.site-menu .sub-menu > .menu-item > a:focus-visible,
.site-menu .sub-menu > .menu-item:hover > a {
  background: #fff;
  color: var(--primary, var(--primary));
}
.site-menu .sub-menu > .menu-item > a:hover .sf-nav-cat-ic,
.site-menu .sub-menu > .menu-item:hover > a .sf-nav-cat-ic,
.site-menu .sub-menu > .menu-item > a:hover::after,
.site-menu .sub-menu > .menu-item:hover > a::after { color: var(--primary, var(--primary)); }
.site-menu .sub-menu > .menu-item > a:focus-visible {
  outline: 3px solid rgba(166,91,42,.3);
  outline-offset: -3px;
}

/* Raccourci ? Voir tous les produits ? : m?me gabarit de bouton, sans chevron. */
.site-menu .sub-menu > .menu-item.sf-menu-see-all > a { font-weight: 700; }

/* Banni?re promo : masquer le GIF 1?1 cass? du miroir (point d'interrogation bleu iOS). */
.global-notification img[src^="data:image/gif"],
.global-notification-inner > img.position-absolute.top-0 {
  display: none !important;
}

/* Fl?ches navbar : ne plus d?pendre de la police klbtheme (FOIT / d?lai iPhone). */
@font-face {
  font-family: "klbtheme";
  src: url("/wp-content/themes/grogin/assets/fonts/klbtheme.woff2?23061144") format("woff2"),
       url("/wp-content/themes/grogin/assets/fonts/klbtheme.woff?23061144") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
.site-menu.horizontal ul .menu-item-has-children > a::after {
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif !important;
  content: "\25BE" !important;
  font-size: 0.65em !important;
  font-weight: 700;
  text-shadow: none !important;
  speak: never;
  margin-left: 4px;
  opacity: 0.7;
}
.site-menu.horizontal ul .sub-menu .menu-item-has-children > a::after,
.site-categories > ul > li.menu-item-has-children > a::after {
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif !important;
  content: "\203A" !important;
  font-size: 1.05em !important;
  font-weight: 600;
  text-shadow: none !important;
  speak: never;
}
.site-menu .sub-menu > .menu-item.sf-menu-see-all > a::after {
  content: none !important;
}

/* Nav sur une seule ligne + promo compacte */
.site-header .header-nav .header-inner {
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 10px;
  min-height: 44px;
}
.site-header .header-nav .primary-menu > ul.menu {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center;
  gap: 0;
}
.site-header .site-menu.primary-menu > ul.menu > .menu-item > a {
  font-size: 13.5px !important;
  padding: 8px 9px !important;
  white-space: nowrap;
}
.site-header .header-nav .custom-button {
  margin-left: auto;
  flex: 0 0 auto;
}
.sf-promo-link {
  color: #c42222 !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  padding: 4px 0 !important;
}
.sf-promo-link:hover { color: #a01c1c !important; }
.badge.sf-promo-badge,
.sf-promo-badge {
  background: #c42222 !important;
  background-image: none !important;
  color: #fff !important;
  border-radius: 4px;
  padding: 2px 7px !important;
  font-weight: 700;
  font-size: 10px !important;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.sf-nav-right a {
  font-size: 13px !important;
  white-space: nowrap;
  padding: 8px 6px !important;
}

/* Ic?nes top-level navbar */
.site-header .site-menu.primary-menu > ul.menu > .menu-item > a {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
}
.site-header .site-menu.primary-menu > ul.menu > .menu-item > a .sf-nav-cat-ic {
  flex: 0 0 19px;
  width: 19px;
  height: 19px;
  display: inline-grid;
  place-items: center;
  color: #6b7280;
}
.site-header .site-menu.primary-menu > ul.menu > .menu-item > a .sf-nav-cat-svg {
  width: 18px;
  height: 18px;
  display: block;
}
.site-header .site-menu.primary-menu > ul.menu > .menu-item > a .sf-nav-cat-label {
  line-height: 1.2;
}

/* ============================================================================
 * PAGE ? PROPOS / CONTACT / FAQ ? hero + images produit, cartes, gallery,
 * bloc contact r?utilis?, FAQ. Ton sobre, coh?rent avec le reste du site.
 * ========================================================================== */
.sf-about2 { max-width: var(--sf-content-width, 1120px); margin: 0 auto; padding: 0 0 clamp(40px, 6vw, 72px); }
.sf-about2 .sf-eyebrow { display: block; margin: 0 0 10px; color: var(--primary, var(--primary)); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.sf-about2 a { color: var(--primary, var(--primary)); }

.sf-about2-hero { padding: clamp(26px, 5vw, 48px) 0 clamp(18px, 3vw, 28px); }
.sf-about2-hero h1 { margin: 0 0 16px; max-width: 780px; color: var(--sf-ink, #111827); font-size: clamp(28px, 4.4vw, 44px); font-weight: 800; line-height: 1.12; }
.sf-about2-lead, .sf-about2-lead-2 { margin: 0 0 12px; max-width: 640px; color: var(--sf-muted, #4b5563); font-size: clamp(15px, 1.5vw, 17px); line-height: 1.65; }
.sf-about2-lead-2 { margin-bottom: 0; }
.sf-about2-hero-split { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(22px, 4vw, 40px); align-items: center; }
.sf-about2-hero-media { margin: 0; overflow: hidden; border-radius: 18px; border: 1px solid var(--sf-line, var(--sf-line)); background: #F7EFE6; aspect-ratio: 4 / 3; }
.sf-about2-hero-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sf-about2-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }

.sf-about2-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 8px 0 clamp(36px, 5vw, 56px); }
.sf-about2-card { padding: 26px; border: 1px solid var(--sf-line, var(--sf-line)); border-radius: 16px; background: #fff; }
.sf-about2-card-ic { display: inline-grid; place-items: center; width: 46px; height: 46px; margin-bottom: 14px; border-radius: 12px; background: var(--primary-tint, #F7EFE6); color: var(--primary, var(--primary)); }
.sf-about2-card-ic svg { width: 24px; height: 24px; }
.sf-about2-card h2 { margin: 0 0 8px; color: var(--sf-ink, #111827); font-size: 19px; font-weight: 800; }
.sf-about2-card p { margin: 0 0 14px; color: var(--sf-muted, #4b5563); font-size: 15px; line-height: 1.6; }
.sf-about2-link { display: inline-flex; align-items: center; gap: 6px; color: var(--primary, var(--primary)); font-size: 14px; font-weight: 700; text-decoration: none; }
.sf-about2-link::after { content: "\2192"; }
.sf-about2-link:hover { text-decoration: underline; }

.sf-about2-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(22px, 4vw, 40px); align-items: center; margin: 0 0 clamp(36px, 5vw, 56px); }
.sf-about2-split-reverse { direction: rtl; }
.sf-about2-split-reverse > * { direction: ltr; }
.sf-about2-split-media { margin: 0; overflow: hidden; border-radius: 18px; border: 1px solid var(--sf-line, var(--sf-line)); background: #F7EFE6; aspect-ratio: 5 / 4; }
.sf-about2-split-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sf-about2-split-copy h2 { margin: 0 0 14px; color: var(--sf-ink, #111827); font-size: clamp(22px, 2.6vw, 30px); font-weight: 800; line-height: 1.2; }
.sf-about2-split-copy > p { margin: 0 0 12px; color: var(--sf-muted, #4b5563); font-size: 15.5px; line-height: 1.7; }
.sf-about2-note { margin-top: 14px !important; font-size: 14px !important; }
.sf-about2-cols-inline { margin-top: 18px; }

.sf-about2-figures { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 0 0 clamp(36px, 5vw, 56px); overflow: hidden; border-radius: 16px; background: #1d3f29; }
.sf-about2-figures p { display: grid; gap: 6px; min-height: 118px; margin: 0; padding: 22px 16px; align-content: center; text-align: center; background: #16301f; }
.sf-about2-figures strong { color: #a9dfa0; font-size: clamp(24px, 3vw, 34px); font-weight: 800; line-height: 1; }
.sf-about2-figures span { color: #dcebde; font-size: 13.5px; line-height: 1.4; }

.sf-about2-gallery { margin: 0 0 clamp(36px, 5vw, 56px); }
.sf-about2-gallery-head { margin-bottom: 20px; max-width: 720px; }
.sf-about2-gallery-head h2 { margin: 0 0 10px; color: var(--sf-ink, #111827); font-size: clamp(22px, 2.6vw, 30px); font-weight: 800; }
.sf-about2-gallery-head p { margin: 0; color: var(--sf-muted, #4b5563); font-size: 15px; line-height: 1.6; }
.sf-about2-gallery-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.sf-about2-gallery-grid figure { margin: 0; overflow: hidden; border: 1px solid var(--sf-line, var(--sf-line)); border-radius: 14px; background: #fff; }
.sf-about2-gallery-grid img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; background: #F7EFE6; }
.sf-about2-gallery-grid figcaption { padding: 10px 12px 12px; color: var(--sf-ink, #111827); font-size: 13px; font-weight: 700; }

.sf-about2-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.sf-about2-col { padding: 20px; border: 1px solid var(--sf-line, var(--sf-line)); border-radius: 14px; background: var(--sf-surface, #f7faf8); }
.sf-about2-col h3 { margin: 0 0 12px; color: var(--sf-ink, #111827); font-size: 16px; font-weight: 800; }
.sf-about2-col ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.sf-about2-col li { position: relative; padding-left: 22px; color: var(--sf-muted, #4b5563); font-size: 14px; line-height: 1.55; }
.sf-about2-col li::before { content: ""; position: absolute; left: 0; top: 7px; width: 7px; height: 7px; border-radius: 50%; background: var(--primary, var(--primary)); }

.sf-about2-contact-block { margin: 0 0 clamp(36px, 5vw, 56px); padding: clamp(22px, 3vw, 32px); border: 1px solid var(--sf-line, var(--sf-line)); border-radius: 18px; background: #fff; }
.sf-about2-contact-head { margin-bottom: 22px; max-width: 760px; }
.sf-about2-contact-head h2 { margin: 0 0 10px; color: var(--sf-ink, #111827); font-size: clamp(22px, 2.6vw, 30px); font-weight: 800; }
.sf-about2-contact-head p { margin: 0; color: var(--sf-muted, #4b5563); font-size: 15px; line-height: 1.65; }
.sf-about2-contact-block .sf-contact-layout { margin: 0; }
.sf-about2-contact-block .sf-contact-form,
.sf-about2-contact-block .sf-contact-details { border: 1px solid var(--sf-line, var(--sf-line)); border-radius: 14px; background: var(--sf-surface, #f7faf8); }
.sf-about2-contact-block .sf-contact-form { padding: clamp(18px, 2.5vw, 26px); background: #fff; }
.sf-about2-contact-block .sf-contact-details { padding: 0; background: transparent; border: 0; display: grid; gap: 14px; }
.sf-about2-contact-block .sf-contact-info-card { padding: 18px; border: 1px solid var(--sf-line, var(--sf-line)); border-radius: 14px; background: var(--sf-surface, #f7faf8); }
.sf-contact-fallback { margin: 0; color: var(--sf-muted, #4b5563); font-size: 15px; line-height: 1.6; }

.sf-about2-faq { max-width: 820px; margin: 0 auto; }
.sf-about2-faq > h2 { margin: 0 0 10px; color: var(--sf-ink, #111827); font-size: clamp(22px, 2.6vw, 30px); font-weight: 800; }
.sf-about2-faq-intro { margin: 0 0 20px; color: var(--sf-muted, #4b5563); font-size: 15px; line-height: 1.6; }
.sf-about2-faq-list { display: grid; gap: 12px; }
.sf-about2-faq-item { border: 1px solid var(--sf-line, var(--sf-line)); border-radius: 12px; background: #fff; overflow: hidden; }
.sf-about2-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 18px; color: var(--sf-ink, #111827); font-size: 15.5px; font-weight: 700; cursor: pointer; list-style: none; }
.sf-about2-faq-item summary::-webkit-details-marker { display: none; }
.sf-about2-faq-sign { position: relative; flex: 0 0 16px; width: 16px; height: 16px; }
.sf-about2-faq-sign::before, .sf-about2-faq-sign::after { content: ""; position: absolute; background: var(--primary, var(--primary)); transition: transform .2s ease; }
.sf-about2-faq-sign::before { top: 7px; left: 0; width: 16px; height: 2px; }
.sf-about2-faq-sign::after { top: 0; left: 7px; width: 2px; height: 16px; }
.sf-about2-faq-item[open] .sf-about2-faq-sign::after { transform: scaleY(0); }
.sf-about2-faq-body { padding: 0 18px 18px; }
.sf-about2-faq-body p { margin: 0; color: var(--sf-muted, #4b5563); font-size: 14.5px; line-height: 1.65; }

.sf-about2-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 22px; border-radius: 999px; background: var(--primary, var(--primary)); color: #fff !important; font-size: 14.5px; font-weight: 700; text-decoration: none; }
.sf-about2-btn:hover { background: var(--primary-dark); color: #fff !important; }
.sf-about2-btn-light { background: #fff; border: 1px solid var(--sf-line, var(--sf-line)); color: var(--sf-ink, #111827) !important; }
.sf-about2-btn-light:hover { background: #eef4ef; color: var(--sf-ink, #111827) !important; }

.sf-contact-page.sf-about2 { max-width: var(--sf-content-width, 1120px); }
.sf-faq-page-hero { margin-bottom: 8px; }
.sf-faq-heading-hidden { display: none !important; }
.sf-faq-page-section { margin-top: 12px; }

@media (max-width: 900px) {
  .sf-about2-hero-split,
  .sf-about2-split,
  .sf-about2-cards,
  .sf-about2-cols { grid-template-columns: 1fr; }
  .sf-about2-split-reverse { direction: ltr; }
  .sf-about2-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sf-about2-figures { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .sf-about2-figures,
  .sf-about2-gallery-grid { grid-template-columns: 1fr 1fr; }
}


/* Filtre marques : recherche + liste scrollable (pas tout d?un coup) */
.sf-brand-search {
  width: 100%; box-sizing: border-box; margin: 0 0 10px; padding: 9px 11px;
  border: 1px solid var(--sf-line, #d5dde3); border-radius: 8px;
  background: #fff; font: inherit; font-size: 13px; color: var(--sf-ink, #111827);
}
.sf-brand-search:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(27,95,168,.12); }
.sf-brand-filter-list {
  max-height: 220px; overflow-y: auto; overscroll-behavior: contain;
  padding-right: 2px;
}
.sf-brand-opt.is-hidden-brand { display: none !important; }
.sf-brand-filter-empty { display: none; margin: 6px 2px 0; font-size: 12.5px; color: #6b7280; }
.sf-brand-filter-empty.is-visible { display: block; }


/* Footer marque : fond clair (pas de gris, pas de pastille blanche) ? logos texte noir lisibles */
.site-footer.sf-footer-brand,
.site-footer.sf-footer-brand .footer-widgets,
.site-footer.sf-footer-brand .footer-copyright {
  background: #ffffff !important;
  color: #1f2937 !important;
}
.site-footer.sf-footer-brand .widget-title,
.site-footer.sf-footer-brand a,
.site-footer.sf-footer-brand .footer-contact-block strong,
.site-footer.sf-footer-brand .sf-opening-hours strong {
  color: #111827 !important;
}
.site-footer.sf-footer-brand a:hover { color: var(--primary, #A65B2A) !important; }
.site-footer.sf-footer-brand .sf-opening-hours {
  border-top-color: #e5e7eb !important;
  border-bottom-color: #e5e7eb !important;
  color: #4b5563 !important;
}
.site-footer.sf-footer-brand .sf-opening-hours span,
.site-footer.sf-footer-brand .footer-contact-block .contact-detail p,
.site-footer.sf-footer-brand .footer-contact-block .widget-body > p {
  color: #4b5563 !important;
}

/* Logo footer : pas de bento / pastille */
.site-footer.sf-footer-brand .footer-contact-block img,
.site-footer.sf-footer-brand .klbfooterwidget.widget_text img {
  display: block;
  max-height: 48px;
  width: auto !important;
  max-width: min(200px, 100%);
  height: auto !important;
  object-fit: contain;
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Colonne gauche footer ? logo / desc / m?ta ic?nes (rebrand simple) */
.site-footer .sf-footer-logo {
  display: inline-block;
  margin: 0 0 14px;
  line-height: 0;
}
.site-footer .sf-footer-logo img {
  max-height: 44px !important;
}
.site-footer .sf-footer-desc {
  margin: 0 0 18px !important;
  max-width: 280px;
  color: #4b5563 !important;
  font-size: 13.5px !important;
  line-height: 1.55 !important;
  font-weight: 400 !important;
}
.site-footer .sf-footer-meta {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid;
  gap: 11px;
}
.site-footer .sf-footer-meta li {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  margin: 0 !important;
  color: #374151;
  font-size: 13.5px;
  line-height: 1.4;
}
.site-footer .sf-footer-meta svg {
  width: 18px;
  height: 18px;
  margin-top: 1px;
  fill: none;
  stroke: var(--primary, #A65B2A);
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.site-footer .sf-footer-meta a {
  color: var(--primary, #A65B2A) !important;
  font-weight: 600;
  text-decoration: none;
  word-break: break-word;
}
.site-footer .sf-footer-meta a:hover { text-decoration: underline; }
.site-footer .sf-footer-meta span { color: #4b5563; }

/* Masquer l?ancien bloc horaires / besoin d?aide s?il reste en HTML */
.site-footer .sf-opening-hours,
.site-footer .footer-contact:not(.sf-footer-meta),
.site-footer .site-payment-cards { display: none !important; }

/* Barre copyright + liens l?gaux : UNE seule ligne (desktop) */
.site-footer .footer-copyright,
.site-footer .footer-copyright .footer-inner,
.site-footer.sf-footer-brand .footer-copyright,
.site-footer.sf-footer-brand .footer-copyright .footer-inner {
  border: 0 !important;
  border-top: 0 !important;
  box-shadow: none !important;
}
.site-footer .footer-copyright {
  padding: 22px 0 !important;
  margin-top: 0 !important;
}
.site-footer .footer-copyright .footer-inner {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px 24px !important;
  width: 100% !important;
}
.site-footer .footer-copyright .column,
.site-footer .footer-copyright .column.footer-copyright-menu {
  float: none !important;
  display: block !important;
  flex: 0 1 auto !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
.site-footer .footer-copyright .column:not(.footer-copyright-menu) {
  flex: 0 0 auto !important;
}
.site-footer .footer-copyright-menu {
  flex: 1 1 auto !important;
  margin-left: auto !important;
  text-align: right !important;
}
.site-footer .footer-copyright .site-copyright,
.site-footer .footer-copyright .site-copyright p {
  margin: 0 !important;
  padding: 0 !important;
  color: #6b7280 !important;
  font-size: 12.5px !important;
  line-height: 1.4 !important;
  font-weight: 500 !important;
  white-space: nowrap;
}
.site-footer .footer-copyright-menu .site-menu,
.site-footer .footer-copyright-menu .footer-menu {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}
.site-footer .footer-copyright-menu .footer-menu .menu,
.site-footer .footer-copyright .site-menu.footer-menu > ul.menu {
  display: inline-flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 0 16px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  vertical-align: middle;
}
.site-footer .footer-copyright-menu .menu > li {
  display: inline-block !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: auto !important;
}
.site-footer .footer-copyright-menu .menu a {
  color: #6b7280 !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}
.site-footer .footer-copyright-menu .menu a:hover {
  color: var(--primary, #A65B2A) !important;
}
@media (max-width: 900px) {
  .site-footer .footer-copyright .footer-inner {
    flex-wrap: wrap !important;
    gap: 10px 16px !important;
  }
  .site-footer .footer-copyright .site-copyright p {
    white-space: normal;
  }
  .site-footer .footer-copyright-menu {
    margin-left: 0 !important;
    text-align: left !important;
    flex: 1 1 100% !important;
  }
  .site-footer .footer-copyright-menu .footer-menu .menu,
  .site-footer .footer-copyright .site-menu.footer-menu > ul.menu {
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
    gap: 8px 14px !important;
  }
}
@media (max-width: 767.98px) {
  .site-footer .sf-footer-desc { max-width: none; }
}

/* ==========================================================================
 * Footer mobile ? classes d?di?es (sf-footer-*) : textes plus lisibles
 * ========================================================================== */
@media (max-width: 767.98px) {
  .site-footer.sf-footer-mobile .footer-widgets {
    padding: 36px 0 28px !important;
  }
  .site-footer.sf-footer-mobile .sf-footer-logo img {
    max-height: 52px !important;
  }
  .site-footer.sf-footer-mobile .sf-footer-desc {
    max-width: none !important;
    margin-bottom: 20px !important;
    font-size: 15.5px !important;
    line-height: 1.55 !important;
  }
  .site-footer.sf-footer-mobile .sf-footer-meta {
    gap: 14px !important;
  }
  .site-footer.sf-footer-mobile .sf-footer-meta-item,
  .site-footer.sf-footer-mobile .sf-footer-meta li {
    grid-template-columns: 22px minmax(0, 1fr) !important;
    gap: 12px !important;
    font-size: 15px !important;
    line-height: 1.45 !important;
  }
  .site-footer.sf-footer-mobile .sf-footer-meta svg {
    width: 20px !important;
    height: 20px !important;
  }
  .site-footer.sf-footer-mobile .sf-footer-meta-link,
  .site-footer.sf-footer-mobile .sf-footer-meta a {
    font-size: 15px !important;
  }
  .site-footer.sf-footer-mobile .sf-footer-meta-text,
  .site-footer.sf-footer-mobile .sf-footer-meta span {
    font-size: 15px !important;
  }
  .site-footer.sf-footer-mobile .sf-footer-nav-title,
  .site-footer.sf-footer-mobile .widget_nav_menu .widget-title {
    margin-bottom: 12px !important;
    font-size: 15px !important;
    letter-spacing: .05em !important;
    line-height: 1.35 !important;
  }
  .site-footer.sf-footer-mobile .widget_nav_menu .menu li {
    margin-bottom: 13px !important;
  }
  .site-footer.sf-footer-mobile .sf-footer-nav-link,
  .site-footer.sf-footer-mobile .widget_nav_menu .menu a {
    font-size: 16.5px !important;
    line-height: 1.45 !important;
  }
  .site-footer.sf-footer-mobile .footer-widgets-block .widget-col {
    margin-bottom: 28px !important;
  }
  .site-footer.sf-footer-mobile .footer-copyright {
    padding: 20px 0 24px !important;
  }
  .site-footer.sf-footer-mobile .sf-footer-copy-text,
  .site-footer.sf-footer-mobile .footer-copyright .site-copyright p {
    font-size: 14.5px !important;
    line-height: 1.45 !important;
    white-space: normal !important;
  }
  .site-footer.sf-footer-mobile .sf-footer-legal-link,
  .site-footer.sf-footer-mobile .footer-copyright-menu .menu a {
    font-size: 14.5px !important;
    line-height: 1.45 !important;
  }
  .site-footer.sf-footer-mobile .footer-copyright-menu .footer-menu .menu,
  .site-footer.sf-footer-mobile .footer-copyright .site-menu.footer-menu > ul.menu {
    gap: 10px 16px !important;
  }
}

/* Header / vendu par */
.header-main .custom-logo,
.header-main .site-brand img,
.header-main .site-logo img,
.site-header .custom-logo {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  -webkit-tap-highlight-color: transparent;
  max-height: 52px !important;
  width: auto !important;
  max-width: min(220px, 58vw);
  object-fit: contain;
  object-position: left center;
}
.sf-product-seller-brand-row img {
  height: 40px;
  max-width: 180px;
  width: auto;
  object-fit: contain;
  object-position: left center;
  background: transparent !important;
}

/* Fl?ches galerie produit (multi-images) ? boutons directs, pas d?overlay plein
   (pointer-events:none sur un parent casse souvent le tactile iOS). */
.woocommerce-product-gallery.sf-gallery-has-nav .flex-viewport,
.woocommerce-product-gallery.sf-gallery-has-nav {
  position: relative;
}
.sf-gallery-nav { display: none !important; } /* ancien wrapper overlay */
.sf-gallery-nav-btn {
  pointer-events: auto !important;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 40 !important;
  width: 40px;
  height: 40px;
  margin: 0;
  padding: 0;
  display: inline-grid;
  place-items: center;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, .9);
  color: #1f2937;
  box-shadow: 0 1px 4px rgba(15, 23, 42, .16);
  cursor: pointer;
  opacity: .8;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  transition: opacity .15s ease, background .15s ease;
}
.sf-gallery-nav-btn:hover,
.sf-gallery-nav-btn:focus-visible {
  opacity: 1;
  background: #fff;
  outline: none;
}
.sf-gallery-nav-prev { left: 10px; }
.sf-gallery-nav-next { right: 10px; }
@media (max-width: 767.98px) {
  .sf-gallery-nav-btn {
    width: 46px !important;
    height: 46px !important;
    opacity: .92;
  }
  .sf-gallery-nav-prev { left: 8px; }
  .sf-gallery-nav-next { right: 8px; }
}


/* Filtre sous-cat?gories (pages cat?gorie) */
.sf-subcat-filter { margin: 0 0 18px; padding: 0 0 14px; border-bottom: 1px solid var(--sf-line, #dfe4e7); }
.sf-subcat-filter .widget-title { margin: 0 0 10px; font-size: 14px; font-weight: 700; color: var(--sf-ink, #111827); }
.sf-subcat-filter-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.sf-subcat-opt {
  appearance: none; width: 100%; display: flex; align-items: center; justify-content: space-between;
  gap: 10px; margin: 0; padding: 8px 10px; border: 1px solid transparent; border-radius: 8px;
  background: transparent; color: var(--sf-ink, #111827); font: inherit; font-size: 13px; text-align: left; cursor: pointer;
}
.sf-subcat-opt:hover { background: #f3f4f6; }
.sf-subcat-opt.is-active { border-color: var(--primary, #1B5FA8); background: color-mix(in srgb, var(--primary, #1B5FA8) 8%, #fff); font-weight: 600; }
.sf-subcat-opt-count { color: #6b7280; font-size: 12px; font-weight: 600; }
.sf-subcat-hint { margin: 12px 0 6px; color: #6b7280; font-size: 12px; }
.sf-subcat-links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.sf-subcat-links a {
  display: inline-block; padding: 5px 10px; border: 1px solid var(--sf-line, #d5dde3); border-radius: 999px;
  color: var(--sf-ink, #111827); font-size: 12px; text-decoration: none;
}
.sf-subcat-links a:hover { border-color: var(--primary); color: var(--primary); }
.shop-products-wrapper .products > .product.sf-filter-subcat { display: none !important; }



/* --- Home promo + expert : texte EN OVERLAY sur l?image (pas au-dessus) --- */
.sf-home-promo-bento .site-banner,
.sf-home-expert-bento .site-banner {
  position: relative !important;
  overflow: hidden !important;
}
.sf-home-promo-bento .site-banner { height: 320px; min-height: 0; }
/* Expert bento PC/mobile : hauteur, padding et typo proportionn?s (plus de titres 38px qui cassent la carte) */
.sf-home-expert-bento .site-banner {
  min-height: 240px !important;
  height: 240px !important;
}

.sf-home-promo-bento .site-banner .entry-media,
.sf-home-expert-bento .site-banner .entry-media {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  z-index: 0;
}
.sf-home-promo-bento .site-banner .entry-media img,
.sf-home-expert-bento .site-banner .entry-media img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  object-position: center;
}
.sf-home-promo-bento .site-banner .entry-media::after,
.sf-home-expert-bento .site-banner .entry-media::after {
  content: "";
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, rgba(8,16,12,.58) 0%, rgba(8,16,12,.22) 48%, rgba(8,16,12,.55) 100%);
}
.sf-home-expert-bento .site-banner .entry-media::after {
  background: linear-gradient(90deg, rgba(12,32,22,.84) 0%, rgba(12,32,22,.58) 40%, rgba(12,32,22,.2) 70%, transparent 100%);
}
.sf-home-promo-bento .site-banner .entry-wrapper,
.sf-home-expert-bento .site-banner .entry-wrapper {
  position: absolute !important;
  inset: 0 !important;
  z-index: 2 !important;
  display: flex !important;
  flex-direction: column;
  justify-content: flex-end;
  padding: 18px 18px 20px !important;
  background: transparent !important;
  box-sizing: border-box;
}
.sf-home-expert-bento .site-banner .entry-wrapper {
  justify-content: center;
  align-items: flex-start;
  text-align: left;
  max-width: 88%;
  width: 100%;
  padding: 22px 22px 24px !important;
  gap: 0;
}
.sf-home-expert-bento .site-banner .entry-inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  width: 100%;
  max-width: 28rem;
  margin-inline: 0;
  gap: 0;
}
.sf-home-expert-bento .site-banner .entry-header,
.sf-home-expert-bento .site-banner .entry-body,
.sf-home-expert-bento .site-banner .entry-footer {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  margin: 0 !important;
}
.sf-home-expert-bento .site-banner .entry-header { margin-bottom: 8px !important; }
.sf-home-expert-bento .site-banner .entry-body { margin-bottom: 0 !important; gap: 6px; }
.sf-home-expert-bento .site-banner .entry-footer {
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  margin-top: 14px !important;
}
.sf-home-promo-bento .site-banner .entry-title,
.sf-home-promo-bento .site-banner .entry-content,
.sf-home-promo-bento .site-banner .entry-content p,
.sf-home-expert-bento .site-banner .entry-title,
.sf-home-expert-bento .site-banner .entry-content,
.sf-home-expert-bento .site-banner .entry-content p {
  color: #fff !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.35);
}
.sf-home-promo-bento .site-banner .entry-title { font-size: clamp(17px, 1.5vw, 22px) !important; line-height: 1.25 !important; }
.sf-home-expert-bento .site-banner .entry-subtitle {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin: 0 !important;
  line-height: 1.2 !important;
}
.sf-home-expert-bento .site-banner .entry-title {
  font-size: clamp(18px, 1.35vw, 22px) !important;
  line-height: 1.25 !important;
  font-weight: 800 !important;
  margin: 0 !important;
}
.sf-home-expert-bento .site-banner .entry-content { margin: 0 !important; padding: 0 !important; }
.sf-home-expert-bento .site-banner .entry-content p {
  font-size: 13.5px !important;
  line-height: 1.4 !important;
  margin: 0 !important;
  opacity: .95;
}
.sf-home-promo-bento .site-banner .btn,
.sf-home-expert-bento .site-banner .btn {
  color: #fff !important;
  border-color: rgba(255,255,255,.7) !important;
  background: rgba(255,255,255,.12) !important;
}
.sf-home-expert-bento .site-banner .btn,
.sf-home-expert-bento .site-banner .entry-footer a.btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 40px !important;
  padding: 0 18px !important;
  margin: 0 !important;
  border-width: 1.5px !important;
  border-radius: 999px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}
@media (min-width: 768px) {
  .sf-home-expert-bento > .e-con-inner { gap: 16px !important; }
  .sf-home-expert-bento .site-banner {
    min-height: 280px !important;
    height: 280px !important;
  }
  .sf-home-expert-bento .site-banner .entry-wrapper { padding: 24px 26px !important; max-width: 90%; }
  .sf-home-expert-bento .site-banner .entry-subtitle { font-size: 12px !important; }
  .sf-home-expert-bento .site-banner .entry-title { font-size: clamp(19px, 1.4vw, 23px) !important; }
  .sf-home-expert-bento .site-banner .entry-content p { font-size: 14px !important; }
  .sf-home-expert-bento .site-banner .btn,
  .sf-home-expert-bento .site-banner .entry-footer a.btn {
    min-height: 42px !important;
    padding: 0 20px !important;
    font-size: 13.5px !important;
  }
}
@media (min-width: 1200px) {
  .sf-home-expert-bento .site-banner {
    min-height: 300px !important;
    height: 300px !important;
  }
  .sf-home-expert-bento .site-banner .entry-wrapper { padding: 26px 28px !important; }
  .sf-home-expert-bento .site-banner .entry-title { font-size: 22px !important; }
  .sf-home-expert-bento .site-banner .entry-content p { font-size: 14.5px !important; }
}
@media (max-width: 767.98px) {
  .sf-home-promo-bento .site-banner { height: 220px; }
  .sf-home-expert-bento { margin-top: 28px !important; }
  .sf-home-expert-bento > .e-con-inner { gap: 12px !important; }
  .sf-home-expert-bento .site-banner {
    height: 210px !important;
    min-height: 210px !important;
  }
  .sf-home-expert-bento .site-banner .entry-wrapper {
    max-width: 100%;
    padding: 18px 16px 18px !important;
    justify-content: flex-end;
    align-items: flex-start;
    text-align: left;
    background: transparent !important;
  }
  .sf-home-expert-bento .site-banner .entry-inner,
  .sf-home-expert-bento .site-banner .entry-header,
  .sf-home-expert-bento .site-banner .entry-body,
  .sf-home-expert-bento .site-banner .entry-footer {
    align-items: flex-start;
    text-align: left;
    margin-inline: 0;
  }
  .sf-home-expert-bento .site-banner .entry-header { margin-bottom: 6px !important; }
  .sf-home-expert-bento .site-banner .entry-footer { margin-top: 12px !important; }
  .sf-home-expert-bento .site-banner .entry-subtitle { font-size: 11px !important; letter-spacing: .07em; }
  .sf-home-expert-bento .site-banner .entry-title { font-size: 18px !important; line-height: 1.28 !important; }
  .sf-home-expert-bento .site-banner .entry-content p { font-size: 13px !important; line-height: 1.4 !important; }
  .sf-home-expert-bento .site-banner .btn,
  .sf-home-expert-bento .site-banner .entry-footer a.btn {
    min-height: 40px !important;
    padding: 0 16px !important;
    font-size: 13px !important;
  }
  .sf-home-expert-bento .site-banner .entry-media::after {
    background: linear-gradient(180deg, rgba(12,32,22,.3) 0%, rgba(12,32,22,.52) 42%, rgba(12,32,22,.86) 100%);
  }
  .sf-home-promo-bento .site-banner .entry-wrapper { padding: 14px 14px 16px !important; }
  .sf-home-promo-bento .site-banner .entry-title { font-size: 17px !important; }
}

/* Alignement largeur avec la bande cat?gories phares */
.sf-home-promo-bento,
.sf-home-expert-bento,
.sf-home-category-band {
  width: min(calc(100% - (2 * var(--sf-page-gutter, 16px))), 1360px) !important;
  max-width: 1360px !important;
  margin-inline: auto !important;
  box-sizing: border-box;
}
.sf-home-promo-bento > .e-con-inner,
.sf-home-expert-bento > .e-con-inner,
.sf-home-category-band > .e-con-inner {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding: 0 !important;
  box-sizing: border-box;
}
.sf-home-expert-bento > .e-con-inner > .sf-home-expert-card {
  width: 100% !important;
  max-width: none !important;
}

/* Affichage exclusif des bandes cat?gories selon le viewport (desktop vs mobile/tablette) */
body.home .sf-home-category-band.sf-home-category-grid { display: none !important; }
body.home .sf-home-category-band.sf-home-category-carousel { display: block !important; }

@media (max-width: 991.98px) {
  body.home .sf-home-category-band.sf-home-category-grid { display: block !important; }
  body.home .sf-home-category-band.sf-home-category-carousel { display: none !important; }
}


/* ? propos : moins de ? bento ? arrondi, images plus grandes */
.sf-about2-hero-media,
.sf-about2-split-media {
  border-radius: 0 !important;
  border: 0 !important;
  background: #f3f4f6;
}
.sf-about2-hero-split { grid-template-columns: minmax(0, .85fr) minmax(0, 1.25fr); align-items: stretch; }
.sf-about2-hero-media { aspect-ratio: 4 / 3; min-height: 380px; }
.sf-about2-split-media { aspect-ratio: 4 / 3; min-height: 340px; }
.sf-about2-card {
  border-radius: 0 !important;
  border: 0 !important;
  border-top: 3px solid var(--primary, #A65B2A) !important;
  background: #f7f8f7 !important;
  box-shadow: none !important;
}
.sf-about2-card-ic { border-radius: 6px !important; }
.sf-about2-figures { border-radius: 0 !important; }
.sf-about2-gallery-grid figure { border-radius: 0 !important; border: 0 !important; }
.sf-about2-cols-inline {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px 28px;
  margin-top: 18px;
  padding: 0;
  background: transparent;
}
.sf-about2-cols-inline .sf-about2-col {
  margin: 0;
  padding: 0;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.sf-about2-cols-inline h3 { margin: 0 0 8px; font-size: 17px; font-weight: 800; }
.sf-about2-cols-inline ul { margin: 0; padding-left: 18px; color: var(--sf-muted); font-size: 15px; line-height: 1.65; }
.sf-about2-contact-block { border-radius: 0 !important; }
@media (max-width: 767.98px) {
  .sf-about2-hero-split { grid-template-columns: 1fr; }
  .sf-about2-hero-media { min-height: 280px; aspect-ratio: 5 / 4; order: -1; }
  .sf-about2-split { grid-template-columns: 1fr !important; }
  .sf-about2-split-media { min-height: 220px; }
  .sf-about2-cols-inline { grid-template-columns: 1fr; gap: 18px; }
  .sf-about2-cards { grid-template-columns: 1fr; }
  .sf-about2-gallery-grid { grid-template-columns: 1fr 1fr; }
}

/* Shipping tab: keep flat even after .sf-product-tab-copy section card rules */
.sf-shipping-split .sf-product-tab-copy section {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.sf-home-promo-bento .site-banner .entry-subtitle { color: #fb923c !important; text-shadow: none; }
.sf-home-promo-bento .site-banner .entry-content .text-gray-500,
.sf-home-promo-bento .site-banner .entry-content p { color: rgba(255,255,255,.92) !important; }
.sf-home-expert-bento .site-banner .entry-subtitle { color: #fb923c !important; }
.sf-home-expert-bento .site-banner .entry-content p { color: rgba(255,255,255,.92) !important; }
/* Expert cards: fill grid track, no shrink */
@media (min-width: 768px) {
  .sf-home-expert-bento > .e-con-inner > .sf-home-expert-card,
  .sf-home-expert-bento > .e-con-inner > .e-con {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
  }
}

/* Promo: overlay plus marqu? quand le fond est un packshot clair (electro) */
.sf-home-promo-bento .site-banner .entry-media { background: #111827; }
.sf-home-promo-bento .site-banner .entry-media img[src*="catalog-assets"] {
  object-fit: cover !important;
  object-position: center 30%;
}
.sf-home-promo-bento .site-banner:has(img[src*="catalog-assets"]) .entry-media::after {
  background: linear-gradient(180deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,.35) 40%, rgba(0,0,0,.72) 100%) !important;
}
@media (max-width: 767.98px) {
  .sf-home-promo-bento .site-banner:has(img[src*="catalog-assets"]) .entry-media::after {
    background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, rgba(0,0,0,.45) 50%, rgba(0,0,0,.78) 100%) !important;
  }
}

/* --- 2026-07-22 batch: about overflow, hero overlay, contact flat, subcats --- */
.sf-about2 {
  max-width: var(--sf-content-width, 1120px);
  margin: 0 auto;
  padding-inline: clamp(12px, 3vw, 20px);
  overflow-x: clip;
  box-sizing: border-box;
}
.sf-about2-contact-plain,
.sf-about2-contact-block {
  margin: 0 0 clamp(36px, 5vw, 56px);
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.sf-about2-contact-plain .sf-contact-form,
.sf-about2-contact-plain .sf-contact-info-card,
.sf-about2-contact-block .sf-contact-form,
.sf-about2-contact-block .sf-contact-info-card {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.sf-about2-contact-plain .sf-contact-form,
.sf-about2-contact-block .sf-contact-form {
  padding: 0 !important;
}
/* Contact : 2 colonnes desktop uniquement ? le !important ne doit pas
   ?craser le stack mobile (sinon formulaire + infos c?te ? c?te trop ?troits). */
@media (min-width: 901px) {
  .sf-contact-layout {
    grid-template-columns: minmax(0, 1.55fr) minmax(0, .72fr) !important;
  }
}
@media (max-width: 900px) {
  .sf-contact-layout {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.25rem !important;
  }
  .sf-contact-form,
  .sf-contact-details {
    width: 100% !important;
    max-width: 100% !important;
  }
  .sf-contact-info-row > span:last-child,
  .sf-contact-info-row > span:last-child a {
    overflow-wrap: anywhere;
    word-break: break-word;
  }
}

/* Hero promo: overlay lisible + hauteur raisonnable (desktop/tablette) */
.sf-home-hero-promo .site-banner {
  position: relative !important;
  overflow: hidden !important;
  min-height: 420px !important;
  height: clamp(420px, 52vh, 560px) !important;
  --banner-mobile-height: 460px;
  --banner-tablet-height: 440px;
}
.sf-home-hero-promo .site-banner .entry-media {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 0;
  background: #111827;
}
.sf-home-hero-promo .site-banner .entry-media img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center;
}
.sf-home-hero-promo .site-banner .entry-media::after {
  content: "";
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(90deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.45) 42%, rgba(0,0,0,.2) 70%, rgba(0,0,0,.15) 100%);
}
.sf-home-hero-promo .site-banner .entry-wrapper {
  position: absolute !important;
  inset: 0 !important;
  z-index: 2 !important;
  display: flex !important;
  align-items: center !important;
  padding: 20px 28px 20px 56px !important; /* d?calage gauche : fl?che slick */
  background: transparent !important;
}
.sf-home-hero-promo .site-banner .entry-inner { max-width: 52% !important; }
.sf-home-hero-promo .site-banner .entry-title {
  color: #fff !important;
  font-size: clamp(22px, 2.4vw, 34px) !important;
  line-height: 1.2 !important;
  text-shadow: 0 1px 3px rgba(0,0,0,.45);
}
.sf-home-hero-promo .site-banner .entry-content p {
  color: rgba(255,255,255,.92) !important;
  font-size: 15px !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.35);
}
.sf-home-hero-promo .site-banner .btn {
  color: #fff !important;
  border-color: rgba(255,255,255,.75) !important;
  background: rgba(255,255,255,.12) !important;
}
@media (max-width: 767.98px) {
  .sf-home-hero-promo .site-banner { height: 396px !important; min-height: 396px !important; }
  .sf-home-hero-promo .site-banner .entry-inner { max-width: 88% !important; }
  .sf-home-hero-promo .site-banner .entry-title { font-size: 26px !important; line-height: 1.2 !important; }
  .sf-home-hero-promo .site-banner .entry-wrapper { padding: 22px 20px 22px 28px !important; }
  .sf-home-hero-promo .site-banner .entry-media::after {
    background: linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.55) 45%, rgba(0,0,0,.78) 100%);
  }
}

/* Sous-cat?gories : d?pliable */
.sf-subcat-details { margin: 0; }
.sf-subcat-summary {
  cursor: pointer;
  list-style: none;
  font-size: 14px;
  font-weight: 700;
  color: var(--sf-ink, #111827);
  padding: 4px 0 10px;
}
.sf-subcat-summary::-webkit-details-marker { display: none; }
.sf-subcat-summary::after {
  content: "?";
  float: right;
  font-weight: 400;
  color: #6b7280;
}
.sf-subcat-details:not([open]) .sf-subcat-summary::after { content: "+"; }
.sf-subcat-details[open] .sf-subcat-summary::after { content: "?"; }
.sf-subcat-details:not([open]) .sf-subcat-filter-list,
.sf-subcat-details:not([open]) .sf-subcat-hint,
.sf-subcat-details:not([open]) .sf-subcat-links { display: none; }

/* Hero: prix lisibles + image toujours visible */
.sf-home-hero-promo .site-banner .banner-price .price,
.sf-home-hero-promo .site-banner .banner-price .price ins,
.sf-home-hero-promo .site-banner .banner-price .price bdi {
  color: #e02b2b !important;
}
.sf-home-hero-promo .site-banner .banner-price .price del,
.sf-home-hero-promo .site-banner .banner-price .price del bdi {
  color: rgba(255,255,255,.75) !important;
}
.sf-home-hero-promo .site-banner .banner-price .price-description {
  color: rgba(255,255,255,.8) !important;
  opacity: 1 !important;
}
.sf-home-hero-promo .site-banner .entry-media img {
  opacity: 1 !important;
  visibility: visible !important;
}
@media (max-width: 767.98px) {
  .sf-home-hero-promo .site-banner .entry-media::after {
    background: linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.4) 40%, rgba(0,0,0,.75) 100%) !important;
  }
}


/* ==========================================================================
 * Round UX ? hero mobile, cat?gories, navbar, drawer, prix cartes
 * ========================================================================== */

/* Bande cat?gories : force 2 colonnes m?me si Slick est encore actif */
/* Ne pas forcer display:block ici : ?a r?affichait le carrousel desktop sur mobile. */
.sf-home-category-band {
  width: calc(100% - 80px) !important;
  max-width: 1360px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}
@media (max-width: 991.98px) {
  .sf-home-category-band { width: calc(100% - 48px) !important; max-width: none !important; }
}
@media (max-width: 767.98px) {
  .sf-home-category-band { width: calc(100% - 30px) !important; max-width: none !important; }
}
@media (max-width: 767.98px) {
  .sf-home-category-grid .site-slider,
  .sf-home-category-grid .site-slider.sf-mobile-category-grid-active {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    max-height: none !important;
    overflow: visible !important;
  }
  .sf-home-category-grid .site-slider .slick-list,
  .sf-home-category-grid .site-slider .slick-track {
    display: contents !important;
  }
  .sf-home-category-grid .site-slider .slick-slide {
    display: block !important;
    width: auto !important;
    float: none !important;
    height: auto !important;
    min-width: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
  .sf-home-category-grid .site-slider .slick-slide > div { display: contents !important; }
  .sf-home-category-grid .store-category-box .category-detail .entry-title a {
    font-size: 13px !important;
    line-height: 1.3 !important;
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: auto;
  }
}

/* Badges promo sur tuiles cat?gories (haut gauche, rouge comme cartes produit) */
.store-category-box.style-1 .category-thumbnail { position: relative !important; }
.store-category-box.style-1 .sf-category-discount {
  position: absolute; top: 8px; left: 8px; z-index: 4;
  display: flex; pointer-events: none;
}
.store-category-box.style-1 .sf-category-discount .badge.sale {
  font-size: 12px !important;
  padding: 5px 8px !important;
  white-space: nowrap !important;
  line-height: 1.15 !important;
}

/* Prix cartes produit ? promo plus lisible desktop (~+35 %) ; barr? reste secondaire */
.products .product .product-price-wrapper .price > .woocommerce-Price-amount,
.products .product .product-price-wrapper .price > .woocommerce-Price-amount bdi {
  font-size: 18px !important;
  font-weight: 700 !important;
}
.products .product .product-price-wrapper .price ins,
.products .product .product-price-wrapper .price ins .amount,
.products .product .product-price-wrapper .price ins bdi {
  color: #dc2626 !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  line-height: 1.2 !important;
}
.products .product .product-price-wrapper .price del,
.products .product .product-price-wrapper .price del .amount,
.products .product .product-price-wrapper .price del bdi {
  color: #6b7280 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
}
.products .product .product-price-wrapper .sf-card-save {
  display: block;
  margin-top: 3px;
  color: var(--primary-dark, #7A3F18);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.25;
  white-space: nowrap;
  max-width: 100%;
  letter-spacing: -0.01em;
}
/* ?toiles cartes : jaunes, visibles seulement s'il y a des avis */
.products .product .product-rating:not(.sf-has-reviews) {
  display: none !important;
}
.products .product .product-rating.sf-has-reviews {
  display: flex !important;
  align-items: center;
  gap: 5px;
  min-height: 18px;
  margin-bottom: 6px !important;
}
.products .product .product-rating .star-rating {
  font-size: 14px !important;
  letter-spacing: 1px;
  color: #f59e0b !important;
}
.products .product .product-rating .star-rating::before,
.products .product .product-rating .star-rating span::before {
  color: #f59e0b !important; /* jaune vif m?me si note partielle */
}
.products .product .product-rating .count-text {
  color: #6b7280;
  font-size: 12px;
  font-weight: 600;
}
.products .product .product-rating .count-text::before {
  content: "(";
}
.products .product .product-rating .count-text::after {
  content: ")";
}
@media (min-width: 768px) {
  .products .product .product-price-wrapper .price ins,
  .products .product .product-price-wrapper .price ins .amount,
  .products .product .product-price-wrapper .price ins bdi {
    font-size: 21px !important;
  }
  .products .product .product-price-wrapper .price > .woocommerce-Price-amount,
  .products .product .product-price-wrapper .price > .woocommerce-Price-amount bdi {
    font-size: 19px !important;
  }
}
@media (max-width: 767.98px) {
  .products .product .product-price-wrapper .price {
    display: inline-flex !important;
    flex-direction: row-reverse !important;
    flex-wrap: wrap !important;
    align-items: baseline !important;
    gap: 8px !important;
    row-gap: 2px !important;
  }
  .products .product .product-price-wrapper .price > .woocommerce-Price-amount,
  .products .product .product-price-wrapper .price > .woocommerce-Price-amount bdi,
  .products .product .product-price-wrapper .price ins,
  .products .product .product-price-wrapper .price ins .amount,
  .products .product .product-price-wrapper .price ins bdi {
    font-size: 19px !important; /* +~20 % vs 16px */
  }
  .products .product .product-price-wrapper .price del,
  .products .product .product-price-wrapper .price del .amount,
  .products .product .product-price-wrapper .price del bdi {
    font-size: 13px !important;
  }
  .products .product .product-price-wrapper .sf-card-save {
    width: 100%;
    font-size: 12.5px; /* +~15 % vs 11px, 1 ligne sans coupe */
    white-space: nowrap !important;
  }
  .store-category-box.style-1 .sf-category-discount .badge.sale {
    font-size: 13px !important; /* jusqu'? XX% plus lisible, 1 ligne */
    padding: 5px 9px !important;
    white-space: nowrap !important;
  }
}

/* Navbar un peu plus haute (surtout mobile, max ~x1.4) */
@media (max-width: 767.98px) {
  .site-header .header-main {
    min-height: 80px !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
    box-sizing: border-box;
  }
  /* +15 % : logo, burger, ic?ne panier */
  .header-main .custom-logo,
  .header-main .site-brand img,
  .header-main .site-logo img,
  .site-header .custom-logo {
    max-height: 61px !important;
    max-width: min(253px, 67vw);
  }
  .header-main .menu-drawer-toggle.sf-menu-toggle {
    width: 51px !important;
    height: 51px !important;
  }
  .sf-menu-toggle-icon {
    width: 23px;
    height: 18px;
  }
  .sf-menu-toggle-icon > span {
    width: 23px;
    height: 2.3px;
  }
  body.site-menu-drawer-active .sf-menu-toggle-icon > span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
  }
  body.site-menu-drawer-active .sf-menu-toggle-icon > span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
  }
  .site-header .quick-button.mini-cart-button .action-link .action-icon {
    font-size: 1.87rem;
    width: 2.73rem;
    height: 2.59rem;
  }
}

/* (drawer rules moved to canonical block at EOF) */


/* Hero: fl?ches slick hors du texte (mobile: masqu?es, desktop: texte d?cal?) */
.sf-home-hero-promo .slick-prev { left: 8px !important; }
.sf-home-hero-promo .slick-next { right: 8px !important; }
@media (max-width: 767.98px) {
  .sf-home-hero-promo .slick-arrow,
  .sf-home-hero-promo .slick-nav.slick-arrow { display: none !important; }
  .sf-home-hero-promo .site-banner .entry-wrapper {
    padding: 24px 18px 28px 18px !important;
  }
}

/* ==========================================================================
 * Alignement mobile hero + cat?gories + drawer (jardin = electro)
 * ========================================================================== */

/* M?me largeur responsive : hero et bande cat?gories */
.sf-home-hero-promo:not(.sf-home-hero-editorial),
.sf-home-category-band {
  width: calc(100% - 80px) !important;
  max-width: 1360px !important;
  margin-inline: auto !important;
  box-sizing: border-box !important;
}
.sf-home-hero-promo > .e-con-inner,
.sf-home-category-band > .e-con-inner {
  width: 100% !important;
  max-width: none !important;
  padding-inline: 0 !important;
}

/* CTA hero : blanc plein, texte noir */
.sf-home-hero-promo .site-banner .btn,
.sf-home-hero-promo .site-banner .entry-footer a.btn {
  background: #fff !important;
  color: #111827 !important;
  border: 0 !important;
  border-color: #fff !important;
  font-weight: 700 !important;
  box-shadow: 0 1px 2px rgba(0,0,0,.12);
}
.sf-home-hero-promo .site-banner .btn i,
.sf-home-hero-promo .site-banner .btn .klb-icon-move-right {
  color: #111827 !important;
}

/* Bandeau top : jamais de SAV */
.global-notification .sf-topbar-support { display: none !important; }

@media (max-width: 991.98px) {
  .sf-home-hero-promo:not(.sf-home-hero-editorial) {
    width: calc(100% - 24px) !important;
    max-width: none !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
  }
  .sf-home-hero-promo > .e-con-inner {
    width: 100% !important;
    max-width: none !important;
    padding-inline: 0 !important;
  }
  .sf-home-hero-promo .site-banner,
  .sf-home-hero-promo .site-banner .entry-media,
  .sf-home-hero-promo .site-banner .entry-media img {
    border-radius: 12px !important;
  }
  .sf-home-hero-promo .site-banner,
  .sf-home-hero-promo .site-slider .slick-list {
    overflow: hidden !important;
  }
}

@media (max-width: 767.98px) {
  .sf-home-category-band {
    width: calc(100% - 24px) !important;
    max-width: none !important;
  }

  /* Hero typo / CTA / prix : titre +30 %, reste +20 % (mobile) */
  .sf-home-hero-promo .site-banner .entry-title {
    font-size: 34px !important;
    line-height: 1.28 !important;
    text-wrap: balance;
  }
  .sf-home-hero-promo .site-banner .entry-header {
    margin-bottom: 14px !important;
  }
  .sf-home-hero-promo .site-banner .entry-body {
    margin-bottom: 16px !important;
  }
  .sf-home-hero-promo .site-banner .entry-content {
    margin-top: 8px !important;
  }
  .sf-home-hero-promo .site-banner .entry-footer {
    margin-top: 14px !important;
  }
  .sf-home-hero-promo .site-banner .banner-price {
    margin-top: 14px !important;
  }
  .sf-home-hero-promo .site-banner .banner-badge {
    font-size: 14.5px !important;
    padding: 8px 19px !important;
  }
  .sf-home-hero-promo .site-banner .entry-content p {
    font-size: 17px !important;
    line-height: 1.45 !important;
    text-wrap: pretty;
  }
  .sf-home-hero-promo .site-banner .btn,
  .sf-home-hero-promo .site-banner .entry-footer a.btn {
    font-size: 17px !important;
    line-height: 1.2 !important;
    padding: 13px 19px !important;
    min-height: 50px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
    border-radius: 8px !important;
  }
  .sf-home-hero-promo .site-banner .banner-price .price,
  .sf-home-hero-promo .site-banner .banner-price .price ins,
  .sf-home-hero-promo .site-banner .banner-price .price ins bdi,
  .sf-home-hero-promo-card .banner-price .price {
    font-size: 34px !important;
    font-weight: 800 !important;
  }
  .sf-home-hero-promo .site-banner .banner-price .price del,
  .sf-home-hero-promo .site-banner .banner-price .price del bdi {
    font-size: 18px !important;
  }
  .sf-home-hero-promo .site-banner .banner-price .price-description,
  .sf-home-hero-promo-card .banner-price .price-description {
    font-size: 14.5px !important;
  }

  /* Cat?gories : un peu plus grandes, titres + badges l?g?rement up */
  .sf-home-category-grid .site-slider,
  .sf-home-category-grid .site-slider.sf-mobile-category-grid-active {
    gap: 12px !important;
  }
  .sf-home-category-grid .store-category-box.style-1,
  .sf-home-category-band .store-category-box.style-1 {
    padding: 14px 10px 12px !important;
  }
  .sf-home-category-grid .store-category-box .category-detail .entry-title a,
  .sf-home-category-band .store-category-box .category-detail .entry-title a {
    font-size: 14.5px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;
  }
  .store-category-box.style-1 .sf-category-discount .badge.sale {
    font-size: 13px !important;
    padding: 5px 9px !important;
    white-space: nowrap !important;
  }

  /* (drawer rules moved to canonical block at EOF) */
}

/* ==========================================================================
 * Drawer burger ? tailles identiques jardin = electro (r?f. jardin)
 * ========================================================================== */
@media (max-width: 767.98px) {
  body #menu-drawer.site-menu-drawer .site-drawer-inner .site-menu.vertical:not(.drawer-secondary) > ul.menu > li.menu-item > a,
  body #menu-drawer .site-menu.vertical:not(.drawer-secondary) .menu > .menu-item > a {
    font-size: 17px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    padding: 14px 0 !important;
    min-height: 48px !important;
    display: flex !important;
    align-items: center !important;
    box-sizing: border-box !important;
  }
  body #menu-drawer.site-menu-drawer .site-drawer-inner .site-menu.drawer-secondary > ul.menu > li.menu-item > a,
  body #menu-drawer .drawer-secondary .menu > .menu-item > a {
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1.3 !important;
    padding: 6px 0 !important;
    min-height: 0 !important;
  }
  body #menu-drawer .drawer-secondary .menu > .menu-item + .menu-item {
    margin-top: 0 !important;
  }
  body #menu-drawer .drawer-secondary.pb-28 {
    padding-bottom: 20px !important;
  }
}

/* ==========================================================================
 * Drawer search + bloc contact pages FAQ / remboursements
 * ========================================================================== */
#menu-drawer .sf-drawer-search {
  margin: 0 0 14px;
  padding: 0 0 14px;
  border-bottom: 1px solid rgba(17, 24, 39, .08);
}
#menu-drawer .sf-drawer-search-form {
  display: flex !important;
  align-items: center;
  gap: 0;
  position: relative;
  margin: 0;
  border: 1px solid #dfe3e8;
  border-radius: 10px;
  background: #f7f8fa;
  overflow: hidden;
}
#menu-drawer .sf-drawer-search-form .search-input {
  flex: 1 1 auto;
  min-width: 0;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  height: 44px !important;
  padding: 0 12px !important;
  font-size: 15px !important;
}
#menu-drawer .sf-drawer-search-form button[type="submit"] {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  display: inline-grid;
  place-items: center;
  color: var(--sf-ink, #111827);
  background: transparent;
  border: 0;
}
#menu-drawer .sf-drawer-search-form .sf-search-results {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  z-index: 20;
  max-height: 280px;
  overflow: auto;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  box-shadow: 0 10px 28px rgba(15, 23, 42, .12);
}

.sf-page-contact-block {
  margin: 36px auto 0;
  max-width: 760px;
  padding: 28px 24px;
  border-top: 1px solid var(--sf-line, #e5e7eb);
  background: var(--sf-surface, #f7f8f7);
  border-radius: 0;
}
.sf-page-contact-inner .sf-eyebrow { margin: 0 0 6px; }
.sf-page-contact-inner h2 {
  margin: 0 0 8px;
  font-size: 22px;
  font-weight: 800;
  color: var(--sf-ink, #111827);
}
.sf-page-contact-lead {
  margin: 0 0 18px;
  color: var(--sf-muted, #58645d);
  font-size: 15px;
  line-height: 1.5;
}
.sf-page-contact-grid {
  display: grid;
  gap: 14px;
  margin-bottom: 18px;
}
.sf-page-contact-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
}
.sf-faq-page .sf-faq-section,
.sf-faq-page .sf-faq-accordion { max-width: 760px; margin-inline: auto; }
.sf-faq-page-hero { max-width: 760px; margin: 0 auto 24px; }
.sf-refund-page { max-width: 760px; margin-inline: auto; }
.sf-refund-page ul { margin: 0 0 16px; padding-left: 18px; color: var(--sf-muted); line-height: 1.6; }
.sf-refund-page .sf-page-contact-block { max-width: none; }
@media (max-width: 767.98px) {
  .sf-page-contact-block { padding: 22px 16px; margin-top: 28px; }
  .sf-page-contact-inner h2 { font-size: 20px; }
}

/* FINAL ? cat?gories : 1 bande seule (grille mobile / carrousel desktop).
   Doit rester en fin de fichier pour gagner sur tout display:block ant?rieur. */
body.home .sf-home-category-band.sf-home-category-grid { display: none !important; }
body.home .sf-home-category-band.sf-home-category-carousel { display: block !important; }
@media (max-width: 991.98px) {
  body.home .sf-home-category-band.sf-home-category-grid { display: block !important; }
  body.home .sf-home-category-band.sf-home-category-carousel,
  body.home .sf-home-category-carousel {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    pointer-events: none !important;
  }
  /* Anti-doublons : clones slick / slides hors piste ne doivent jamais r?appara?tre */
  body.home .sf-home-category-carousel .slick-cloned,
  body.home .sf-home-category-carousel .slick-slide {
    display: none !important;
  }
  body.home .sf-home-category-grid .site-slider {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
  body.home .sf-home-category-grid .site-slider > .slider-item,
  body.home .sf-home-category-grid .site-slider .slick-slide > div > .slider-item,
  body.home .sf-home-category-grid .slider-item {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    float: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    position: relative !important;
    left: auto !important;
  }
  body.home .sf-home-category-grid .slick-list,
  body.home .sf-home-category-grid .slick-track {
    display: contents !important;
    width: auto !important;
    transform: none !important;
  }
  body.home .sf-home-category-grid .slick-cloned { display: none !important; }
}

/* Grilles produits home ? classes d?di?es, contrats s?par?s PC / tablette / mobile.
   Avant : repeat(4) jusqu'? 1023px ? cartes ~82px illisibles sur t?l?phone. */
.products.sf-home-product-row.sf-product-grid-bounded {
  display: grid !important;
  gap: 12px !important;
  justify-content: stretch !important;
}
.products.sf-home-product-row.sf-product-grid-bounded > .product {
  min-width: 0 !important;
  max-width: none !important;
  width: 100% !important;
}

/* PC : 5 cartes sur une ligne */
@media (min-width: 1024px) {
  .products.sf-home-product-row.sf-product-grid-bounded {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  }
}

/* Tablette : 3 cartes, on cache la 4e/5e */
@media (min-width: 768px) and (max-width: 1023.98px) {
  .products.sf-home-product-row.sf-product-grid-bounded {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
  .products.sf-home-product-row.sf-product-grid-bounded > .product:nth-child(n+4) {
    display: none !important;
  }
}

/* Mobile : exactement 2 colonnes (classe d?di?e), 2?2 lisible */
@media (max-width: 767.98px) {
  .products.sf-home-product-row.sf-product-grid-bounded,
  .products.sf-home-product-row.sf-home-product-row--mobile2 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    justify-content: stretch !important;
  }
  .products.sf-home-product-row.sf-product-grid-bounded > .product:nth-child(n+5) {
    display: none !important;
  }
  .products.sf-home-product-row .product .content-wrapper {
    padding: 8px 8px 10px !important;
  }
  .products.sf-home-product-row .product .woocommerce-loop-product__title,
  .products.sf-home-product-row .product .product-title,
  .products.sf-home-product-row .product h3,
  .products.sf-home-product-row .product .content-wrapper a {
    font-size: 13px !important;
    line-height: 1.3 !important;
  }
  /* Notes : visibles seulement avec .sf-has-reviews (voir r?gles globales) */
  .products.sf-home-product-row .product .product-rating:not(.sf-has-reviews) {
    display: none !important;
  }
  .products.sf-home-product-row .product .product-rating.sf-has-reviews {
    display: flex !important;
    margin-bottom: 4px !important;
  }
  .products.sf-home-product-row .product .product-rating .star-rating {
    font-size: 13px !important;
  }
  /* Ne pas ?craser les prix promo agrandis : r?gles cibl?es (+~20 % mobile) */
  .products.sf-home-product-row .product .price del,
  .products.sf-home-product-row .product .price del .amount,
  .products.sf-home-product-row .product .price del bdi {
    font-size: 12px !important;
  }
  .products.sf-home-product-row .product .price ins,
  .products.sf-home-product-row .product .price ins .amount,
  .products.sf-home-product-row .product .price ins bdi,
  .products.sf-home-product-row .product .price > .woocommerce-Price-amount,
  .products.sf-home-product-row .product .price > .woocommerce-Price-amount bdi {
    font-size: 19px !important;
    font-weight: 700 !important;
  }
  .products.sf-home-product-row .product .sf-card-save {
    font-size: 12.5px !important;
    white-space: nowrap !important;
  }
  .products.sf-home-product-row .product .add_to_cart_button,
  .products.sf-home-product-row .product a.button {
    min-height: 38px !important;
    padding: 0 8px !important;
    font-size: 12px !important;
    white-space: normal !important;
    line-height: 1.2 !important;
    text-align: center !important;
  }
  .products.sf-home-product-row .product .sf-stock-line,
  .products.sf-home-product-row .product .stock-status,
  .products.sf-home-product-row .product .product-stock span,
  .products.sf-home-product-row .product .product-progress-detail span {
    font-size: 11px !important;
  }
}

/* --- PDP qty + ATC mobile: no overlap, height +20% (both sites) --- */
.product-detail-inner form.cart,
.single-product-wrapper form.cart,
.single .product-type-simple form.cart,
form.cart.single-ajax {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  gap: 8px !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
.product-detail-inner form.cart .quantity,
.single-product-wrapper form.cart .quantity,
.single .product-type-simple form.cart .quantity,
form.cart.single-ajax .quantity {
  --qty-size: 62px;
  flex: 0 0 118px !important;
  display: inline-flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  width: 118px !important;
  min-width: 118px !important;
  max-width: 118px !important;
  height: 62px !important;
  min-height: 62px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}
.product-detail-inner form.cart .quantity .quantity-button,
.single-product-wrapper form.cart .quantity .quantity-button,
.single .product-type-simple form.cart .quantity .quantity-button,
form.cart.single-ajax .quantity .quantity-button {
  flex: 0 0 34px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  height: auto !important;
  min-height: 0 !important;
  align-self: stretch !important;
}
.product-detail-inner form.cart .quantity .qty,
.single-product-wrapper form.cart .quantity .qty,
.single .product-type-simple form.cart .quantity .qty,
form.cart.single-ajax .quantity .qty {
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  align-self: stretch !important;
  font-size: 15px !important;
  line-height: 1 !important;
}
.product-detail-inner form.cart .single_add_to_cart_button,
.product-detail-inner form.cart button[name="add-to-cart"],
.single-product-wrapper form.cart .single_add_to_cart_button,
.single-product-wrapper form.cart button[name="add-to-cart"],
.single .product-type-simple form.cart .single_add_to_cart_button,
form.cart.single-ajax .single_add_to_cart_button {
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  height: 62px !important;
  min-height: 62px !important;
  box-sizing: border-box !important;
  padding-left: 12px !important;
  padding-right: 12px !important;
}
.product-detail-inner form.cart .sf-sticky-price,
.single-product-wrapper form.cart .sf-sticky-price,
form.cart.single-ajax .sf-sticky-price {
  display: none !important;
}
@media (max-width: 380px) {
  .product-detail-inner form.cart .quantity,
  .single-product-wrapper form.cart .quantity,
  .single .product-type-simple form.cart .quantity,
  form.cart.single-ajax .quantity {
    flex-basis: 108px !important;
    width: 108px !important;
    min-width: 108px !important;
    max-width: 108px !important;
  }
  .product-detail-inner form.cart .quantity .quantity-button,
  .single-product-wrapper form.cart .quantity .quantity-button,
  .single .product-type-simple form.cart .quantity .quantity-button,
  form.cart.single-ajax .quantity .quantity-button {
    flex-basis: 30px !important;
    width: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
  }
}

/* ==========================================================================
 * 2026-07-29c ? Hero mobile: coins ronds + contenu CENTR? (slider intact)
 * ========================================================================== */
@media (max-width: 991.98px) {
  .sf-home-hero-promo.e-con-boxed:not(.sf-home-hero-editorial),
  .sf-home-hero-promo:not(.sf-home-hero-editorial) {
    width: calc(100% - 24px) !important;
    max-width: none !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
    --padding-left: 0px !important;
    --padding-right: 0px !important;
  }
  .sf-home-hero-promo > .e-con-inner {
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
    padding-inline: 0 !important;
  }
  .sf-home-hero-promo .elementor-widget-container,
  .sf-home-hero-promo .site-slider {
    width: 100% !important;
    max-width: none !important;
  }
  .sf-home-hero-promo .site-slider .slick-list {
    overflow: hidden !important;
    width: 100% !important;
    border-radius: 16px !important;
  }
  .sf-home-hero-promo .site-banner,
  .sf-home-hero-promo .site-banner .entry-media,
  .sf-home-hero-promo .site-banner .entry-media img {
    border-radius: 16px !important;
  }
}

@media (max-width: 767.98px) {
  .sf-home-hero-promo .site-banner {
    height: min(72vh, 520px) !important;
    min-height: 440px !important;
    max-height: none !important;
    --banner-mobile-height: 480px;
  }
  .sf-home-hero-promo .site-banner .entry-media {
    height: 100% !important;
    min-height: 100% !important;
  }
  .sf-home-hero-promo .site-banner .entry-wrapper {
    position: absolute !important;
    inset: 0 !important;
    display: flex !important;
    align-items: center !important;      /* vertical center */
    justify-content: center !important;  /* horizontal center */
    padding: 28px 18px 32px !important;
    box-sizing: border-box !important;
    text-align: center !important;
  }
  .sf-home-hero-promo .site-banner .entry-media {
    position: absolute !important;
    inset: 0 !important;
  }
  .sf-home-hero-promo .site-banner .entry-media::after {
    background: linear-gradient(
      180deg,
      rgba(0, 0, 0, 0.30) 0%,
      rgba(0, 0, 0, 0.52) 45%,
      rgba(0, 0, 0, 0.72) 100%
    ) !important;
  }
  .sf-home-hero-promo .site-banner .entry-inner {
    max-width: 92% !important;
    width: 100% !important;
    margin-inline: auto !important;
    text-align: center !important;
  }
  .sf-home-hero-promo .site-banner .entry-header,
  .sf-home-hero-promo .site-banner .entry-body,
  .sf-home-hero-promo .site-banner .entry-content,
  .sf-home-hero-promo .site-banner .entry-footer {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
  }
  .sf-home-hero-promo .site-banner .entry-header { margin: 0 0 14px !important; }
  .sf-home-hero-promo .site-banner .entry-body { margin: 0 0 16px !important; }
  .sf-home-hero-promo .site-banner .entry-content { margin-top: 10px !important; }
  .sf-home-hero-promo .site-banner .entry-footer {
    margin-top: 16px !important;
    gap: 14px !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
  }
  .sf-home-hero-promo .site-banner .banner-price {
    margin-top: 0 !important;
    align-items: center !important;
  }
  .sf-home-hero-promo .site-banner .entry-title,
  .sf-home-hero-promo .site-banner .entry-content p {
    text-align: center !important;
  }
}

/* Lead forms (newsletter / contact) toast */
.sf-lead-toast {
  position: fixed;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%) translateY(16px);
  z-index: 99999;
  max-width: min(92vw, 420px);
  padding: 14px 18px;
  border-radius: 10px;
  background: #111827;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
  box-shadow: 0 10px 30px rgba(0,0,0,.28);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
}
.sf-lead-toast.is-visible { opacity: 1; transform: translateX(-50%) translateY(0); }
.sf-lead-toast.is-ok { background: var(--primary-dark, #7A3F18); }
.sf-lead-toast.is-err { background: #991b1b; }
form.sf-newsletter-form.is-submitting,
form.sf-contact-native-form.is-submitting,
.sf-contact-form form.is-submitting { opacity: .72; pointer-events: none; }

/* Order tracking (Apex) */
.sf-track-result {
  margin: 20px 0 8px;
  padding: 18px 20px;
  border: 1px solid var(--sf-line, #e5e7eb);
  border-radius: 12px;
  background: #fff;
}
.sf-track-result.is-error {
  border-color: #fecaca;
  background: #fef2f2;
}
.sf-track-result.is-ok {
  border-color: #bbf7d0;
  background: #f0fdf4;
}
.sf-track-title {
  margin: 0 0 12px;
  font-size: 18px;
  font-weight: 700;
  color: var(--sf-ink, #111827);
}
.sf-track-msg { margin: 0 0 12px; font-size: 14px; line-height: 1.5; color: var(--sf-muted, #4b5563); }
.sf-track-result.is-error .sf-track-msg { color: #991b1b; margin: 0; }
.sf-track-row {
  display: grid;
  grid-template-columns: minmax(120px, 160px) minmax(0, 1fr);
  gap: 8px 14px;
  padding: 8px 0;
  border-top: 1px solid rgba(0,0,0,.06);
  font-size: 14px;
}
.sf-track-row span { color: var(--sf-muted, #6b7280); }
.sf-track-row strong { color: var(--sf-ink, #111827); word-break: break-word; }
.sf-track-status { color: var(--primary-dark, #7A3F18) !important; }
.sf-track-actions { margin: 16px 0 0; }
.sf-track-actions .sf-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 20px;
  border-radius: 8px;
  background: var(--primary, #A65B2A);
  color: #fff !important;
  font-weight: 700;
  text-decoration: none;
}
form.track_order.is-submitting,
form.woocommerce-form-track-order.is-submitting { opacity: .72; pointer-events: none; }


/* ---- Checkout v3 ? bento conversion (UDJ) ---- */
#sf-checkout-page .sf-checkout-head p {
  margin: 6px 0 0;
  color: #6b7280;
  font-size: 14px;
  line-height: 1.45;
}
#sf-checkout-page .sf-checkout-v3 {
  grid-template-columns: minmax(0, 1.2fr) minmax(300px, 360px);
  gap: 24px;
  align-items: start;
}
#sf-checkout-page .sf-form-stack {
  display: grid;
  gap: 14px;
  min-width: 0;
}
#sf-checkout-page .sf-bento-card {
  margin: 0;
  padding: 20px 22px;
  border: 1px solid #eef0f2;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(23, 33, 27, 0.03);
}
#sf-checkout-page .sf-bento-card h3 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 14px;
  padding: 0 0 12px;
  border-bottom: 1px solid #eef2ef;
  font-size: 15px;
  font-weight: 800;
  color: var(--sf-ink, #17211b);
  line-height: 1.25;
}
#sf-checkout-page .sf-card-ic {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 9px;
  background: #fff;
  color: #111;
  border: 1px solid #e5e7eb;
  flex: 0 0 auto;
}
#sf-checkout-page .sf-card-ic svg { width: 16px; height: 16px; color: #111; }
#sf-checkout-page .sf-checkout-v3 .sf-field { margin-bottom: 12px; }
#sf-checkout-page .sf-checkout-v3 .sf-field:last-child { margin-bottom: 0; }
#sf-checkout-page .sf-checkout-v3 .sf-field label {
  display: block;
  margin: 0 0 5px;
  font-size: 13px;
  font-weight: 600;
  color: #374151;
}
#sf-checkout-page .sf-checkout-v3 .sf-field input,
#sf-checkout-page .sf-checkout-v3 .sf-field select,
#sf-checkout-page .sf-checkout-v3 .sf-field textarea {
  width: 100%;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #f8faf9;
}
#sf-checkout-page .sf-checkout-v3 .sf-field input:focus,
#sf-checkout-page .sf-checkout-v3 .sf-field select:focus,
#sf-checkout-page .sf-checkout-v3 .sf-field textarea:focus {
  background: #fff;
}
#sf-checkout-page .sf-field-row { gap: 12px; margin-bottom: 0; }
#sf-checkout-page .sf-field-row-zip {
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr);
  gap: 12px;
}
#sf-checkout-page .sf-checkout-more {
  margin-top: 8px;
  padding: 8px 12px;
  border: 1px dashed #d1d5db;
  border-radius: 10px;
  background: #fafafa;
}
#sf-checkout-page .sf-checkout-more summary {
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  color: #374151;
}

#sf-checkout-page .sf-ship-cards { display: grid; gap: 8px; }
#sf-checkout-page .sf-ship-card { display: block; margin: 0; cursor: pointer; }
#sf-checkout-page .sf-ship-card > input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
#sf-checkout-page .sf-ship-card-body {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 11px 12px;
  border: 1.5px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
#sf-checkout-page .sf-ship-card.is-selected .sf-ship-card-body,
#sf-checkout-page .sf-ship-card > input:checked + .sf-ship-card-body {
  border-color: #111827;
  background: #fff;
  box-shadow: 0 0 0 1px #111827;
}
#sf-checkout-page .sf-ship-card-ic {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: transparent;
  color: #111827;
}
#sf-checkout-page .sf-ship-card-ic svg { width: 17px; height: 17px; color: #111827; }
#sf-checkout-page .sf-ship-card-ic.sf-ship-carrier-ic {
  width: 48px;
  height: 48px;
  padding: 0;
  border-radius: 8px;
  background: transparent;
  overflow: hidden;
  flex-shrink: 0;
}
#sf-checkout-page .sf-ship-carrier-ic picture {
  display: block;
  width: 48px;
  height: 48px;
  line-height: 0;
}
#sf-checkout-page .sf-ship-carrier-ic img {
  display: block;
  width: 48px;
  height: 48px;
  object-fit: contain;
}
#sf-checkout-page .sf-ship-card-txt { display: grid; gap: 1px; min-width: 0; }
#sf-checkout-page .sf-ship-card-txt strong {
  color: var(--sf-ink, #17211b);
  font-size: 13.5px;
  line-height: 1.25;
}
#sf-checkout-page .sf-ship-card-txt small { color: #6b7280; font-size: 12px; }
#sf-checkout-page .sf-ship-card-price {
  color: var(--sf-ink, #17211b);
  font-size: 13.5px;
  white-space: nowrap;
}
#sf-checkout-page .sf-ship-card-price.is-free,
#sf-checkout-page .sf-ship-val.is-free {
  color: #111827;
}

#sf-checkout-page .sf-checkout-side {
  display: block;
  position: sticky;
  top: 18px;
  min-width: 0;
}
#sf-checkout-page .sf-order-bento-v3 {
  padding: 18px;
  border: 1px solid #eef0f2;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(23, 33, 27, 0.04);
}
#sf-checkout-page .sf-order-bento-v3 > h3 {
  margin: 0 0 12px;
  padding: 0;
  border: 0;
  font-size: 15px;
  font-weight: 800;
  color: var(--sf-ink, #17211b);
}
#sf-checkout-page .sf-bento-count { font-weight: 600; color: #6b7280; }
#sf-checkout-page .sf-order-bento-v3 .sf-bento-products {
  display: grid;
  gap: 0;
  margin: 0 0 12px;
  padding: 0 0 4px;
  border-bottom: 1px solid #eef2ef;
}
#sf-checkout-page .sf-order-bento-v3 .sf-bento-item {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 8px 0;
}
#sf-checkout-page .sf-bento-thumb { position: relative; width: 52px; }
#sf-checkout-page .sf-bento-thumb .sf-ci-img,
#sf-checkout-page .sf-bento-thumb .sf-ci-img img {
  display: block;
  width: 52px;
  height: 52px;
  border-radius: 10px;
  object-fit: cover;
  background: #f3f4f6;
}
#sf-checkout-page .sf-bento-qty-badge {
  position: absolute;
  top: -6px;
  right: -6px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--primary, #A65B2A);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  line-height: 18px;
  text-align: center;
  box-shadow: 0 0 0 2px #fff;
}
#sf-checkout-page .sf-bento-meta { min-width: 0; }
#sf-checkout-page .sf-bento-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}
#sf-checkout-page .sf-order-bento-v3 .sf-bento-name {
  color: #374151;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.35;
}
#sf-checkout-page .sf-order-bento-v3 .sf-bento-price {
  color: var(--sf-ink, #17211b);
  font-size: 13.5px;
  font-weight: 800;
}
#sf-checkout-page .sf-bento-controls {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 7px;
  flex-wrap: wrap;
}
#sf-checkout-page .sf-bento-controls .sf-ci-qty {
  border-radius: 8px;
  padding: 1px 5px;
  background: #fff;
  border-color: #e5e7eb;
}
#sf-checkout-page .sf-bento-remove {
  border: 0;
  background: none;
  padding: 0;
  color: #dc2626;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  line-height: 1;
}
#sf-checkout-page .sf-bento-remove:hover { text-decoration: underline; }

#sf-checkout-page .sf-bento-promo { margin: 0 0 10px; }
#sf-checkout-page .sf-order-bento-v3 .sf-discount {
  display: block;
  margin: 0;
  width: 100%;
}
#sf-checkout-page .sf-order-bento-v3 .sf-discount-control {
  display: flex;
  gap: 8px;
  width: 100%;
}
#sf-checkout-page .sf-order-bento-v3 .sf-discount-input {
  flex: 1;
  min-width: 0;
  height: 40px;
  border-radius: 10px;
  font-size: 14px;
  background: #f8faf9;
}
#sf-checkout-page .sf-order-bento-v3 .sf-discount-apply {
  flex: 0 0 auto;
  height: 40px;
  min-width: 48px;
  border-radius: 999px !important;
  font-size: 13px !important;
  font-weight: 700;
}
#sf-checkout-page .sf-order-bento-v3 .sf-discount-msg {
  margin: 6px 0 0;
  font-size: 12.5px;
  min-height: 0;
}

#sf-checkout-page .sf-bento-totals {
  display: grid;
  gap: 0;
  margin: 0 0 12px;
  padding: 0;
}
#sf-checkout-page .sf-order-bento-v3 .sf-sum-line {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
  padding: 5px 0 !important;
  border: 0;
  color: #4b5563;
  font-size: 13.5px;
  line-height: 1.35;
}
#sf-checkout-page .sf-order-bento-v3 .sf-sum-total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  margin: 6px 0 0 !important;
  padding: 10px 0 0 !important;
  border-top: 1px solid #eef2ef;
  color: var(--sf-ink, #17211b);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
}
#sf-checkout-page .sf-order-bento-v3 .sf-sum-total .sf-grand-total {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -0.02em;
}


/* Whop : pas de CTA CAWL dans le récap — Payer est sous l’iframe */
#sf-checkout-page .sf-pay-block--whop .sf-commander,
#sf-checkout-page .sf-pay-block--whop .sf-pay-cta,
#sf-checkout-page .sf-pay-block.is-whop-ready .sf-commander,
#sf-checkout-page .sf-pay-block.is-whop-ready .sf-pay-cta,
#sf-checkout-page .sf-pay-block.is-whop-ready .sf-pay-badges,
#sf-checkout-page .sf-pay-block.is-whop-ready .sf-pay-legal,
#sf-checkout-page .sf-pay-block.is-whop-ready .sf-pay-redirect {
  display: none !important;
}
#sf-checkout-page .sf-pay-block.is-whop-ready ~ .sf-checkout-tp,
#sf-checkout-page .sf-order-bento-v3:has(.sf-pay-block.is-whop-ready) .sf-sum-total {
  /* total sidebar masqué quand Whop prêt (doublon sous iframe) */
}
#sf-checkout-page .sf-order-bento-v3:has(.sf-pay-block.is-whop-ready) .sf-sum-total {
  display: none !important;
}

#sf-checkout-page .sf-pay-block {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 14px 0 0;
  border-top: 1px solid #eef2ef;
  justify-items: center;
  text-align: center;
}
#sf-checkout-page .sf-pay-method-label {
  display: none;
}
#sf-checkout-page .sf-pay-secure-mini {
  display: inline-block;
  vertical-align: -0.2em;
  margin-right: 0.35em;
  color: var(--primary, #A65B2A);
  line-height: 0;
}
#sf-checkout-page .sf-pay-secure-mini svg {
  width: 15px;
  height: 15px;
  display: inline-block;
}
#sf-checkout-page .sf-pay-redirect {
  display: block;
  margin: 0 auto;
  max-width: 22em;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #4b5563;
  font-size: 12.8px;
  line-height: 1.45;
  text-align: center;
}
#sf-checkout-page .sf-pay-redirect strong {
  color: var(--sf-ink, #17211b);
  font-weight: 800;
}
#sf-checkout-page .sf-pay-cta,
#sf-checkout-page .sf-commander.sf-pay-cta {
  width: 100%;
  margin-top: 2px;
}
#sf-checkout-page .sf-pay-badges {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 2px;
  justify-content: center;
  margin-top: 2px;
}
#sf-checkout-page .sf-pay-badges .sf-pay {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 46px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: hidden;
}
#sf-checkout-page .sf-pay-badges .sf-pay--visa,
#sf-checkout-page .sf-pay-badges .sf-pay--apple,
#sf-checkout-page .sf-pay-badges .sf-pay--gpay { width: 52px; }
#sf-checkout-page .sf-pay-badges .sf-pay--cb { width: 42px; }
#sf-checkout-page .sf-pay-badges .sf-pay--mc { width: 38px; }
#sf-checkout-page .sf-pay-badges .sf-pay img {
  display: block;
  width: auto;
  height: 16px;
  max-width: 100%;
  object-fit: contain;
  object-position: center;
}
/* Hauteurs optiques (pas techniques) : CB/Visa/MC ont des paddings SVG tr?s diff?rents. */
#sf-checkout-page .sf-pay-badges .sf-pay--cb img { height: 29px; }
#sf-checkout-page .sf-pay-badges .sf-pay--visa img { height: 12px; }
#sf-checkout-page .sf-pay-badges .sf-pay--mc img { height: 17px; }
#sf-checkout-page .sf-pay-badges .sf-pay--apple img { height: 17px; }
#sf-checkout-page .sf-pay-badges .sf-pay--gpay img { height: 17px; }
#sf-checkout-page .sf-pay-cta,
#sf-checkout-page .sf-commander.sf-pay-cta {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  margin-top: 2px;
  min-height: 48px;
  padding: 12px 16px !important;
  border-radius: var(--sf-button-radius, 999px) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  box-shadow: none;
}
#sf-checkout-page .sf-pay-cta .sf-pay-lock { flex: 0 0 auto; }
#sf-checkout-page .sf-pay-cta-label {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
}
#sf-checkout-page .sf-pay-legal {
  margin: 0;
  text-align: center;
  color: #9ca3af;
  font-size: 11.5px;
  line-height: 1.4;
}
#sf-checkout-page .sf-pay-legal a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

#sf-checkout-page .sf-checkout-tp {
  margin-top: 12px;
  padding: 12px 14px;
  border: 0;
  border-radius: 12px;
  background: #f3f6f4;
  text-align: center;
}
#sf-checkout-page .sf-checkout-tp-row {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
}
#sf-checkout-page .sf-checkout-tp-stars {
  display: inline-flex;
  gap: 1px;
  color: var(--primary, #A65B2A);
  margin: 0;
}
#sf-checkout-page .sf-checkout-tp-stars svg {
  width: 14px;
  height: 14px;
  fill: currentColor;
  stroke: currentColor;
}
#sf-checkout-page .sf-checkout-tp-score {
  margin: 0;
  color: var(--sf-ink, #17211b);
  font-size: 13.5px;
  line-height: 1.2;
}
#sf-checkout-page .sf-checkout-tp-score strong { font-weight: 800; }
#sf-checkout-page .sf-checkout-tp-sub {
  margin: 4px 0 0;
  color: #6b7280;
  font-size: 12px;
  line-height: 1.35;
}

#sf-checkout-page > .sf-checkout-reviews { display: none !important; }

@media (max-width: 900px) {
  #sf-checkout-page .sf-checkout-v3 {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  #sf-checkout-page .sf-checkout-side {
    position: static;
    order: 2;
  }
  #sf-checkout-page .sf-form-stack {
    order: 1;
    gap: 16px;
  }
  #sf-checkout-page .sf-checkout-head p {
    font-size: 16px;
  }
  #sf-checkout-page .sf-bento-card,
  #sf-checkout-page .sf-order-bento-v3 {
    padding: 20px 18px;
    border-radius: 14px;
  }
  #sf-checkout-page .sf-bento-card h3,
  #sf-checkout-page .sf-order-bento-v3 > h3 {
    margin-bottom: 16px;
    padding-bottom: 14px;
    font-size: 17px;
    gap: 11px;
  }
  #sf-checkout-page .sf-card-ic {
    width: 34px;
    height: 34px;
  }
  #sf-checkout-page .sf-card-ic svg {
    width: 18px;
    height: 18px;
  }
  #sf-checkout-page .sf-checkout-v3 .sf-field {
    margin-bottom: 14px;
  }
  #sf-checkout-page .sf-checkout-v3 .sf-field label {
    margin-bottom: 6px;
    font-size: 15px;
  }
  #sf-checkout-page .sf-checkout-v3 .sf-field input,
  #sf-checkout-page .sf-checkout-v3 .sf-field select,
  #sf-checkout-page .sf-checkout-v3 .sf-field textarea {
    min-height: 52px;
    padding: 0 14px;
    font-size: 17px;
    border-radius: 11px;
    line-height: 1.3;
  }
  #sf-checkout-page .sf-checkout-v3 .sf-field textarea {
    min-height: 88px;
    padding: 12px 14px;
  }
  #sf-checkout-page .sf-field-row {
    gap: 14px;
  }
  #sf-checkout-page .sf-field-row-zip {
    grid-template-columns: 118px minmax(0, 1fr);
    gap: 14px;
  }
  #sf-checkout-page .sf-checkout-more {
    margin-top: 10px;
    padding: 10px 14px;
  }
  #sf-checkout-page .sf-checkout-more summary {
    font-size: 15px;
  }
  #sf-checkout-page .sf-ship-cards {
    gap: 10px;
  }
  #sf-checkout-page .sf-ship-card-body {
    padding: 14px;
    gap: 12px;
  }
  #sf-checkout-page .sf-ship-carrier-ic img {
    width: 48px;
    height: 48px;
  }
  #sf-checkout-page .sf-ship-card-txt strong {
    font-size: 15.5px;
  }
  #sf-checkout-page .sf-ship-card-txt small {
    font-size: 13.5px;
  }
  #sf-checkout-page .sf-ship-card-price {
    font-size: 15.5px;
  }
  #sf-checkout-page .sf-order-bento-v3 .sf-bento-name {
    font-size: 15px;
  }
  #sf-checkout-page .sf-order-bento-v3 .sf-bento-price {
    font-size: 15.5px;
  }
  #sf-checkout-page .sf-bento-remove {
    font-size: 14px;
  }
  #sf-checkout-page .sf-order-bento-v3 .sf-discount-input,
  #sf-checkout-page .sf-order-bento-v3 .sf-discount-apply {
    height: 46px;
    font-size: 16px;
  }
  #sf-checkout-page .sf-order-bento-v3 .sf-sum-line {
    font-size: 15.5px;
    padding: 6px 0 !important;
  }
  #sf-checkout-page .sf-order-bento-v3 .sf-sum-total {
    font-size: 16px;
    padding-top: 12px !important;
  }
  #sf-checkout-page .sf-order-bento-v3 .sf-sum-total .sf-grand-total {
    font-size: 22px;
  }
  #sf-checkout-page .sf-pay-redirect {
    font-size: 14.25px;
    max-width: 22em;
  }
  #sf-checkout-page .sf-pay-secure-mini svg {
    width: 16px;
    height: 16px;
  }
  #sf-checkout-page .sf-pay-cta,
  #sf-checkout-page .sf-commander.sf-pay-cta {
    min-height: 54px;
    font-size: 16.5px !important;
    position: static;
  }
  #sf-checkout-page .sf-pay-legal {
    font-size: 13px;
  }
  #sf-checkout-page .sf-checkout-tp {
    margin-top: 14px;
    padding: 14px 16px;
  }
  #sf-checkout-page .sf-checkout-tp-score {
    font-size: 15.5px;
  }
  #sf-checkout-page .sf-checkout-tp-sub {
    font-size: 13.5px;
  }
}

@media (max-width: 560px) {
  #sf-checkout-page .sf-checkout-v3 .sf-field-row {
    grid-template-columns: 1fr;
  }
  #sf-checkout-page .sf-field-row-zip {
    grid-template-columns: 1fr 1.35fr;
  }
  #sf-checkout-page .sf-ship-card-body {
    grid-template-columns: 48px minmax(0, 1fr) auto;
  }
}

/* Trustpilot popup : ne pas laisser le lien overlay Woo bloquer les clics (surtout /checkout/) */
.global-notification > a.overlay-link,
.global-notification a.overlay-link {
  display: none !important;
  pointer-events: none !important;
}
.rv-trigger-tp,
.rv-trigger-bar,
.rv-trigger-host {
  position: relative;
  z-index: 5;
  pointer-events: auto !important;
}
.sf-checkout-tp {
  cursor: pointer;
}

/* ============================================================================
 * Home hero ?ditorial (pr?sentation boutique) + bande fin de s?rie.
 * Remplace le carrousel promo en t?te d?accueil.
 * ========================================================================== */
.sf-home-hero-editorial {
  width: calc(100% - 80px) !important;
  max-width: 1360px !important;
  margin: 0 auto 28px !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}
.elementor-element.sf-home-hero-editorial.e-con-boxed,
.elementor-element.sf-home-hero-editorial.e-con {
  --padding-top: 0px !important;
  --padding-bottom: 0px !important;
  --padding-left: 0px !important;
  --padding-right: 0px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.sf-home-hero-editorial > .e-con-inner,
.sf-home-hero-editorial .elementor-widget-container {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.sf-home-hero-banner {
  position: relative !important;
  overflow: hidden !important;
  min-height: clamp(420px, 58vh, 560px) !important;
  height: auto !important;
  max-height: none !important;
  border-radius: 18px;
  background: #1a2a1f;
  color: #fff;
}
.sf-home-hero-media {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  width: 100% !important;
  height: 100% !important;
  pointer-events: none;
}
.sf-home-hero-media img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center 40%;
}
.sf-home-hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(10, 18, 14, .78) 0%, rgba(10, 18, 14, .52) 42%, rgba(10, 18, 14, .18) 72%, rgba(10, 18, 14, .1) 100%),
    linear-gradient(180deg, rgba(10, 18, 14, .15) 0%, rgba(10, 18, 14, .08) 45%, rgba(10, 18, 14, .45) 100%);
}
.sf-home-hero-copy {
  position: relative !important;
  z-index: 1 !important;
  display: flex !important;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 14px;
  max-width: 560px;
  min-height: clamp(420px, 58vh, 560px);
  height: auto !important;
  padding: 36px 40px 40px 44px;
  box-sizing: border-box;
}
.sf-home-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 7px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, .22);
  background: rgba(12, 18, 14, .42);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #fff;
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1.2;
}
.sf-home-hero-leaf {
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
  color: #8fd99a;
}
.sf-home-hero-title {
  margin: 0;
  max-width: 14ch;
  color: #fff !important;
  font-size: clamp(2rem, 3.4vw, 3.15rem) !important;
  font-weight: 800 !important;
  line-height: 1.08 !important;
  letter-spacing: -0.02em;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .35);
}
.sf-home-hero-title em {
  display: block;
  font-style: normal;
  color: #E8B88A;
}
.sf-home-hero-lead {
  margin: 0;
  max-width: 42ch;
  color: rgba(255, 255, 255, .92);
  font-size: clamp(14px, 1.15vw, 16.5px);
  line-height: 1.55;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .28);
}
.sf-home-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 4px;
}
.sf-home-hero-btn-primary,
.sf-home-hero-btn-secondary {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 20px !important;
  border-radius: 12px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
  transition: background .15s ease, border-color .15s ease, transform .15s ease;
}
.sf-home-hero-btn-primary {
  background: #A65B2A !important;
  border: 1px solid #A65B2A !important;
  color: #fff !important;
}
.sf-home-hero-btn-primary:hover {
  background: #7A3F18 !important;
  border-color: #7A3F18 !important;
  color: #fff !important;
}
.sf-home-hero-btn-secondary {
  background: rgba(255, 255, 255, .1) !important;
  border: 1px solid rgba(255, 255, 255, .78) !important;
  color: #fff !important;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.sf-home-hero-btn-secondary:hover {
  background: rgba(255, 255, 255, .18) !important;
  color: #fff !important;
}
.sf-home-hero-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}
.sf-home-hero-trust li {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: rgba(255, 255, 255, .9);
  font-size: 12.5px;
  font-weight: 500;
}
.sf-home-hero-trust svg {
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
  color: #8fd99a;
}

/* Bande promotions de fin de série (ex-slides hero) */
.sf-home-finserie {
  width: 100%;
  max-width: none;
  margin: 8px auto 16px;
  box-sizing: border-box;
}
.sf-home-finserie-inner { width: 100%; }
.sf-home-finserie-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px 20px;
  margin-bottom: 16px;
}
.sf-home-finserie-eyebrow {
  margin: 0 0 4px;
  color: #c2410c;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.sf-home-finserie-head h2 {
  margin: 0;
  color: #111827;
  font-size: clamp(1.15rem, 1.6vw, 1.4rem);
  font-weight: 800;
  line-height: 1.2;
}
.sf-home-finserie-sub {
  margin: 6px 0 0;
  max-width: 52ch;
  color: #6b7280;
  font-size: 14px;
  line-height: 1.45;
}
.sf-home-finserie-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.sf-home-finserie-card {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  min-height: 0;
  border-radius: 14px;
  text-decoration: none !important;
  color: #fff !important;
  background: #111827;
  transition: transform .18s ease;
}
.sf-home-finserie-card:hover { transform: translateY(-2px); }
.sf-home-finserie-media,
.sf-home-finserie-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.sf-home-finserie-media img {
  display: block;
  object-fit: cover;
  object-position: center;
}
.sf-home-finserie-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8, 16, 12, .2) 0%, rgba(8, 16, 12, .35) 40%, rgba(8, 16, 12, .82) 100%);
}
.sf-home-finserie-body {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  padding: 16px;
}
.sf-home-finserie-badge {
  display: inline-flex;
  padding: 4px 9px;
  border-radius: 999px;
  background: rgba(166, 91, 42, .92);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
}
.sf-home-finserie-body strong {
  font-size: 17px;
  font-weight: 800;
  line-height: 1.2;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .35);
}
.sf-home-finserie-cta {
  font-size: 13px;
  font-weight: 600;
  opacity: .92;
}

@media (max-width: 991.98px) {
  .sf-home-finserie-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sf-home-hero-editorial {
    width: calc(100% - 64px) !important;
    max-width: calc(100% - 64px) !important;
    margin: 0 auto !important;
  }
  .sf-home-hero-copy {
    max-width: 92%;
    padding: 26px 22px 28px;
    gap: 12px;
  }
  .sf-home-hero-title { max-width: 16ch; }
}

@media (max-width: 767.98px) {
  .sf-home-hero-editorial {
    width: calc(100% - 32px) !important;
    max-width: calc(100% - 32px) !important;
    margin: 20px auto 28px !important;
  }
  .sf-home-hero-banner {
    min-height: 0 !important;
    border-radius: 14px;
  }
  .sf-home-hero-copy {
    max-width: none;
    min-height: 0 !important;
    padding: 22px 16px 24px;
    gap: 11px;
  }
  .sf-home-hero-media::after {
    background:
      linear-gradient(180deg, rgba(10, 18, 14, .35) 0%, rgba(10, 18, 14, .55) 42%, rgba(10, 18, 14, .82) 100%);
  }
  .sf-home-hero-title {
    max-width: none;
    font-size: clamp(1.65rem, 6.8vw, 2.05rem) !important;
    line-height: 1.12 !important;
  }
  .sf-home-hero-lead {
    font-size: 13.5px;
    line-height: 1.5;
  }
  .sf-home-hero-actions {
    width: 100%;
    flex-direction: column;
    gap: 8px;
    margin-top: 2px;
  }
  .sf-home-hero-btn-primary,
  .sf-home-hero-btn-secondary {
    width: 100%;
    min-height: 44px;
    padding: 11px 16px !important;
  }
  .sf-home-hero-trust {
    gap: 7px 12px;
    margin-top: 6px;
  }
  .sf-home-finserie { margin-top: 22px; margin-bottom: 12px; }
  .sf-home-finserie-grid { grid-template-columns: 1fr; gap: 12px; }
  .sf-home-finserie-card { min-height: 180px; }
  .sf-home-finserie-head .btn { width: 100%; justify-content: center; }
}

@media (max-width: 430px) {
  .sf-home-hero-editorial {
    width: calc(100% - 28px) !important;
    max-width: calc(100% - 28px) !important;
    margin: 18px auto 26px !important;
  }
  .sf-home-hero-badge { font-size: 11.5px; padding: 6px 12px; }
  .sf-home-hero-lead { font-size: 13.5px; }
  .sf-home-hero-trust li { font-size: 12px; width: 100%; }
}



/* Footer phone: never stack digit pairs in the meta grid */
.site-footer .sf-footer-meta a.sf-footer-phone,
.site-footer .sf-footer-meta a[href^="tel:"] {
  white-space: nowrap !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}
.site-footer .sf-footer-meta-item > div > a.phone {
  white-space: nowrap !important;
}

.sf-phone-b2b-note {
  display: block;
  margin-top: 4px;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.35;
  color: #6b7280;
}
.site-footer .sf-footer-meta-phone-wrap {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.sf-contact-info-row .sf-phone-b2b-note {
  margin-top: 6px;
  font-weight: 500;
}
.header-contact .sf-phone-b2b-note,
.klb-topbar .sf-phone-b2b-note,
.site-drawer-contact .sf-phone-b2b-note {
  margin-top: 2px;
  font-size: 10px;
}

/* ==========================================================================
 * Home layout SAFE (2026-08-13e)
 * - post-3074.css Elementor souvent 404 ? --display vide ? display:inline
 *   (width/max-width ignor?s, cartes/grilles cass?es). On force flex/grid.
 * - Ne PAS passer .elementor-3074 en flex column (casse les grilles).
 * - Largeur unique logo?panier (desktop) / burger (mobile).
 * ========================================================================== */
body.home .elementor.elementor-3074 {
  padding-top: 28px !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  --padding-left: 0px !important;
  --padding-right: 0px !important;
  --padding-inline-start: 0px !important;
  --padding-inline-end: 0px !important;
}
/* Restaure le display Elementor (sinon inline ? full-bleed + overlap) */
body.home .elementor-3074 > .e-con.e-parent.e-flex {
  --display: flex !important;
  display: flex !important;
}
body.home .elementor-3074 > .e-con.e-parent.e-flex > .e-con-inner {
  --display: flex !important;
  display: flex !important;
}
body.home .elementor-3074 > .e-con.e-parent.e-grid,
body.home .elementor-3074 > .e-con.e-parent.e-grid > .e-con-inner {
  --display: grid !important;
  display: grid !important;
}
/* Bento promo / expert / cat?gories : garder display:grid (sinon cartes empil?es PC) */
body.home .elementor-3074 > .e-con.e-parent.sf-home-promo-bento > .e-con-inner,
body.home .sf-home-promo-bento > .e-con-inner,
body.home .elementor-3074 > .e-con.e-parent.sf-home-category-promo-bento > .e-con-inner,
body.home .sf-home-category-promo-bento > .e-con-inner,
body.home .elementor-3074 > .e-con.e-parent.sf-home-expert-bento > .e-con-inner,
body.home .sf-home-expert-bento > .e-con-inner {
  --display: grid !important;
  display: grid !important;
}
/* Sections parent home : m?me goutti?re que le header */
body.home .elementor-3074 > .e-con.e-parent,
body.home .elementor-3074 > .sf-home-hero-shell,
body.home .elementor-3074 > .sf-home-content-shell,
body.home .sf-home-finserie,
body.home .sf-home-benefits,
body.home .sf-home-reviews,
body.home .sf-home-category-band,
body.home .sf-home-cat-selector,
body.home .sf-home-recruit {
  width: calc(100% - 80px) !important;
  max-width: 1360px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 40px !important;
  box-sizing: border-box !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  --padding-left: 0px !important;
  --padding-right: 0px !important;
  --padding-inline-start: 0px !important;
  --padding-inline-end: 0px !important;
}
body.home .sf-home-hero-shell {
  margin-bottom: 28px !important;
  display: block !important;
}
body.home .sf-home-content-shell {
  margin-bottom: 36px !important;
  display: block !important;
}
body.home .sf-home-hero-shell > .sf-home-hero-editorial,
body.home .sf-home-hero-shell > .sf-home-hero-editorial.e-con,
body.home .sf-home-hero-shell .elementor-element-a17a6a5,
body.home .sf-home-content-shell > .sf-home-finserie {
  width: 100% !important;
  max-width: none !important;
  --width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
}
/* Contenu boxed : pleine largeur du shell (pas de double contrainte 1140) */
body.home .elementor-3074 > .e-con.e-parent.e-con-boxed > .e-con-inner {
  width: 100% !important;
  max-width: none !important;
  --content-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

/* Aligne grilles produits / titres : padding Elementor e-child (2?10px) */
body.home .elementor-3074 > .e-con.e-parent:has(.sf-home-product-row) .e-con.e-child,
body.home .elementor-3074 > .e-con.e-parent:has(.sf-home-product-row) .e-con.e-child > .e-con-inner {
  padding-left: 0 !important;
  padding-right: 0 !important;
  --padding-left: 0px !important;
  --padding-right: 0px !important;
  --padding-inline-start: 0px !important;
  --padding-inline-end: 0px !important;
}

/* Filet : cartes home toujours en colonne (si wrapper manquant) */
body.home .products.sf-home-product-row {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}
body.home .products.sf-home-product-row > .product {
  flex-direction: column !important;
  align-items: stretch !important;
  display: flex !important;
}
/* Vignettes home : le lien porte le carré (flex + aspect-ratio).
   Ne pas mettre aspect-ratio sur l'img (ratios catalogue différents → titres décalés). */
body.home .products.sf-home-product-row .product .thumbnail-wrapper {
  margin-bottom: 0.5rem !important;
}
body.home .products.sf-home-product-row .product .product-thumbnail.entry-media {
  display: block !important;
  width: 100% !important;
}
body.home .products.sf-home-product-row .product a.product-thumbnail {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  height: auto !important;
  overflow: hidden !important;
}
body.home .products.sf-home-product-row .product a.product-thumbnail img {
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  aspect-ratio: unset !important;
  display: block !important;
}
body.home .products.sf-home-product-row .product .product-heading {
  margin-bottom: 0.5rem !important;
  gap: 0.25rem !important;
}
body.home .products.sf-home-product-row .product .product-title {
  margin-top: 0 !important;
}
@media (max-width: 991.98px) {
  body.home .elementor.elementor-3074 { padding-top: 20px !important; }
  body.home .elementor-3074 > .e-con.e-parent,
  body.home .elementor-3074 > .sf-home-hero-shell,
  body.home .elementor-3074 > .sf-home-content-shell,
  body.home .sf-home-finserie,
  body.home .sf-home-benefits,
  body.home .sf-home-reviews,
  body.home .sf-home-category-band,
  body.home .sf-home-cat-selector,
  body.home .sf-home-recruit {
    width: calc(100% - 48px) !important;
    max-width: none !important;
    margin-bottom: 28px !important;
  }
}
@media (max-width: 767.98px) {
  body.home .elementor.elementor-3074 { padding-top: 12px !important; }
  body.home .elementor-3074 > .e-con.e-parent,
  body.home .elementor-3074 > .sf-home-hero-shell,
  body.home .elementor-3074 > .sf-home-content-shell,
  body.home .sf-home-finserie,
  body.home .sf-home-benefits,
  body.home .sf-home-reviews,
  body.home .sf-home-category-band,
  body.home .sf-home-cat-selector,
  body.home .sf-home-recruit {
    width: calc(100% - 30px) !important;
    max-width: none !important;
    margin-bottom: 22px !important;
  }
}


/* ==========================================================================
 * 2026-08-17 ? Header + goutti?re page align?s (mobile ? desktop, 6 shops)
 * Rep?re unique : --sf-layout-gutter (= --sf-page-gutter). Annule les calc()
 * divergents (shell home, hero ?ditorial) qui d?salignaient header et contenu.
 * ========================================================================== */
:root {
  --sf-layout-gutter: var(--sf-page-gutter, clamp(18px, 4vw, 40px));
}

/* Elementor home : pas de padding lat?ral en double avec les sections */
body.home .elementor.elementor-3074 {
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-inline: 0 !important;
  --padding-left: 0px !important;
  --padding-right: 0px !important;
  --padding-inline-start: 0px !important;
  --padding-inline-end: 0px !important;
}

/* Header : m?me padding horizontal que le contenu */
.global-notification .container,
.site-header .header-topbar .container,
.site-header .header-main .container,
.site-header .header-nav .container {
  width: 100% !important;
  max-width: none !important;
  padding-left: var(--sf-layout-gutter) !important;
  padding-right: var(--sf-layout-gutter) !important;
  box-sizing: border-box !important;
}

/* Mobile / tablette : logo centr? (colonnes lat?rales ?gales burger / panier) */
@media (max-width: 1199.98px) {
  .header-main .header-inner {
    display: grid !important;
    grid-template-columns: 51px minmax(0, 1fr) 51px;
    align-items: center;
    gap: 0;
    height: auto !important;
  }
  .header-main .header-inner > .col.d-none {
    display: none !important;
  }
  .header-main .header-inner > .col.d-xl-none:first-of-type,
  .header-main .header-inner > .col.d-xl-none:last-of-type {
    width: 51px !important;
    max-width: 51px !important;
    flex: none !important;
  }
  .header-main .header-inner > .col.d-xl-none:first-of-type {
    justify-self: start;
  }
  .header-main .header-inner > .col.d-inline-flex.align-items-center.flex-auto:not(.d-xl-none) {
    justify-self: center;
    justify-content: center !important;
    width: auto !important;
    max-width: 100%;
  }
  .header-main .header-inner > .col.d-xl-none:last-of-type {
    justify-self: end;
  }
  .header-main .site-brand,
  .header-main .site-brand a {
    display: flex !important;
    justify-content: center !important;
  }
  .header-main .custom-logo,
  .header-main .site-brand img,
  .header-main .site-logo img {
    object-position: center center !important;
  }
}

/* Sections home : m?me goutti?re que le header */
body.home .elementor-3074 > .e-con.e-parent,
body.home .elementor-3074 > .sf-home-hero-shell,
body.home .elementor-3074 > .sf-home-content-shell,
body.home .sf-home-finserie,
body.home .sf-home-benefits,
body.home .sf-home-reviews,
body.home .sf-home-category-band,
body.home .sf-home-cat-selector,
body.home .sf-home-recruit {
  width: min(calc(100% - (2 * var(--sf-layout-gutter))), 1360px) !important;
  max-width: 1360px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-inline: auto !important;
  box-sizing: border-box !important;
}

/* Hero ?ditorial : remplit le shell, pas de double marge */
.sf-home-hero-editorial,
.elementor-element.sf-home-hero-editorial,
body.home .sf-home-hero-shell > .sf-home-hero-editorial,
body.home .sf-home-hero-shell > .sf-home-hero-editorial.e-con,
body.home .sf-home-hero-shell .elementor-element-a17a6a5 {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

@media (max-width: 991.98px) {
  .sf-home-hero-editorial,
  .elementor-3074 .elementor-element-a17a6a5.sf-home-hero-editorial {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

@media (max-width: 767.98px) {
  .sf-home-hero-editorial,
  .elementor-3074 .elementor-element-a17a6a5.sf-home-hero-editorial {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }
}

/* Bandes hors shell : goutti?re unifi?e */
.sf-home-hero-promo:not(.sf-home-hero-editorial),
.sf-home-category-band,
.sf-home-promo-bento,
.sf-home-expert-bento,
.sf-home-finserie {
  width: min(calc(100% - (2 * var(--sf-layout-gutter))), 1360px) !important;
  max-width: 1360px !important;
  margin-inline: auto !important;
  box-sizing: border-box !important;
}

/* ==========================================================================
   PERF 2026-08-26 ? skeleton panier/checkout + overlay redirect CAWL
   ========================================================================== */

.sf-commerce-skeleton {
  min-height: 42vh;
  padding-bottom: 24px;
}
.sf-commerce-skeleton .sf-skel-head h1 {
  margin: 0 0 18px;
  font-size: clamp(1.35rem, 2.4vw, 1.75rem);
  font-weight: 800;
  color: var(--sf-ink, #17211b);
}
.sf-skel-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
  gap: 24px;
  align-items: start;
}
@media (max-width: 900px) {
  .sf-skel-layout { grid-template-columns: 1fr; }
}
.sf-skel-card {
  border-radius: 14px;
  border: 1px solid #e5eee7;
  background: linear-gradient(90deg, #F7EFE6 0%, #EFE4D8 40%, #F7EFE6 80%);
  background-size: 200% 100%;
  animation: sf-skel-shine 1.1s ease-in-out infinite;
}
.sf-skel-block { min-height: 220px; }
.sf-skel-block-sm { min-height: 96px; margin-top: 14px; }
.sf-skel-side .sf-skel-block { min-height: 280px; }
.sf-skel-hint {
  margin: 16px 0 0;
  color: #6b7280;
  font-size: 13px;
}
@keyframes sf-skel-shine {
  0% { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}
@media (prefers-reduced-motion: reduce) {
  .sf-skel-card { animation: none; }
}

/* Overlay redirection paiement (P6) ? perception, sans changer le cloaking */
.sf-pay-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(15, 28, 20, 0.52);
  backdrop-filter: blur(2px);
}
.sf-pay-overlay[hidden] { display: none !important; }
.sf-pay-overlay-card {
  width: min(100%, 380px);
  padding: 28px 24px 24px;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(15, 28, 20, 0.22);
  text-align: center;
}
.sf-pay-overlay-spin {
  width: 42px;
  height: 42px;
  margin: 0 auto 16px;
  border: 3px solid #d7e5db;
  border-top-color: var(--primary, #A65B2A);
  border-radius: 50%;
  animation: sf-pay-spin 0.75s linear infinite;
}
.sf-pay-overlay-card strong {
  display: block;
  margin: 0 0 8px;
  font-size: 17px;
  color: #17211b;
}
.sf-pay-overlay-card p {
  margin: 0;
  color: #6b7280;
  font-size: 13.5px;
  line-height: 1.45;
}
@keyframes sf-pay-spin {
  to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  .sf-pay-overlay-spin { animation: none; border-top-color: #d7e5db; }
}

/* ==========================================================================
   AUDIT P0/P1 2026-08-26 ? taps mobile, trust paiement, a11y
   ========================================================================== */

.sf-sr-only {
  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;
}

#sf-checkout-page .sf-pay-trust {
  display: grid;
  gap: 6px;
  width: 100%;
  margin: 0 0 4px;
  padding: 12px 12px 10px;
  border: 1px solid #d9e9dc;
  border-radius: 12px;
  background: #f7fbf8;
  text-align: left;
}
#sf-checkout-page .sf-pay-trust-title {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  color: #17211b;
  font-size: 13.5px;
  font-weight: 800;
}
#sf-checkout-page .sf-pay-trust .sf-pay-redirect {
  margin: 0;
  max-width: none;
  color: #374151;
  font-size: 12.8px;
  line-height: 1.45;
  text-align: left;
}

@media (max-width: 900px) {
  .sf-ci-qty .sf-q,
  .sf-qtybox button.sf-q,
  .sf-qtybox button,
  .sf-bento-controls .sf-q {
    min-width: 44px !important;
    min-height: 44px !important;
    padding: 10px !important;
    display: inline-grid !important;
    place-items: center !important;
    touch-action: manipulation;
  }
  .sf-ci-qty,
  .sf-qtybox {
    min-height: 44px;
    align-items: center;
    gap: 2px;
  }
  .sf-ci-remove,
  .sf-cell-remove button,
  .sf-bento-remove {
    min-width: 44px !important;
    min-height: 44px !important;
    padding: 8px 10px !important;
    touch-action: manipulation;
  }
  .sf-drawer-close {
    min-width: 44px !important;
    min-height: 44px !important;
  }
  .sf-cart-table td.sf-cell-remove button {
    width: 44px !important;
    height: 44px !important;
  }
}

/* Vert r?siduel + discover hero (sync storefront.css) */
.products .product .product-stock.text-green-600,
.products .product .product-stock.text-green-600 .text-11,
.text-green-600 { color: var(--primary-dark, #7A3F18) !important; }
a[href*="whatsapp"], .joinchat__button { background-color: var(--primary, #A65B2A) !important; }
body.sf-ptype-discover .sf-discover-hero .site-banner .entry-title,
body.sf-ptype-discover .sf-discover-hero .site-banner .entry-subtitle,
body.sf-ptype-discover .sf-discover-hero .site-banner .entry-content p { color: #fff !important; }
body.sf-ptype-discover .sf-discover-hero .site-banner .entry-media { position: relative; }
body.sf-ptype-discover .sf-discover-hero .site-banner .entry-media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(28, 20, 16, .72) 0%, rgba(28, 20, 16, .28) 55%, rgba(28, 20, 16, .08) 100%);
  pointer-events: none;
}
body.sf-ptype-discover .sf-discover-hero .site-banner .entry-wrapper { position: relative; z-index: 1; }

/* UGC avis avec photo produit (style iPhone authentique) */
.sf-ugc-review-card { display: flex; flex-direction: column; gap: 10px; overflow: hidden; }
.sf-ugc-photo { position: relative; margin: 0; border-radius: 10px; overflow: hidden; aspect-ratio: 4 / 3; background: #F7EFE6; }
.sf-ugc-photo img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.sf-ugc-review-track .sf-checkout-review-card { padding: 0; border: 0; background: transparent; }
.sf-ugc-review-track .sf-checkout-review-card .sf-checkout-review-meta,
.sf-ugc-review-track .sf-checkout-review-card .sf-checkout-review-stars,
.sf-ugc-review-track .sf-checkout-review-card > p { padding-left: 2px; padding-right: 2px; }
.sf-brand-logo-row .store-category-box.style-3 img { max-height: 42px; width: auto; object-fit: contain; margin: 0 auto; }
.sf-brand-logo-row .store-category-box.style-3 .category-thumbnail { display: grid; place-items: center; min-height: 56px; padding: 8px 12px; background: #FAFAF8; border-radius: 10px; border: 1px solid #E8DDD3; }
.sf-home-brand-row .store-category-box.style-3 img { max-height: 44px; }
.sf-home-brand-row .sf-brand-logo-box,
.sf-brand-logo-row .sf-brand-logo-box {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 72px;
  padding: 10px 14px;
  border: 1px solid var(--sf-line, #e8e0d8);
  border-radius: 12px;
  background: #fff;
}
.sf-home-brand-row .sf-brand-logo-link,
.sf-brand-logo-row .sf-brand-logo-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 48px;
  text-decoration: none;
}
.sf-home-brand-row .sf-brand-logo-link img,
.sf-brand-logo-row .sf-brand-logo-link img {
  display: block;
  max-height: 40px;
  max-width: 140px;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: grayscale(1) contrast(1.05);
  opacity: .88;
  transition: opacity .15s ease, filter .15s ease;
}
.sf-home-brand-row .sf-brand-logo-link:hover img,
.sf-brand-logo-row .sf-brand-logo-link:hover img {
  filter: none;
  opacity: 1;
}
.sf-home-brand-row .sf-brand-pill-box { display: flex; align-items: center; justify-content: center; min-height: 72px; padding: 12px 16px; border: 1px solid var(--sf-line, #e8e0d8); border-radius: 12px; background: #fff; }
.sf-home-brand-row .sf-brand-pill { display: inline-flex; align-items: center; justify-content: center; min-width: 120px; padding: 10px 18px; border-radius: 999px; background: #f7efe6; color: #3d1f0f; font-size: 15px; font-weight: 700; letter-spacing: .02em; text-decoration: none; white-space: nowrap; }
.sf-home-brand-row .sf-brand-pill:hover { background: #A65B2A; color: #fff; }
@media (max-width: 767.98px) {
  .sf-ugc-review-track { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; }
  .sf-ugc-review-card { flex: 0 0 min(78vw, 280px); scroll-snap-align: start; }
}

/* S?lecteur cat?gories sous le hero home */
.sf-home-cat-selector { margin: 0 auto 28px; }
.sf-home-cat-selector-inner {
  display: grid;
  grid-template-columns: repeat(9, minmax(0, 1fr));
  gap: 12px 10px;
  align-items: start;
}
.sf-home-cat-sel-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: inherit;
  text-align: center;
}
.sf-home-cat-sel-media {
  display: grid;
  place-items: center;
  width: 100%;
  max-width: 96px;
  aspect-ratio: 1;
  border-radius: 14px;
  overflow: hidden;
  background: var(--primary-tint, #F7EFE6);
  border: 1px solid #E8DDD3;
}
.sf-home-cat-sel-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  padding: 0;
  box-sizing: border-box;
  background: transparent;
}
.sf-home-cat-sel-label {
  font-size: 12px;
  font-weight: 600;
  line-height: 1.25;
  color: #1a1a1a;
}
@media (max-width: 991.98px) {
  .sf-home-cat-selector-inner { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px 10px; }
  .sf-home-cat-sel-media { max-width: 88px; }
}
@media (max-width: 767.98px) {
  /* Mobile : grille 2 colonnes, images + titres cliquables (pas de scroll horizontal) */
  .sf-home-cat-selector-inner {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px 12px !important;
    overflow: visible !important;
    scroll-snap-type: none !important;
    padding-bottom: 0 !important;
  }
  .sf-home-cat-sel-item {
    flex: none !important;
    width: 100% !important;
    min-width: 0 !important;
    gap: 10px !important;
    padding: 4px 2px 6px !important;
    border-radius: 12px;
    -webkit-tap-highlight-color: transparent;
  }
  .sf-home-cat-sel-item:active {
    background: rgba(166, 91, 42, 0.06);
  }
  .sf-home-cat-sel-media {
    max-width: none !important;
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    border-radius: 16px !important;
    background: var(--primary-tint, #F7EFE6) !important;
    border: 1px solid #E8DDD3 !important;
  }
  .sf-home-cat-sel-media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    padding: 0;
    box-sizing: border-box !important;
    background: transparent !important;
  }
  .sf-home-cat-sel-label {
    font-size: 14.5px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    color: #1a1a1a !important;
    padding: 0 4px;
  }
}

/* Section recrutement home ? image gauche, texte droite */
.sf-home-recruit-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: 28px 40px;
  align-items: center;
}
.sf-home-recruit-media {
  margin: 0;
  overflow: hidden;
  border-radius: 4px;
  background: #EDE6DF;
}
.sf-home-recruit-media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.sf-home-recruit-copy h2 {
  margin: 0 0 14px;
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.2;
}
.sf-home-recruit-copy p {
  margin: 0 0 12px;
  font-size: 15px;
  line-height: 1.55;
  color: #3B2A1F;
}
.sf-home-recruit-copy a {
  color: var(--primary-dark, #7A3F18);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.sf-home-recruit-copy a:hover { color: var(--primary, #A65B2A); }
@media (max-width: 767.98px) {
  .sf-home-recruit-inner { grid-template-columns: 1fr; gap: 18px; }
  .sf-home-recruit-copy h2 { font-size: 1.35rem; }
}

@media (max-width: 767.98px) {
  .sf-home-reviews .sf-checkout-review-track.sf-ugc-review-track {
    display: flex !important;
    grid-template-columns: unset !important;
    gap: 14px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
  }
  .sf-home-reviews .sf-ugc-review-card {
    flex: 0 0 min(82vw, 300px);
    scroll-snap-align: start;
    min-width: 0;
  }
  .sf-home-finserie-card { aspect-ratio: 4 / 3; min-height: 200px; }
  .sf-home-finserie-head { flex-direction: column; align-items: stretch; }
  .sf-home-finserie-head .btn { width: 100%; justify-content: center; }
}

/* Mini-panier : texte livraison sans vert jardin */
.sf-cart-panel .klb-cart-free-shipping,
.sf-cart-panel .klb-cart-free-shipping.success,
.sf-cart-panel .klb-cart-free-shipping.warning,
.sf-cart-panel .klb-cart-free-shipping p,
.sf-cart-panel .klb-cart-free-shipping strong {
  color: #3B2A1F !important;
}
.sf-cart-panel .klb-cart-free-shipping.success strong,
.sf-cart-panel .klb-cart-free-shipping strong {
  color: var(--primary-dark, #7A3F18) !important;
}
.sf-cart-panel .cart-notice-progress { background: #E8D5C4 !important; }

/* --- audit 2026-08-29 patches --- */
.thumbnail-badges .badge.sale,
.sf-product-price-discount {
  white-space: nowrap;
  font-size: 11px !important;
  padding: 4px 8px !important;
  max-width: 100%;
}
.sf-product-seller-line, .sf-product-seller-divider {
  margin: 10px 0 14px;
  font-size: 13px;
  line-height: 1.45;
  color: #4b5563;
}
.sf-ci-remove {
  min-width: 44px !important;
  min-height: 44px !important;
  font-size: 22px !important;
}
@media (max-width: 767.98px) {
  /* 3 garanties sur une seule ligne (icône + titre + détail) */
  .sf-product-trust-strip {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 6px !important;
    padding: 8px 0 !important;
  }
  .sf-product-trust-item {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: 5px !important;
  }
  .sf-product-trust-item > svg {
    width: 20px !important;
    height: 20px !important;
  }
  .sf-product-trust-item strong {
    font-size: 11px !important;
    line-height: 1.15 !important;
  }
  .sf-product-trust-item span {
    font-size: 10px !important;
    line-height: 1.25 !important;
  }
}
body, .theme-body, button, input, select, textarea {
  font-family: "Barlow", "Segoe UI", sans-serif !important;
}

/* === 2026-09-04 mobile home: hero plus grand + catégories 2 colonnes === */
@media (max-width: 767.98px) {
  body.home .sf-home-hero-shell,
  body.home .elementor-3074 > .sf-home-hero-shell {
    width: calc(100% - 16px) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-bottom: 18px !important;
  }
  .sf-home-hero-promo:not(.sf-home-hero-editorial),
  .sf-home-hero-promo.e-con-boxed:not(.sf-home-hero-editorial) {
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
  }
  .sf-home-hero-promo .site-banner {
    height: min(72vh, 520px) !important;
    min-height: 440px !important;
    max-height: none !important;
    --banner-mobile-height: 480px !important;
    border-radius: 14px !important;
  }
  .sf-home-hero-promo .site-banner .entry-media,
  .sf-home-hero-promo .site-banner .entry-media img {
    height: 100% !important;
    min-height: 100% !important;
    border-radius: 14px !important;
  }
  .sf-home-hero-promo .site-banner .entry-title {
    font-size: clamp(1.55rem, 6.4vw, 2rem) !important;
    line-height: 1.15 !important;
  }
  .sf-home-hero-promo .site-banner .entry-footer {
    flex-direction: column !important;
    width: 100% !important;
    max-width: 320px !important;
    margin-inline: auto !important;
  }
  .sf-home-hero-promo .site-banner .entry-footer .btn {
    width: 100% !important;
    justify-content: center !important;
  }

  body.home .sf-home-cat-selector {
    width: calc(100% - 16px) !important;
    max-width: none !important;
    margin: 0 auto 22px !important;
  }
  .sf-home-cat-selector-inner {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px 12px !important;
    overflow: visible !important;
    scroll-snap-type: none !important;
  }
  .sf-home-cat-sel-item {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    flex: none !important;
    width: 100% !important;
    min-width: 0 !important;
    gap: 10px !important;
    text-decoration: none !important;
    color: inherit !important;
  }
  .sf-home-cat-sel-media {
    display: grid !important;
    place-items: center !important;
    width: 100% !important;
    max-width: none !important;
    aspect-ratio: 1 / 1 !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    background: var(--primary-tint, #F7EFE6) !important;
    border: 1px solid #E8DDD3 !important;
  }
  .sf-home-cat-sel-media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    padding: 0;
    box-sizing: border-box !important;
    background: transparent !important;
  }
  .sf-home-cat-sel-label {
    display: block !important;
    width: 100% !important;
    font-size: 14.5px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    text-align: center !important;
    color: #1a1a1a !important;
  }

  /* Meilleures ventes / vitrines : titre collé aux fiches
     (évite le trou : titre en section A + grille mobile seule en section B) */
  body.home .elementor-widget-grogin-product-grid.elementor-hidden-mobile,
  body.home .elementor-widget-grogin-product-grid.elementor-hidden-tablet {
    display: block !important;
  }
  body.home .elementor-widget-grogin-product-grid.elementor-hidden-desktop {
    display: none !important;
  }
  body.home .e-con.e-parent:has(.elementor-hidden-desktop.elementor-widget-grogin-product-grid):not(:has(.site-module-header)) {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
  }
  body.home .e-con.e-parent:has(.site-module-header):has(.sf-home-product-row) {
    margin-bottom: 28px !important;
  }
  body.home .e-con.e-parent:has(.site-module-header):has(.sf-home-product-row) > .e-con-inner {
    gap: 8px !important;
    --gap: 8px !important;
    --row-gap: 8px !important;
    flex-direction: column !important;
  }
  body.home .site-module-header {
    margin: 0 0 8px !important;
    padding: 0 !important;
  }
  body.home .site-module-header .entry-title {
    margin: 0 0 4px !important;
  }
  body.home .site-module.products-grid-module {
    margin-top: 0 !important;
  }
  body.home .products-grid-module .site-module-body,
  body.home .products-grid-module .module-row {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
}

/* Drawer menu : logo non étiré (le thème force height sans width:auto) */
#menu-drawer .site-drawer-header .site-brand,
#menu-drawer .site-drawer-header .site-brand a {
  flex: 1 1 auto;
  min-width: 0;
  max-width: calc(100% - 56px);
}
#menu-drawer .site-drawer-header .site-brand img,
.site-menu-drawer .site-drawer-header .site-brand img {
  display: block !important;
  height: auto !important;
  width: auto !important;
  max-height: 36px !important;
  max-width: min(200px, 100%) !important;
  object-fit: contain !important;
  object-position: left center !important;
  image-rendering: auto !important;
}



/* Autofill detection (Safari/Chrome) → déclenche remount Whop */
@keyframes sfOnAutoFillStart { from { opacity: 0.99; } to { opacity: 1; } }
#sf-checkout-form input:-webkit-autofill {
  animation-name: sfOnAutoFillStart;
  animation-duration: 0.01s;
}
#sf-checkout-page .sf-whop-needinfo {
  margin: 8px 0 0;
  padding: 14px 14px 16px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fafafa;
}
#sf-checkout-page .sf-whop-needinfo p { margin: 0 0 8px; font-size: 14px; line-height: 1.45; color: #374151; }
#sf-checkout-page .sf-whop-needinfo em { font-style: normal; font-weight: 700; color: #111; }
#sf-checkout-page .sf-whop-scroll-form {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 4px;
  padding: 11px 16px;
  border: 0;
  border-radius: 10px;
  background: #A65B2A;
  color: #fff;
  font: 700 14px/1.2 system-ui, -apple-system, sans-serif;
  cursor: pointer;
}
#sf-checkout-page .sf-whop-scroll-form:hover { background: #7A3F18; }
