/*
Theme Name: Boutique Claire
Description: Thème WooCommerce francophone original : vitrine, catalogue et fiche produit pensée pour la conversion. Navigation et pied de page communs, sections par catégorie, 24 produits par page avec pagination, galerie produit, achat immédiat et produits similaires.
Version: 1.0.3
Requires at least: 6.4
Tested up to: 7.0
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: boutique-claire
Tags: e-commerce, woocommerce, custom-menu, custom-logo, featured-images, translation-ready, three-columns
*/

/* ==========================================================================
   1. Jetons de design
   ========================================================================== */
:root {
	--bc-ink: #1a1714;
	--bc-ink-soft: #4a423b;
	--bc-muted: #7d736a;
	--bc-line: #e7e1d9;
	--bc-line-strong: #d5ccc1;
	--bc-bg: #fbf9f6;
	--bc-surface: #ffffff;
	--bc-surface-2: #f4f0ea;
	--bc-surface-3: #ece5dc;

	--bc-accent: #b6512f;
	--bc-accent-dark: #8f3d22;
	--bc-accent-soft: #fbeeea;
	--bc-slate: #22384f;
	--bc-slate-soft: #2f4a66;

	--bc-success: #2f7d5a;
	--bc-success-soft: #e9f4ee;
	--bc-danger: #b3261e;
	--bc-danger-soft: #fdecea;
	--bc-warning: #a2681b;
	--bc-warning-soft: #fdf3e2;

	--bc-radius: 14px;
	--bc-radius-sm: 10px;
	--bc-radius-pill: 999px;
	--bc-shadow-xs: 0 1px 2px rgba(26, 23, 20, .06);
	--bc-shadow-sm: 0 2px 6px rgba(26, 23, 20, .07);
	--bc-shadow: 0 18px 40px -24px rgba(26, 23, 20, .35);
	--bc-shadow-lg: 0 34px 70px -34px rgba(26, 23, 20, .42);

	--bc-container: 1240px;
	--bc-container-wide: 1440px;
	--bc-gap: clamp(14px, 1.8vw, 26px);
	--bc-header-h: 76px;

	--bc-font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
	--bc-font-head: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Times New Roman", serif;
	--bc-ease: cubic-bezier(.22, .61, .36, 1);
}

@supports (color: color-mix(in oklab, red, blue)) {
	:root {
		--bc-accent-dark: color-mix(in oklab, var(--bc-accent) 76%, #000);
		--bc-accent-soft: color-mix(in oklab, var(--bc-accent) 9%, #fff);
	}
}

/* ==========================================================================
   2. Base
   ========================================================================== */
*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	background: var(--bc-bg);
	color: var(--bc-ink);
	font-family: var(--bc-font);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--bc-font-head);
	font-weight: 600;
	line-height: 1.2;
	color: var(--bc-ink);
	margin: 0 0 .6em;
	letter-spacing: -.01em;
}

h1 { font-size: clamp(2rem, 4.2vw, 3rem); }
h2 { font-size: clamp(1.5rem, 2.6vw, 2.1rem); }
h3 { font-size: clamp(1.2rem, 1.9vw, 1.5rem); }

p { margin: 0 0 1.1em; }

a { color: var(--bc-accent); text-decoration: none; transition: color .18s var(--bc-ease); }
a:hover { color: var(--bc-accent-dark); }

img { max-width: 100%; height: auto; display: block; }

hr { border: 0; border-top: 1px solid var(--bc-line); margin: 2rem 0; }

figure { margin: 0 0 1.5rem; }

blockquote {
	margin: 1.5rem 0;
	padding: .25rem 0 .25rem 1.25rem;
	border-left: 3px solid var(--bc-accent);
	color: var(--bc-ink-soft);
	font-family: var(--bc-font-head);
	font-size: 1.1rem;
}

:focus-visible {
	outline: 2px solid var(--bc-accent);
	outline-offset: 2px;
	border-radius: 4px;
}

/* ==========================================================================
   3. Utilitaires
   ========================================================================== */
.bc-container {
	width: 100%;
	max-width: var(--bc-container);
	margin-inline: auto;
	padding-inline: clamp(16px, 3vw, 32px);
}

.bc-container--wide { max-width: var(--bc-container-wide); }

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.screen-reader-text:focus {
	position: fixed !important;
	top: 12px;
	left: 12px;
	z-index: 100000;
	width: auto;
	height: auto;
	clip: auto;
	padding: .8rem 1.2rem;
	background: var(--bc-ink);
	color: #fff;
	border-radius: var(--bc-radius-sm);
	font-size: .95rem;
}

.bc-skip { display: block; }

.bc-icon { flex: none; }

/* Boutons génériques */
.bc-btn,
.button,
button,
input[type="submit"],
input[type="button"] {
	font-family: var(--bc-font);
}

.bc-btn,
.bc-button,
body .button,
body button.button,
body input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .55rem;
	padding: .85rem 1.5rem;
	border: 1px solid transparent;
	border-radius: var(--bc-radius-pill);
	background: var(--bc-ink);
	color: #fff;
	font-size: .95rem;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	cursor: pointer;
	transition: background .2s var(--bc-ease), color .2s var(--bc-ease), border-color .2s var(--bc-ease), transform .2s var(--bc-ease), box-shadow .2s var(--bc-ease);
}

