/*
Theme Name: SN-SALEH
Theme URI: https://sn-saleh.cm
Description: Thème enfant e-commerce premium pour le Cameroun, basé sur Storefront + WooCommerce. Design moderne (typographie Poppins/Inter, animations, cartes produits soignées), couleurs nationales, prix en FCFA, Mobile Money (Orange Money / MTN MoMo), livraison Douala & Yaoundé. Prêt à installer.
Author: SN-SALEH
Author URI: https://sn-saleh.cm
Template: storefront
Version: 1.2.0
Requires at least: 5.8
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sn-saleh
Tags: e-commerce, woocommerce, two-columns, custom-colors, custom-logo, cameroun
*/

/* =====================================================================
   SN-SALEH — Design tokens
   ===================================================================== */
:root {
	--sn-vert:        #0a8f6b;
	--sn-vert-fonce:  #06624a;
	--sn-vert-nuit:   #043d2e;
	--sn-vert-clair:  #e8f6f1;
	--sn-rouge:       #d11f33;
	--sn-jaune:       #f6c324;
	--sn-jaune-fonce: #d9a90c;
	--sn-noir:        #11211c;
	--sn-encre:       #1f2a26;
	--sn-texte:       #3a4a44;
	--sn-gris:        #f6f8f7;
	--sn-gris-bord:   #e6ece9;

	--sn-grad-vert:   linear-gradient(135deg, #0fa078 0%, #06624a 100%);
	--sn-grad-nuit:   linear-gradient(135deg, #0b5e47 0%, #043d2e 100%);
	--sn-grad-or:     linear-gradient(135deg, #ffd54a 0%, #f0b419 100%);

	--sn-shadow-sm:   0 1px 2px rgba(17,33,28,.06), 0 1px 3px rgba(17,33,28,.05);
	--sn-shadow:      0 6px 18px rgba(17,33,28,.08);
	--sn-shadow-lg:   0 18px 40px rgba(17,33,28,.14);
	--sn-radius:      16px;
	--sn-radius-sm:   10px;
	--sn-ease:        cubic-bezier(.22,.61,.36,1);
}

/* =====================================================================
   Base
   ===================================================================== */
body {
	font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	color: var(--sn-texte);
	background: #ffffff;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	letter-spacing: .1px;
}
h1, h2, h3, h4, h5, h6,
.page-title, .entry-title,
.woocommerce-loop-product__title,
.product_title {
	font-family: "Poppins", "Inter", sans-serif;
	color: var(--sn-noir);
	letter-spacing: -.4px;
}
a { color: var(--sn-vert); transition: color .2s var(--sn-ease); }
a:hover { color: var(--sn-vert-fonce); }
::selection { background: var(--sn-jaune); color: var(--sn-noir); }

/* Conteneur cohérent */
.sn-wrap { max-width: 1200px; margin: 0 auto; }

/* =====================================================================
   Top bar
   ===================================================================== */
.sn-topbar {
	background: var(--sn-vert-nuit);
	color: #eafaf4;
	font-size: .8rem;
	letter-spacing: .2px;
}
.sn-topbar a { color: #eafaf4; text-decoration: none; }
.sn-topbar a:hover { color: var(--sn-jaune); }
.sn-topbar .sn-topbar-inner {
	max-width: 1200px; margin: 0 auto;
	padding: 9px 2.617924em;
	display: flex; flex-wrap: wrap; gap: 6px 20px;
	align-items: center; justify-content: space-between;
}
.sn-topbar .sn-topbar-left,
.sn-topbar .sn-topbar-right {
	display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center;
}
.sn-topbar .sn-flag {
	display: inline-block; width: 34px; height: 11px; border-radius: 3px; overflow: hidden;
	vertical-align: middle;
	background: linear-gradient(90deg, var(--sn-vert) 0 33.33%, var(--sn-rouge) 33.33% 66.66%, var(--sn-jaune) 66.66% 100%);
	box-shadow: 0 0 0 1px rgba(255,255,255,.25);
}
@media (max-width: 640px) {
	.sn-topbar .sn-topbar-right { display: none; }
	.sn-topbar .sn-topbar-inner { justify-content: center; padding: 8px 1em; }
}

/* =====================================================================
   Header (sticky + verre dépoli)
   ===================================================================== */
.site-header {
	background: rgba(255,255,255,.92);
	backdrop-filter: saturate(160%) blur(8px);
	-webkit-backdrop-filter: saturate(160%) blur(8px);
	border-bottom: 1px solid var(--sn-gris-bord);
	box-shadow: var(--sn-shadow-sm);
	position: sticky; top: 0; z-index: 999;
	padding-top: 1.1em; padding-bottom: 1.1em;
}
.site-header .custom-logo { max-height: 64px; width: auto; transition: transform .25s var(--sn-ease); }
.site-header .custom-logo:hover { transform: scale(1.03); }
.site-branding .site-title a { color: var(--sn-noir); }

/* Recherche */
.site-header .widget_product_search input[type="search"],
.site-search .widget_product_search input.search-field {
	border-radius: 999px;
	border: 1px solid var(--sn-gris-bord);
	background: var(--sn-gris);
	padding: .7em 1.1em;
}
.site-header .widget_product_search input[type="search"]:focus { border-color: var(--sn-vert); }

/* Navigation principale */
.storefront-primary-navigation,
.main-navigation { background: transparent; }
.main-navigation ul.menu, .main-navigation ul.nav-menu { display: flex; flex-wrap: wrap; gap: 2px; }
.main-navigation ul li a {
	color: var(--sn-encre);
	font-weight: 600; font-size: .95rem;
	padding: .85em 1.1em; border-radius: 10px;
	transition: background .2s var(--sn-ease), color .2s var(--sn-ease);
}
.main-navigation ul li a:hover,
.main-navigation ul li:hover > a {
	color: var(--sn-vert-fonce);
	background: var(--sn-vert-clair);
}
.main-navigation ul li.current-menu-item > a {
	color: #fff; background: var(--sn-vert);
}
.main-navigation ul.menu ul.sub-menu, .main-navigation ul.nav-menu ul.children {
	box-shadow: var(--sn-shadow-lg); border-radius: 12px; border: 1px solid var(--sn-gris-bord);
	overflow: hidden; padding: 6px;
}
.main-navigation ul ul li a { border-radius: 8px; }

/* Panier dans l'en-tête */
.site-header-cart .cart-contents {
	background: var(--sn-vert); color: #fff; border-radius: 999px; padding: .65em 1.15em;
	font-weight: 600; box-shadow: var(--sn-shadow-sm);
}
.site-header-cart .cart-contents:hover { background: var(--sn-vert-fonce); color: #fff; }
.site-header-cart .amount { color: #fff; }
.site-header-cart .count {
	background: var(--sn-jaune); color: var(--sn-noir);
}

/* =====================================================================
   Boutons
   ===================================================================== */
button, input[type="button"], input[type="reset"], input[type="submit"],
.button, .added_to_cart,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt {
	background: var(--sn-grad-vert);
	color: #fff; border: 0; border-radius: 999px;
	font-family: "Inter", sans-serif; font-weight: 600; letter-spacing: .2px;
	padding: .8em 1.6em;
	box-shadow: 0 8px 18px rgba(10,143,107,.25);
	transition: transform .18s var(--sn-ease), box-shadow .18s var(--sn-ease), filter .18s var(--sn-ease);
}
button:hover, .button:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover {
	color: #fff; filter: brightness(1.04);
	transform: translateY(-2px);
	box-shadow: 0 12px 24px rgba(10,143,107,.32);
}
button:active, .button:active { transform: translateY(0); }
.woocommerce a.button.sn-rouge, .button.sn-rouge {
	background: linear-gradient(135deg,#e23b4d,#b51a2c); box-shadow: 0 8px 18px rgba(209,31,51,.28);
}

/* =====================================================================
   Hero
   ===================================================================== */
.sn-hero {
	position: relative; border-radius: 24px; overflow: hidden;
	margin: 1.6em 0 2.8em; background: var(--sn-vert-nuit); color: #fff;
	box-shadow: var(--sn-shadow-lg);
	isolation: isolate;
}
.sn-hero img { display: block; width: 100%; height: auto; }
.sn-hero::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(90deg, rgba(4,61,46,.92) 0%, rgba(4,61,46,.55) 45%, rgba(4,61,46,0) 75%);
	z-index: 1;
}
.sn-hero .sn-hero-content {
	position: absolute; inset: 0; z-index: 2;
	display: flex; flex-direction: column; justify-content: center;
	padding: 6%; max-width: 60%;
}
.sn-hero .sn-eyebrow {
	display: inline-flex; align-items: center; gap: 8px; align-self: flex-start;
	background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.25);
	color: #fff; font-size: .78rem; font-weight: 600; letter-spacing: 1px; text-transform: uppercase;
	padding: 6px 14px; border-radius: 999px; margin-bottom: 16px; backdrop-filter: blur(4px);
}
.sn-hero h2 { color: #fff; font-size: clamp(1.6rem, 3.4vw, 3rem); line-height: 1.08; margin: 0 0 .35em; }
.sn-hero p { font-size: clamp(.95rem, 1.4vw, 1.15rem); margin: 0 0 1.4em; opacity: .94; max-width: 32ch; }
.sn-hero .button {
	align-self: flex-start; background: var(--sn-grad-or); color: var(--sn-noir);
	font-size: 1.02rem; padding: .95em 1.9em; box-shadow: 0 10px 24px rgba(246,195,36,.32);
}
.sn-hero .button:hover { color: var(--sn-noir); }
@media (max-width: 820px) {
	.sn-hero { border-radius: 18px; }
	.sn-hero::after { background: linear-gradient(180deg, rgba(4,61,46,.25) 0%, rgba(4,61,46,.85) 55%); }
	.sn-hero .sn-hero-content { max-width: 100%; padding: 8% 7%; }
}

/* =====================================================================
   Réassurance
   ===================================================================== */
.sn-features {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 0 0 3em;
}
.sn-features .sn-feature {
	background: #fff; border: 1px solid var(--sn-gris-bord); border-radius: var(--sn-radius);
	padding: 18px; display: flex; gap: 14px; align-items: center;
	box-shadow: var(--sn-shadow-sm); transition: transform .2s var(--sn-ease), box-shadow .2s var(--sn-ease);
}
.sn-features .sn-feature:hover { transform: translateY(-3px); box-shadow: var(--sn-shadow); }
.sn-features .sn-feature .sn-ico {
	flex: 0 0 46px; width: 46px; height: 46px;
	display: flex; align-items: center; justify-content: center;
	background: var(--sn-grad-vert); color: #fff; border-radius: 14px;
	box-shadow: 0 6px 14px rgba(10,143,107,.25);
}
.sn-features .sn-feature .sn-ico svg { width: 22px; height: 22px; }
.sn-features .sn-feature strong { display: block; font-size: .98rem; color: var(--sn-noir); font-family:"Poppins",sans-serif; }
.sn-features .sn-feature span { font-size: .82rem; color: #6c7a74; }
@media (max-width: 980px) { .sn-features { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .sn-features { grid-template-columns: 1fr; } }

/* =====================================================================
   Titres de section
   ===================================================================== */
.sn-section-title, .storefront-product-section .section-title,
.storefront-product-section h2 { text-align: center; }
.sn-section-title h2,
.storefront-product-section .section-title {
	display: inline-block; position: relative; padding-bottom: .45em; margin-bottom: 1.2em;
	font-size: clamp(1.4rem, 2.4vw, 2rem);
}
.sn-section-title h2::after,
.storefront-product-section .section-title::after {
	content: ""; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
	width: 64px; height: 4px; border-radius: 4px;
	background: linear-gradient(90deg, var(--sn-vert) 0 33%, var(--sn-rouge) 33% 66%, var(--sn-jaune) 66% 100%);
}

/* =====================================================================
   Produits — grille & cartes
   ===================================================================== */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	background: #fff; border: 1px solid var(--sn-gris-bord); border-radius: var(--sn-radius);
	padding: 14px 14px 18px; box-shadow: var(--sn-shadow-sm);
	transition: transform .22s var(--sn-ease), box-shadow .22s var(--sn-ease), border-color .22s var(--sn-ease);
	position: relative; overflow: hidden;
}
.woocommerce ul.products li.product:hover {
	transform: translateY(-6px); box-shadow: var(--sn-shadow-lg); border-color: #d6e5df;
}
.woocommerce ul.products li.product a img {
	border-radius: var(--sn-radius-sm); margin-bottom: 14px;
	transition: transform .35s var(--sn-ease); background: var(--sn-gris);
}
.woocommerce ul.products li.product:hover a img { transform: scale(1.05); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 1rem; font-weight: 600; padding: 0; color: var(--sn-encre);
}
.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price {
	color: var(--sn-vert-fonce); font-weight: 800; font-family:"Poppins",sans-serif; font-size: 1.1rem;
}
.woocommerce ul.products li.product .price del { color: #9aa8a2; font-weight: 500; font-size: .85em; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.woocommerce ul.products li.product .star-rating { margin: .4em auto; font-size: .8em; }
.woocommerce .star-rating span { color: var(--sn-jaune); }

/* Badge promo en pastille */
.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale {
	background: linear-gradient(135deg,#e23b4d,#b51a2c); color: #fff;
	border-radius: 999px; font-weight: 700; min-height: auto;
	padding: .35em .8em; top: 16px; left: 16px; right: auto; margin: 0;
	box-shadow: 0 6px 14px rgba(209,31,51,.3); line-height: 1;
}

/* Bouton « ajouter » dans la grille */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
	display: inline-block; margin-top: 6px; font-size: .85rem; padding: .65em 1.2em;
}

/* =====================================================================
   Fiche produit
   ===================================================================== */
.woocommerce div.product .product_title { font-size: clamp(1.5rem, 3vw, 2.2rem); }
.woocommerce div.product p.price, .woocommerce div.product span.price {
	color: var(--sn-vert-fonce); font-weight: 800; font-family:"Poppins",sans-serif;
}
.woocommerce div.product .woocommerce-product-gallery { border-radius: var(--sn-radius); }
.woocommerce div.product form.cart .button { padding: .9em 2em; }
.woocommerce .quantity .qty {
	border-radius: 10px; border: 1px solid var(--sn-gris-bord); padding: .6em;
}
.woocommerce-tabs ul.tabs li {
	border-radius: 10px 10px 0 0; background: var(--sn-gris);
}
.woocommerce-tabs ul.tabs li.active { background: #fff; border-bottom-color:#fff; }

/* =====================================================================
   Panier & commande
   ===================================================================== */
.woocommerce table.shop_table {
	border-radius: var(--sn-radius); overflow: hidden; border: 1px solid var(--sn-gris-bord);
	box-shadow: var(--sn-shadow-sm);
}
.woocommerce table.shop_table thead th { background: var(--sn-gris); color: var(--sn-noir); font-family:"Poppins",sans-serif; }
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce .cart_totals, .woocommerce-checkout #order_review {
	background: #fff; border: 1px solid var(--sn-gris-bord); border-radius: var(--sn-radius);
	box-shadow: var(--sn-shadow); padding: 6px 22px 18px;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container .select2-selection {
	border-radius: 10px !important; border: 1px solid var(--sn-gris-bord);
	padding: .75em .9em; min-height: 46px;
}
.woocommerce form .form-row input.input-text:focus { border-color: var(--sn-vert); outline: none; box-shadow: 0 0 0 3px rgba(10,143,107,.15); }
.woocommerce .woocommerce-info,
.woocommerce-message {
	border-top-color: var(--sn-vert); border-radius: var(--sn-radius-sm); box-shadow: var(--sn-shadow-sm);
}
.woocommerce .woocommerce-info::before, .woocommerce-message::before { color: var(--sn-vert); }
.woocommerce #payment, .woocommerce-checkout #payment { border-radius: var(--sn-radius); }

/* Notice Mobile Money */
.sn-momo-notice {
	display: flex; gap: 14px; align-items: center;
	background: var(--sn-vert-clair); border: 1px solid #c5e6da; border-left: 5px solid var(--sn-vert);
	border-radius: var(--sn-radius); padding: 14px 18px; margin: 0 0 1.8em; font-size: .92rem;
	box-shadow: var(--sn-shadow-sm);
}
.sn-momo-notice .sn-momo-badges { display: flex; gap: 8px; flex-wrap: wrap; }
.sn-badge {
	font-size: .72rem; font-weight: 700; padding: 5px 10px; border-radius: 999px; color: #fff; white-space: nowrap;
	box-shadow: var(--sn-shadow-sm);
}
.sn-badge.sn-om   { background: linear-gradient(135deg,#ff8a00,#ff6600); }
.sn-badge.sn-momo { background: var(--sn-grad-or); color: var(--sn-noir); }
.sn-badge.sn-cash { background: var(--sn-grad-vert); }

/* =====================================================================
   Footer
   ===================================================================== */
.site-footer {
	background: var(--sn-vert-nuit);
	color: #cfe3db;
	position: relative;
}
.site-footer::before {
	content: ""; display: block; height: 5px;
	background: linear-gradient(90deg, var(--sn-vert) 0 33%, var(--sn-rouge) 33% 66%, var(--sn-jaune) 66% 100%);
}
.site-footer a { color: #eafaf4; }
.site-footer a:hover { color: var(--sn-jaune); }
.site-footer .widget-title { color: #fff; font-family:"Poppins",sans-serif; }
.storefront-handheld-footer-bar, .handheld-footer-bar { background: var(--sn-vert); }
.sn-footer-pay { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-top: 10px; }
.sn-footer-pay .sn-badge { font-size: .76rem; padding: 6px 12px; }

/* =====================================================================
   Bouton flottant WhatsApp (via JS) — petit pouls
   ===================================================================== */
@keyframes snPulse { 0%{box-shadow:0 0 0 0 rgba(37,211,102,.5)} 70%{box-shadow:0 0 0 16px rgba(37,211,102,0)} 100%{box-shadow:0 0 0 0 rgba(37,211,102,0)} }

/* =====================================================================
   Sections de la page d'accueil
   ===================================================================== */
.sn-block { padding: 3.2em 2.617924em; }
.sn-block .sn-wrap { width: 100%; }
.sn-block-sub { text-align: center; color: #6c7a74; margin: -.6em 0 2em; font-size: 1.02rem; }
.sn-block:nth-of-type(even) { background: var(--sn-gris); }
.sn-cats-section { background: #fff; }
.sn-steps-section, .sn-faq-section { background: var(--sn-gris); }
.sn-reviews-section { background: var(--sn-vert-clair); }

/* --- Catégories --- */
.sn-cats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.sn-cat-card {
	position: relative; display: block; border-radius: var(--sn-radius); overflow: hidden;
	box-shadow: var(--sn-shadow-sm); border: 1px solid var(--sn-gris-bord); background:#fff;
	transition: transform .25s var(--sn-ease), box-shadow .25s var(--sn-ease);
}
.sn-cat-card:hover { transform: translateY(-5px); box-shadow: var(--sn-shadow-lg); }
.sn-cat-card img { display:block; width:100%; aspect-ratio: 1/1; object-fit: cover; transition: transform .35s var(--sn-ease); }
.sn-cat-card:hover img { transform: scale(1.06); }
.sn-cat-label {
	position:absolute; left:0; right:0; bottom:0; padding: 16px;
	background: linear-gradient(180deg, rgba(4,61,46,0) 0%, rgba(4,61,46,.85) 100%);
	color:#fff; font-family:"Poppins",sans-serif; font-weight:700; font-size:1rem;
	display:flex; justify-content:space-between; align-items:center;
}
.sn-cat-label em { font-style: normal; transition: transform .25s var(--sn-ease); }
.sn-cat-card:hover .sn-cat-label em { transform: translateX(5px); }

/* --- Bandeau promo --- */
.sn-promo {
	display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px;
	background: var(--sn-grad-nuit); color:#fff; border-radius: 24px; padding: 38px 44px;
	box-shadow: var(--sn-shadow-lg); position:relative; overflow:hidden;
}
.sn-promo::before {
	content:""; position:absolute; right:-60px; top:-60px; width:260px; height:260px; border-radius:50%;
	background: radial-gradient(circle, rgba(246,195,36,.35), transparent 70%);
}
.sn-promo .sn-promo-text { max-width: 60ch; position:relative; z-index:1; }
.sn-promo-kicker { display:inline-block; text-transform:uppercase; letter-spacing:1.5px; font-size:.75rem; font-weight:700; color:var(--sn-jaune); margin-bottom:8px; }
.sn-promo h2 { color:#fff; font-size: clamp(1.4rem,2.6vw,2rem); margin:0 0 .4em; }
.sn-promo p { opacity:.92; margin:0 0 1.3em; }
.sn-promo .button { background: var(--sn-grad-or); color: var(--sn-noir); }
.sn-promo .button:hover { color: var(--sn-noir); }
.sn-promo-badges { display:flex; flex-direction:column; gap:10px; position:relative; z-index:1; }
.sn-promo-badges .sn-badge { font-size:.85rem; padding:8px 14px; text-align:center; }

/* --- Comment ça marche --- */
.sn-steps { display:grid; grid-template-columns: repeat(4,1fr); gap:18px; }
.sn-step {
	background:#fff; border:1px solid var(--sn-gris-bord); border-radius:var(--sn-radius); padding:26px 20px;
	text-align:center; position:relative; box-shadow:var(--sn-shadow-sm);
	transition: transform .2s var(--sn-ease), box-shadow .2s var(--sn-ease);
}
.sn-step:hover { transform: translateY(-4px); box-shadow: var(--sn-shadow); }
.sn-step-num {
	position:absolute; top:-14px; left:50%; transform:translateX(-50%);
	width:30px; height:30px; border-radius:50%; background:var(--sn-grad-vert); color:#fff;
	font-weight:800; font-family:"Poppins",sans-serif; display:flex; align-items:center; justify-content:center;
	box-shadow:0 6px 12px rgba(10,143,107,.3);
}
.sn-step-ico { font-size:2.2rem; display:block; margin:10px 0 12px; }
.sn-step strong { display:block; font-family:"Poppins",sans-serif; color:var(--sn-noir); margin-bottom:6px; }
.sn-step-txt { font-size:.88rem; color:#6c7a74; }

/* --- Avis clients --- */
.sn-reviews { display:grid; grid-template-columns: repeat(3,1fr); gap:18px; }
.sn-review {
	background:#fff; border-radius:var(--sn-radius); padding:24px; margin:0;
	box-shadow:var(--sn-shadow-sm); border:1px solid #d6e8e0;
	display:flex; flex-direction:column; gap:14px;
}
.sn-review .sn-stars { color:var(--sn-jaune); letter-spacing:2px; font-size:1rem; }
.sn-review blockquote { margin:0; font-size:.96rem; color:var(--sn-encre); line-height:1.55; font-style:italic; }
.sn-review figcaption { display:flex; align-items:center; gap:12px; margin-top:auto; }
.sn-review-avatar {
	width:42px; height:42px; border-radius:50%; background:var(--sn-grad-vert); color:#fff;
	display:flex; align-items:center; justify-content:center; font-weight:800; font-family:"Poppins",sans-serif;
}
.sn-review figcaption strong { display:block; color:var(--sn-noir); font-size:.92rem; }
.sn-review figcaption em { font-style:normal; color:#6c7a74; font-size:.82rem; }

/* --- FAQ --- */
.sn-faq { max-width: 820px; margin: 0 auto; display:flex; flex-direction:column; gap:12px; }
.sn-faq-item {
	background:#fff; border:1px solid var(--sn-gris-bord); border-radius:var(--sn-radius-sm);
	padding: 4px 20px; box-shadow:var(--sn-shadow-sm);
}
.sn-faq-item summary {
	cursor:pointer; list-style:none; padding:16px 0; font-weight:600; color:var(--sn-noir);
	font-family:"Poppins",sans-serif; display:flex; justify-content:space-between; align-items:center; gap:12px;
}
.sn-faq-item summary::-webkit-details-marker { display:none; }
.sn-faq-item summary::after { content:"+"; color:var(--sn-vert); font-size:1.5rem; font-weight:700; transition:transform .2s var(--sn-ease); }
.sn-faq-item[open] summary::after { transform:rotate(45deg); }
.sn-faq-item p { margin:0 0 16px; color:var(--sn-texte); font-size:.95rem; line-height:1.6; }

/* --- Newsletter --- */
.sn-news {
	display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px;
	background: var(--sn-grad-vert); color:#fff; border-radius:24px; padding:36px 44px; box-shadow:var(--sn-shadow-lg);
}
.sn-news h2 { color:#fff; margin:0 0 .3em; font-size: clamp(1.3rem,2.4vw,1.8rem); }
.sn-news p { margin:0; opacity:.94; }
.sn-news-form { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.sn-news-form input[type="email"] {
	border:0; border-radius:999px; padding:.85em 1.3em; min-width:240px; font-size:.95rem;
}
.sn-news-form button { background: var(--sn-noir); color:#fff; box-shadow:none; }
.sn-news-form button:hover { background:#000; }
.sn-news-wa {
	background:#25d366; color:#fff; border-radius:999px; padding:.85em 1.3em; font-weight:600; text-decoration:none;
}
.sn-news-wa:hover { color:#fff; filter:brightness(1.05); }

@media (max-width: 980px) {
	.sn-cats, .sn-steps { grid-template-columns: repeat(2,1fr); }
	.sn-reviews { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	.sn-cats, .sn-steps { grid-template-columns: 1fr; }
	.sn-block { padding: 2.4em 1.2em; }
	.sn-promo, .sn-news { padding: 26px 22px; }
}

/* =====================================================================
   Divers
   ===================================================================== */
.onbackorder { color: var(--sn-jaune-fonce); }
img { max-width: 100%; height: auto; }
.woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering select { border-radius: 10px; }


/* =====================================================================
   SN-SALEH grille produits robuste (CSS Grid) — independante de Storefront
   ===================================================================== */
.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 22px;
	margin: 0 0 1.5em;
}
.woocommerce ul.products.columns-1 { grid-template-columns: 1fr; }
.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, 1fr); }
.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, 1fr); }
.woocommerce ul.products.columns-5 { grid-template-columns: repeat(5, 1fr); }
.woocommerce ul.products.columns-6 { grid-template-columns: repeat(6, 1fr); }
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	clear: none !important;
}
.woocommerce ul.products li.product a img { width: 100%; }
@media (max-width: 900px) {
	.woocommerce ul.products,
	.woocommerce ul.products.columns-3,
	.woocommerce ul.products.columns-4,
	.woocommerce ul.products.columns-5,
	.woocommerce ul.products.columns-6 { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 480px) {
	.woocommerce ul.products,
	.woocommerce ul.products[class*="columns-"] { grid-template-columns: 1fr !important; }
}


/* Recadrage cartes categories : masque le texte integre en bas de l'image */
.sn-cat-card img {
	aspect-ratio: 5 / 4 !important;
	object-fit: cover !important;
	object-position: center top !important;
}
