/**
 * RC Configurateur Brasero — styles front-end.
 *
 * Design system autonome et isole : chaque racine (.rcbc-configurator,
 * .rcbc-search-standalone, .rcbc-modal, .rcbc-float-btn) reinitialise
 * explicitement les elements les plus souvent restyles globalement par les
 * themes WordPress (boutons, champs, titres, listes, liens, images) avant
 * d'appliquer son propre design. Sans ce reset, un theme qui style
 * `button`, `h3` ou `input` au niveau global reapparait a l'interieur du
 * configurateur et casse la coherence visuelle — d'ou les !important cibles
 * ci-dessous : uniquement sur les proprietes "d'identite" (typo, radius,
 * ombre, decoration), jamais sur la mise en page.
 */

.rcbc-configurator,
.rcbc-search-standalone,
.rcbc-modal,
.rcbc-float-btn,
.rcbc-help {
	--rcbc-ink: #21201c;
	--rcbc-ink-soft: #706d67;
	--rcbc-paper: #ffffff;
	--rcbc-paper-soft: #f7f7f5;
	--rcbc-paper-raised: #ffffff;
	--rcbc-border: #e8e7e3;
	--rcbc-border-strong: #cfccc5;
	--rcbc-accent: #a8471f;
	--rcbc-accent-dark: #8a3818;
	--rcbc-accent-ink: #fff8f2;
	--rcbc-gold: #b8863a;
	--rcbc-danger: #a3312a;
	--rcbc-success: #2f6b3a;
	--rcbc-radius-sm: 10px;
	--rcbc-radius: 14px;
	--rcbc-radius-lg: 18px;
	--rcbc-shadow-sm: 0 8px 22px -18px rgba(20, 20, 18, 0.38);
	--rcbc-shadow: 0 18px 44px -30px rgba(20, 20, 18, 0.42);
	--rcbc-shadow-lg: 0 26px 60px -34px rgba(20, 20, 18, 0.48);
	--rcbc-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--rcbc-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--rcbc-font-serif: Georgia, "Iowan Old Style", "Palatino Linotype", "Times New Roman", serif;

	font-family: var(--rcbc-font-sans) !important;
	font-size: 16px !important;
	line-height: 1.5 !important;
	color: var(--rcbc-ink) !important;
	-webkit-font-smoothing: antialiased;
}

/* ---------- Reset scope, avant tout le reste ---------- */

.rcbc-configurator *, .rcbc-search-standalone *, .rcbc-modal *, .rcbc-float-btn *, .rcbc-help * {
	box-sizing: border-box !important;
}

.rcbc-configurator :where(h1,h2,h3,h4,h5,h6),
.rcbc-search-standalone :where(h1,h2,h3,h4,h5,h6),
.rcbc-modal :where(h1,h2,h3,h4,h5,h6),
.rcbc-help :where(h1,h2,h3,h4,h5,h6) {
	font-family: var(--rcbc-font-serif) !important;
	font-weight: 700 !important;
	color: var(--rcbc-ink) !important;
	margin: 0 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	text-align: left !important;
	line-height: 1.25 !important;
}

.rcbc-configurator :where(button),
.rcbc-search-standalone :where(button),
.rcbc-modal :where(button),
.rcbc-help :where(button),
.rcbc-float-btn {
	all: unset;
	box-sizing: border-box !important;
	cursor: pointer;
	font-family: var(--rcbc-font-sans);
	-webkit-appearance: none;
	appearance: none;
}

.rcbc-configurator :where(input, textarea, select),
.rcbc-modal :where(input, textarea, select),
.rcbc-help :where(input, textarea, select) {
	-webkit-appearance: none !important;
	appearance: none !important;
	font-family: var(--rcbc-font-sans) !important;
	font-size: 15px !important;
	border-radius: var(--rcbc-radius-sm) !important;
	box-shadow: none !important;
	background-image: none !important;
}

.rcbc-configurator :where(ul, ol), .rcbc-modal :where(ul, ol) {
	list-style: none !important; margin: 0 !important; padding: 0 !important;
}

.rcbc-configurator :where(a), .rcbc-search-standalone :where(a), .rcbc-modal :where(a), .rcbc-help :where(a) {
	text-decoration: none !important;
	color: inherit;
}

.rcbc-configurator :where(img), .rcbc-modal :where(img) {
	max-width: 100% !important; display: block; border-radius: 0; box-shadow: none;
}

/* ---------- Layout general ---------- */