.bc-btn:hover,
body .button:hover,
body button.button:hover { background: var(--bc-accent); color: #fff; transform: translateY(-1px); }

.bc-btn--primary,
body .button.alt,
body .single_add_to_cart_button {
	background: var(--bc-accent);
	color: #fff;
	box-shadow: 0 12px 26px -16px var(--bc-accent);
}

.bc-btn--primary:hover,
body .button.alt:hover,
body .single_add_to_cart_button:hover { background: var(--bc-accent-dark); }

.bc-btn--ghost {
	background: transparent;
	color: var(--bc-ink);
	border-color: var(--bc-line-strong);
}

.bc-btn--ghost:hover { background: var(--bc-ink); color: #fff; border-color: var(--bc-ink); }

.bc-btn--light {
	background: #fff;
	color: var(--bc-ink);
}

.bc-btn--light:hover { background: var(--bc-ink); color: #fff; }

.bc-btn--sm { padding: .55rem 1.1rem; font-size: .875rem; }
.bc-btn--block { width: 100%; }

.bc-chip {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	padding: .25rem .6rem;
	border-radius: var(--bc-radius-pill);
	background: var(--bc-surface-2);
	color: var(--bc-ink-soft);
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
}

/* ==========================================================================
   4. Barre supérieure
   ========================================================================== */
.bc-topbar {
	background: var(--bc-ink);
	color: #f3efe9;
	font-size: .82rem;
}

.bc-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 40px;
	flex-wrap: wrap;
}

.bc-topbar__msg {
	display: flex;
	align-items: center;
	gap: .5rem;
	min-width: 0;
}

.bc-topbar__msg .bc-icon { color: var(--bc-accent); }

.bc-topbar__meta {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	flex-wrap: wrap;
}

.bc-topbar a { color: #f3efe9; }
.bc-topbar a:hover { color: #fff; text-decoration: underline; }

.bc-topbar__list {
	display: flex;
	gap: 1.1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bc-topbar__item { display: inline-flex; align-items: center; gap: .4rem; }

/* ==========================================================================
   5. En-tête
   ========================================================================== */
.bc-header {
	position: sticky;
	top: 0;
	z-index: 90;
	background: var(--bc-surface);
	border-bottom: 1px solid var(--bc-line);
	transition: box-shadow .25s var(--bc-ease);
}

.bc-header--stuck { box-shadow: var(--bc-shadow-sm); }

.bc-header__inner {
	display: flex;
	align-items: center;
	gap: clamp(.75rem, 2vw, 2rem);
	min-height: var(--bc-header-h);
}

.bc-brand {
	display: flex;
	align-items: center;
	gap: .7rem;
	flex: none;
}

.bc-brand__logo img { max-height: 46px; width: auto; }

.bc-brand__name {
	font-family: var(--bc-font-head);
	font-size: 1.35rem;
	font-weight: 600;
	letter-spacing: -.02em;
	color: var(--bc-ink);
	line-height: 1.1;
	margin: 0;
}

.bc-brand__name a { color: inherit; }

/* Navigation principale (en-tête uniquement : le pied de page a ses propres styles) */
.bc-nav { margin-inline: auto; }

.bc-nav .bc-menu,
.bc-nav .bc-menu ul {
	display: flex;
	align-items: center;
	gap: .35rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bc-nav .bc-menu > li { position: relative; }

.bc-nav .bc-menu > li > a {
	display: flex;
	align-items: center;
	gap: .3rem;
	padding: .6rem .85rem;
	border-radius: var(--bc-radius-sm);
	color: var(--bc-ink);
	font-size: .95rem;
	font-weight: 600;
	white-space: nowrap;
}

.bc-nav .bc-menu > li > a:hover,
.bc-nav .bc-menu > li.current-menu-item > a,
.bc-nav .bc-menu > li.current-menu-ancestor > a,
.bc-nav .bc-menu > li.current_page_parent > a {
	background: var(--bc-surface-2);
	color: var(--bc-accent);
}

.bc-nav .bc-menu .sub-menu {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	z-index: 20;
	display: block;
	min-width: 224px;
	padding: .5rem;
	margin: 0;
	list-style: none;
	background: var(--bc-surface);
	border: 1px solid var(--bc-line);
	border-radius: var(--bc-radius);
	box-shadow: var(--bc-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .2s var(--bc-ease), transform .2s var(--bc-ease), visibility .2s;
}

.bc-nav .bc-menu > li:hover > .sub-menu,
.bc-nav .bc-menu > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.bc-nav .bc-menu .sub-menu li { position: relative; }

.bc-nav .bc-menu .sub-menu a {
	display: block;
	padding: .55rem .7rem;
	border-radius: var(--bc-radius-sm);
	color: var(--bc-ink-soft);
	font-size: .9rem;
	font-weight: 500;
	white-space: normal;
}

.bc-nav .bc-menu .sub-menu a:hover { background: var(--bc-surface-2); color: var(--bc-accent); }

.bc-nav .bc-menu > li.menu-item-has-children > a::after {
	content: "";
	width: 7px;
	height: 7px;
	border-right: 1.6px solid currentColor;
	border-bottom: 1.6px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
	opacity: .6;
}

.bc-nav .bc-menu .sub-menu .sub-menu { top: -6px; left: 100%; }

/* Actions */
.bc-actions {
	display: flex;
	align-items: center;
	gap: .3rem;
	flex: none;
	margin-left: auto;
}

.bc-iconbtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .45rem;
	min-width: 42px;
	height: 42px;
	padding: 0 .55rem;
	border: 1px solid transparent;
	border-radius: var(--bc-radius-sm);
	background: transparent;
	color: var(--bc-ink);
	font-size: .9rem;
	font-weight: 600;
	cursor: pointer;
	transition: background .18s var(--bc-ease), color .18s var(--bc-ease);
}

.bc-iconbtn:hover { background: var(--bc-surface-2); color: var(--bc-accent); }

.bc-cart-link { position: relative; }

.bc-cart-link__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 .3rem;
	border-radius: var(--bc-radius-pill);
	background: var(--bc-accent);
	color: #fff;
	font-size: .7rem;
	font-weight: 700;
	line-height: 1;
}

.bc-cart-link__count[hidden] { display: none; }

.bc-cart-link__total { font-size: .82rem; color: var(--bc-muted); }

/* Recherche */
.bc-searchbar {
	border-top: 1px solid var(--bc-line);
	background: var(--bc-surface);
	padding: .9rem 0;
}

.bc-searchbar[hidden] { display: none; }

.bc-searchform {
	display: flex;
	align-items: center;
	gap: .5rem;
	max-width: 720px;
	margin-inline: auto;
	padding: .35rem .35rem .35rem 1rem;
	background: var(--bc-surface-2);
	border: 1px solid var(--bc-line);
	border-radius: var(--bc-radius-pill);
}

.bc-searchform input[type="search"] {
	flex: 1;
	min-width: 0;
	padding: .6rem 0;
	border: 0;
	background: transparent;
	font-size: 1rem;
	color: var(--bc-ink);
}

.bc-searchform input[type="search"]:focus { outline: none; }

.bc-searchform button {
	padding: .6rem 1.2rem;
	border-radius: var(--bc-radius-pill);
	background: var(--bc-ink);
	color: #fff;
	border: 0;
	font-weight: 600;
	cursor: pointer;
}

.bc-searchform button:hover { background: var(--bc-accent); }

/* Tiroir mobile */
.bc-burger { display: none; }

.bc-drawer {
	position: fixed;
	inset: 0;
	z-index: 120;
	display: none;
}

.bc-drawer[hidden] { display: none; }

.bc-drawer.is-open { display: block; }

.bc-drawer__scrim {
	position: absolute;
	inset: 0;
	background: rgba(26, 23, 20, .5);
	backdrop-filter: blur(2px);
}

.bc-drawer__panel {
	position: relative;
	width: min(88vw, 360px);
	height: 100%;
	overflow-y: auto;
	padding: 1.25rem 1.25rem 2.5rem;
	background: var(--bc-surface);
	box-shadow: var(--bc-shadow-lg);
	animation: bc-slide-in .28s var(--bc-ease);
}

@keyframes bc-slide-in {
	from { transform: translateX(-18px); opacity: .4; }
	to { transform: translateX(0); opacity: 1; }
}

.bc-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1rem;
}

.bc-drawer__title {
	margin: 0;
	font-family: var(--bc-font);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--bc-muted);
}

.bc-drawer .bc-menu,
.bc-drawer .bc-menu ul,
.bc-drawer ul {
	display: block;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bc-drawer .bc-menu > li { position: static; }

.bc-drawer .bc-menu > li > a {
	display: block;
	padding: .7rem 0;
	border-bottom: 1px solid var(--bc-line);
	border-radius: 0;
	color: var(--bc-ink);
	font-size: 1.02rem;
	font-weight: 600;
}

.bc-drawer .bc-menu > li > a:hover,
.bc-drawer .bc-menu > li.current-menu-item > a { color: var(--bc-accent); background: transparent; }

.bc-drawer .sub-menu {
	position: static;
	opacity: 1;
	visibility: visible;
	transform: none;
	box-shadow: none;
	border: 0;
	padding: 0 0 .4rem .85rem;
	min-width: 0;
}

.bc-drawer .sub-menu a {
	display: block;
	padding: .5rem 0;
	color: var(--bc-muted);
	font-size: .92rem;
	font-weight: 500;
}

.bc-drawer .sub-menu a:hover { color: var(--bc-accent); }

.bc-drawer .bc-menu > li.menu-item-has-children > a::after { display: none; }

.bc-drawer__footer {
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--bc-line);
	display: grid;
	gap: .6rem;
}

/* ==========================================================================
   6. Bannière d’accueil
   ========================================================================== */
.bc-hero {
	position: relative;
	overflow: hidden;
	background: var(--bc-slate);
	color: #fff;
	isolation: isolate;
}

.bc-hero__media {
	position: absolute;
	inset: 0;
	z-index: -1;
}

.bc-hero__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.bc-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(100deg, rgba(18, 24, 33, .88) 0%, rgba(18, 24, 33, .66) 46%, rgba(18, 24, 33, .28) 100%);
}

.bc-hero--plain::after {
	background:
		radial-gradient(1200px 480px at 12% 18%, rgba(182, 81, 47, .38), transparent 62%),
		linear-gradient(120deg, #1c2b3c 0%, #22384f 52%, #2f4a66 100%);
}

.bc-hero__inner {
	display: flex;
	align-items: center;
	min-height: clamp(320px, 34vw, 520px);
	padding-block: clamp(3rem, 7vw, 5.5rem);
}

.bc-hero__content {
	max-width: 620px;
}

.bc-hero__kicker {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	margin-bottom: 1.1rem;
	padding: .35rem .85rem;
	border: 1px solid rgba(255, 255, 255, .38);
	border-radius: var(--bc-radius-pill);
	background: rgba(255, 255, 255, .1);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #fff;
}

.bc-hero__title {
	color: #fff;
	font-size: clamp(2.1rem, 5vw, 3.6rem);
	margin-bottom: .7rem;
	text-wrap: balance;
}

.bc-hero__text {
	max-width: 46ch;
	font-size: clamp(1rem, 1.4vw, 1.14rem);
	color: rgba(255, 255, 255, .86);
}

.bc-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	margin-top: 1.6rem;
}

.bc-hero__note {
	margin: 1.4rem 0 0;
	font-size: .85rem;
	color: rgba(255, 255, 255, .7);
}

/* 自定义横向 Banner 仅显示图片，不叠加标题、描述或按钮。 */
.bc-hero--image-only {
	height: clamp(180px, 33.333vw, 640px);
	min-height: 0;
}
.bc-hero--image-only .bc-hero__media {
	z-index: 0;
}
.bc-hero--image-only .bc-hero__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
.bc-hero--image-only::after {
	display: none;
}
/* 兼容缓存中的旧 Banner 结构：即使旧模板短暂命中，也只保留图片。 */
.bc-hero:not(.bc-hero--image-only) .bc-hero__content {
	display: none;
}
.bc-hero:not(.bc-hero--image-only) .bc-hero__inner {
	min-height: clamp(180px, 33.333vw, 640px);
	padding-block: 0;
}
.bc-hero:not(.bc-hero--image-only) .bc-hero__media {
	z-index: 0;
}
.bc-hero:not(.bc-hero--image-only)::after {
	display: none;
}

/* Bandeau de réassurance */
.bc-usps {
	background: var(--bc-surface);
	border-bottom: 1px solid var(--bc-line);
}

.bc-usps__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	background: var(--bc-line);
}

.bc-usp {
	display: flex;
	align-items: flex-start;
	gap: .85rem;
	padding: 1.35rem 1.25rem;
	background: var(--bc-surface);
}

.bc-usp__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	flex: none;
	border-radius: var(--bc-radius-pill);
	background: var(--bc-accent-soft);
	color: var(--bc-accent);
}

