/* =====================================================================
   ELIKIA BUSINESS – styles communs (toutes les pages)
   Couleurs, police des titres, barre supérieure, en-tête, menu, menu mobile.
   Chargé par inc/elikia-header.php. La page d'accueil ajoute elikia-home.css.
   Police des titres : Plus Jakarta Sans (SIL Open Font License 1.1),
   téléchargée uniquement par les pages qui l'utilisent.
   ===================================================================== */

@font-face {
	font-family: "Plus Jakarta Sans";
	font-style: normal;
	font-weight: 500 800;
	font-display: swap;
	src: url("../fonts/plus-jakarta-sans-latin-var.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Polices de secours calées sur Arial (largeur mesurée dans Chrome) : tant que la
   police web n'est pas arrivée, le texte occupe la même place → pas de décalage (CLS). */
@font-face {
	font-family: "Jakarta Fallback";
	font-weight: 100 550;
	src: local("Arial");
	size-adjust: 106.8%;
	ascent-override: 97.4%;
	descent-override: 20.6%;
	line-gap-override: 0%;
}
@font-face {
	font-family: "Jakarta Fallback";
	font-weight: 551 900;
	src: local("Arial Bold"), local("Arial-BoldMT");
	size-adjust: 102%;
	ascent-override: 102%;
	descent-override: 21.6%;
	line-gap-override: 0%;
}
@font-face {
	font-family: "Inter Fallback";
	font-weight: 100 550;
	src: local("Arial");
	size-adjust: 106.8%;
	ascent-override: 90.7%;
	descent-override: 22.7%;
	line-gap-override: 0%;
}
@font-face {
	font-family: "Inter Fallback";
	font-weight: 551 900;
	src: local("Arial Bold"), local("Arial-BoldMT");
	size-adjust: 101.2%;
	ascent-override: 95.8%;
	descent-override: 23.9%;
	line-gap-override: 0%;
}

/* Kirki écrit « font-family: Inter » sans police de secours (→ Times pendant le chargement). */
:root body {
	font-family: Inter, "Inter Fallback", Arial, sans-serif;
}

:root {
	--ek-head: "Plus Jakarta Sans", "Jakarta Fallback", Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--ek-body: Inter, "Inter Fallback", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

	--ek-navy: #0b1736;
	--ek-navy-2: #13235a;
	--ek-blue: #075cf5;
	--ek-blue-dark: #0048d6;
	--ek-cyan: #0ea5e9;
	--ek-amber: #ffb020;
	--ek-green: #0b8266;
	--ek-green-dark: #05603a;

	--ek-ink: #0b1736;
	--ek-text: #334155;
	--ek-muted: #5b6b80;
	--ek-line: #e5eaf2;
	--ek-tile: #f1f5fb;
	--ek-surface-blue: #eaf1ff;
	--ek-page: #f5f7fb;

	/* Un seul bleu pour les actions (aplat, pas de dégradé) ; le dégradé est réservé au mot clé du hero */
	--ek-grad: var(--ek-blue);
	--ek-grad-accent: var(--ek-blue);
	--ek-radius: 14px;
	--ek-radius-sm: 10px;
	--ek-shadow: 0 1px 2px rgba(11, 20, 48, .04), 0 4px 16px -6px rgba(11, 20, 48, .08);
	--ek-shadow-lg: 0 24px 48px -18px rgba(7, 92, 245, .28), 0 8px 18px -10px rgba(11, 20, 48, .12);

	/* Icônes (masques SVG, couleur = currentColor) */
	--ek-i-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' 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");
	--ek-i-truck: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7h11v9H3zM14 10h4l3 3v3h-7z'/%3E%3Ccircle cx='7' cy='17.5' r='1.8'/%3E%3Ccircle cx='17' cy='17.5' r='1.8'/%3E%3C/svg%3E");
	--ek-i-lock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='11' width='16' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E");
	--ek-i-return: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 3-6.7L3 8'/%3E%3Cpath d='M3 3v5h5'/%3E%3C/svg%3E");
	--ek-i-headset: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 14v-2a8 8 0 0 1 16 0v2'/%3E%3Crect x='3' y='14' width='4' height='6' rx='1.5'/%3E%3Crect x='17' y='14' width='4' height='6' rx='1.5'/%3E%3Cpath d='M19 20a3 3 0 0 1-3 2h-3'/%3E%3C/svg%3E");
	--ek-i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
	--ek-i-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");
}

/* ---------- Barre supérieure défilante ---------- */
.ek-tb {
	position: relative;
	height: 40px;
	overflow: hidden;
	background:
		radial-gradient(40% 200% at 0% 50%, rgba(7, 92, 245, .45), transparent 70%),
		radial-gradient(40% 200% at 100% 50%, rgba(14, 165, 233, .3), transparent 70%),
		var(--ek-navy);
	color: rgba(255, 255, 255, .88);
	font-family: var(--ek-body);
	font-size: 13px;
	font-weight: 500;
}
/* Fondu sur les bords */
.ek-tb::before,
.ek-tb::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	width: 64px;
	z-index: 1;
	pointer-events: none;
}
.ek-tb::before { left: 0; background: linear-gradient(90deg, var(--ek-navy), transparent); }
.ek-tb::after { right: 0; background: linear-gradient(270deg, var(--ek-navy), transparent); }
.ek-tb__marquee {
	display: flex;
	width: max-content;
	height: 100%;
	animation: ek-tb-scroll 40s linear infinite;
}
.ek-tb:hover .ek-tb__marquee,
.ek-tb:focus-within .ek-tb__marquee { animation-play-state: paused; }
.ek-tb__list {
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ek-tb__list li {
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0 28px;
	white-space: nowrap;
}
/* Séparateur entre deux messages */
.ek-tb__list li::after {
	content: "";
	width: 4px;
	height: 4px;
	margin-left: 35px;
	border-radius: 50%;
	background: rgba(125, 211, 252, .55);
}
.ek-tb__list li { padding-right: 0; }
.ek-tb a { display: inline-flex; align-items: center; color: inherit; text-decoration: none; }
.ek-tb a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.ek-tb__ico {
	width: 16px;
	height: 16px;
	margin-right: 8px;
	flex: none;
	background: #7dd3fc;
	-webkit-mask: var(--ek-i-check) center / contain no-repeat;
	mask: var(--ek-i-check) center / contain no-repeat;
}
.ek-tb__ico--mail { -webkit-mask-image: var(--ek-i-mail); mask-image: var(--ek-i-mail); }
.ek-tb__ico--truck { -webkit-mask-image: var(--ek-i-truck); mask-image: var(--ek-i-truck); }
.ek-tb__ico--lock { -webkit-mask-image: var(--ek-i-lock); mask-image: var(--ek-i-lock); }
.ek-tb__ico--return { -webkit-mask-image: var(--ek-i-return); mask-image: var(--ek-i-return); }
.ek-tb__ico--headset { -webkit-mask-image: var(--ek-i-headset); mask-image: var(--ek-i-headset); }
@keyframes ek-tb-scroll { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
	.ek-tb__marquee { animation: none; width: 100%; justify-content: center; }
	.ek-tb__list + .ek-tb__list { display: none; }
}

/* ---------- En-tête (≥ 993 px : desktop Shoptimizer) ---------- */
body .site-header { border-bottom: 0; box-shadow: none; }
@media (min-width: 993px) {
	#masthead .main-header.col-full { padding-top: 18px; padding-bottom: 18px; }

	/* Recherche */
	#masthead .site-search { flex: 1 1 auto; max-width: 640px; margin: 0 auto; }
	#masthead .site-search form { position: relative; }
	#masthead .site-search input[type="search"] {
		height: 50px;
		padding: 0 60px 0 22px;
		border: 1px solid var(--ek-line);
		border-radius: 999px;
		background: var(--ek-tile);
		box-shadow: none;
		font-family: var(--ek-body);
		font-size: 15px;
		color: var(--ek-ink);
		transition: border-color .2s, background-color .2s, box-shadow .2s;
	}
	#masthead .site-search input[type="search"]::placeholder { color: var(--ek-muted); }
	#masthead .site-search input[type="search"]:focus {
		outline: 0;
		border-color: var(--ek-blue);
		background: #fff;
		box-shadow: 0 0 0 4px rgba(7, 92, 245, .12);
	}
	#masthead .site-search button[type="submit"] {
		position: absolute;
		top: 5px;
		right: 5px;
		width: 40px;
		height: 40px;
		padding: 0;
		border: 0;
		border-radius: 50%;
		background: var(--ek-grad);
		font-size: 0;
		color: #fff;
		opacity: 1;
		clip: auto;
		clip-path: none;
		overflow: visible;
		z-index: 2;
		cursor: pointer;
	}
	#masthead .site-search button[type="submit"]::before {
		content: "";
		position: absolute;
		inset: 0;
		margin: auto;
		width: 18px;
		height: 18px;
		background: currentColor;
		-webkit-mask: var(--ek-i-search) center / contain no-repeat;
		mask: var(--ek-i-search) center / contain no-repeat;
	}
	#masthead .site-search button[type="submit"]:hover { background: var(--ek-blue-dark); }
	/* L'icône loupe d'origine du thème, à gauche du champ, devient inutile */
	#masthead .site-search form::before,
	#masthead .site-search .woocommerce-product-search::before { display: none; }

	/*
	 * Espace client (discret) + panier (bouton bleu plein, action principale).
	 * ( icône ) Espace client      [ (panier) 128,90 € ]
	 */
	#masthead .secondary-navigation { margin-left: 28px; margin-right: 22px; padding-left: 0; }
	#masthead .secondary-navigation .menu > li { padding: 0; }
	#masthead .site-header-cart { margin-left: 22px; }

	/* Espace client : icône ronde + libellé, sans cadre */
	#masthead .secondary-navigation .menu > li > a {
		display: flex;
		flex-direction: row-reverse;
		justify-content: flex-end;
		align-items: center;
		gap: 10px;
		height: 50px;
		padding: 0;
		border: 0;
		background: none;
		font-family: var(--ek-body);
		font-size: 14.5px;
		font-weight: 600;
		line-height: 1;
		white-space: nowrap;
		color: var(--ek-ink);
		transition: color .2s;
	}
	#masthead .secondary-navigation .menu > li > a .icon-wrapper {
		position: static;
		display: grid;
		place-items: center;
		width: 44px;
		height: 44px;
		margin: 0;
		left: auto;
		top: auto;
		transform: none;
		border: 1px solid var(--ek-line);
		border-radius: 50%;
		background: var(--ek-tile);
		transition: background-color .2s, border-color .2s;
	}
	#masthead .secondary-navigation .menu > li > a .icon-wrapper svg { width: 20px; height: 20px; stroke: var(--ek-ink); }
	#masthead .secondary-navigation .menu > li > a:hover { color: var(--ek-blue); }
	#masthead .secondary-navigation .menu > li > a:hover .icon-wrapper { background: #e7efff; border-color: #c9d6fb; }
	#masthead .secondary-navigation .menu > li > a:hover .icon-wrapper svg { stroke: var(--ek-blue); }

	/* Panier : bouton bleu plein, icône à gauche, montant à droite */
	#masthead .site-header-cart .cart-contents {
		display: flex;
		flex-direction: row-reverse;
		align-items: center;
		gap: 10px;
		height: 50px;
		padding: 0 20px 0 5px;
		border: 0;
		border-radius: 999px;
		background: var(--ek-grad);
		font-family: var(--ek-body);
		line-height: 1;
		white-space: nowrap;
		transition: transform .2s, box-shadow .2s, background-color .2s;
	}
	#masthead .site-header-cart .cart-contents:hover { background: var(--ek-blue-dark); transform: translateY(-1px); box-shadow: 0 6px 14px -8px rgba(7, 92, 245, .55); }
	#masthead .site-header-cart .cart-contents > .amount { display: inline-block; font-size: 15px; font-weight: 700; color: #fff; }
	#masthead .site-header-cart .cart-contents > .amount .woocommerce-Price-amount,
	#masthead .site-header-cart .cart-contents > .amount bdi { color: #fff; }
	#masthead .site-header-cart .cart-contents > .amount .woocommerce-Price-currencySymbol { display: inline; }
	#masthead .site-header-cart .shoptimizer-cart-icon {
		position: relative;
		display: grid;
		place-items: center;
		width: 40px;
		height: 40px;
		margin: 0;
		border-radius: 50%;
		background: rgba(255, 255, 255, .16);
	}
	#masthead .site-header-cart .shoptimizer-cart-icon svg { width: 19px; height: 19px; stroke: #fff; top: 0; }
}