.rcbc-configurator {
	/* Les themes « blocs » limitent chaque enfant du contenu a leur largeur
	   de texte (souvent ~650px) avec une regle de meme specificite chargee
	   apres celle-ci : on reprend la main, comme le ferait « pleine largeur ». */
	max-width: 1180px !important;
	margin: 0 auto;
	padding: clamp(8px, 2vw, 24px) 0;
	container: rcbc / inline-size;
}

/* Une seule page : l'apercu (colonne gauche, collante) et tous les choix
   (colonne droite) restent visibles ensemble, du premier clic jusqu'au panier. */
.rcbc-configurator__layout {
	display: grid;
	grid-template-columns: minmax(320px, 460px) minmax(0, 1fr);
	gap: clamp(36px, 6vw, 72px);
	align-items: start;
}

@media (max-width: 1000px) {
	.rcbc-configurator__layout { grid-template-columns: 1fr; gap: 28px; }
}

.rcbc-configurator__preview { position: sticky; top: 24px; }

/* Meme repli en une colonne quand c'est le configurateur lui-meme qui est
   etroit (colonne de contenu d'un theme, iframe), quelle que soit la
   largeur de l'ecran : sinon la colonne des choix serait ecrasee. */
@container rcbc (max-width: 900px) {
	.rcbc-configurator__layout { grid-template-columns: 1fr; gap: 28px; }
	.rcbc-configurator__preview {
		position: sticky; top: 0; z-index: 5;
		background: var(--rcbc-paper);
		padding-bottom: 8px;
		border-bottom: 1px solid var(--rcbc-border);
	}
	.rcbc-configurator__preview .rcbc-preview-img { max-height: 30vh; }
}

/* Sur mobile la photo reste visible en haut de l'ecran pendant qu'on fait
   defiler les choix, mais dans un format reduit pour ne pas manger la page. */
@media (max-width: 1000px) {
	.rcbc-configurator__preview {
		position: sticky; top: 0; z-index: 5;
		background: var(--rcbc-paper);
		padding-bottom: 8px;
		border-bottom: 1px solid var(--rcbc-border);
	}
	.rcbc-configurator__preview .rcbc-preview-img { max-height: 30vh; }
}

/* Ecran etroit : l'apercu colle en haut et le recapitulatif en bas se
   partagent la hauteur avec les choix. Le detail du prix reste consultable
   mais se replie dans une zone defilante pour garder le total et les boutons
   toujours visibles. */
@media (max-width: 640px) {
	.rcbc-configurator__preview .rcbc-preview-img { max-height: 24vh; }
	.rcbc-summary { padding: 14px 16px; bottom: 0; }
	.rcbc-summary__lines { max-height: 66px; overflow-y: auto; margin-bottom: 10px !important; }
	.rcbc-summary__line { font-size: 12px; }
	.rcbc-summary__price { margin-bottom: 12px; padding-top: 10px; }
	.rcbc-summary__amount { font-size: 26px; }
	.rcbc-summary__actions { gap: 8px; }
	.rcbc-btn { padding: 12px 14px !important; font-size: 13px !important; }
	.rcbc-summary__actions .rcbc-btn--primary { flex: 1 0 100%; }
}

.rcbc-preview-frame {
	background: transparent;
	border: 0;
	border-radius: 0;
	display: flex; align-items: center; justify-content: center;
	overflow: visible;
	box-shadow: none;
	position: relative;
}
.rcbc-preview-img {
	width: 100%;
	height: auto;
	max-height: 70vh;
	object-fit: contain !important;
	object-position: center;
	padding: 0;
	transform: none;
	transition: opacity .3s var(--rcbc-ease);
}
.rcbc-preview-placeholder { color: var(--rcbc-ink-soft); font-size: 12px; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; opacity: .65; }
/* Sans photo : l'image cachee ne doit plus occuper la place (le « display »
   des images du configurateur l'emporte sur l'attribut hidden), et le
   message « Visuel a venir » prend la place du visuel. */
.rcbc-preview-frame [hidden] { display: none !important; }
.rcbc-preview-placeholder:not([hidden]) {
	display: flex; align-items: center; justify-content: center;
	width: 100%; aspect-ratio: 4 / 3; max-height: 70vh;
	background: var(--rcbc-paper-soft); border-radius: 12px; opacity: 1;
}

.rcbc-preview-caption {
	margin-top: 14px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px;
}
.rcbc-preview-caption strong {
	font-family: var(--rcbc-font-serif); font-size: 19px; font-weight: 700; letter-spacing: -.015em;
}
.rcbc-preview-caption span { font-size: 13.5px; color: var(--rcbc-ink-soft); }