.bc-usp__title {
	margin: 0 0 .15rem;
	font-family: var(--bc-font);
	font-size: .95rem;
	font-weight: 700;
}

.bc-usp__text {
	margin: 0;
	font-size: .84rem;
	color: var(--bc-muted);
}

/* ==========================================================================
   7. Sections
   ========================================================================== */
.bc-section { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.bc-section--tight { padding-block: clamp(1.75rem, 3vw, 2.5rem); }
.bc-section--alt { background: var(--bc-surface); }

.bc-section__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.25rem;
	margin-bottom: clamp(1.25rem, 2.4vw, 2rem);
	flex-wrap: wrap;
}

.bc-section__titles { min-width: 0; }

.bc-section__kicker {
	display: block;
	margin-bottom: .35rem;
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--bc-accent);
}

.bc-section__title { margin: 0; }

.bc-section__desc {
	margin: .5rem 0 0;
	max-width: 62ch;
	color: var(--bc-muted);
	font-size: .95rem;
}

.bc-section__link {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	font-weight: 600;
	font-size: .92rem;
	white-space: nowrap;
}

.bc-section__link .bc-icon { transition: transform .2s var(--bc-ease); }
.bc-section__link:hover .bc-icon { transform: translateX(3px); }

/* ==========================================================================
   8. Grille produits (WooCommerce)
   ========================================================================== */
body ul.products {
	display: grid;
	grid-template-columns: repeat(var(--bc-cols, 4), minmax(0, 1fr));
	gap: var(--bc-gap);
	margin: 0;
	padding: 0;
	list-style: none;
	clear: both;
}

/*
 * WooCommerce ajoute un clearfix en ::before/::after sur ul.products : dans une
 * grille CSS ces pseudo-éléments deviennent des cellules supplémentaires (la
 * première ligne perd une place et la dernière ne contient qu’un produit).
 * Plusieurs feuilles de style de WooCommerce les déclarent avec une
 * spécificité variable selon les contextes (boutique, catégorie, produits
 * similaires) : on les neutralise de façon définitive.
 */
body ul.products::before,
body ul.products::after,
body .woocommerce ul.products::before,
body .woocommerce ul.products::after,
body .woocommerce-page ul.products::before,
body .woocommerce-page ul.products::after,
body .related ul.products::before,
body .related ul.products::after,
body .upsells ul.products::before,
body .upsells ul.products::after {
	content: none !important;
	display: none !important;
}

body ul.products.columns-1 { --bc-cols: 1; }
body ul.products.columns-2 { --bc-cols: 2; }
body ul.products.columns-3 { --bc-cols: 3; }
body ul.products.columns-4 { --bc-cols: 4; }
body ul.products.columns-5 { --bc-cols: 5; }
body ul.products.columns-6 { --bc-cols: 6; }

/*
 * La largeur en pourcentage de WooCommerce (.woocommerce ul.products.columns-4
 * li.product) est plus spécifique : on cible la classe .bc-card du thème pour
 * que chaque carte occupe exactement une colonne de la grille.
 */
body .woocommerce ul.products li.product.bc-card,
body .woocommerce-page ul.products li.product.bc-card,
body ul.products li.product.bc-card,
body ul.products li.bc-card {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	float: none;
	clear: none;
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--bc-surface);
	border: 1px solid var(--bc-line);
	border-radius: var(--bc-radius);
	overflow: hidden;
	transition: box-shadow .25s var(--bc-ease), transform .25s var(--bc-ease), border-color .25s var(--bc-ease);
}

body .woocommerce ul.products li.product.bc-card:hover,
body ul.products li.product.bc-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--bc-shadow);
	border-color: var(--bc-line-strong);
}

body ul.products li.product .bc-card__media,
.bc-card__media {
	position: relative;
	overflow: hidden;
	background: var(--bc-surface-2);
	aspect-ratio: 4 / 3;
}

body ul.products li.product .bc-card__media .bc-card__media-link,
.bc-card__media > a {
	display: block;
	height: 100%;
}

body .woocommerce ul.products li.product.bc-card .bc-card__media img,
body ul.products li.product.bc-card .bc-card__media img,
body ul.products li.product .bc-card__media img,
.bc-card__media img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center;
	border-radius: 0;
	transition: transform .5s var(--bc-ease);
}

body ul.products li.product.bc-card:hover .bc-card__media img { transform: scale(1.04); }

.woocommerce-loop-product__title,
body ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--bc-font);
	font-size: .98rem;
	font-weight: 600;
	line-height: 1.35;
	margin: 0 0 .5rem;
	color: var(--bc-ink);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 2.7em;
}