/* Pastille du nombre d'articles (desktop + mobile) */
#masthead .site-header-cart .mini-count,
#masthead .shoptimizer-cart .mini-count {
	position: absolute;
	top: -5px;
	right: -5px;
	left: auto;
	margin: 0;
	display: grid;
	place-items: center;
	width: auto;
	min-width: 10px;
	height: 18px;
	padding: 0 4px;
	border: 0;
	border-radius: 999px;
	background: var(--ek-amber);
	color: var(--ek-ink);
	font-family: var(--ek-body);
	font-size: 10.5px;
	font-weight: 800;
	line-height: 1;
	box-sizing: content-box;
}

/* ---------- Menu principal ---------- */
@media (min-width: 993px) {
	body .col-full-nav {
		background: #fff;
		border-top: 1px solid var(--ek-line);
		border-bottom: 1px solid var(--ek-line);
		box-shadow: 0 10px 24px -22px rgba(11, 20, 48, .5);
	}
	body .main-navigation ul.menu > li > a.cg-menu-link {
		position: relative;
		padding-top: 0;
		padding-bottom: 0;
		line-height: 56px;
		font-family: var(--ek-body);
		font-size: 15px;
		font-weight: 600;
		letter-spacing: -.1px;
		color: var(--ek-ink);
	}
	/* Soulignement animé */
	body .main-navigation ul.menu > li > a.cg-menu-link > span { position: relative; display: inline-block; line-height: 1.3; }
	/* Le thème trace aussi un filet 1 px (span::before) : un seul soulignement */
	body .main-navigation ul.menu > li > a.cg-menu-link > span::before { display: none; }
	body .main-navigation ul.menu > li > a.cg-menu-link > span::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: -6px;
		height: 2px;
		border-radius: 2px;
		background: var(--ek-grad-accent);
		transform: scaleX(0);
		transform-origin: left;
		transition: transform .25s;
	}
	body .main-navigation ul.menu > li:hover > a.cg-menu-link,
	body .main-navigation ul.menu > li.current-menu-item > a.cg-menu-link,
	body .main-navigation ul.menu > li.current-menu-ancestor > a.cg-menu-link { color: var(--ek-blue); }
	body .main-navigation ul.menu > li:hover > a.cg-menu-link > span::after,
	body .main-navigation ul.menu > li.current-menu-item > a.cg-menu-link > span::after,
	body .main-navigation ul.menu > li.current-menu-ancestor > a.cg-menu-link > span::after { transform: scaleX(1); }
	body .main-navigation ul.menu > li.menu-item-has-children:hover > a.cg-menu-link::after { background-color: var(--ek-blue); }
	/* Petit logo du menu collant : invisible tant que le menu n'est pas collé */
	body .col-full-nav .logo-mark { visibility: hidden; line-height: 55px; }
	body .is_stuck .logo-mark { visibility: visible; }
	body .col-full-nav .logo-mark img { width: 32px; height: 32px; max-width: none; border-radius: 8px; }
	body .main-navigation ul.menu > li.menu-item-has-children:hover > span.caret::after { background-color: var(--ek-blue); }

	/* Méga menu */
	body .main-navigation ul.menu > li.full-width > .sub-menu-wrapper {
		border-top: 1px solid var(--ek-line);
		border-radius: 0 0 24px 24px;
		background: #fff;
		box-shadow: 0 30px 60px -30px rgba(11, 20, 48, .35);
	}
	body .main-navigation ul.menu > li.full-width > .sub-menu-wrapper > .container { padding-top: 28px; padding-bottom: 32px; }
	body .main-navigation ul.menu > li.full-width > .sub-menu-wrapper li.menu-item-has-children > a,
	body .main-navigation ul.menu > li.full-width > .sub-menu-wrapper li.heading > a {
		margin-bottom: 6px;
		font-family: var(--ek-body);
		font-size: 12px;
		font-weight: 700;
		letter-spacing: 1.1px;
		text-transform: uppercase;
		color: var(--ek-blue);
	}
	body .main-navigation ul.menu > li.full-width > .sub-menu-wrapper li:not(.menu-item-has-children) > a {
		display: inline-block;
		padding: 5px 0;
		font-size: 14.5px;
		color: var(--ek-text);
		transition: color .15s, transform .15s;
	}
	body .main-navigation ul.menu > li.full-width > .sub-menu-wrapper li:not(.menu-item-has-children) > a:hover {
		color: var(--ek-blue);
		transform: translateX(3px);
	}
	/* Colonnes alignées à gauche (le thème les centre), carte image poussée à droite */
	body .main-navigation ul.menu > li.full-width > .sub-menu-wrapper > .container > ul.sub-menu { justify-content: flex-start; padding-top: 8px; padding-bottom: 8px; }
	body .main-navigation ul.menu > li.full-width > .sub-menu-wrapper > .container > ul.sub-menu > li { flex: 0 0 auto; min-width: 210px; }
	/* « Tous les … → » en bas de colonne */
	body .main-navigation ul.menu > li.full-width > .sub-menu-wrapper li.ek-mm-all > a { margin-top: 6px; font-weight: 600; color: var(--ek-blue); }
	body .main-navigation ul.menu > li.full-width > .sub-menu-wrapper li.ek-mm-all > a > span::after { content: " \2192"; }
	/* Carte image (image + phrase dans la description du lien, titre en dessous) */
	body .main-navigation ul.menu > li.full-width > .sub-menu-wrapper > .container > ul.sub-menu > li.ek-mm-card { flex: 0 0 300px; margin-left: auto; padding-right: 0; border: 0; }
	body .main-navigation ul.menu > li.full-width > .sub-menu-wrapper li.ek-mm-card > a {
		display: flex;
		flex-direction: column;
		gap: 4px;
		padding: 0;
		font-family: var(--ek-head);
		font-size: 16px;
		font-weight: 700;
		color: var(--ek-ink);
	}
	body .main-navigation ul.menu > li.full-width > .sub-menu-wrapper li.ek-mm-card > a:hover { transform: none; color: var(--ek-blue); }
	/* Balisage du thème : <span>Titre<span class="sub">image + phrase</span></span> → image, titre, phrase */
	body .main-navigation li.ek-mm-card a > span { display: flex; flex-direction: column; gap: 4px; }
	body .main-navigation li.ek-mm-card a > span > .sub { display: contents; }
	body .main-navigation li.ek-mm-card .ek-mm-card__img { order: -1; display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; margin: 0 0 8px; object-fit: cover; border-radius: 14px; transition: transform .3s; }
	body .main-navigation li.ek-mm-card .ek-mm-card__line { order: 1; font-family: var(--ek-body); font-size: 13.5px; font-weight: 400; color: var(--ek-muted); }
	body .main-navigation li.ek-mm-card .ek-mm-card__line::after { content: " \2192"; color: var(--ek-blue); }
	body .main-navigation li.ek-mm-card a:hover .ek-mm-card__img { transform: scale(1.02); }
	/* Menus déroulants simples */
	body .main-navigation ul.menu > li:not(.full-width) > .sub-menu-wrapper ul.sub-menu {
		min-width: 230px;
		padding: 8px;
		border: 1px solid var(--ek-line);
		border-radius: 16px;
		box-shadow: 0 24px 48px -20px rgba(11, 20, 48, .3);
	}
	/* Lignes aérées : 32 px (thème : 23 px) */
	body .main-navigation ul.menu > li:not(.full-width) > .sub-menu-wrapper ul.sub-menu a {
		padding: 6px 14px;
		line-height: 20px;
		border-radius: 10px;
		font-size: 14.5px;
		color: var(--ek-text);
	}
	body .main-navigation ul.menu > li:not(.full-width) > .sub-menu-wrapper ul.sub-menu a:hover { background: var(--ek-tile); color: var(--ek-blue); }
	/* Derniers éléments du menu : déroulant aligné à droite, sinon il sort de l'écran vers 1024 px (« Blog ») */
	body .main-navigation ul.menu > li:not(.full-width):nth-last-child(-n+3) > .sub-menu-wrapper ul.sub-menu { left: auto; right: 0; }
}
/* Menu mobile : pas de carte image (doublon de « Professionnels » / « Reconditionné » au 1er niveau) */
@media (max-width: 992px) {
	body .main-navigation li.ek-mm-card { display: none; }
}
/* 993–1100 px : 8 entrées tiennent sur une ligne (sinon « Aide » passe à la ligne) */
@media (min-width: 993px) and (max-width: 1100px) {
	body .main-navigation ul.menu > li > a.cg-menu-link { padding-left: 6px; padding-right: 6px; font-size: 14px; }
	body .main-navigation ul.menu > li.full-width > .sub-menu-wrapper > .container { padding-left: 20px; padding-right: 20px; }
	body .main-navigation ul.menu > li.full-width > .sub-menu-wrapper > .container > ul.sub-menu > li { min-width: 170px; }
	body .main-navigation ul.menu > li.full-width > .sub-menu-wrapper > .container > ul.sub-menu > li.ek-mm-card { flex-basis: 240px; }
}