.rcbc-preview-badges {
	margin: 16px 0 0; display: flex; flex-wrap: wrap; gap: 8px;
}
.rcbc-preview-badge {
	background: var(--rcbc-paper-raised); border: 1px solid var(--rcbc-border);
	border-radius: 999px; padding: 6px 14px; font-size: 12.5px; color: var(--rcbc-ink-soft);
	box-shadow: var(--rcbc-shadow-sm);
	max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
/* Deux lignes au maximum : le surplus est resume par cette pastille (voir clampBadges() dans configurator.js). */
.rcbc-preview-badge--more { color: var(--rcbc-accent-dark); font-weight: 650; cursor: help; }

/* Sur mobile, les etiquettes sous la photo sont masquees : l'apercu colle en
   haut de l'ecran doit rester compact, et le detail figure dans le recapitulatif. */
@media (max-width: 1000px) {
	.rcbc-preview-badges { display: none !important; }
}

.rcbc-configurator__panel { min-width: 0; }

/* ---------- Blocs de choix (tous empiles sur la meme page) ---------- */

.rcbc-block { padding: 0 0 26px; margin-bottom: 26px; border-bottom: 1px solid var(--rcbc-border); }
.rcbc-block[hidden] { display: none; }
.rcbc-block__head {
	display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 16px;
}
.rcbc-block__num {
	font-size: 11px; font-weight: 750; letter-spacing: .12em; color: var(--rcbc-gold);
	font-variant-numeric: tabular-nums;
}
.rcbc-block__title { font-size: 20px !important; letter-spacing: -.015em !important; }
.rcbc-block__value {
	margin-left: auto; font-size: 13px; color: var(--rcbc-ink-soft); text-align: right;
}
.rcbc-block__value:empty { display: none; }

.rcbc-reset-link {
	color: var(--rcbc-ink-soft) !important; font-size: 12.5px !important;
	display: inline-flex; align-items: center; gap: 4px; transition: color .2s ease;
}
.rcbc-reset-link:hover { color: var(--rcbc-accent) !important; }
.rcbc-reset-link, .rcbc-reset-link:hover, .rcbc-reset-link:focus { background: transparent !important; box-shadow: none !important; }

/* ---------- Choix du modele ---------- */

.rcbc-model-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
	gap: clamp(10px, 1.2vw, 14px);
}

.rcbc-model-card {
	background: transparent;
	border: 1px solid var(--rcbc-border);
	border-radius: var(--rcbc-radius);
	padding: 12px 12px 16px;
	text-align: left;
	display: flex; flex-direction: column; gap: 10px;
	transition: transform .25s var(--rcbc-ease), box-shadow .25s var(--rcbc-ease), border-color .25s var(--rcbc-ease);
}
.rcbc-model-card:hover { transform: translateY(-3px); box-shadow: var(--rcbc-shadow); border-color: var(--rcbc-border-strong); }
/* Les cartes sont des <button> : le « button:hover » du theme (fond fonce,
   texte blanc...) passerait devant et rendrait titre et prix illisibles. */
.rcbc-model-card,
.rcbc-model-card:hover,
.rcbc-model-card:focus,
.rcbc-model-card:active {
	background: transparent !important;
	color: var(--rcbc-ink) !important;
	opacity: 1 !important;
	filter: none !important;
	text-decoration: none !important;
}
.rcbc-model-card.is-selected {
	border-color: var(--rcbc-accent) !important;
	box-shadow: 0 0 0 1px var(--rcbc-accent), var(--rcbc-shadow-sm);
}
.rcbc-model-card__image {
	position: relative;
	display: flex; align-items: center; justify-content: center;
	aspect-ratio: 4/3; border-radius: var(--rcbc-radius-sm); overflow: hidden; background: transparent;
}
.rcbc-model-card__image img { width: 100%; height: 100%; object-fit: contain !important; object-position: center; padding: 4px; }
.rcbc-model-card__check {
	position: absolute; top: 6px; right: 6px; width: 22px; height: 22px; border-radius: 50%;
	background: var(--rcbc-accent); color: var(--rcbc-accent-ink);
	display: flex; align-items: center; justify-content: center;
	font-size: 12px; font-weight: 700; opacity: 0; transform: scale(.6);
	transition: all .2s var(--rcbc-ease);
}
.rcbc-model-card.is-selected .rcbc-model-card__check { opacity: 1; transform: scale(1); }
.rcbc-model-card__placeholder { color: var(--rcbc-ink-soft); font-size: 10.5px; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; opacity: .65; }
.rcbc-model-card__title { font-weight: 700; font-size: 16px; font-family: var(--rcbc-font-serif); line-height: 1.25; }
.rcbc-model-card__price { font-size: 12.5px; color: var(--rcbc-ink-soft); }
.rcbc-model-card__price strong { color: var(--rcbc-ink); font-weight: 700; }