.bc-card__info {
	padding: 1rem 1.05rem .35rem;
	display: flex;
	flex-direction: column;
	gap: .1rem;
}

body ul.products li.product .price {
	display: flex;
	align-items: baseline;
	gap: .5rem;
	margin: .35rem 0 .1rem;
	font-family: var(--bc-font);
	font-size: 1.06rem;
	font-weight: 700;
	color: var(--bc-ink);
}

body ul.products li.product .price del {
	color: var(--bc-muted);
	font-weight: 500;
	font-size: .88rem;
	opacity: 1;
}

body ul.products li.product .price ins {
	text-decoration: none;
	color: var(--bc-accent);
}

.star-rating {
	color: #d8a534;
}

.bc-card__meta {
	font-size: .74rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--bc-muted);
	margin: 0 0 .35rem;
}

.bc-card__meta a { color: inherit; }
.bc-card__meta a:hover { color: var(--bc-accent); }

/* Bouton ajout au panier dans la carte */
body ul.products li.product .button,
body ul.products li.product .added_to_cart {
	margin: .85rem 1.05rem 1.05rem;
	padding: .68rem 1.1rem;
	border-radius: var(--bc-radius-pill);
	background: var(--bc-surface-2);
	color: var(--bc-ink);
	font-size: .88rem;
	font-weight: 600;
	text-align: center;
	border: 1px solid transparent;
	transition: background .2s var(--bc-ease), color .2s var(--bc-ease);
}

body ul.products li.product .button:hover { background: var(--bc-accent); color: #fff; }

body ul.products li.product .button.loading { opacity: .7; }

body ul.products li.product .added_to_cart {
	display: block;
	background: var(--bc-success-soft);
	color: var(--bc-success);
	margin-top: -0.35rem;
}

body ul.products li.product .added_to_cart::after { content: " →"; }

/* Pastilles */
.woocommerce span.onsale,
body span.onsale {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 3;
	min-height: 0;
	min-width: 0;
	padding: .3rem .7rem;
	border-radius: var(--bc-radius-pill);
	background: var(--bc-accent);
	color: #fff;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .05em;
	line-height: 1.4;
	text-transform: uppercase;
}

body .woocommerce-loop-product__title .bc-badge,
.bc-badge {
	display: inline-block;
	padding: .15rem .5rem;
	border-radius: var(--bc-radius-pill);
	background: var(--bc-slate);
	color: #fff;
	font-size: .68rem;
	letter-spacing: .05em;
	text-transform: uppercase;
}

/* ==========================================================================
   9. Fil d’Ariane & en-têtes de page
   ========================================================================== */
.bc-breadcrumb {
	padding: 1.1rem 0 .35rem;
	font-size: .84rem;
	color: var(--bc-muted);
}

.bc-breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .45rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bc-breadcrumb li + li::before {
	content: "/";
	margin-right: .45rem;
	color: var(--bc-line-strong);
}

.bc-breadcrumb a { color: var(--bc-muted); }
.bc-breadcrumb a:hover { color: var(--bc-accent); }
.bc-breadcrumb [aria-current="page"] { color: var(--bc-ink); font-weight: 600; }

.bc-page-head {
	padding: .5rem 0 clamp(1.25rem, 2.5vw, 2rem);
}

.bc-page-head__title { margin: 0 0 .4rem; }

.bc-page-head__desc {
	max-width: 74ch;
	margin: 0;
	color: var(--bc-muted);
}

.bc-page-head__desc p:last-child { margin-bottom: 0; }

.bc-page-head--center { text-align: center; }
.bc-page-head--center .bc-page-head__desc { margin-inline: auto; }

/* ==========================================================================
   10. Barre d’outils du catalogue + pagination
   ========================================================================== */
.bc-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	padding: .85rem 1.1rem;
	margin-bottom: clamp(1.25rem, 2.4vw, 1.75rem);
	background: var(--bc-surface);
	border: 1px solid var(--bc-line);
	border-radius: var(--bc-radius);
}

.bc-count {
	margin: 0;
	font-size: .88rem;
	color: var(--bc-muted);
}

.bc-count strong { color: var(--bc-ink); }

body .woocommerce-ordering { margin: 0; }

body .woocommerce-ordering select,
body select {
	max-width: 100%;
	padding: .55rem 2.2rem .55rem .9rem;
	border: 1px solid var(--bc-line-strong);
	border-radius: var(--bc-radius-sm);
	background-color: var(--bc-surface);
	color: var(--bc-ink);
	font-size: .9rem;
	font-family: var(--bc-font);
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237d736a' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right .8rem center;
}

/* --------------------------------------------------------------------------
   Pagination du catalogue (composant du thème)
   -------------------------------------------------------------------------- */
.bc-pagination { padding: clamp(1.75rem, 3vw, 2.75rem) 0 0; }

/* Espace de respiration avant le pied de page, commun à toutes les pages. */
.bc-container.bc-page,
.bc-container.bc-archive,
.bc-container.bc-product-page {
	padding-bottom: clamp(2.5rem, 5vw, 4rem);
}

.bc-pager {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .9rem;
}

.bc-pager__info {
	margin: 0;
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--bc-muted);
}

.bc-pager__list {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: .4rem;
	margin: 0;
	padding: 0;
	border: 0;
	list-style: none;
}

.bc-pager__item {
	display: block;
	float: none;
	margin: 0;
	padding: 0;
	border: 0;
	list-style: none;
}

.bc-pager__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	min-width: 44px;
	height: 44px;
	padding: 0 .9rem;
	border: 1px solid var(--bc-line);
	border-radius: var(--bc-radius-sm);
	background: var(--bc-surface);
	color: var(--bc-ink);
	font-size: .95rem;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	transition: background .18s var(--bc-ease), color .18s var(--bc-ease), border-color .18s var(--bc-ease), transform .18s var(--bc-ease);
}

a.bc-pager__link:hover {
	background: var(--bc-ink);
	border-color: var(--bc-ink);
	color: #fff;
	transform: translateY(-1px);
}

.bc-pager__link.is-current,
.bc-pager__link.is-current:hover {
	background: var(--bc-accent);
	border-color: var(--bc-accent);
	color: #fff;
	cursor: default;
	transform: none;
}

.bc-pager__link.is-dots {
	min-width: 24px;
	padding: 0 .15rem;
	border-color: transparent;
	background: transparent;
	color: var(--bc-muted);
}

.bc-pager__link.is-prev,
.bc-pager__link.is-next { padding-inline: 1.05rem; }

/* Chevrons dessinés en CSS (aucune icône à charger, rien à filtrer). */
.bc-pager__link.is-prev::before,
.bc-pager__link.is-next::after {
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	border-right: 1.8px solid currentColor;
	border-bottom: 1.8px solid currentColor;
}

.bc-pager__link.is-prev::before { transform: rotate(135deg); }
.bc-pager__link.is-next::after { transform: rotate(-45deg); }

/*
 * Sécurité : si la pagination par défaut de WooCommerce s’affiche malgré tout
 * (shortcodes, gabarits tiers), elle reprend l’apparence du thème.
 */
body .woocommerce nav.woocommerce-pagination ul,
body ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .4rem;
	margin: 0;
	padding: 0;
	border: 0;
	list-style: none;
	white-space: normal;
}

body .woocommerce nav.woocommerce-pagination ul li,
body ul.page-numbers li {
	display: block;
	float: none;
	margin: 0;
	padding: 0;
	border: 0;
	overflow: visible;
}