/* ---------- Mobile (< 993 px) ---------- */
@media (max-width: 992px) {
	.ek-tb { height: 34px; font-size: 12px; }
	.ek-tb__list li { padding-left: 20px; }
	.ek-tb__list li::after { margin-left: 25px; }
	.ek-tb::before, .ek-tb::after { width: 28px; }

	body .site-header { box-shadow: 0 1px 0 var(--ek-line); }
	/* En-tête compact : 56 px au lieu des 70 px du thème (réglage Kirki en CSS inline) */
	#masthead .main-header,
	#masthead .site-branding { height: 56px; }
	#masthead .site-search { height: auto; padding: 0 16px 10px; }
	#masthead .main-header { margin-bottom: 50px; } /* place réservée à la recherche : 40 + 10 px (thème : 60 px) */
	#masthead .site-search input[type="search"] {
		height: 40px;
		padding-left: 38px;
		border: 1px solid var(--ek-line);
		border-radius: 999px;
		background: var(--ek-tile);
		font-size: 15px;
	}
	#masthead .site-search input[type="search"]:focus { border-color: var(--ek-blue); background: #fff; outline: 0; }
	#masthead .site-header-cart .shoptimizer-cart-icon { position: relative; display: inline-block; }
	#masthead .site-header-cart .shoptimizer-cart-icon svg { stroke: var(--ek-ink); }
	/* Panier aligné sur la marge de 16 px (comme le bouton menu) ; pastille dans le coin, sans masquer l'icône */
	#masthead .site-header-cart { top: 15px; margin-right: 8px; } /* thème : 21 px, calé sur 70 px */
	#masthead .site-header-cart .mini-count { top: -1px; right: -5px; min-width: 12px; height: 15px; padding: 0 3px; font-size: 9.5px; }

	/* ---------- Tiroir du menu mobile ----------
	 * Même balisage que le menu desktop (68 liens, aucun doublon chargé). Marge unique de 20 px.
	 * Niveau 1 : lignes de 48 px séparées par un filet ; sous-menu ouvert dans un panneau gris clair.
	 * Méga menus : les colonnes (niveau 2) sont des intitulés toujours ouverts (un seul appui au lieu de deux). */
	body .col-full-nav { padding-left: 20px; padding-right: 20px; }
	body .main-navigation { padding-top: 6px; }
	body .main-navigation ul.menu > li { margin: 0; border-bottom: 1px solid var(--ek-line); }
	body .main-navigation ul.menu > li > a.cg-menu-link { padding: 13px 0; font-size: 16px; font-weight: 600; line-height: 22px; color: var(--ek-ink); }
	body .main-navigation ul.menu > li.dropdown-open > a.cg-menu-link { color: var(--ek-blue); }
	body .main-navigation ul.menu > li.menu-item-has-children > span.caret { right: -12px; width: 48px; height: 48px; }
	body .main-navigation ul.menu > li.menu-item-has-children > span.caret::after { width: 18px; height: 18px; background-color: var(--ek-muted); }
	body .main-navigation ul.menu > li.dropdown-open > span.caret::after { background-color: var(--ek-blue); }
	body .main-navigation ul.menu > li.menu-item-has-children.dropdown-open > .sub-menu-wrapper {
		margin: 0 0 14px;
		padding: 6px 14px;
		border: 0;
		border-radius: 12px;
		background: var(--ek-tile);
	}
	body .main-navigation ul.menu .sub-menu-wrapper .container { padding: 0; }
	body .main-navigation ul.menu .sub-menu-wrapper ul li > a.cg-menu-link { width: 100%; padding: 8px 0; font-size: 15px; font-weight: 500; line-height: 20px; color: var(--ek-text); }
	body .main-navigation ul.menu .sub-menu-wrapper ul li.ek-mm-all > a.cg-menu-link { font-weight: 600; color: var(--ek-blue); }
	/* Méga menu : intitulés de colonne toujours ouverts */
	body .main-navigation ul.menu li.full-width li.menu-item-has-children > span.caret { display: none; }
	body .main-navigation ul.menu li.full-width.dropdown-open li.menu-item-has-children > .sub-menu-wrapper {
		position: static;
		left: auto;
		margin: 0;
		padding: 0 0 6px;
		opacity: 1;
		transform: none;
	}
	body .main-navigation ul.menu li.full-width .sub-menu-wrapper li.menu-item-has-children > a.cg-menu-link {
		padding: 12px 0 2px;
		font-size: 11.5px;
		font-weight: 700;
		letter-spacing: 1px;
		text-transform: uppercase;
		color: var(--ek-muted);
	}
	body .main-navigation ul.menu li.full-width .sub-menu > li.menu-item-has-children + li.menu-item-has-children { border-top: 1px solid var(--ek-line); }

	/* Menu mobile : bloc d'informations sous le menu (même marge que le menu) */
	body .mobile-extra { padding: 22px 0 28px; border-top: 0; }
	body .mobile-extra h4 {
		margin: 18px 0 8px;
		font-family: var(--ek-body);
		font-size: 11.5px;
		font-weight: 700;
		letter-spacing: 1.1px;
		text-transform: uppercase;
		color: var(--ek-blue);
	}
	body .mobile-extra h4:first-child { margin-top: 0; }
	body .mobile-extra ul { margin: 0; padding: 0; list-style: none; }
	body .mobile-extra li a:not(.button) { display: block; padding: 6px 0; font-size: 15px; color: var(--ek-ink); }
	body .mobile-extra ul.ek-social { gap: 10px; margin-bottom: 0; }
	body .mobile-extra ul.ek-social li a.ek-social__link { display: grid; width: 40px; height: 40px; padding: 0 !important; }
}