@media (max-width: 460px) {
	.rcbc-model-grid { grid-template-columns: 1fr; gap: 10px; }
	.rcbc-model-card { display: grid; grid-template-columns: 96px minmax(0, 1fr); align-items: center; padding: 10px; }
	.rcbc-model-card__image { grid-row: 1 / span 2; }
	.rcbc-model-card__title { align-self: end; }
	.rcbc-model-card__price { align-self: start; }
}

.rcbc-pill-group { display: flex; flex-wrap: wrap; gap: 8px; }
.rcbc-pill {
	background: transparent !important; border: 1px solid var(--rcbc-border-strong) !important;
	border-radius: var(--rcbc-radius-sm) !important; padding: 10px 18px !important; font-size: 14px !important;
	transition: all .2s var(--rcbc-ease) !important;
}
.rcbc-pill:hover { border-color: var(--rcbc-accent) !important; color: var(--rcbc-accent) !important; }
.rcbc-pill.is-active {
	background: var(--rcbc-accent) !important; border-color: var(--rcbc-accent) !important;
	color: var(--rcbc-accent-ink) !important; font-weight: 600 !important;
}

.rcbc-swatch-group { display: flex; flex-wrap: wrap; gap: 12px; }
.rcbc-swatch {
	width: 38px !important; height: 38px !important; border-radius: 50% !important;
	border: 3px solid var(--rcbc-paper) !important; box-shadow: 0 0 0 1px var(--rcbc-border-strong) !important;
	position: relative; transition: transform .2s var(--rcbc-ease) !important;
}
.rcbc-swatch:hover { transform: scale(1.1); }
.rcbc-swatch.is-active { box-shadow: 0 0 0 1px var(--rcbc-border-strong), 0 0 0 3px var(--rcbc-paper), 0 0 0 5px var(--rcbc-accent) !important; }
.rcbc-swatch.is-disabled { opacity: .3; cursor: not-allowed !important; }
.rcbc-swatch.is-disabled:hover { transform: none; }

/* ---------- Options en tuiles-images ---------- */

.rcbc-block--options { border-bottom: 0; padding-bottom: 0; }
.rcbc-option-note {
	margin: 4px 0 0 !important; font-size: 12.5px; line-height: 1.5;
	color: var(--rcbc-ink-soft); font-style: italic;
}
.rcbc-option-group { margin-bottom: 20px; }
.rcbc-option-group__title { font-size: 14.5px !important; margin-bottom: 10px !important; font-family: var(--rcbc-font-sans) !important; font-weight: 700 !important; }
/* Bloc « Recommandés pour votre … » : accessoires mis en avant sur la fiche option. */
.rcbc-option-group--featured .rcbc-option-group__title { color: var(--rcbc-accent-dark) !important; }
.rcbc-option-group--featured .rcbc-option-group__title::before { content: '★ '; color: var(--rcbc-gold); }

.rcbc-option-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(128px, 1fr));
	gap: 12px;
}