body .woocommerce nav.woocommerce-pagination ul li a,
body .woocommerce nav.woocommerce-pagination ul li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 .85rem;
	border: 1px solid var(--bc-line);
	border-radius: var(--bc-radius-sm);
	background: var(--bc-surface);
	color: var(--bc-ink);
	font-size: .95rem;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
}

body .woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--bc-ink);
	border-color: var(--bc-ink);
	color: #fff;
}

body .woocommerce nav.woocommerce-pagination ul li span.current,
body .woocommerce nav.woocommerce-pagination ul li .current {
	background: var(--bc-accent);
	border-color: var(--bc-accent);
	color: #fff;
}

/* Petits écrans : Précédent / Suivant redeviennent de simples flèches. */
@media (max-width: 600px) {
	.bc-pager__link.is-prev .bc-pager__label,
	.bc-pager__link.is-next .bc-pager__label { display: none; }
}

/* ==========================================================================
   11. Fiche produit
   ========================================================================== */
.bc-single { padding-top: .5rem; }

.bc-single__main {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: start;
	padding-bottom: clamp(2rem, 4vw, 3.25rem);
}

.bc-single__gallery .woocommerce-product-gallery {
	width: 100% !important;
	float: none !important;
	margin: 0;
}

.bc-single__gallery .woocommerce-product-gallery__wrapper { margin: 0; }

/* Image principale : hauteur plafonnée + object-fit pour éviter les visuels géants. */
body .woocommerce .bc-single__gallery .woocommerce-product-gallery__image,
.bc-single__gallery .woocommerce-product-gallery__image {
	background: var(--bc-surface-2);
	border-radius: var(--bc-radius);
	overflow: hidden;
}

body .woocommerce .bc-single__gallery .woocommerce-product-gallery__image img,
.bc-single__gallery .woocommerce-product-gallery__image img {
	display: block;
	width: 100%;
	height: min(58vh, 520px);
	max-height: min(58vh, 520px);
	object-fit: contain;
	object-position: center;
	border-radius: var(--bc-radius);
}

.bc-single__gallery .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
	gap: .55rem;
	margin: .85rem 0 0;
	padding: 0;
	list-style: none;
}

.bc-single__gallery .flex-control-thumbs li {
	width: auto !important;
	float: none !important;
	margin: 0;
}

.bc-single__gallery .flex-control-thumbs img {
	border-radius: var(--bc-radius-sm);
	border: 1px solid var(--bc-line);
	cursor: pointer;
	opacity: .72;
	transition: opacity .2s var(--bc-ease), border-color .2s var(--bc-ease);
}

.bc-single__gallery .flex-control-thumbs img:hover,
.bc-single__gallery .flex-control-thumbs img.flex-active {
	opacity: 1;
	border-color: var(--bc-accent);
}

.bc-single__summary .summary {
	float: none !important;
	width: 100% !important;
	margin: 0;
}

.bc-single__summary .product_title,
.bc-single__summary h1.product_title {
	font-size: clamp(1.6rem, 3vw, 2.3rem);
	margin-bottom: .5rem;
}

.bc-single__summary .woocommerce-product-rating {
	display: flex;
	align-items: center;
	gap: .6rem;
	margin-bottom: .75rem;
	font-size: .88rem;
}

.bc-single__summary .woocommerce-review-link { color: var(--bc-muted); }

.bc-single__summary .price,
body .bc-single__summary p.price {
	display: flex;
	align-items: baseline;
	gap: .6rem;
	margin: .35rem 0 1rem;
	font-family: var(--bc-font);
	font-size: 1.7rem;
	font-weight: 700;
	color: var(--bc-ink);
}

.bc-single__summary .price del { font-size: 1.05rem; color: var(--bc-muted); font-weight: 500; }
.bc-single__summary .price ins { text-decoration: none; color: var(--bc-accent); }

.bc-single__summary .woocommerce-product-details__short-description {
	margin: 0 0 1.25rem;
	color: var(--bc-ink-soft);
	font-size: .97rem;
}

.bc-single__summary .woocommerce-product-details__short-description ul { margin: .5rem 0 .5rem 1.1rem; }

/* Formulaire d’achat : quantité, ajout au panier et achat immédiat sur une ligne */
body form.cart {
	margin: 0 0 1.25rem;
	padding: 1rem;
	background: var(--bc-surface);
	border: 1px solid var(--bc-line);
	border-radius: var(--bc-radius);
}

/*
 * Les libellés français (« Ajouter au panier », « Acheter maintenant ») sont
 * longs : la quantité garde sa largeur naturelle et les deux boutons se
 * partagent le reste de la ligne, sans jamais passer à la ligne suivante.
 */
body form.cart:not(.grouped_form):not(.variations_form),
body form.cart .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: .5rem;
}

/*
 * WooCommerce ajoute des clearfix ::before/::after : dans un conteneur flex ou
 * en grille ils deviennent des éléments supplémentaires (ligne incomplète et
 * espace vide à gauche). On les neutralise dans les conteneurs du thème.
 */
body form.cart::before,
body form.cart::after,
body form.cart .woocommerce-variation-add-to-cart::before,
body form.cart .woocommerce-variation-add-to-cart::after,
body .bc-single__main::before,
body .bc-single__main::after,
body .bc-single__summary::before,
body .bc-single__summary::after,
body .bc-toolbar::before,
body .bc-toolbar::after {
	content: none !important;
	display: none !important;
}

body form.cart.variations_form,
body form.cart.grouped_form { display: block; }

body form.cart .quantity {
	flex: 0 0 auto;
	justify-self: start;
}

body form.cart .single_add_to_cart_button,
body form.cart .bc-buy-now {
	flex: 1 1 auto;
	min-width: 0;
}

body form.cart .variations {
	width: 100%;
	margin: 0 0 1rem;
	border-collapse: collapse;
}

body form.cart .variations th,
body form.cart .variations td {
	padding: .45rem 0;
	border: 0;
	text-align: left;
	vertical-align: middle;
}

body form.cart .variations th.label label {
	font-size: .84rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--bc-muted);
	margin: 0;
}

body form.cart .variations select {
	width: 100%;
}

body form.cart .reset_variations {
	display: inline-block;
	margin-top: .5rem;
	font-size: .82rem;
	color: var(--bc-muted);
}

body form.cart .woocommerce-variation-price { margin: 0 0 .75rem; }

body form.cart .woocommerce-variation-availability { font-size: .88rem; color: var(--bc-muted); }

/* Sélecteur de quantité */
body .quantity {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--bc-line-strong);
	border-radius: var(--bc-radius-pill);
	background: var(--bc-surface);
	overflow: hidden;
}

body .quantity input.qty {
	width: 3.4rem;
	height: 46px;
	padding: 0 .2rem;
	border: 0;
	background: transparent;
	text-align: center;
	font-size: 1rem;
	font-weight: 600;
	color: var(--bc-ink);
	-moz-appearance: textfield;
}

body .quantity input.qty::-webkit-outer-spin-button,
body .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.bc-qty-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 46px;
	border: 0;
	background: transparent;
	color: var(--bc-ink-soft);
	cursor: pointer;
	transition: background .16s var(--bc-ease), color .16s var(--bc-ease);
}

.bc-qty-btn:hover { background: var(--bc-surface-2); color: var(--bc-accent); }

body form.cart .single_add_to_cart_button {
	min-height: 46px;
	padding-inline: .8rem;
	border-radius: var(--bc-radius-pill);
	border: 0;
	font-size: .92rem;
	font-weight: 700;
	white-space: nowrap;
	cursor: pointer;
}

body form.cart .single_add_to_cart_button.disabled,
body form.cart .single_add_to_cart_button[disabled] {
	opacity: .5;
	cursor: not-allowed;
}