@media (prefers-reduced-motion: reduce) {
	body .main-navigation ul.menu > li > a.cg-menu-link > span::after { transition: none; }
}

/* =====================================================================
   Pied de page
   Contenu : Apparence → Widgets (« Below Content », « Footer », « Copyright »)
   et Apparence → Menus (« Pied de page – … », « Réseaux sociaux »).
   Sélecteurs préfixés par body / .site pour passer devant les styles Kirki.
   ===================================================================== */

/* Bandeau de garanties au-dessus du pied de page (masqué sur l'accueil : déjà présent en haut de page) */
body.ek-home .below-content { display: none; }
body .below-content {
	padding: 32px 0;
	background: #fff;
	border-top: 1px solid var(--ek-line);
}
/*
 * Le thème élargit ces zones à 1320 + 40 px (marge interne des anciens widgets).
 * Les widgets n'ont plus de marge (grille) : on revient à 1320 px, aligné sur l'en-tête et les sections.
 */
body .below-content .col-full,
body footer .col-full {
	max-width: 1320px;
	padding-left: 2.617924rem;
	padding-right: 2.617924rem;
}
/* Tablette / mobile : mêmes marges que les sections Elementor (20 px / 16 px) */
@media (max-width: 992px) {
	body .below-content .col-full,
	body footer .col-full { padding-left: 20px; padding-right: 20px; }
}
@media (max-width: 767px) {
	body .below-content .col-full,
	body footer .col-full { padding-left: 16px; padding-right: 16px; }
}
body .below-content .col-full {
	display: grid;
	/* Colonnes à la largeur du contenu, réparties d'un bord à l'autre (pas de vide à droite du dernier élément) */
	grid-template-columns: repeat(4, auto);
	justify-content: space-between;
	gap: 24px;
}
body .below-content .col-full > .widget { max-width: 300px; }
/* Clearfix du thème : sinon cellules de grille vides sous les éléments */
body .below-content .col-full::before,
body .below-content .col-full::after { display: none; }
/* Icône à gauche (absolue, centrée verticalement), titre + texte ; sans cadre */
body .below-content .widget {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 48px;
	margin: 0;
	padding: 0 0 0 62px;
	width: auto;
	float: none;
}
body .below-content .widget svg {
	position: absolute;
	left: 0;
	top: 50%;
	width: 48px;
	height: 48px;
	padding: 12px;
	margin: -24px 0 0;
	border-radius: 14px;
	background: var(--ek-surface-blue);
	box-shadow: inset 0 0 0 1px rgba(7, 92, 245, .08);
	stroke: var(--ek-blue);
	box-sizing: border-box;
}
body .below-content .widget .widget-title {
	margin: 0 0 2px;
	padding-left: 0; /* Shoptimizer : 32px, en plus du retrait de l'icône */
	font-family: var(--ek-head);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: none;
	color: var(--ek-ink);
}
body .below-content .widget p,
body .below-content .widget .textwidget p { margin: 0; padding-left: 0; font-size: 13.5px; line-height: 1.45; color: var(--ek-muted); }