.rcbc-option-tile {
	position: relative;
	background: transparent !important;
	border: 1px solid var(--rcbc-border) !important;
	border-radius: var(--rcbc-radius) !important;
	padding: 10px !important;
	display: flex; flex-direction: column; gap: 6px; text-align: left;
	cursor: pointer;
	transition: border-color .2s var(--rcbc-ease), box-shadow .2s var(--rcbc-ease), transform .2s var(--rcbc-ease) !important;
}
.rcbc-option-tile:hover { border-color: var(--rcbc-border-strong) !important; transform: translateY(-2px); box-shadow: var(--rcbc-shadow-sm) !important; }
.rcbc-option-tile.is-disabled { opacity: .55; cursor: not-allowed !important; }
.rcbc-option-tile.is-disabled:hover { border-color: var(--rcbc-border) !important; transform: none; box-shadow: none !important; }
.rcbc-option-tile.is-selected {
	border-color: var(--rcbc-accent) !important; box-shadow: 0 0 0 1px var(--rcbc-accent), var(--rcbc-shadow-sm) !important;
	background: transparent !important;
}
.rcbc-option-tile__image {
	position: relative; aspect-ratio: 4/3; border-radius: var(--rcbc-radius-sm); overflow: hidden;
	background: transparent; display: flex; align-items: center; justify-content: center;
}
.rcbc-option-tile__image img { width: 100%; height: 100%; object-fit: contain !important; object-position: center; padding: 3px; }
.rcbc-option-tile__ph { color: var(--rcbc-ink-soft); font-size: 9px; font-weight: 650; letter-spacing: .05em; text-transform: uppercase; opacity: .6; }
.rcbc-option-tile__check {
	position: absolute; top: 6px; right: 6px; width: 22px; height: 22px; border-radius: 50%;
	background: var(--rcbc-accent); color: var(--rcbc-accent-ink); display: flex; align-items: center; justify-content: center;
	font-size: 12px; font-weight: 700; opacity: 0; transform: scale(.6); transition: all .2s var(--rcbc-ease);
}
.rcbc-option-tile.is-selected .rcbc-option-tile__check { opacity: 1; transform: scale(1); }
.rcbc-option-tile__name { font-size: 12.5px; font-weight: 650; line-height: 1.35; }
.rcbc-option-tile__price { font-size: 12px; color: var(--rcbc-ink-soft); font-variant-numeric: tabular-nums; }
.rcbc-option-tile__lot-info { font-size: 10.5px; color: var(--rcbc-ink-soft); }
.rcbc-option-tile__stock { font-size: 10.5px; color: var(--rcbc-danger); font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.rcbc-option-quantity {
	display: grid; grid-template-columns: 32px minmax(0, 1fr) 32px; align-items: center;
	margin-top: auto; border: 1px solid var(--rcbc-border-strong); border-radius: 9px; overflow: hidden;
}
.rcbc-option-quantity__btn {
	display: flex !important; align-items: center; justify-content: center;
	width: 32px !important; height: 32px !important; color: var(--rcbc-ink) !important;
	font-size: 18px !important; font-weight: 650 !important; background: var(--rcbc-paper) !important;
}
.rcbc-option-quantity__btn:hover:not(:disabled) { color: var(--rcbc-accent) !important; }
.rcbc-option-quantity__btn:disabled { opacity: .28; cursor: not-allowed; }
.rcbc-option-quantity__value { text-align: center; font-size: 10.5px; font-weight: 650; color: var(--rcbc-ink); }

/* Icone « i » + infobulle de description (survol sur ordinateur, toucher sur mobile). */
.rcbc-option-tile__info {
	position: absolute !important; top: 14px; left: 14px; z-index: 2;
	width: 22px !important; height: 22px !important; border-radius: 50% !important;
	display: flex !important; align-items: center; justify-content: center;
	background: var(--rcbc-paper) !important; border: 1px solid var(--rcbc-border-strong) !important;
	color: var(--rcbc-ink) !important; font-family: var(--rcbc-font-serif) !important;
	font-style: italic; font-weight: 700 !important; font-size: 13px !important; line-height: 1 !important;
	box-shadow: var(--rcbc-shadow-sm);
	transition: background .2s var(--rcbc-ease), color .2s var(--rcbc-ease), border-color .2s var(--rcbc-ease);
}
.rcbc-option-tile__info:hover,
.rcbc-option-tile.is-tip-open .rcbc-option-tile__info {
	background: var(--rcbc-accent) !important; border-color: var(--rcbc-accent) !important; color: var(--rcbc-accent-ink) !important;
}
.rcbc-option-tile__tooltip {
	position: absolute; left: 6px; right: 6px; top: 42px; z-index: 4;
	padding: 9px 11px; border-radius: var(--rcbc-radius-sm);
	background: var(--rcbc-ink); color: #fff; font-size: 12px; line-height: 1.45; font-weight: 450;
	box-shadow: var(--rcbc-shadow); cursor: default;
	opacity: 0; visibility: hidden; transform: translateY(-4px); pointer-events: none;
	transition: opacity .18s var(--rcbc-ease), transform .18s var(--rcbc-ease), visibility 0s linear .18s;
}
.rcbc-option-tile__tooltip::before {
	content: ''; position: absolute; top: -5px; left: 14px; width: 10px; height: 10px;
	background: var(--rcbc-ink); transform: rotate(45deg);
}
.rcbc-option-tile.is-tip-open .rcbc-option-tile__tooltip {
	opacity: 1; visibility: visible; transform: none; pointer-events: auto; transition-delay: 0s;
}
@media (hover: hover) {
	.rcbc-option-tile__info:hover + .rcbc-option-tile__tooltip,
	.rcbc-option-tile__info:focus-visible + .rcbc-option-tile__tooltip {
		opacity: 1; visibility: visible; transform: none; transition-delay: 0s;
	}
}

/* ---------- Recapitulatif / CTA ---------- */

.rcbc-summary {
	position: sticky; bottom: 12px;
	background: var(--rcbc-paper-raised); border: 1px solid var(--rcbc-border); border-radius: var(--rcbc-radius-lg);
	padding: 20px 24px; margin-top: 28px; box-shadow: var(--rcbc-shadow-lg);
}
.rcbc-summary__lines { margin: 0 0 14px !important; display: grid; gap: 6px; }
.rcbc-summary__line {
	display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
	font-size: 13px; color: var(--rcbc-ink-soft);
}
.rcbc-summary__line-price { font-variant-numeric: tabular-nums; white-space: nowrap; }
.rcbc-summary__line:first-child { color: var(--rcbc-ink); font-weight: 600; }
.rcbc-summary__price {
	display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
	margin-bottom: 16px; padding-top: 12px; border-top: 1px solid var(--rcbc-border);
}
.rcbc-summary__label { font-size: 12.5px; color: var(--rcbc-ink-soft); text-transform: uppercase; letter-spacing: .08em; }
.rcbc-summary__amount { font-size: 30px; font-weight: 800; font-family: var(--rcbc-font-serif); font-variant-numeric: tabular-nums; color: var(--rcbc-accent-dark); }
.rcbc-summary__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.rcbc-summary__message { margin: 12px 0 0 !important; font-size: 13.5px !important; }
.rcbc-summary__message.is-error { color: var(--rcbc-danger) !important; }
.rcbc-summary__message.is-success { color: var(--rcbc-success) !important; }
.rcbc-summary__message-link { color: var(--rcbc-accent) !important; font-weight: 650; text-decoration: underline !important; white-space: nowrap; }

.rcbc-btn {
	border-radius: var(--rcbc-radius-sm) !important; padding: 13px 22px !important; font-size: 14px !important; font-weight: 650 !important;
	transition: transform .15s var(--rcbc-ease), filter .15s var(--rcbc-ease), background .15s var(--rcbc-ease) !important;
	flex: 1; text-align: center;
	opacity: 1 !important; /* Certains themes estompent les boutons au survol ; l'etat desactive garde son propre !important. */
}
.rcbc-btn:active { transform: scale(.97) !important; }
.rcbc-btn--primary { background: var(--rcbc-accent) !important; color: var(--rcbc-accent-ink) !important; }
.rcbc-btn--primary:hover { filter: brightness(1.08); }
.rcbc-btn--primary:disabled { opacity: .6 !important; cursor: wait !important; }
.rcbc-btn--ghost { background: transparent !important; border: 1px solid var(--rcbc-border-strong) !important; color: var(--rcbc-ink) !important; }
.rcbc-btn--ghost:hover { border-color: var(--rcbc-accent) !important; color: var(--rcbc-accent) !important; }
.rcbc-btn--small { flex: none; padding: 8px 16px !important; font-size: 13px !important; }
.rcbc-btn--full { width: 100%; }

.rcbc-configurator :where(button, a, input, textarea, select):focus-visible,
.rcbc-search-standalone :where(button, a, input):focus-visible,
.rcbc-modal :where(button, input, textarea):focus-visible,
.rcbc-help :where(button, a, input, textarea, summary):focus-visible,
.rcbc-float-btn:focus-visible {
	outline: 2px solid var(--rcbc-accent) !important;
	outline-offset: 3px !important;
}
.rcbc-option-tile:focus-visible { outline: 2px solid var(--rcbc-accent); outline-offset: 3px; }

.rcbc-empty-state { color: var(--rcbc-ink-soft); font-style: italic; }

/* ---------- Carrousel WooCommerce "Nous vous recommandons" ---------- */

.rcbc-carousel-wrap { margin-top: 48px; border-top: 1px solid var(--rcbc-border); padding-top: 28px; }
.rcbc-carousel-wrap .rcbc-recommend__title { font-size: 19px !important; margin-bottom: 18px !important; }

.rcbc-carousel { position: relative; display: flex; align-items: center; gap: 8px; }
.rcbc-carousel-track {
	display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x proximity; scroll-behavior: smooth;
	padding: 4px 2px 12px;
}
.rcbc-carousel-track::-webkit-scrollbar { height: 6px; }
.rcbc-carousel-track::-webkit-scrollbar-thumb { background: var(--rcbc-border-strong); border-radius: 999px; }

.rcbc-carousel-item {
	scroll-snap-align: start; flex: 0 0 180px;
	background: transparent; border: 1px solid var(--rcbc-border); border-radius: var(--rcbc-radius);
	padding: 14px; display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center;
	transition: box-shadow .2s var(--rcbc-ease), transform .2s var(--rcbc-ease);
}
.rcbc-carousel-item:hover { box-shadow: var(--rcbc-shadow-sm); transform: translateY(-2px); }
.rcbc-carousel-item__image { display: block; width: 100%; aspect-ratio: 4/3; border-radius: var(--rcbc-radius-sm); overflow: hidden; background: transparent; }
.rcbc-carousel-item__image img { width: 100% !important; height: 100% !important; object-fit: contain !important; object-position: center; padding: 3px; }
.rcbc-carousel-item__title { font-size: 13px !important; font-weight: 600 !important; color: var(--rcbc-ink) !important; }
.rcbc-carousel-item__price { font-size: 13px; color: var(--rcbc-ink-soft); }
.rcbc-carousel-item__price bdi, .rcbc-carousel-item__price .woocommerce-Price-amount { font-family: var(--rcbc-font-sans); }

.rcbc-carousel-nav {
	flex: none; width: 36px; height: 36px; border-radius: 50% !important;
	background: var(--rcbc-paper-raised) !important; border: 1px solid var(--rcbc-border-strong) !important;
	font-size: 18px !important; display: flex !important; align-items: center; justify-content: center;
	box-shadow: var(--rcbc-shadow-sm) !important; transition: all .2s var(--rcbc-ease) !important;
}
.rcbc-carousel-nav { color: var(--rcbc-ink) !important; }
.rcbc-carousel-nav:hover { border-color: var(--rcbc-accent) !important; color: var(--rcbc-accent) !important; background: var(--rcbc-paper-raised) !important; }

/* ---------- Recherche autonome ---------- */

.rcbc-search-standalone { position: relative; max-width: 480px; }
.rcbc-search-box {
	display: flex; align-items: center; gap: 10px;
	background: var(--rcbc-paper-raised); border: 1px solid var(--rcbc-border-strong); border-radius: 999px; padding: 12px 18px;
	box-shadow: var(--rcbc-shadow-sm);
}
.rcbc-search-input { border: none !important; background: none !important; outline: none; flex: 1; font-size: 15px !important; color: var(--rcbc-ink) !important; }
.rcbc-search-results {
	position: absolute; top: calc(100% + 10px); left: 0; right: 0; z-index: 40;
	background: var(--rcbc-paper-raised); border: 1px solid var(--rcbc-border); border-radius: var(--rcbc-radius);
	box-shadow: var(--rcbc-shadow); max-height: 320px; overflow-y: auto; padding: 6px;
}
.rcbc-search-result {
	display: flex !important; flex-direction: column; align-items: flex-start !important; width: 100%;
	padding: 10px 12px !important; border-radius: var(--rcbc-radius-sm) !important;
}
.rcbc-search-result { color: var(--rcbc-ink) !important; background: transparent !important; }
.rcbc-search-result:hover { background: var(--rcbc-paper-soft) !important; }
.rcbc-search-result__label { font-weight: 600; font-size: 14px; }
.rcbc-search-result__desc { font-size: 12.5px; color: var(--rcbc-ink-soft); }
.rcbc-search-empty { padding: 10px 12px; color: var(--rcbc-ink-soft); font-size: 13.5px; margin: 0; }

/* ---------- Bouton flottant "Besoin d'aide ?" ---------- */

.rcbc-float-btn {
	position: fixed !important; bottom: 24px !important; right: 24px !important; z-index: 9999 !important;
	display: flex !important; align-items: center; gap: 9px;
	background: var(--rcbc-accent) !important; color: var(--rcbc-accent-ink) !important;
	border-radius: 999px !important; padding: 15px 22px !important; font-size: 14.5px !important; font-weight: 600 !important;
	box-shadow: var(--rcbc-shadow-lg) !important; transition: transform .2s var(--rcbc-ease), filter .2s var(--rcbc-ease) !important;
}
a.rcbc-float-btn, a.rcbc-float-btn:hover, a.rcbc-float-btn:visited { text-decoration: none !important; color: var(--rcbc-accent-ink) !important; }
.rcbc-float-btn:hover { filter: brightness(1.08); transform: translateY(-2px); }
.rcbc-float-btn__icon { font-size: 18px; }

@media (max-width: 560px) {
	.rcbc-float-btn__label { display: none; }
	.rcbc-float-btn { padding: 15px !important; border-radius: 50% !important; }
}

/* ---------- Modale de rappel ---------- */

.rcbc-modal { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.rcbc-modal[hidden] { display: none; }
.rcbc-modal__backdrop { position: absolute; inset: 0; background: rgba(20, 17, 12, .6); backdrop-filter: blur(2px); }
body.rcbc-modal-open { overflow: hidden; }

.rcbc-modal__dialog {
	position: relative; background: var(--rcbc-paper-raised); border-radius: var(--rcbc-radius-lg);
	max-width: 440px; width: 100%; padding: 30px; box-shadow: var(--rcbc-shadow-lg);
	max-height: 90vh; overflow-y: auto;
}
.rcbc-modal__close {
	position: absolute !important; top: 16px !important; right: 16px !important;
	font-size: 18px !important; color: var(--rcbc-ink-soft) !important; line-height: 1;
	background: transparent !important;
}
.rcbc-modal__intro { font-size: 13.5px; color: var(--rcbc-ink-soft); margin: 8px 0 22px; }

.rcbc-form-row { margin-bottom: 16px; }
.rcbc-form-row label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; }
.rcbc-form-row input, .rcbc-form-row textarea {
	width: 100% !important; padding: 11px 14px !important; border: 1px solid var(--rcbc-border-strong) !important;
	font-size: 14px !important; background: var(--rcbc-paper-soft) !important; color: var(--rcbc-ink) !important;
}
.rcbc-form-row input:focus, .rcbc-form-row textarea:focus { outline: 2px solid var(--rcbc-accent) !important; outline-offset: 1px; }
.rcbc-form-row--split { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.rcbc-honeypot { position: absolute; left: -9999px; top: -9999px; }
.rcbc-form-message { min-height: 18px; font-size: 13.5px; margin: 4px 0 14px; }
.rcbc-form-message.is-error { color: var(--rcbc-danger); }
.rcbc-form-message.is-success { color: var(--rcbc-success); }

/* ---------- Page « Besoin d'aide » : FAQ + contact ---------- */

.rcbc-help { max-width: 1180px !important; margin: 0 auto; padding: clamp(8px, 2vw, 24px) 0; } /* !important : voir .rcbc-configurator. */

.rcbc-help__layout {
	display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(300px, 1fr);
	gap: clamp(28px, 5vw, 64px); align-items: start;
}
@media (max-width: 860px) {
	.rcbc-help__layout { grid-template-columns: 1fr; }
}
.rcbc-help__title { font-size: 20px !important; margin-bottom: 14px !important; letter-spacing: -.015em !important; }

.rcbc-faq { border-top: 1px solid var(--rcbc-border); }
.rcbc-faq__item { border-bottom: 1px solid var(--rcbc-border); }
.rcbc-faq__question {
	list-style: none; cursor: pointer;
	display: flex; justify-content: space-between; align-items: center; gap: 16px;
	padding: 16px 2px; font-weight: 650; font-size: 15.5px; line-height: 1.4;
	transition: color .2s ease;
}
.rcbc-faq__question::-webkit-details-marker { display: none; }
.rcbc-faq__question::after {
	content: '+'; flex: none; width: 26px; height: 26px; border-radius: 50%;
	border: 1px solid var(--rcbc-border-strong); color: var(--rcbc-accent);
	display: flex; align-items: center; justify-content: center; font-weight: 500; font-size: 17px;
	transition: transform .2s var(--rcbc-ease);
}
.rcbc-faq__item[open] > .rcbc-faq__question::after { transform: rotate(45deg); }
.rcbc-faq__question:hover { color: var(--rcbc-accent); }
.rcbc-faq__answer { padding: 0 2px 18px; color: var(--rcbc-ink-soft); font-size: 14.5px; line-height: 1.65; }
.rcbc-faq__answer p { margin: 0 0 10px; }
.rcbc-faq__answer p:last-child { margin-bottom: 0; }

.rcbc-help__contact {
	background: var(--rcbc-paper-raised); border: 1px solid var(--rcbc-border); border-radius: var(--rcbc-radius-lg);
	padding: clamp(20px, 3vw, 30px); box-shadow: var(--rcbc-shadow);
	position: sticky; top: 24px;
}
@media (max-width: 860px) {
	.rcbc-help__contact { position: static; }
}
.rcbc-help__intro { font-size: 13.5px; color: var(--rcbc-ink-soft); margin: 0 0 20px; }
.rcbc-help__hint { font-size: 12px; color: var(--rcbc-ink-soft); margin: -8px 0 14px; }
.rcbc-help__attach {
	display: flex; gap: 10px; align-items: flex-start; cursor: pointer;
	font-size: 13px; line-height: 1.45; background: var(--rcbc-paper-soft);
	border-radius: var(--rcbc-radius-sm); padding: 10px 12px; margin-bottom: 14px;
}
.rcbc-help__attach[hidden] { display: none; }
.rcbc-help__attach input[type=checkbox] {
	-webkit-appearance: checkbox !important; appearance: auto !important;
	flex: none; width: 16px; height: 16px; margin: 2px 0 0; accent-color: var(--rcbc-accent);
}

/* ---------- Document autonome charge dans l'iframe [rc_configurator_iframe] ---------- */

body.rcbc-embed-body { margin: 0 !important; padding: 16px clamp(12px, 3vw, 28px) !important; background: #fff !important; }
body.rcbc-embed-body .rcbc-configurator { padding-top: 0; }