.bc-buy-now {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding-inline: .8rem;
	border: 1px solid var(--bc-ink);
	border-radius: var(--bc-radius-pill);
	background: var(--bc-ink);
	color: #fff;
	font-family: var(--bc-font);
	font-size: .92rem;
	font-weight: 700;
	white-space: nowrap;
	cursor: pointer;
	transition: background .2s var(--bc-ease), border-color .2s var(--bc-ease), transform .2s var(--bc-ease);
}

.bc-buy-now .bc-icon { flex: none; }

.bc-buy-now:hover { background: var(--bc-slate); border-color: var(--bc-slate); transform: translateY(-1px); }

.bc-buy-now[disabled] { opacity: .6; cursor: progress; }

/* Réassurance produit */
.bc-product-trust {
	display: grid;
	gap: .55rem;
	margin: 0 0 1.25rem;
	padding: 1rem 1.1rem;
	background: var(--bc-surface-2);
	border-radius: var(--bc-radius);
	list-style: none;
}

.bc-product-trust li {
	display: flex;
	align-items: center;
	gap: .6rem;
	font-size: .88rem;
	color: var(--bc-ink-soft);
}

.bc-product-trust .bc-icon { color: var(--bc-success); }

body .product_meta {
	margin: 0 0 1.25rem;
	padding-top: 1rem;
	border-top: 1px solid var(--bc-line);
	font-size: .86rem;
	color: var(--bc-muted);
}

body .product_meta > span { display: block; margin-bottom: .3rem; }
body .product_meta a { color: var(--bc-ink-soft); }
body .product_meta a:hover { color: var(--bc-accent); }

/* Avantages / onglets */
.bc-single__details { padding-bottom: clamp(2rem, 4vw, 3rem); }

body .woocommerce-tabs { margin: 0; }

body .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 1.6rem;
	margin: 0 0 1.5rem;
	padding: 0 0 .1rem;
	border-bottom: 1px solid var(--bc-line);
	list-style: none;
}

body .woocommerce-tabs ul.tabs::before,
body .woocommerce-tabs ul.tabs::after { display: none; }

body .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	border-radius: 0;
}

body .woocommerce-tabs ul.tabs li::before,
body .woocommerce-tabs ul.tabs li::after { display: none; }

body .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: .65rem 0;
	border-bottom: 2px solid transparent;
	color: var(--bc-muted);
	font-family: var(--bc-font);
	font-size: .95rem;
	font-weight: 700;
	letter-spacing: .01em;
	text-transform: none;
}

body .woocommerce-tabs ul.tabs li.active a,
body .woocommerce-tabs ul.tabs li a:hover {
	color: var(--bc-ink);
	border-bottom-color: var(--bc-accent);
}

body .woocommerce-tabs .panel {
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
	color: var(--bc-ink-soft);
}

body .woocommerce-tabs .panel > h2:first-child { display: none; }

body .woocommerce-Tabs-panel--description p { max-width: 78ch; }

body table.shop_attributes {
	width: 100%;
	border-collapse: collapse;
	font-size: .92rem;
}

body table.shop_attributes th,
body table.shop_attributes td {
	padding: .7rem .9rem;
	border: 1px solid var(--bc-line);
	text-align: left;
	background: transparent;
}

body table.shop_attributes th { width: 32%; font-weight: 600; color: var(--bc-ink); background: var(--bc-surface-2); }

/* Avis */
body #reviews { padding-top: .5rem; }

body #reviews #comments ol.commentlist {
	display: grid;
	gap: 1rem;
	margin: 0 0 2rem;
	padding: 0;
	list-style: none;
}

body #reviews #comments ol.commentlist li { margin: 0; }

body #reviews .comment_container {
	display: flex;
	gap: 1rem;
	padding: 1.15rem 1.25rem;
	background: var(--bc-surface);
	border: 1px solid var(--bc-line);
	border-radius: var(--bc-radius);
}

body #reviews .comment_container img.avatar {
	position: static;
	width: 46px;
	height: 46px;
	border-radius: var(--bc-radius-pill);
	border: 0;
	padding: 0;
}

body #reviews .comment-text { margin: 0; border: 0; padding: 0; flex: 1; }

body #reviews .comment-text .meta {
	margin: 0 0 .35rem;
	font-size: .84rem;
	color: var(--bc-muted);
}

body #reviews .comment-text .meta strong { color: var(--bc-ink); font-size: .95rem; }

body #reviews .star-rating { margin-bottom: .45rem; }

body #review_form_wrapper {
	padding: clamp(1.25rem, 2.5vw, 1.75rem);
	background: var(--bc-surface-2);
	border-radius: var(--bc-radius);
}

body #review_form #respond p { margin: 0 0 1rem; }
body #review_form label { display: block; font-size: .86rem; font-weight: 600; margin-bottom: .3rem; }

body #review_form input[type="text"],
body #review_form input[type="email"],
body #review_form textarea,
body .comment-form input[type="text"],
body .comment-form input[type="email"],
body .comment-form input[type="url"],
body .comment-form textarea,
body form.checkout input[type="text"],
body form.checkout input[type="email"],
body form.checkout input[type="tel"],
body form.checkout input[type="password"],
body form.checkout input[type="number"],
body form.checkout textarea,
body .woocommerce-form input[type="text"],
body .woocommerce-form input[type="email"],
body .woocommerce-form input[type="password"],
body .woocommerce-Input,
body .select2-container .select2-selection--single {
	width: 100%;
	padding: .75rem .95rem;
	border: 1px solid var(--bc-line-strong);
	border-radius: var(--bc-radius-sm);
	background: var(--bc-surface);
	color: var(--bc-ink);
	font-family: var(--bc-font);
	font-size: .95rem;
}

body .select2-container .select2-selection--single { height: auto; display: flex; align-items: center; }
body .select2-container--default .select2-selection--single .select2-selection__arrow { top: 50%; transform: translateY(-50%); }

body #review_form input:focus,
body #review_form textarea:focus,
body .comment-form input:focus,
body .comment-form textarea:focus,
body form.checkout input:focus,
body form.checkout textarea:focus { outline: 2px solid var(--bc-accent-soft); border-color: var(--bc-accent); }

body #review_form .comment-form-rating p.stars a { color: #d8a534; }

/* Produits similaires */
body section.related,
body section.upsells {
	margin: 0;
	padding-block: clamp(2rem, 4vw, 3rem) 0;
	border-top: 1px solid var(--bc-line);
}

body section.related > h2,
body section.upsells > h2 {
	font-size: clamp(1.3rem, 2.2vw, 1.75rem);
	margin: 0 0 1.4rem;
}

.bc-product-share {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
	margin: 1.25rem 0 0;
	padding-top: 1rem;
	border-top: 1px solid var(--bc-line);
}

.bc-product-share__label {
	width: 100%;
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--bc-muted);
}

/* ==========================================================================
   12. Boutons de partage
   ========================================================================== */