/* Zone principale */
body footer.site-footer {
	position: relative;
	overflow: hidden;
	padding: 64px 0 40px;
	background:
		radial-gradient(40% 60% at 0% 0%, rgba(7, 92, 245, .28), transparent 70%),
		radial-gradient(35% 60% at 100% 100%, rgba(14, 165, 233, .16), transparent 70%),
		var(--ek-navy);
	color: rgba(255, 255, 255, .68);
	font-family: var(--ek-body);
}
body footer.site-footer .col-full {
	display: grid;
	grid-template-columns: minmax(0, 1.8fr) repeat(5, minmax(0, 1fr));
	gap: 28px;
}
body footer.site-footer .col-full::before,
body footer.site-footer .col-full::after { display: none; }
body footer.site-footer .widget { width: auto; float: none; margin: 0; padding: 0; }
body .site footer.site-footer .widget .widget-title {
	display: block;
	margin: 0 0 16px;
	font-family: var(--ek-body);
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .9px;
	text-transform: uppercase;
	color: #fff;
}
body footer.site-footer ul.menu { margin: 0; padding: 0; list-style: none; }
body footer.site-footer ul.menu li { margin: 0; padding: 0; }
body footer.site-footer a:not(.button) { color: rgba(255, 255, 255, .68); text-decoration: none; transition: color .2s; }
body footer.site-footer ul.menu a:not(.button) { display: inline-block; padding: 5px 0; font-size: 14.5px; line-height: 1.4; }
body footer.site-footer a:not(.button):hover { color: #fff; }
body footer.site-footer li a::after { display: none; }

/* Colonne de présentation */
body footer.site-footer .ek-f-logo {
	margin: 0 0 6px;
	font-family: var(--ek-head);
	font-size: 22px;
	font-weight: 800;
	letter-spacing: .5px;
	color: #fff;
}
body footer.site-footer .ek-f-tagline {
	margin: 0 0 12px;
	font-size: 14.5px;
	font-weight: 600;
	color: #7dd3fc;
}
body footer.site-footer .widget_text p { margin: 0 0 18px; font-size: 14.5px; line-height: 1.65; max-width: 340px; }
body footer.site-footer .widget_text p.ek-f-trust{
	margin: 10px 0;
}
body footer.site-footer .ek-f-trust a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 600;
	color: #fff;
}
body footer.site-footer .ek-f-trust a::before {
	content: "\2605";
	color: #00b67a;
	font-size: 16px;
}
body footer.site-footer .ek-f-trust a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Icônes réseaux sociaux (pied de page + menu mobile) */
.ek-social {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 20px;
	padding: 0;
	list-style: none;
}
.ek-social li { margin: 0; padding: 0; }
.ek-social__link {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	transition: transform .2s, background-color .2s, color .2s, border-color .2s;
}
.ek-social__link svg { width: 18px; height: 18px; }
body footer.site-footer .ek-social__link {
	border: 1px solid rgba(255, 255, 255, .16);
	background: rgba(255, 255, 255, .06);
	color: #fff;
}
body footer.site-footer .ek-social__link:hover,
body footer.site-footer .ek-social__link:focus-visible { transform: translateY(-2px); background: #fff; color: var(--ek-navy); border-color: #fff; }
/* Le thème force la couleur des liens survolés du pied de page : l'icône suit le lien */
body footer.site-footer .ek-social__link:hover svg path,
body footer.site-footer .ek-social__link:focus-visible svg path { fill: var(--ek-navy); }
body .mobile-extra .ek-social__link {
	border: 1px solid var(--ek-line);
	background: var(--ek-tile);
	color: var(--ek-ink);
}
body .mobile-extra .ek-social__link:hover { background: var(--ek-blue); border-color: var(--ek-blue); color: #fff; }
.ek-social__link:focus-visible { outline: 3px solid var(--ek-amber); outline-offset: 2px; }

/* Bas de page : copyright + moyens de paiement */
body footer.copyright,
body footer.copyright:last-child:not(:only-of-type) {
	margin: 0;
	padding: 20px 0;
	background: #060f24;
	border-top: 1px solid rgba(255, 255, 255, .08);
	color: rgba(255, 255, 255, .6);
	font-family: var(--ek-body);
	font-size: 13.5px;
}
body footer.copyright .col-full {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 14px 24px;
}
body footer.copyright .col-full::before,
body footer.copyright .col-full::after { display: none; }
body footer.copyright .widget { flex: 0 1 auto; width: auto; float: none; margin: 0; padding: 0; }
body footer.copyright .widget:last-child { margin-left: auto; }
body footer.copyright .textwidget { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; }
body footer.copyright p { margin: 0; }
body footer.copyright p:empty,
body footer.copyright p:has(> br:only-child) { display: none; }
body footer.copyright a:not(.button) { color: rgba(255, 255, 255, .6); }
body footer.copyright a:not(.button):hover { color: #fff; }
body footer.copyright img {
	display: block;
	float: none;
	height: 22px;
	width: auto;
	margin: 0;
	padding: 6px 12px;
	border-radius: 8px;
	background: #fff;
	box-sizing: content-box;
}

/* Tablette */
@media (max-width: 1100px) {
	body footer.site-footer .col-full { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px 28px; }
	body footer.site-footer .col-full > .widget:first-child { grid-column: 1 / -1; }
	body .below-content .col-full { grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: stretch; gap: 20px 24px; }
	body .below-content .col-full > .widget { max-width: none; }
}

/* Mobile */
@media (max-width: 600px) {
	body .below-content { padding: 28px 0; }
	body .below-content .col-full { grid-template-columns: 1fr; gap: 16px; }
	body .below-content .widget { min-height: 42px; padding-left: 56px; }
	body .below-content .widget svg { width: 42px; height: 42px; padding: 10px; margin-top: -21px; border-radius: 12px; }
	body footer.site-footer { padding: 44px 0 28px; }
	body footer.site-footer .col-full { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
	body footer.site-footer ul.menu a:not(.button) { font-size: 14px; padding: 6px 0; }
	body footer.copyright .col-full { flex-direction: column; align-items: flex-start; }
	body footer.copyright .widget:last-child { margin-left: 0; }
}

/* ---------- Retour en haut ---------- */
.ek-top {
	position: fixed;
	right: 24px;
	bottom: calc(24px + env(safe-area-inset-bottom, 0px));
	z-index: 90;
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--ek-blue);
	color: #fff;
	box-shadow: 0 8px 20px -6px rgba(7, 92, 245, .5);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: opacity .25s, transform .25s, visibility .25s, bottom .2s, background-color .2s;
}
.ek-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.ek-top:hover,
.ek-top:focus { background: var(--ek-blue-dark); color: #fff; }
.ek-top:focus-visible { outline: 3px solid var(--ek-amber); outline-offset: 2px; }
@media (max-width: 767px) {
	.ek-top { right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); width: 42px; height: 42px; }
}
/* Au-dessus de la barre « Ajouter au panier » collante de CommerceKit (fiche produit, ≤ 992 px) */
@media (max-width: 992px) {
	body.cta-off-screen:has(#cgkit-mobile-commercekit-sticky-atc) .ek-top { bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: reduce) {
	.ek-top { transition: none; }
}

/* ---------- Page Catalogue (grille [product_categories] dans un groupe .ek-catalogue) ---------- */
.ek-catalogue { margin-bottom: 40px; }
.ek-catalogue ul.products li.product-category img {
	aspect-ratio: 1;
	width: 100%;
	object-fit: contain;
	background: #fff;
	border-radius: 12px;
}
@media (min-width: 600px) and (max-width: 992px) {
	.ek-catalogue ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
	.ek-catalogue ul.products::before, .ek-catalogue ul.products::after { display: none; }
	.ek-catalogue ul.products li.product { width: auto; margin: 0; float: none; }
}

/* ---------- Formulaire de contact (Elementor Pro Form, classe .ek-form – docs/tools/build-forms.php) ---------- */
.ek-form .elementor-field-group { margin-bottom: 14px; }
.ek-form .elementor-field-label { margin-bottom: 6px; font-size: 14px; font-weight: 600; color: var(--ek-ink); }
.ek-form .elementor-field-group .elementor-field-textual,
.ek-form .elementor-field-group select {
	min-height: 48px;
	padding: 12px 14px;
	border: 1px solid #d6deeb;
	border-radius: 12px;
	background: #fff;
	font-size: 15px;
	color: var(--ek-ink);
	box-shadow: none;
	transition: border-color .2s, box-shadow .2s;
}
.ek-form .elementor-field-group textarea.elementor-field-textual { min-height: 140px; }
.ek-form .elementor-field-group .elementor-field-textual:focus,
.ek-form .elementor-field-group select:focus { border-color: var(--ek-blue); outline: 0; box-shadow: 0 0 0 3px rgba(7, 92, 245, .15); }
.ek-form .elementor-field-textual::placeholder { color: #94a3b8; }
.ek-form .elementor-mark-required .elementor-field-label::after { color: #dc2626; }
.ek-form .elementor-field-type-acceptance .elementor-field-subgroup label { font-size: 13.5px; line-height: 1.5; color: var(--ek-muted); }
.ek-form .elementor-field-type-acceptance a { color: var(--ek-blue); }
.ek-form .elementor-button {
	min-height: 50px;
	border-radius: 999px;
	background: var(--ek-blue);
	font-size: 15px;
	font-weight: 700;
	transition: background-color .2s, transform .2s;
}
.ek-form .elementor-button:hover,
.ek-form .elementor-button:focus-visible { background: var(--ek-blue-dark); transform: translateY(-1px); }
.ek-form .elementor-message { font-size: 14.5px; }
.ek-form .elementor-message.elementor-message-success { color: var(--ek-green); }

/* Fiche produit : lien « Une question sur ce produit ? » (widget text-6, remplace l'ancien shortcode WPForms) */
.ek-pquestion { display: flex; align-items: center; gap: 8px; margin: 6px 0 0; font-size: 14px; color: var(--ek-text); }
.ek-pquestion::before {
	content: "";
	flex: none;
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: var(--ek-i-headset) center / contain no-repeat;
	mask: var(--ek-i-headset) center / contain no-repeat;
}
.ek-pquestion a { font-weight: 600; color: var(--ek-blue); }

/* Accordéon Elementor (ancien widget) : l'icône « fa fa-angle-* » n'a plus de police (FA4 retiré) → chevron SVG. */
.elementor-accordion .elementor-accordion-icon i.fa {
	display: inline-block;
	width: 16px;
	height: 16px;
	vertical-align: middle;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.elementor-accordion .elementor-accordion-icon i.fa-angle-up {
	transform: rotate(180deg);
}