.bc-share {
	display: flex;
	flex-wrap: wrap;
	gap: .45rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bc-share__btn {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	padding: .5rem .85rem;
	border: 1px solid var(--bc-line-strong);
	border-radius: var(--bc-radius-pill);
	background: transparent;
	color: var(--bc-ink-soft);
	font-family: var(--bc-font);
	font-size: .82rem;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition: background .18s var(--bc-ease), color .18s var(--bc-ease), border-color .18s var(--bc-ease);
}

.bc-share__btn:hover {
	background: var(--bc-ink);
	border-color: var(--bc-ink);
	color: #fff;
}

.bc-share--light .bc-share__btn {
	border-color: rgba(255, 255, 255, .26);
	color: rgba(255, 255, 255, .84);
}

.bc-share--light .bc-share__btn:hover {
	background: #fff;
	border-color: #fff;
	color: var(--bc-ink);
}

/* ==========================================================================
   13. Messages, formulaires, notices
   ========================================================================== */
body .woocommerce-message,
body .woocommerce-info,
body .woocommerce-error,
body .woocommerce-noreviews,
body .woocommerce-form-coupon-toggle > .woocommerce-info,
body p.no-comments {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	margin: 0 0 1.5rem;
	padding: 1rem 1.15rem;
	border: 1px solid var(--bc-line);
	border-left: 4px solid var(--bc-slate);
	border-radius: var(--bc-radius-sm);
	background: var(--bc-surface);
	color: var(--bc-ink-soft);
	list-style: none;
	font-size: .93rem;
}

body .woocommerce-message { border-left-color: var(--bc-success); background: var(--bc-success-soft); }
body .woocommerce-info { border-left-color: var(--bc-slate); }
body .woocommerce-error { border-left-color: var(--bc-danger); background: var(--bc-danger-soft); }

body .woocommerce-message::before,
body .woocommerce-info::before,
body .woocommerce-error::before { display: none; }

body .woocommerce-message .button,
body .woocommerce-info .button,
body .woocommerce-error .button {
	margin: 0;
	padding: .5rem 1rem;
	font-size: .82rem;
}

body .woocommerce-notice { margin: 0 0 1.25rem; }

/* ==========================================================================
   14. Contenu éditorial, blog, pages
   ========================================================================== */
.bc-page { padding-bottom: clamp(2.5rem, 5vw, 4rem); }

.bc-entry {
	max-width: 84ch;
	color: var(--bc-ink-soft);
}

.bc-entry > * { margin-bottom: 1.2rem; }

.bc-entry h2,
.bc-entry h3 { margin-top: 2rem; color: var(--bc-ink); }

.bc-entry ul,
.bc-entry ol { padding-left: 1.25rem; }
.bc-entry li { margin-bottom: .45rem; }

.bc-entry table {
	width: 100%;
	border-collapse: collapse;
	font-size: .93rem;
	margin-bottom: 1.5rem;
}

.bc-entry th,
.bc-entry td { padding: .7rem .9rem; border: 1px solid var(--bc-line); text-align: left; }
.bc-entry thead th { background: var(--bc-surface-2); }

.bc-entry img,
.bc-entry .wp-block-image img { border-radius: var(--bc-radius); }

.bc-entry figcaption { font-size: .82rem; color: var(--bc-muted); margin-top: .5rem; }

.bc-entry blockquote { border-radius: 0 var(--bc-radius) var(--bc-radius) 0; background: var(--bc-surface-2); padding: 1rem 1.25rem; }

.bc-entry a { text-decoration: underline; text-underline-offset: 3px; }

/* Grille du blog */
.bc-post-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: var(--bc-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.bc-post-card {
	display: flex;
	flex-direction: column;
	background: var(--bc-surface);
	border: 1px solid var(--bc-line);
	border-radius: var(--bc-radius);
	overflow: hidden;
	transition: box-shadow .25s var(--bc-ease), transform .25s var(--bc-ease);
}

.bc-post-card:hover { box-shadow: var(--bc-shadow); transform: translateY(-3px); }

.bc-post-card__media { aspect-ratio: 16 / 10; background: var(--bc-surface-2); }
.bc-post-card__media img { width: 100%; height: 100%; object-fit: cover; }

.bc-post-card__body { padding: 1.15rem 1.25rem 1.35rem; }

.bc-post-card__meta {
	margin: 0 0 .5rem;
	font-size: .76rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--bc-muted);
}

.bc-post-card__title { margin: 0 0 .5rem; font-size: 1.15rem; }
.bc-post-card__title a { color: var(--bc-ink); }
.bc-post-card__title a:hover { color: var(--bc-accent); }

.bc-post-card__excerpt { margin: 0; font-size: .9rem; color: var(--bc-muted); }

/* Article */
.bc-entry__header { margin-bottom: 1.5rem; }

.bc-entry__meta {
	margin: 0 0 .6rem;
	font-size: .8rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--bc-muted);
}

.bc-entry__thumb { margin-bottom: 1.75rem; }
.bc-entry__thumb img { border-radius: var(--bc-radius); width: 100%; }

.bc-entry__footer {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--bc-line);
}

/* Commentaires */
.bc-comments { margin-top: 3rem; }
.bc-comments__title { font-size: 1.3rem; }

.bc-comment-list { margin: 0 0 2rem; padding: 0; list-style: none; display: grid; gap: 1rem; }

.bc-comment {
	padding: 1.15rem 1.25rem;
	background: var(--bc-surface);
	border: 1px solid var(--bc-line);
	border-radius: var(--bc-radius);
}

.bc-comment .children { margin: 1rem 0 0; padding: 0 0 0 1.25rem; list-style: none; display: grid; gap: 1rem; }

.bc-comment__meta { font-size: .82rem; color: var(--bc-muted); margin-bottom: .4rem; }

/* ==========================================================================
   15. Panier / commande / compte
   ========================================================================== */
body .woocommerce {
	--bc-wc-gap: clamp(1.25rem, 2.5vw, 2rem);
}

body .woocommerce-cart-form,
body .woocommerce-checkout-review-order,
body .cart_totals,
body .woocommerce-MyAccount-content,
body .woocommerce-MyAccount-navigation {
	background: var(--bc-surface);
	border: 1px solid var(--bc-line);
	border-radius: var(--bc-radius);
	padding: clamp(1.1rem, 2.2vw, 1.75rem);
}

body .woocommerce-cart-form { margin-bottom: var(--bc-wc-gap); }

body table.shop_table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid var(--bc-line);
	border-radius: var(--bc-radius);
	overflow: hidden;
	font-size: .93rem;
}

body table.shop_table th {
	padding: .85rem 1rem;
	background: var(--bc-surface-2);
	border-bottom: 1px solid var(--bc-line);
	text-align: left;
	font-size: .82rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--bc-muted);
}

body table.shop_table td {
	padding: .95rem 1rem;
	border-bottom: 1px solid var(--bc-line);
	vertical-align: middle;
}

body table.shop_table tr:last-child td { border-bottom: 0; }

body table.shop_table img { width: 64px; border-radius: var(--bc-radius-sm); }

body .cart_item .product-name a { color: var(--bc-ink); font-weight: 600; }
body .cart_item .product-name a:hover { color: var(--bc-accent); }

body .woocommerce-cart-form__contents .actions { padding: 1rem; }
body .woocommerce-cart-form__contents .actions .coupon { display: flex; gap: .5rem; flex-wrap: wrap; }

body .cart_totals h2 { font-size: 1.2rem; margin-top: 0; }
body .cart_totals table.shop_table { border: 0; border-radius: 0; }
body .cart_totals .checkout-button { width: 100%; }

body .wc-proceed-to-checkout { padding: 1rem 0 0; }

body .cart-empty { text-align: center; }

body .woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; }
body .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--bc-line); }
body .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
body .woocommerce-MyAccount-navigation a { display: block; padding: .7rem 0; color: var(--bc-ink-soft); font-weight: 600; }
body .woocommerce-MyAccount-navigation li.is-active a { color: var(--bc-accent); }

body .woocommerce-form-login,
body .woocommerce-form-register {
	padding: clamp(1.25rem, 2.5vw, 1.75rem);
	background: var(--bc-surface);
	border: 1px solid var(--bc-line);
	border-radius: var(--bc-radius);
	max-width: 520px;
}

body .woocommerce-form-login .form-row,
body .woocommerce-form-register .form-row { margin-bottom: 1rem; }

body .woocommerce-form-login label { font-size: .88rem; font-weight: 600; }

body .woocommerce-form-login__rememberme { display: flex; align-items: center; gap: .5rem; }

body .woocommerce-form__label-for-checkbox { display: flex; align-items: center; gap: .5rem; font-size: .88rem; }

body .addresses .col-1,
body .addresses .col-2 { margin-bottom: 1.5rem; }

/* ==========================================================================
   16. États vides
   ========================================================================== */
.bc-empty,
body .woocommerce-no-products-found {
	display: grid;
	justify-items: center;
	gap: .75rem;
	padding: clamp(2.5rem, 6vw, 4.5rem) clamp(1.25rem, 3vw, 2rem);
	text-align: center;
	background: var(--bc-surface);
	border: 1px dashed var(--bc-line-strong);
	border-radius: var(--bc-radius);
	color: var(--bc-muted);
}

.bc-empty__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: var(--bc-radius-pill);
	background: var(--bc-surface-2);
	color: var(--bc-muted);
}

.bc-empty__title { margin: 0; font-size: 1.25rem; color: var(--bc-ink); }
.bc-empty__text { margin: 0; max-width: 56ch; }

/* ==========================================================================
   17. Pied de page
   ========================================================================== */
.bc-footer {
	background: var(--bc-ink);
	color: rgba(255, 255, 255, .74);
	font-size: .92rem;
	margin-top: auto;
}

.bc-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
	gap: clamp(1.5rem, 3vw, 3rem);
	padding-block: clamp(2.5rem, 5vw, 4rem);
}

.bc-footer__brand .bc-brand__name,
.bc-footer__brand-name {
	font-family: var(--bc-font-head);
	font-size: 1.3rem;
	color: #fff;
	margin: 0 0 .6rem;
}

/* Slogan du site (déplacé du bandeau vers le pied de page). */
.bc-footer__tagline {
	margin: 0 0 1rem;
	font-size: .82rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .58);
}

.bc-footer__about { max-width: 42ch; margin: 0 0 1.25rem; color: rgba(255, 255, 255, .7); }

.bc-footer__title {
	margin: 0 0 1rem;
	font-family: var(--bc-font);
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #fff;
}

/* Les menus du pied de page ne doivent jamais hériter du style sombre de l’en-tête. */
.bc-footer .bc-footer__list,
.bc-footer .bc-menu,
.bc-footer__list {
	display: grid;
	align-items: start;
	gap: .55rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bc-footer .bc-menu > li,
.bc-footer__list li {
	display: flex;
	align-items: flex-start;
	gap: .5rem;
	position: static;
}

.bc-footer .bc-menu > li > a,
.bc-footer .bc-footer__list a,
.bc-footer__list a {
	display: inline;
	padding: 0;
	background: transparent;
	color: rgba(255, 255, 255, .78);
	font-size: .92rem;
	font-weight: 500;
	white-space: normal;
}

.bc-footer .bc-menu > li > a:hover,
.bc-footer .bc-footer__list a:hover,
.bc-footer__list a:hover {
	background: transparent;
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.bc-footer .bc-menu > li.menu-item-has-children > a::after { display: none; }

.bc-footer__list .bc-icon { margin-top: .18rem; color: rgba(255, 255, 255, .45); }

.bc-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, .12);
	padding-block: 1.15rem;
	font-size: .84rem;
}

.bc-footer__bottom-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}

.bc-copyright { margin: 0; }
.bc-copyright a { color: rgba(255, 255, 255, .8); }

.bc-legal { display: flex; flex-wrap: wrap; gap: .35rem 1rem; }
.bc-legal a { color: rgba(255, 255, 255, .72); }
.bc-legal a:hover { color: #fff; }

.bc-payments { margin: 0; color: rgba(255, 255, 255, .5); }

/* ==========================================================================
   18. Notification flottante
   ========================================================================== */
.bc-toast {
	position: fixed;
	right: clamp(1rem, 3vw, 2rem);
	bottom: clamp(1rem, 3vw, 2rem);
	z-index: 200;
	display: flex;
	align-items: center;
	gap: .6rem;
	max-width: min(92vw, 380px);
	padding: .9rem 1.15rem;
	border-radius: var(--bc-radius);
	background: var(--bc-ink);
	color: #fff;
	font-size: .9rem;
	box-shadow: var(--bc-shadow-lg);
	transform: translateY(12px);
	opacity: 0;
	pointer-events: none;
	transition: opacity .25s var(--bc-ease), transform .25s var(--bc-ease);
}

.bc-toast.is-visible { opacity: 1; transform: translateY(0); }
.bc-toast.is-success { background: var(--bc-success); }
.bc-toast__close {
	margin-left: auto;
	border: 0;
	background: transparent;
	color: inherit;
	font-size: 1rem;
	cursor: pointer;
	line-height: 1;
	padding: 0 .2rem;
}

/* ==========================================================================
   19. Responsive
   ========================================================================== */
@media (max-width: 1180px) {
	body ul.products.columns-5,
	body ul.products.columns-6 { --bc-cols: 4; }
}

@media (max-width: 1024px) {
	.bc-nav { display: none; }
	.bc-burger { display: inline-flex; }
	.bc-usps__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bc-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bc-single__main { grid-template-columns: minmax(0, 1fr); }
	body ul.products.columns-4,
	body ul.products.columns-5,
	body ul.products.columns-6 { --bc-cols: 3; }
}

@media (max-width: 860px) {
	:root { --bc-header-h: 66px; }
	body ul.products.columns-3,
	body ul.products.columns-4,
	body ul.products.columns-5,
	body ul.products.columns-6 { --bc-cols: 2; }
	.bc-topbar__inner { justify-content: center; text-align: center; }
	.bc-topbar__meta { display: none; }
	.bc-hero__inner { min-height: 320px; }
	.bc-toolbar { gap: .6rem; }
	.bc-toolbar .bc-count { width: 100%; }
	body .woocommerce-ordering { width: 100%; }
	body .woocommerce-ordering select { width: 100%; }
}

@media (max-width: 600px) {
	body ul.products.columns-2,
	body ul.products.columns-3,
	body ul.products.columns-4,
	body ul.products.columns-5,
	body ul.products.columns-6 { --bc-cols: 1; }
	.bc-usps__grid { grid-template-columns: minmax(0, 1fr); }
	.bc-footer__grid { grid-template-columns: minmax(0, 1fr); }
	.bc-footer__bottom-inner { justify-content: center; text-align: center; }
	.bc-hero__actions .bc-btn { width: 100%; }
	body .woocommerce-tabs ul.tabs { gap: 1.1rem; }
	body #reviews .comment_container { flex-direction: column; }

	/* Sur petit écran, la quantité et les boutons passent l’un sous l’autre. */
	body form.cart:not(.grouped_form):not(.variations_form),
	body form.cart .woocommerce-variation-add-to-cart {
		flex-wrap: wrap;
		flex-direction: column;
	}

	body form.cart .quantity { width: 100%; justify-content: space-between; }

	body form.cart .single_add_to_cart_button,
	body form.cart .bc-buy-now { width: 100%; flex: 1 1 100%; }
}

/* ==========================================================================
   20. Accessibilité / impression
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
		scroll-behavior: auto !important;
	}
}

@media print {
	.bc-header,
	.bc-topbar,
	.bc-footer,
	.bc-buy-now,
	.bc-drawer,
	.bc-toast { display: none !important; }
	body { background: #fff; }
}
