/* Smart Catalog Builder — front
   Direction : surfaces douces plutôt que traits, données en pastilles, grands arrondis,
   monochrome qui hérite du thème (clair ou sombre). Le prix est le seul élément appuyé.
   Tout se règle par variables --scb-* (thème, Elementor ou CSS personnalisé). */

:root {
	--scb-ink: #16181d;
	--scb-ink-contrast: #fff;
	--scb-surface: rgba(128, 128, 128, 0.08);
	--scb-line: rgba(128, 128, 128, 0.22);
	--scb-field: transparent;
	--scb-muted-opacity: 0.68;
	--scb-radius: 16px;
	--scb-radius-sm: 10px;
}

@supports (color: color-mix(in srgb, red 50%, blue)) {
	:root {
		--scb-surface: color-mix(in srgb, currentColor 5%, transparent);
		--scb-line: color-mix(in srgb, currentColor 14%, transparent);
	}
}

.scb-single,
.scb-archive {
	width: 100%;
	flex: 1 1 100%;
	min-width: 0;
}

:where(.scb-single, .scb-archive, .scb-listing, [class*="elementor-widget-scb-"]) *,
:where(.scb-single, .scb-archive, .scb-listing, [class*="elementor-widget-scb-"]) *::before,
:where(.scb-single, .scb-archive, .scb-listing, [class*="elementor-widget-scb-"]) *::after {
	box-sizing: border-box;
}

/* ---------------------------------------------------------------- Protection contre les styles du thème
   Les thèmes stylent souvent input[type=text], input[type=date] et button (bordures, arrondis,
   majuscules, ombres, couleurs au survol). Les sélecteurs des champs et boutons du plugin sont
   renforcés (élément + classe doublée) pour passer devant, tout en restant sous les réglages
   faits dans Elementor. Ces valeurs neutres sont ensuite complétées par chaque composant. */

.scb-button.scb-button:is(a, button, input, select, span, div):not(#scb),
.scb-dates__shortcut.scb-dates__shortcut:is(a, button, input, select, span, div):not(#scb),
.scb-catfilter__item.scb-catfilter__item:is(a, button, input, select, span, div):not(#scb),
.scb-filters__toggle.scb-filters__toggle:is(a, button, input, select, span, div):not(#scb),
.scb-carousel__arrow.scb-carousel__arrow:is(a, button, input, select, span, div):not(#scb),
.scb-carousel__dot.scb-carousel__dot:is(a, button, input, select, span, div):not(#scb),
.scb-gallery__arrow.scb-gallery__arrow:is(a, button, input, select, span, div):not(#scb),
.scb-gallery__thumb.scb-gallery__thumb:is(a, button, input, select, span, div):not(#scb),
.scb-gallery__stage.scb-gallery__stage:is(a, button, input, select, span, div):not(#scb),
.scb-lightbox__button.scb-lightbox__button:is(a, button, input, select, span, div):not(#scb),
.scb-cal__arrow.scb-cal__arrow:is(a, button, input, select, span, div):not(#scb),
.scb-cal__today.scb-cal__today:is(a, button, input, select, span, div):not(#scb),
.scb-cal__cell.scb-cal__cell:is(a, button, input, select, span, div):not(#scb),
.scb-pagination__link.scb-pagination__link:is(a, button, input, select, span, div):not(#scb),
.scb-when__tab.scb-when__tab:is(a, button, input, select, span, div):not(#scb) {
	text-transform: none;
	letter-spacing: normal;
	text-shadow: none;
	box-shadow: none;
	text-decoration: none;
}

.scb-filter__control.scb-filter__control:is(a, button, input, select, span, div):not(#scb) {
	height: auto;
	box-shadow: none;
	outline-offset: 1px;
}

/* ---------------------------------------------------------------- Titres de section */

.scb-section-title {
	margin: 0 0 18px;
	font-size: 1.125em;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -0.01em;
}

.scb-section-title::after {
	content: "";
	display: none;
	width: 28px;
	height: 3px;
	margin-top: 10px;
	border-radius: 3px;
	background-color: currentColor;
}

/* ---------------------------------------------------------------- En-tête de fiche */

.scb-back.scb-back:is(a, button, input, select, span, div):not(#scb) {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 14px 7px 10px;
	border-radius: 999px;
	background: var(--scb-surface);
	color: inherit;
	font-size: 0.85em;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color 0.15s ease;
}

.scb-back.scb-back:is(a, button, input, select, span, div):not(#scb):hover {
	background: var(--scb-line);
}

.scb-back.scb-back:is(a, button, input, select, span, div):not(#scb):focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.scb-title {
	margin: 0;
	font-size: clamp(1.75rem, 1.2rem + 2vw, 2.75rem);
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: -0.025em;
	overflow-wrap: anywhere;
	text-wrap: balance;
}

/* Infos : pastilles */
.scb-meta {
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
}

.scb-meta--chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.scb-meta--chips .scb-meta__item {
	margin: 0;
	padding: 5px 12px;
	border: 1px solid var(--scb-line);
	border-radius: 999px;
	font-size: 0.85em;
	line-height: 1.3;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.scb-meta--text {
	opacity: var(--scb-muted-opacity);
	font-size: 0.95em;
}

.scb-meta__sep {
	white-space: pre;
}

/* Prix : l'élément appuyé de la fiche */
.scb-price {
	margin: 0;
	font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.25rem);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
}

/* ---------------------------------------------------------------- Galerie */

.scb-gallery {
	--scb-ratio: 4 / 3;
	--scb-thumbs: 5;
	--scb-gap: 10px;
	--scb-active: currentColor;
	display: flex;
	flex-direction: column;
	gap: var(--scb-gap);
}

.scb-gallery__main {
	position: relative;
	border-radius: var(--scb-radius);
	overflow: hidden;
	background: var(--scb-surface);
}

.scb-gallery__stage.scb-gallery__stage:is(a, button, input, select, span, div):not(#scb) {
	display: block;
	width: 100%;
	padding: 0;
	margin: 0;
	border: 0;
	background: transparent;
	aspect-ratio: var(--scb-ratio);
	cursor: default;
}

.scb-gallery__stage.scb-gallery__stage[role="button"]:is(a, button, input, select, span, div):not(#scb) {
	cursor: zoom-in;
}

.scb-gallery__stage.scb-gallery__stage:is(a, button, input, select, span, div):not(#scb) img {
	display: block;
	width: 100%;
	height: var(--scb-img-h, 100%);
	object-fit: cover;
}

/* Flèches en verre dépoli, posées sur la photo */
.scb-gallery__arrow.scb-gallery__arrow:is(a, button, input, select, span, div):not(#scb) {
	position: absolute;
	z-index: 2;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.78);
	color: #16181d;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
	cursor: pointer;
	opacity: 0;
	transition: opacity 0.2s ease, background-color 0.15s ease;
}

.scb-gallery__arrow.scb-gallery__arrow:is(a, button, input, select, span, div):not(#scb).is-prev {
	left: 14px;
}

.scb-gallery__arrow.scb-gallery__arrow:is(a, button, input, select, span, div):not(#scb).is-next {
	right: 14px;
}

.scb-gallery__main:hover .scb-gallery__arrow.scb-gallery__arrow:is(a, button, input, select, span, div):not(#scb),
.scb-gallery__arrow.scb-gallery__arrow:is(a, button, input, select, span, div):not(#scb):focus-visible {
	opacity: 1;
}

.scb-gallery__arrow.scb-gallery__arrow:is(a, button, input, select, span, div):not(#scb):hover {
	background: #fff;
}

@media (hover: none) {
	.scb-gallery__arrow.scb-gallery__arrow:is(a, button, input, select, span, div):not(#scb) {
		opacity: 1;
		width: 38px;
		height: 38px;
	}
}

.scb-gallery__counter {
	position: absolute;
	left: 14px;
	bottom: 14px;
	padding: 4px 11px;
	border-radius: 999px;
	background: rgba(22, 24, 29, 0.62);
	color: #fff;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.6;
	font-variant-numeric: tabular-nums;
	pointer-events: none;
}

.scb-gallery__strip {
	display: flex;
	gap: var(--scb-gap);
	overflow-x: auto;
	padding: 3px;
	margin: -3px;
	scroll-snap-type: x proximity;
	scroll-behavior: smooth;
	scrollbar-width: none;
}

.scb-gallery__strip::-webkit-scrollbar {
	display: none;
}

.scb-gallery__thumb.scb-gallery__thumb:is(a, button, input, select, span, div):not(#scb) {
	flex: 0 0 calc((100% - (var(--scb-thumbs) - 1) * var(--scb-gap)) / var(--scb-thumbs));
	aspect-ratio: 4 / 3;
	padding: 0;
	margin: 0;
	border: 0;
	border-radius: var(--scb-radius-sm);
	overflow: hidden;
	background: var(--scb-surface);
	scroll-snap-align: start;
	cursor: pointer;
	opacity: 0.55;
	box-shadow: 0 0 0 0 transparent;
	transition: opacity 0.15s ease, box-shadow 0.15s ease;
}

.scb-gallery__thumb.scb-gallery__thumb:is(a, button, input, select, span, div):not(#scb):hover {
	opacity: 0.9;
}

.scb-gallery__thumb.scb-gallery__thumb:is(a, button, input, select, span, div):not(#scb)[aria-current="true"] {
	opacity: 1;
	box-shadow: 0 0 0 2px var(--scb-active);
}

.scb-gallery__thumb.scb-gallery__thumb:is(a, button, input, select, span, div):not(#scb) img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.scb-gallery button:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

/* ---------------------------------------------------------------- Visionneuse */

.scb-lightbox {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 64px 88px;
	background: rgba(12, 13, 16, 0.92);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	color: #fff;
}

.scb-lightbox[hidden] {
	display: none;
}

.scb-lightbox__image {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	border-radius: 8px;
	user-select: none;
}

.scb-lightbox__button.scb-lightbox__button:is(a, button, input, select, span, div):not(#scb) {
	position: absolute;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.scb-lightbox__button.scb-lightbox__button:is(a, button, input, select, span, div):not(#scb):hover {
	background: rgba(255, 255, 255, 0.24);
}

.scb-lightbox__button.scb-lightbox__button:is(a, button, input, select, span, div):not(#scb):focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}

.scb-lightbox__close {
	top: 16px;
	right: 16px;
}

.scb-lightbox__prev,
.scb-lightbox__next {
	top: 50%;
	transform: translateY(-50%);
}

.scb-lightbox__prev {
	left: 20px;
}

.scb-lightbox__next {
	right: 20px;
}

.scb-lightbox__counter {
	position: absolute;
	top: 28px;
	left: 24px;
	font-size: 14px;
	opacity: 0.8;
	font-variant-numeric: tabular-nums;
}

html.scb-lightbox-open {
	overflow: hidden;
}

@media (max-width: 640px) {
	.scb-lightbox {
		padding: 72px 0;
	}

	.scb-lightbox__image {
		border-radius: 0;
	}

	.scb-lightbox__prev,
	.scb-lightbox__next {
		top: auto;
		bottom: 16px;
		transform: none;
	}
}

/* ---------------------------------------------------------------- Caractéristiques */

.scb-specs {
	--scb-spec-cols: 2;
	--scb-row-pad: 14px;
	--scb-tile: var(--scb-surface);
	--scb-divider: var(--scb-line);
}

.scb-specs__list {
	margin: 0;
}

.scb-specs dt,
.scb-specs dd {
	margin: 0;
}

.scb-specs dt {
	font-size: 0.78em;
	opacity: var(--scb-muted-opacity);
	line-height: 1.3;
}

.scb-specs dd {
	font-weight: 600;
	line-height: 1.3;
	font-variant-numeric: tabular-nums;
	overflow-wrap: anywhere;
}

/* Grille de cases */
.scb-specs--grid .scb-specs__list {
	display: grid;
	grid-template-columns: repeat(var(--scb-spec-cols), minmax(0, 1fr));
	gap: 8px;
}

.scb-specs--grid .scb-specs__item {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: var(--scb-row-pad) calc(var(--scb-row-pad) + 2px);
	border-radius: var(--scb-radius-sm);
	background: var(--scb-tile);
}

/* Lignes */
.scb-specs--rows .scb-specs__item {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	padding: var(--scb-row-pad) 0;
	border-bottom: 1px solid var(--scb-divider);
}

.scb-specs--rows .scb-specs__item:last-child {
	border-bottom: 0;
}

.scb-specs--rows dt {
	font-size: 0.9em;
}

.scb-specs--rows dd {
	text-align: right;
}

/* ---------------------------------------------------------------- Listes */

.scb-list {
	--scb-cols: 3;
	--scb-row-gap: 10px;
}

.scb-list__items {
	margin: 0;
	padding: 0;
	list-style: none;
}

.scb-list__items li {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	line-height: 1.35;
}

.scb-list__icon {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 0.8em;
}

.scb-list__icon svg {
	width: 1em;
	height: 1em;
}

/* Pastilles */
.scb-list--chips .scb-list__items {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.scb-list--chips .scb-list__items li {
	padding: 8px 14px 8px 12px;
	border-radius: 999px;
	background: var(--scb-surface);
	font-size: 0.9em;
}

/* Colonnes */
.scb-list--columns .scb-list__items {
	display: grid;
	grid-template-columns: repeat(var(--scb-cols), minmax(0, 1fr));
	gap: var(--scb-row-gap) 24px;
}

.scb-list--columns .scb-list__items li {
	align-items: baseline;
	font-size: 0.95em;
}

.scb-list--columns .scb-list__icon {
	width: 1.5em;
	height: 1.5em;
	border-radius: 50%;
	background: var(--scb-surface);
	transform: translateY(0.3em);
}

/* ---------------------------------------------------------------- Champ */

.scb-field--inline .scb-field__label::after {
	content: " : ";
}

.scb-field--stacked .scb-field__label {
	display: block;
	font-size: 0.8em;
	opacity: var(--scb-muted-opacity);
}

/* ---------------------------------------------------------------- Description */

.scb-description {
	line-height: 1.7;
	max-width: 72ch;
}

.scb-description > :first-child {
	margin-top: 0;
}

.scb-description > :last-child {
	margin-bottom: 0;
}

/* ---------------------------------------------------------------- Cartes */

.scb-cards {
	--scb-gap: 24px;
	--scb-card-ratio: 4 / 3;
	display: grid;
	grid-template-columns: repeat(var(--scb-cols, 3), minmax(0, 1fr));
	gap: calc(var(--scb-gap) * 1.4) var(--scb-gap);
}

.scb-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.scb-card__media {
	position: relative;
	aspect-ratio: var(--scb-card-ratio);
	border-radius: var(--scb-radius);
	overflow: hidden;
	background: var(--scb-surface);
}

.scb-card__media > a,
.scb-card__media img,
.scb-card__noimage {
	display: block;
	width: 100%;
	height: 100%;
}

.scb-card__media img {
	object-fit: cover;
	transition: transform 0.5s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.scb-card:hover .scb-card__media img {
	transform: scale(1.04);
}

.scb-badges {
	position: absolute;
	top: 12px;
	left: 12px;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
	pointer-events: none;
}

.scb-badges li {
	margin: 0;
	padding: 4px 10px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.86);
	color: #16181d;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.5;
}

.scb-card__body {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding-top: 14px;
}

.scb-card__title {
	margin: 0;
	font-size: 1.05em;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -0.01em;
}

.scb-card__title a {
	color: inherit;
	text-decoration: none;
}

/* Toute la carte est cliquable via le titre */
.scb-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.scb-card__title a:focus-visible {
	outline: none;
}

.scb-card:has(.scb-card__title a:focus-visible) {
	outline: 2px solid currentColor;
	outline-offset: 6px;
	border-radius: var(--scb-radius);
}

.scb-card .scb-meta {
	margin: 0;
}

.scb-card .scb-meta--chips .scb-meta__item {
	padding: 3px 9px;
	font-size: 0.75em;
}

.scb-card .scb-price {
	margin-top: 2px;
	font-size: 1.15em;
}

@media (max-width: 1024px) {
	.scb-cards {
		--scb-cols: 2;
	}
}

@media (max-width: 600px) {
	.scb-cards {
		--scb-cols: 1;
	}
}

/* ---------------------------------------------------------------- Similaires */

.scb-related__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 20px;
}

.scb-related__head .scb-section-title {
	margin: 0;
	font-size: 1.5em;
	letter-spacing: -0.02em;
}

.scb-related__more.scb-related__more:is(a, button, input, select, span, div):not(#scb) {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	color: inherit;
	font-size: 0.9em;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
}

.scb-related__more.scb-related__more:is(a, button, input, select, span, div):not(#scb):hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.scb-related__more.scb-related__more:is(a, button, input, select, span, div):not(#scb) svg {
	width: 18px;
	height: 18px;
}

/* ---------------------------------------------------------------- Boutons */

.scb-button.scb-button:is(a, button, input, select, span, div):not(#scb) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 22px;
	border: 1px solid var(--scb-ink);
	border-radius: var(--scb-button-radius, 999px);
	background: var(--scb-ink);
	color: var(--scb-ink-contrast);
	font: inherit;
	font-weight: 600;
	font-size: 0.95em;
	text-decoration: none;
	cursor: pointer;
	transition: opacity 0.15s ease;
}

.scb-button.scb-button:is(a, button, input, select, span, div):not(#scb):hover {
	opacity: 0.88;
}

.scb-button--ghost {
	background: transparent;
	color: inherit;
	border-color: var(--scb-line);
}

.scb-button.scb-button:is(a, button, input, select, span, div):not(#scb):focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.scb-buttons {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.scb-buttons .scb-button {
	width: 100%;
}

.scb-button__icon {
	display: inline-flex;
	font-size: 1.05em;
}

.scb-button__icon svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

/* ---------------------------------------------------------------- Liste de fiches */

.scb-listing {
	--scb-field-radius: 12px;
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.scb-listing.is-loading .scb-listing__results {
	opacity: 0.45;
	pointer-events: none;
	transition: opacity 0.2s ease;
}

/* Filtres */
.scb-filters {
	margin: 0;
}

.scb-filters__toggle.scb-filters__toggle:is(a, button, input, select, span, div):not(#scb) {
	display: none;
}

.scb-filters__body {
	padding: 20px;
	border-radius: var(--scb-radius);
	background: var(--scb-surface);
	container-type: inline-size;
}

.scb-filters__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: 16px;
}

.scb-filter {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.scb-filter__label {
	padding: 0;
	font-size: 0.8em;
	font-weight: 600;
	line-height: 1.3;
}

/* Une légende ne suit pas la mise en page flexible de son groupe : sans ce flottant, les champs de dates
   commençaient plus bas que les listes voisines. */
fieldset.scb-filter > legend.scb-filter__label {
	float: left;
	width: 100%;
	margin: 0;
}

fieldset.scb-filter > legend.scb-filter__label + * {
	clear: both;
}

.scb-filter__control.scb-filter__control:is(a, button, input, select, span, div):not(#scb) {
	width: 100%;
	min-height: 44px;
	margin: 0;
	padding: 0 14px;
	border: 1px solid var(--scb-line);
	border-radius: var(--scb-field-radius);
	background-color: var(--scb-field);
	color: inherit;
	font: inherit;
	font-size: 0.92em;
	line-height: 1.2;
	box-shadow: none;
}

select.scb-filter__control.scb-filter__control:is(a, button, input, select, span, div):not(#scb) {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 38px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23777' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	background-size: 16px;
	cursor: pointer;
}

.scb-filter__control.scb-filter__control:is(a, button, input, select, span, div):not(#scb):focus {
	outline: none;
	border-color: currentColor;
}

.scb-filter__control.scb-filter__control:is(a, button, input, select, span, div):not(#scb):focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 1px;
}

.scb-range {
	display: flex;
	align-items: center;
	gap: 6px;
}

.scb-range .scb-filter__control.scb-filter__control:is(a, button, input, select, span, div):not(#scb) {
	flex: 1;
	min-width: 0;
	padding: 0 10px;
}

.scb-range__sep,
.scb-range__unit {
	flex: none;
	font-size: 0.85em;
	opacity: var(--scb-muted-opacity);
}

.scb-filter--dates {
	grid-column: span 2;
}

/* Panneau assez large pour trois colonnes : les dates en prennent trois, les raccourcis (Aujourd'hui, Ce week-end,
   Ce mois-ci, 30 prochains jours) tiennent sur une ligne. */
@container (min-width: 680px) {
	.scb-filters__grid > .scb-filter--dates {
		grid-column: span 3;
	}
}

.scb-dates {
	display: flex;
	gap: 8px;
}

.scb-dates__field {
	position: relative;
	flex: 1;
	min-width: 0;
}

.scb-dates__field span {
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 0.8em;
	opacity: var(--scb-muted-opacity);
	pointer-events: none;
}

.scb-dates__field .scb-filter__control.scb-filter__control:is(a, button, input, select, span, div):not(#scb) {
	padding-left: 40px;
	padding-right: 8px;
}

/* Safari iOS : un champ de date garde son aspect natif, ignore la hauteur minimale (champ écrasé) et impose sa
   propre largeur (il déborde de l'écran). Aspect natif retiré, hauteur fixe, largeur limitée à son emplacement ;
   la date reste alignée à gauche et le sélecteur s'ouvre toujours au toucher. */
.scb-dates__field input.scb-filter__control.scb-filter__control:is(input):not(#scb) {
	display: block;
	width: 100%;
	min-width: 0;
	max-width: 100%;
	height: 44px;
	padding-top: 0;
	padding-bottom: 0;
	/* Sans aspect natif, Safari iOS place la date en haut du champ : hauteur de ligne = hauteur intérieure */
	line-height: 42px;
	-webkit-appearance: none;
	appearance: none;
}

.scb-dates__field input::-webkit-date-and-time-value {
	margin: 0;
	line-height: 42px;
	text-align: left;
}

@media (max-width: 479px) {
	.scb-dates {
		flex-direction: column;
	}
}

.scb-dates__shortcuts {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 2px;
}

.scb-dates__shortcut.scb-dates__shortcut:is(a, button, input, select, span, div):not(#scb) {
	min-height: 30px;
	padding: 0 12px;
	border: 1px solid var(--scb-line);
	border-radius: 999px;
	background: transparent;
	color: inherit;
	font: inherit;
	font-size: 0.78em;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.scb-dates__shortcut.scb-dates__shortcut:is(a, button, input, select, span, div):not(#scb):hover {
	background: var(--scb-surface);
}

.scb-dates__shortcut.scb-dates__shortcut:is(a, button, input, select, span, div):not(#scb)[aria-pressed="true"] {
	border-color: var(--scb-ink);
	background: var(--scb-ink);
	color: var(--scb-ink-contrast);
}

.scb-dates__shortcut.scb-dates__shortcut:is(a, button, input, select, span, div):not(#scb):focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.scb-filter__hint {
	font-size: 0.75em;
	opacity: var(--scb-muted-opacity);
	font-variant-numeric: tabular-nums;
}

.scb-filters__actions {
	margin-top: 16px;
}

html.scb-js .scb-filters__actions {
	display: none;
}

/* Barre de résultats */
.scb-listing__results {
	display: flex;
	flex-direction: column;
	gap: 24px;
	min-width: 0;
}

.scb-listing__toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 16px;
}

.scb-listing__count {
	margin: 0;
	font-size: 0.95em;
}

.scb-listing__count strong {
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.scb-active {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.scb-active li {
	margin: 0;
}

.scb-active a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 5px 8px 5px 12px;
	border-radius: 999px;
	background: var(--scb-ink);
	color: var(--scb-ink-contrast);
	font-size: 0.8em;
	font-weight: 500;
	line-height: 1.3;
	text-decoration: none;
}

.scb-active a span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.18);
	font-size: 14px;
	line-height: 1;
}

.scb-active a.scb-active__reset {
	background: transparent;
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.scb-sort {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-left: auto;
}

.scb-sort label {
	font-size: 0.85em;
	opacity: var(--scb-muted-opacity);
	white-space: nowrap;
}

.scb-sort .scb-filter__control.scb-filter__control:is(a, button, input, select, span, div):not(#scb) {
	width: auto;
	min-width: 190px;
	min-height: 40px;
	border-radius: 999px;
}

/* Résultats vides */
.scb-empty-state {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	padding: 40px;
	border-radius: var(--scb-radius);
	background: var(--scb-surface);
}

.scb-empty-state__title {
	margin: 0;
	font-size: 1.1em;
	font-weight: 600;
}

/* Pagination */
.scb-pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 6px;
	margin-top: 12px;
}

.scb-pagination__link.scb-pagination__link:is(a, button, input, select, span, div):not(#scb) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 12px;
	border-radius: 999px;
	color: inherit;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	text-decoration: none;
	transition: background-color 0.15s ease;
}

a.scb-pagination__link.scb-pagination__link:is(a, button, input, select, span, div):not(#scb):hover {
	background: var(--scb-surface);
}

.scb-pagination__link.scb-pagination__link:is(a, button, input, select, span, div):not(#scb).is-current {
	background: var(--scb-ink);
	color: var(--scb-ink-contrast);
}

.scb-pagination__link.scb-pagination__link:is(a, button, input, select, span, div):not(#scb).is-prev,
.scb-pagination__link.scb-pagination__link:is(a, button, input, select, span, div):not(#scb).is-next {
	font-size: 1.3em;
}

.scb-pagination__gap {
	padding: 0 4px;
	opacity: var(--scb-muted-opacity);
}

/* Filtres en colonne */
@media (min-width: 1025px) {
	.scb-listing--filters-side {
		display: grid;
		grid-template-columns: 280px minmax(0, 1fr);
		align-items: start;
		gap: 40px;
	}

	.scb-listing--filters-side .scb-filters {
		position: sticky;
		top: 24px;
	}

	.scb-listing--filters-side .scb-filters__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.scb-listing--filters-side .scb-filter--dates {
		grid-column: auto;
	}

	.scb-listing--filters-side .scb-dates {
		flex-direction: column;
	}
}

/* Mobile : filtres repliés */
@media (max-width: 767px) {
	.scb-filters__toggle.scb-filters__toggle:is(a, button, input, select, span, div):not(#scb) {
		display: inline-flex;
		align-items: center;
		gap: 10px;
		min-height: 44px;
		padding: 0 18px;
		border: 1px solid var(--scb-line);
		border-radius: var(--scb-button-radius, 999px);
		background: transparent;
		color: inherit;
		font: inherit;
		font-weight: 600;
		font-size: 0.95em;
		cursor: pointer;
	}

	.scb-filters__count {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 22px;
		height: 22px;
		padding: 0 6px;
		border-radius: 999px;
		background: var(--scb-ink);
		color: var(--scb-ink-contrast);
		font-size: 12px;
	}

	.scb-filters__count[hidden] {
		display: none;
	}

	html.scb-js .scb-filters__body {
		display: none;
		margin-top: 12px;
	}

	html.scb-js .scb-filters.is-open .scb-filters__body {
		display: block;
	}

	.scb-filters__grid {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.scb-filter--range,
	.scb-filter--dates {
		grid-column: 1 / -1;
	}

	.scb-sort {
		width: 100%;
		margin-left: 0;
	}

	.scb-sort .scb-filter__control.scb-filter__control:is(a, button, input, select, span, div):not(#scb) {
		flex: 1;
		min-width: 0;
	}
}

/* ---------------------------------------------------------------- Templates intégrés */

.scb-fallback__container,
.scb-archive__container {
	max-width: 1240px;
	margin: 0 auto;
	padding: clamp(28px, 5vw, 64px) clamp(16px, 4vw, 32px) clamp(48px, 7vw, 96px);
}

.scb-fallback__header {
	margin: 24px 0 28px;
}

.scb-layout {
	display: flex;
	flex-direction: column;
	gap: 36px;
}

.scb-layout__media,
.scb-layout__details {
	display: flex;
	flex-direction: column;
	gap: 36px;
	min-width: 0;
}

/* Ordinateur : panneau à droite sur toute la hauteur, listes sous les photos.
   S'applique au template intégré et aux conteneurs Elementor portant la classe scb-layout. */
@media (min-width: 1025px) {
	.scb-layout:not(.e-con),
	.e-con.scb-layout:not(:has(> .e-con-inner)),
	.e-con.scb-layout > .e-con-inner {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) minmax(300px, 400px);
		grid-template-rows: auto 1fr;
		grid-template-areas:
			"media aside"
			"details aside";
		column-gap: clamp(32px, 4vw, 56px);
		row-gap: 44px;
		align-items: start;
	}

	.scb-layout__media {
		grid-area: media;
	}

	.scb-layout__aside {
		grid-area: aside;
		position: sticky;
		top: 32px;
	}

	.scb-layout__details {
		grid-area: details;
	}

	.e-con.scb-layout .e-con.scb-layout__media,
	.e-con.scb-layout .e-con.scb-layout__aside,
	.e-con.scb-layout .e-con.scb-layout__details {
		width: 100%;
		max-width: 100%;
	}
}

/* Panneau : prix + caractéristiques */
.scb-panel,
.e-con.scb-panel-column,
.scb-panel-column > .elementor-widget-wrap,
.scb-panel-column > .elementor-column-wrap > .elementor-widget-wrap {
	padding: clamp(20px, 2.5vw, 28px);
	border: 1px solid var(--scb-line);
	border-radius: calc(var(--scb-radius) + 4px);
}

/* Anciens templates en sections : la colonne n'a pas de marge sur mobile. */
@media (max-width: 767px) {
	.elementor-column.scb-panel-column > .elementor-widget-wrap,
	.elementor-column.scb-panel-column > .elementor-column-wrap > .elementor-widget-wrap {
		margin-left: 16px;
		margin-right: 16px;
	}
}

.scb-panel {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.scb-panel .scb-specs {
	--scb-tile: var(--scb-surface);
}

.scb-panel .scb-section-title {
	font-size: 0.95em;
	margin-bottom: 12px;
}

.scb-fallback .scb-related {
	margin-top: clamp(56px, 8vw, 96px);
}

.scb-archive-title .scb-archive__intro {
	margin-top: 14px;
}

.scb-archive-title .scb-archive__intro > :last-child {
	margin-bottom: 0;
}

.scb-archive__header {
	margin-bottom: 32px;
}

.scb-archive__intro {
	margin-top: 12px;
	max-width: 65ch;
	opacity: 0.8;
}



@media (prefers-reduced-motion: reduce) {
	.scb-card__media img,
	.scb-gallery__thumb.scb-gallery__thumb:is(a, button, input, select, span, div):not(#scb),
	.scb-gallery__arrow.scb-gallery__arrow:is(a, button, input, select, span, div):not(#scb),
	.scb-gallery__strip,
	.scb-listing.is-loading .scb-listing__results {
		transition: none;
		scroll-behavior: auto;
	}
}

/* ---------------------------------------------------------------- Carrousels */

.scb-carousel {
	--scb-visible: 3;
	--scb-gap: 24px;
	--scb-peek: 0px;
	--scb-dot: var(--scb-line);
	--scb-dot-active: currentColor;
	position: relative;
	min-width: 0;
}

.scb-carousel__stage {
	position: relative;
}

.scb-carousel__viewport {
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	overscroll-behavior-x: contain;
	scrollbar-width: none;
	/* Laisse respirer les contours de focus et les ombres */
	padding: 4px;
	margin: -4px;
}

.scb-carousel__viewport::-webkit-scrollbar {
	display: none;
}

.scb-carousel__viewport:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
	border-radius: var(--scb-radius-sm);
}

.scb-carousel__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - var(--scb-peek) - (var(--scb-visible) - 1) * var(--scb-gap)) / var(--scb-visible));
	gap: var(--scb-gap);
}

.scb-carousel__slide {
	min-width: 0;
	scroll-snap-align: start;
}

.scb-carousel--featured {
	--scb-visible: 1 !important;
	--scb-peek: 0px !important;
}

/* Barre de navigation */
.scb-carousel__controls {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-top: 24px;
}

.scb-carousel__controls[hidden] {
	display: none;
}

.scb-carousel__pagination {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	margin-right: auto;
	min-height: 20px;
}

.scb-carousel__pagination[hidden] {
	display: flex;
	visibility: hidden;
}

.scb-carousel__dot.scb-carousel__dot:is(a, button, input, select, span, div):not(#scb) {
	position: relative;
	display: block;
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: var(--scb-dot);
	cursor: pointer;
	transition: width 0.25s ease, background-color 0.25s ease;
}

/* Zone de clic confortable autour de chaque point */
.scb-carousel__dot.scb-carousel__dot:is(a, button, input, select, span, div):not(#scb)::before {
	content: "";
	position: absolute;
	inset: -8px -4px;
}

.scb-carousel__dot.scb-carousel__dot:is(a, button, input, select, span, div):not(#scb):hover {
	background: var(--scb-dot-hover, var(--scb-dot-active));
}

.scb-carousel__dot.scb-carousel__dot:is(a, button, input, select, span, div):not(#scb)[aria-current="true"] {
	width: 26px;
	background: var(--scb-dot-active);
}

.scb-carousel__pagination[data-type="bars"] {
	flex-wrap: nowrap;
	gap: 8px;
	flex: 1;
	max-width: 420px;
}

.scb-carousel__pagination[data-type="bars"] .scb-carousel__dot.scb-carousel__dot:is(a, button, input, select, span, div):not(#scb) {
	flex: 1;
	width: auto;
	height: 3px;
}

.scb-carousel__pagination[data-type="bars"] .scb-carousel__dot.scb-carousel__dot:is(a, button, input, select, span, div):not(#scb)[aria-current="true"] {
	width: auto;
}

.scb-carousel__fraction {
	font-size: 0.9em;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
}

.scb-carousel__fraction span {
	opacity: var(--scb-muted-opacity);
}

.scb-carousel__arrows {
	display: flex;
	gap: 8px;
}

.scb-carousel__arrow.scb-carousel__arrow:is(a, button, input, select, span, div):not(#scb) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--scb-line);
	border-radius: 50%;
	background: transparent;
	color: inherit;
	cursor: pointer;
	transition: background-color 0.15s ease, opacity 0.15s ease;
}

.scb-carousel__arrow.scb-carousel__arrow:is(a, button, input, select, span, div):not(#scb):not(:disabled):hover {
	background: var(--scb-surface);
}

.scb-carousel__arrow.scb-carousel__arrow:is(a, button, input, select, span, div):not(#scb):disabled {
	opacity: 0.3;
	cursor: default;
	background: transparent;
}

.scb-carousel__arrow.scb-carousel__arrow:is(a, button, input, select, span, div):not(#scb):focus-visible,
.scb-carousel__dot.scb-carousel__dot:is(a, button, input, select, span, div):not(#scb):focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

/* Flèches sur les côtés, en verre dépoli */
.scb-carousel--arrows-sides .scb-carousel__arrows {
	position: absolute;
	inset: 0;
	z-index: 5;
	justify-content: space-between;
	align-items: center;
	pointer-events: none;
}

.scb-carousel--arrows-sides .scb-carousel__arrow.scb-carousel__arrow:is(a, button, input, select, span, div):not(#scb) {
	position: relative;
	z-index: 1;
	pointer-events: auto;
	margin: 0 -12px;
	border: 0;
	background: rgba(255, 255, 255, 0.85);
	color: #16181d;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

.scb-carousel--arrows-sides .scb-carousel__arrow.scb-carousel__arrow:is(a, button, input, select, span, div):not(#scb):not(:disabled):hover {
	background: #fff;
}

.scb-carousel--arrows-sides .scb-carousel__arrow.scb-carousel__arrow:is(a, button, input, select, span, div):not(#scb):disabled {
	opacity: 0;
}

@media (max-width: 767px) {
	.scb-carousel--arrows-sides .scb-carousel__arrow.scb-carousel__arrow:is(a, button, input, select, span, div):not(#scb) {
		margin: 0 4px;
		width: 38px;
		height: 38px;
	}
}

/* Moteur non initialisé (sans JavaScript) : défilement natif uniquement */
html:not(.scb-js) .scb-carousel__controls {
	display: none;
}

/* Diapositive « à la une » */
.scb-feature {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	align-items: stretch;
	min-height: 100%;
	border-radius: calc(var(--scb-radius) + 4px);
	overflow: hidden;
	background: var(--scb-surface);
}

.scb-feature__media {
	position: relative;
	min-height: 320px;
}

.scb-feature__media > a,
.scb-feature__media img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
}

.scb-feature__media img {
	object-fit: cover;
}

.scb-feature__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 14px;
	padding: clamp(24px, 4vw, 48px);
}

.scb-feature__title {
	margin: 0;
	font-size: clamp(1.4rem, 1.1rem + 1vw, 2rem);
	font-weight: 700;
	line-height: 1.12;
	letter-spacing: -0.02em;
}

.scb-feature__title a {
	color: inherit;
	text-decoration: none;
}

.scb-feature__title a:hover {
	text-decoration: underline;
	text-underline-offset: 4px;
}

.scb-feature .scb-meta {
	margin: 0;
}

.scb-feature__button {
	margin-top: 8px;
}

@media (max-width: 767px) {
	.scb-feature {
		grid-template-columns: minmax(0, 1fr);
	}

	.scb-feature__media {
		min-height: 0;
		aspect-ratio: 4 / 3;
	}
}

/* Diapositive de contenu */
.scb-carousel--content {
	--scb-slide-ratio: 3 / 2;
}

.scb-slide {
	display: flex;
	flex-direction: column;
	gap: 20px;
	height: 100%;
	border-radius: var(--scb-radius);
}

.scb-slide__media {
	aspect-ratio: var(--scb-slide-ratio);
	border-radius: var(--scb-radius);
	overflow: hidden;
	background: var(--scb-surface);
}

.scb-slide__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.scb-slide__body {
	display: flex;
	flex-direction: column;
	gap: 12px;
	max-width: 68ch;
}

.scb-slide__body > * {
	margin: 0;
}

.scb-slide__kicker {
	font-size: clamp(2.75rem, 2rem + 3vw, 4.5rem);
	font-weight: 700;
	line-height: 0.95;
	letter-spacing: -0.04em;
	font-variant-numeric: tabular-nums;
}

.scb-slide__title {
	font-size: 1.3em;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: -0.01em;
}

.scb-slide__text {
	line-height: 1.7;
	opacity: 0.85;
}

.scb-slide__text > :first-child {
	margin-top: 0;
}

.scb-slide__text > :last-child {
	margin-bottom: 0;
}

.scb-slide__link.scb-slide__link:is(a, button, input, select, span, div):not(#scb) {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	align-self: flex-start;
	margin-top: 4px;
	color: inherit;
	font-weight: 600;
	text-decoration: none;
}

.scb-slide__link.scb-slide__link:is(a, button, input, select, span, div):not(#scb):hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.scb-slide--split.has-image {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(24px, 4vw, 56px);
}

@media (max-width: 767px) {
	.scb-slide--split.has-image {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (prefers-reduced-motion: reduce) {
	.scb-carousel__viewport {
		scroll-behavior: auto;
	}

	.scb-carousel__dot.scb-carousel__dot:is(a, button, input, select, span, div):not(#scb) {
		transition: none;
	}
}

/* ---------------------------------------------------------------- Événements */

/* Étiquette de catégorie : couleur de la catégorie, sinon celle du texte */
.scb-tag {
	--scb-tag: currentColor;
	display: inline-flex;
	align-items: center;
	padding: 3px 9px;
	border: 1px solid var(--scb-tag);
	border-radius: 999px;
	color: var(--scb-tag);
	font-size: 0.72em;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

@supports (color: color-mix(in srgb, red 50%, blue)) {
	.scb-tag {
		border-color: color-mix(in srgb, var(--scb-tag) 45%, transparent);
		background: color-mix(in srgb, var(--scb-tag) 10%, transparent);
	}
}

.scb-tag--status {
	--scb-tag: #b45309;
}

.scb-tag--status.is-cancelled {
	--scb-tag: #c62828;
}

.scb-tag--status.is-full {
	--scb-tag: #6b21a8;
}

.scb-tag--status.is-confirmed {
	--scb-tag: #15803d;
}

.scb-tag--places {
	--scb-tag: #b45309;
}

/* Pavé de date sur les cartes */
.scb-datebadge {
	position: absolute;
	right: 12px;
	top: 12px;
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 52px;
	padding: 6px 8px 7px;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.9);
	color: #16181d;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	line-height: 1;
	pointer-events: none;
	text-align: center;
}

.scb-datebadge strong {
	font-size: 1.35em;
	font-weight: 700;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
}

.scb-datebadge span {
	margin-top: 3px;
	font-size: 0.7em;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.scb-datebadge.is-past {
	opacity: 0.75;
}

/* Agenda */
.scb-events {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.scb-agenda {
	margin: 0;
	padding: 0;
	list-style: none;
}

.scb-agenda__item {
	display: flex;
	align-items: flex-start;
	gap: 18px;
	margin: 0;
	padding: 18px 0;
	border-bottom: 1px solid var(--scb-line);
}

.scb-agenda__item:first-child {
	padding-top: 0;
}

.scb-agenda__item:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.scb-agenda__item[hidden] {
	display: none;
}

.scb-agenda__date {
	flex: none;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border: 1px solid var(--scb-line);
	border-radius: var(--scb-radius-sm);
	line-height: 1;
}

.scb-agenda__date strong {
	font-size: 1.5em;
	font-weight: 700;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
}

.scb-agenda__date span {
	margin-top: 5px;
	font-size: 0.68em;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	opacity: var(--scb-muted-opacity);
}

.scb-agenda__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	min-width: 0;
	padding-top: 2px;
}

.scb-agenda__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.scb-agenda__title.scb-agenda__title:is(a, button, input, select, span, div, p):not(#scb) {
	color: inherit;
	font-size: 1.05em;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
}

.scb-agenda__title.scb-agenda__title:is(a, button, input, select, span, div, p):not(#scb):hover,
.scb-agenda__title.scb-agenda__title:is(a, button, input, select, span, div, p):not(#scb):focus-visible {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.scb-agenda__sub {
	margin: 0;
	font-size: 0.88em;
	opacity: var(--scb-muted-opacity);
}

.scb-agenda__extra {
	margin: 0;
	font-size: 0.88em;
}

/* Titre non cliquable (paragraphe) : pas de marge du thème */
p.scb-agenda__title.scb-agenda__title:is(a, button, input, select, span, div, p):not(#scb) {
	margin: 0;
}

p.scb-agenda__title.scb-agenda__title:is(a, button, input, select, span, div, p):not(#scb):hover {
	text-decoration: none;
}

.scb-agenda__body {
	flex: 1 1 auto;
}

/* Bouton à droite de la ligne (sous le texte sur mobile) */
.scb-agenda__action {
	flex: none;
	align-self: center;
}

@media (max-width: 640px) {
	.scb-agenda__item:has(.scb-agenda__action) {
		flex-wrap: wrap;
	}

	/* Le texte reste à côté du pavé de date ; seul le bouton passe dessous */
	.scb-agenda__item:has(.scb-agenda__action) .scb-agenda__body {
		flex: 1 1 0;
	}

	.scb-agenda__action {
		width: 100%;
		padding-left: 82px;
	}
}

.scb-agenda__item.is-past .scb-agenda__date,
.scb-agenda__item.is-cancelled .scb-agenda__title.scb-agenda__title:is(a, button, input, select, span, div, p):not(#scb) {
	opacity: 0.55;
}

.scb-agenda__item.is-cancelled .scb-agenda__title.scb-agenda__title:is(a, button, input, select, span, div, p):not(#scb) {
	text-decoration: line-through;
}

.scb-events__month-title {
	margin: 12px 0 14px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--scb-line);
	font-size: 1em;
	font-weight: 600;
	letter-spacing: -0.01em;
}

.scb-events__month + .scb-events__month {
	margin-top: 16px;
}

.scb-events__empty {
	margin: 0;
	padding: 24px;
	border-radius: var(--scb-radius-sm);
	background: var(--scb-surface);
	text-align: center;
}

.scb-events__empty[hidden] {
	display: none;
}

.scb-events__more.scb-events__more:is(a, button, input, select, span, div):not(#scb) {
	align-self: flex-start;
	color: inherit;
	font-weight: 600;
	font-size: 0.92em;
	text-decoration: underline;
	text-underline-offset: 5px;
}

/* Filtre par catégorie */
.scb-catfilter {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 4px;
}

.scb-catfilter__item.scb-catfilter__item:is(a, button, input, select, span, div):not(#scb) {
	--scb-tag: currentColor;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 38px;
	padding: 0 16px;
	border: 1px solid var(--scb-line);
	border-radius: 999px;
	background: transparent;
	color: inherit;
	font: inherit;
	font-size: 0.88em;
	font-weight: 500;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

.scb-catfilter__item.scb-catfilter__item:is(a, button, input, select, span, div):not(#scb):hover {
	background: var(--scb-surface);
}

.scb-catfilter__item.scb-catfilter__item:is(a, button, input, select, span, div):not(#scb)[aria-pressed="true"] {
	border-color: var(--scb-ink);
	background: var(--scb-ink);
	color: var(--scb-ink-contrast);
}

.scb-catfilter__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--scb-tag);
}

.scb-catfilter__item.scb-catfilter__item:is(a, button, input, select, span, div):not(#scb):focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

/* Calendrier */
.scb-cal {
	--scb-cal-event: var(--scb-surface);
	--scb-cal-selected: var(--scb-ink);
	--scb-cal-selected-text: var(--scb-ink-contrast);
	--scb-cal-hover: var(--scb-line);
	--scb-cal-today: currentColor;
	--scb-cal-radius: 10px;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.scb-cal__box {
	position: relative;
	padding: clamp(16px, 3vw, 32px);
	border: 1px solid var(--scb-line);
	border-radius: calc(var(--scb-radius) + 4px);
}

.scb-cal__nav {
	position: absolute;
	top: clamp(16px, 3vw, 32px);
	left: clamp(16px, 3vw, 32px);
	right: clamp(16px, 3vw, 32px);
	display: flex;
	justify-content: space-between;
	align-items: center;
	pointer-events: none;
}

.scb-cal__nav > * {
	pointer-events: auto;
}

.scb-cal__arrow.scb-cal__arrow:is(a, button, input, select, span, div):not(#scb) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid var(--scb-line);
	border-radius: 50%;
	background: transparent;
	color: inherit;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.scb-cal__toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

.scb-cal__toolbar .scb-catfilter {
	margin: 0;
}

.scb-cal:not(.is-away) .scb-cal__toolbar:not(:has(.scb-catfilter)) {
	display: none;
}

.scb-cal__today.scb-cal__today:is(a, button, input, select, span, div):not(#scb) {
	margin-left: auto;
	display: none;
	min-height: 38px;
	padding: 0 16px;
	border: 1px solid var(--scb-line);
	border-radius: 999px;
	background: transparent;
	color: inherit;
	font: inherit;
	font-size: 0.88em;
	font-weight: 500;
	cursor: pointer;
}

.scb-cal.is-away .scb-cal__today.scb-cal__today:is(a, button, input, select, span, div):not(#scb) {
	display: inline-flex;
	align-items: center;
}

.scb-cal__arrow.scb-cal__arrow:is(a, button, input, select, span, div):not(#scb):hover,
.scb-cal__today.scb-cal__today:is(a, button, input, select, span, div):not(#scb):hover {
	background: var(--scb-surface);
}

.scb-cal__arrow.scb-cal__arrow:is(a, button, input, select, span, div):not(#scb):focus-visible,
.scb-cal__today.scb-cal__today:is(a, button, input, select, span, div):not(#scb):focus-visible,
.scb-cal__cell.scb-cal__cell:is(a, button, input, select, span, div):not(#scb):focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.scb-cal__months {
	display: grid;
	grid-template-columns: repeat(var(--scb-cal-count, 1), minmax(0, 1fr));
	gap: clamp(24px, 4vw, 56px);
}

.scb-cal__title {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.3em;
	min-height: 42px;
	margin: 0 0 18px;
	padding: 0 52px 16px;
	border-bottom: 1px solid var(--scb-line);
	font-size: 1.2em;
	font-weight: 700;
	line-height: 42px;
	letter-spacing: -0.01em;
}

.scb-cal__title span {
	font-weight: 400;
}

.scb-cal__weekdays,
.scb-cal__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 4px;
}

.scb-cal__weekdays {
	margin-bottom: 8px;
}

.scb-cal__weekdays span {
	font-size: 0.72em;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-align: center;
	opacity: var(--scb-muted-opacity);
}

.scb-cal__cell.scb-cal__cell:is(a, button, input, select, span, div):not(#scb) {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1;
	min-height: 36px;
	padding: 0;
	border: 0;
	border-radius: var(--scb-cal-radius);
	background: transparent;
	color: inherit;
	font: inherit;
	font-size: 0.95em;
	font-variant-numeric: tabular-nums;
	cursor: pointer;
	transition: background-color 0.12s ease;
}

.scb-cal__cell.scb-cal__cell:is(a, button, input, select, span, div):not(#scb):hover {
	background: var(--scb-cal-hover);
}

.scb-cal__cell.scb-cal__cell:is(a, button, input, select, span, div):not(#scb).is-empty {
	visibility: hidden;
}

.scb-cal__cell.scb-cal__cell:is(a, button, input, select, span, div):not(#scb).is-past {
	opacity: 0.45;
}

.scb-cal__cell.scb-cal__cell:is(a, button, input, select, span, div):not(#scb).has-events {
	background: var(--scb-cal-event);
	font-weight: 700;
	opacity: 1;
}

.scb-cal__cell.scb-cal__cell:is(a, button, input, select, span, div):not(#scb).has-events.is-past {
	opacity: 0.7;
}

.scb-cal__cell.scb-cal__cell:is(a, button, input, select, span, div):not(#scb).is-today {
	box-shadow: inset 0 0 0 2px var(--scb-cal-today);
}

.scb-cal__cell.scb-cal__cell:is(a, button, input, select, span, div):not(#scb)[aria-pressed="true"] {
	background: var(--scb-cal-selected);
	color: var(--scb-cal-selected-text);
	opacity: 1;
}

.scb-cal__dots {
	position: absolute;
	bottom: 14%;
	left: 50%;
	display: flex;
	gap: 3px;
	transform: translateX(-50%);
}

.scb-cal__dots i {
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--dot, currentColor);
}

.scb-cal__day {
	padding: 4px 4px 0;
}

.scb-cal__day-title {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 16px;
	font-size: 1.05em;
	font-weight: 600;
}

.scb-cal__day-title span {
	font-size: 0.85em;
	font-weight: 400;
	opacity: var(--scb-muted-opacity);
}

.scb-cal__day .scb-events__empty {
	text-align: left;
}

@media (max-width: 480px) {
	.scb-cal__title {
		padding: 0 48px 12px;
		font-size: 1.05em;
	}

	.scb-cal__weekdays,
	.scb-cal__grid {
		gap: 2px;
	}

	.scb-cal__cell.scb-cal__cell:is(a, button, input, select, span, div):not(#scb) {
		font-size: 0.85em;
	}

	.scb-agenda__date {
		width: 54px;
		height: 54px;
	}
}

/* Onglets À venir / Passés */
.scb-when {
	display: inline-flex;
	align-self: flex-start;
	gap: 4px;
	padding: 4px;
	border-radius: 999px;
	background: var(--scb-surface);
}

.scb-when__tab.scb-when__tab:is(a, button, input, select, span, div):not(#scb) {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 38px;
	padding: 0 18px;
	border-radius: 999px;
	color: inherit;
	font-size: 0.92em;
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.15s ease;
}

.scb-when__tab.scb-when__tab:is(a, button, input, select, span, div):not(#scb) span {
	font-size: 0.85em;
	font-weight: 500;
	opacity: var(--scb-muted-opacity);
	font-variant-numeric: tabular-nums;
}

.scb-when__tab.scb-when__tab:is(a, button, input, select, span, div):not(#scb).is-current {
	background: var(--scb-ink);
	color: var(--scb-ink-contrast);
}

.scb-when__tab.scb-when__tab:is(a, button, input, select, span, div):not(#scb).is-current span {
	opacity: 0.75;
}

/* Fiche événement */
.scb-event {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.scb-event__notice {
	margin: 0;
	padding: 10px 14px;
	border-radius: var(--scb-radius-sm);
	background: var(--scb-surface);
	font-size: 0.9em;
	font-weight: 600;
}

.scb-event__notice.is-cancelled {
	background: rgba(198, 40, 40, 0.1);
	color: #b71c1c;
}

.scb-event__notice.is-full,
.scb-event__notice.is-postponed {
	background: rgba(180, 83, 9, 0.1);
	color: #92400e;
}

.scb-event__rows {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin: 0;
}

.scb-event__row {
	display: flex;
	align-items: flex-start;
	gap: 14px;
}

.scb-event__icon {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: var(--scb-radius-sm);
	background: var(--scb-surface);
}

.scb-event dt {
	margin: 0 0 2px;
	font-size: 0.78em;
	opacity: var(--scb-muted-opacity);
}

.scb-event dd {
	margin: 0;
	font-weight: 600;
	line-height: 1.4;
}

.scb-event dd a {
	color: inherit;
	font-weight: 400;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.scb-event__actions {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.scb-event__register {
	width: 100%;
}

.scb-event__add {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	font-size: 0.85em;
}

.scb-event__add span {
	width: 100%;
	opacity: var(--scb-muted-opacity);
}

.scb-event__add a {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 0 14px;
	border: 1px solid var(--scb-line);
	border-radius: 999px;
	color: inherit;
	font-weight: 500;
	text-decoration: none;
	transition: background-color 0.15s ease;
}

.scb-event__add a:hover {
	background: var(--scb-surface);
}

.scb-description__title {
	margin: 0 0 12px;
}

/* Option « Disposition en largeur » : infos à gauche, boutons à droite quand le bloc a la place. */
.scb-event-wide {
	container: scb-event / inline-size;
}

/* Sans largeur explicite, la hauteur du widget est calculée comme si le contenu était très étroit. */
.elementor-widget-scb-event:has(.scb-event-wide) {
	width: 100%;
}

@container scb-event (min-width: 620px) {
	.scb-event:has(.scb-event__actions) {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(250px, 320px);
		grid-template-rows: 1fr auto auto 1fr;
		gap: 0 48px;
	}

	.scb-event__notice {
		grid-column: 1;
		grid-row: 2;
		justify-self: start;
		margin-bottom: 20px;
	}

	.scb-event__rows {
		grid-column: 1;
		grid-row: 3;
		flex-direction: row;
		flex-wrap: wrap;
		gap: 16px 40px;
	}

	.scb-event__row {
		flex: 1 1 220px;
	}

	.scb-event__actions {
		grid-column: 2;
		grid-row: 1 / -1;
		align-self: center;
	}
}

.scb-fallback__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 14px;
}

.scb-fallback__when {
	margin: 12px 0 0;
	font-size: 1.1em;
	opacity: 0.8;
}

/* ---------------------------------------------------------------- Éditeur Elementor */

.scb-placeholder {
	padding: 14px 16px;
	border: 1px dashed #93003c;
	border-radius: 10px;
	background: rgba(147, 0, 60, 0.04);
	color: #5c1a33;
	font-size: 13px;
	line-height: 1.5;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* ================================================================ Corrections 1.5.4 */

/* Carrousel du shortcode : nombre de cartes adapté à l'écran (Elementor le règle déjà par appareil). */
.scb-carousel--fixed { --scb-visible: var(--scb-visible-d, 3); }
@media (max-width: 1024px) { .scb-carousel--fixed { --scb-visible: min(var(--scb-visible-d, 3), 2); } }
@media (max-width: 767px) { .scb-carousel--fixed { --scb-visible: 1; } }

/*
 * Images au format fixe : elles remplissent toujours leur cadre, quel que soit le thème
 * (certains thèmes limitent la largeur de toutes les images), et la hauteur du cadre est
 * calculée d'une façon que tous les Safari (iPhone) comptent correctement.
 */
.scb-card__media,
.scb-slide__media {
	aspect-ratio: auto;
	height: 0;
	padding-top: calc(100% / (var(--scb-card-ratio, 4 / 3)));
}
.scb-slide__media { padding-top: calc(100% / (var(--scb-slide-ratio, 3 / 2))); }
.scb-card__media > a,
.scb-card__media > img,
.scb-card__media > .scb-card__noimage,
.scb-slide__media > a,
.scb-slide__media > img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}
.scb-card__media img,
.scb-slide__media img,
.scb-feature__media img,
.scb-gallery__stage.scb-gallery__stage:is(a, button, input, select, span, div):not(#scb) img,
.scb-gallery__thumb.scb-gallery__thumb:is(a, button, input, select, span, div):not(#scb) img {
	/* !important : WordPress ajoute parfois un style en ligne (max-width) aux petites images. */
	max-width: none !important;
	max-height: none !important;
	width: 100% !important;
	height: 100% !important;
}

/* Fiche : caractéristiques lisibles sur mobile (plus de mots coupés au milieu) */
.scb-specs dd { overflow-wrap: break-word; hyphens: auto; }
/* Certains thèmes décalent toutes les valeurs de liste (dd) vers la droite. */
.scb-specs dt,
.scb-specs dd { padding: 0; }
@media (max-width: 480px) {
	.scb-specs--grid .scb-specs__list { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 6px; }
	.scb-specs--grid .scb-specs__item { padding: 11px 12px; }
	.scb-specs--grid dd { font-size: 0.95em; }
}

/* « Vous pourriez aussi aimer » : le lien passe sous le titre au lieu de l'écraser */
.scb-related__head { flex-wrap: wrap; row-gap: 8px; }
.scb-related__head .scb-section-title { flex: 1 1 260px; }

/* Galerie et calendrier : blocs (et non boutons) — Safari ignore aspect-ratio sur les boutons. */
.scb-gallery__thumb[role="button"], .scb-cal__cell[role="button"] { -webkit-user-select: none; user-select: none; }
.scb-gallery__stage[role="button"]:focus-visible, .scb-gallery__thumb[role="button"]:focus-visible, .scb-cal__cell[role="button"]:focus-visible { outline: 2px solid var(--scb-accent, currentColor); outline-offset: 2px; }

/* ================================================================ Portfolio / présentation */

/* Onglets de catégories (« Tous », puis une catégorie par onglet) */
.scb-tabs { margin: 0 0 22px; }
.scb-tabs__track { display: flex; flex-wrap: wrap; gap: 8px; }
.scb-tabs__tab { display: inline-flex; align-items: center; min-height: 38px; padding: 0 16px; border: 1px solid var(--scb-line); border-radius: 999px; color: inherit; font-size: 15px; font-weight: 500; line-height: 1.2; text-decoration: none; white-space: nowrap; transition: background-color .2s, border-color .2s, color .2s; }
.scb-tabs__tab:hover { border-color: currentColor; }
.scb-tabs__tab.is-current { background: var(--scb-ink); border-color: var(--scb-ink); color: var(--scb-ink-contrast); }
.scb-tabs__tab:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
@media (max-width: 640px) {
	/* Mobile : une ligne qui défile, sans retour à la ligne. */
	.scb-tabs { margin-left: calc(-1 * var(--scb-tabs-bleed, 0px)); margin-right: calc(-1 * var(--scb-tabs-bleed, 0px)); }
	.scb-tabs__track { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; padding-bottom: 2px; }
	.scb-tabs__track::-webkit-scrollbar { display: none; }
	.scb-tabs__tab { flex: none; }
}

/* Bouton des cartes */
.scb-card__more { align-self: flex-start; margin-top: 12px; }

/* Tuiles : titre et infos sur la photo */
.scb-card--overlay { position: relative; overflow: hidden; border-radius: var(--scb-radius); }
.scb-card--overlay .scb-card__media { border-radius: 0; }
.scb-card--overlay .scb-card__media img { transition: transform .5s ease; }
.scb-card--overlay:hover .scb-card__media img { transform: scale(1.05); }
.scb-card--overlay .scb-card__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 48px 20px 18px; background: linear-gradient(to top, rgba(10, 12, 16, .82), rgba(10, 12, 16, .45) 55%, transparent); color: #fff; pointer-events: none; }
.scb-card--overlay .scb-card__body a, .scb-card--overlay .scb-card__more { pointer-events: auto; }
.scb-card--overlay .scb-card__title, .scb-card--overlay .scb-card__title a { color: #fff; }
.scb-card--overlay .scb-card__body .scb-meta { background: transparent; border: 0; box-shadow: none; padding: 0; color: #fff; }
.scb-card--overlay .scb-card__body .scb-meta__item, .scb-card--overlay .scb-card__body .scb-chip { color: rgba(255, 255, 255, .92); border-color: rgba(255, 255, 255, .35); background: rgba(255, 255, 255, .12); }
.scb-card--overlay .scb-card__more.scb-button { background: #fff; border-color: #fff; color: #16181d; }
@media (hover: hover) and (min-width: 768px) {
	/* Ordinateur : le bouton apparaît au survol, le titre reste visible. */
	.scb-card--overlay .scb-card__more { opacity: 0; transform: translateY(6px); transition: opacity .25s, transform .25s; }
	.scb-card--overlay:hover .scb-card__more, .scb-card--overlay:focus-within .scb-card__more { opacity: 1; transform: none; }
}

/* Mosaïque : photos entières, hauteurs différentes, en colonnes */
.scb-cards--masonry { display: block; column-count: var(--scb-cols, 3); column-gap: var(--scb-gap); }
.scb-cards--masonry > .scb-card { display: block; margin: 0 0 var(--scb-gap); break-inside: avoid; -webkit-column-break-inside: avoid; }
.scb-card--masonry .scb-card__media { height: auto !important; padding-top: 0 !important; aspect-ratio: auto !important; }
.scb-card--masonry .scb-card__media > a { position: static !important; display: block; height: auto !important; }
.scb-card--masonry .scb-card__media img { position: static !important; display: block; width: 100% !important; height: auto !important; }
@media (max-width: 1024px) { .scb-cards--masonry { column-count: min(var(--scb-cols, 3), 2); } }
@media (max-width: 600px) { .scb-cards--masonry { column-count: 1; } }

/* Fiche : appel à l'action et « Précédent / Suivant » */
.scb-buttons .scb-cta { width: 100%; justify-content: center; }
.scb-adjacent { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 40px 0 0; padding: 24px 0 0; border-top: 1px solid var(--scb-line); }
.scb-adjacent__item { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 10px; border-radius: var(--scb-radius-sm); color: inherit; text-decoration: none; transition: background-color .2s; }
.scb-adjacent__item:hover { background: var(--scb-surface); }
.scb-adjacent__item.is-next { flex-direction: row-reverse; text-align: right; }
.scb-adjacent__item img { flex: none; width: 64px; height: 64px; border-radius: var(--scb-radius-sm); object-fit: cover; }
.scb-adjacent__item span { display: block; min-width: 0; }
.scb-adjacent__item small { display: block; opacity: var(--scb-muted-opacity); font-size: 13px; }
.scb-adjacent__item strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 15px; }
@media (max-width: 600px) {
	.scb-adjacent__item img { width: 48px; height: 48px; }
	.scb-adjacent__item strong { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
}
@media (prefers-reduced-motion: reduce) { .scb-card--overlay .scb-card__media img, .scb-card--overlay .scb-card__more { transition: none; } }
.scb-card .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
/* Tuiles : contenu compact sur la photo (titre 2 lignes max, bouton discret sur une ligne). */
.scb-card--overlay .scb-card__body { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 40px 18px 16px; }
.scb-card--overlay .scb-card__body > * { margin: 0; }
.scb-card--overlay .scb-card__title { font-size: clamp(16px, 1.4vw, 19px); line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.scb-card--overlay .scb-card__body .scb-chip, .scb-card--overlay .scb-card__body .scb-meta__item { font-size: 12.5px; }
.scb-card--overlay .scb-card__more.scb-card__more.scb-card__more:is(a, button, input, select, span, div):not(#scb) { display: inline-flex; align-items: center; min-height: 0; height: auto; padding: 8px 14px; margin: 2px 0 0; border-radius: 999px; font-size: 13.5px; font-weight: 600; line-height: 1.2; white-space: nowrap; background: #fff; border-color: #fff; color: #16181d; }
@media (hover: hover) and (min-width: 768px) {
	/* Ordinateur : le bouton n'occupe pas de place tant qu'il est masqué. */
	.scb-card--overlay .scb-card__more.scb-card__more.scb-card__more:is(a, button, input, select, span, div):not(#scb) { position: absolute; right: 16px; bottom: 16px; margin: 0; }
	.scb-card--overlay .scb-card__body { padding-right: 18px; }
	.scb-card--overlay:hover .scb-card__body, .scb-card--overlay:focus-within .scb-card__body { padding-bottom: 56px; }
	.scb-card--overlay .scb-card__body { transition: padding-bottom .25s ease; }
}
/* Tuiles : format carré par défaut (réglable avec --scb-card-ratio) et adaptation à la largeur réelle de chaque tuile. */
.scb-cards--overlay { --scb-card-ratio: 1 / 1; }
.scb-card--overlay { container-type: inline-size; }
@container (max-width: 260px) {
	.scb-card--overlay .scb-card__body { padding: 28px 12px 12px; gap: 6px; }
	.scb-card--overlay .scb-card__body .scb-meta, .scb-card--overlay .scb-card__body .scb-chips { display: none; }
	.scb-card--overlay .scb-card__title { font-size: 15px; }
	.scb-card--overlay .scb-card__more.scb-card__more.scb-card__more:is(a, button, input, select, span, div):not(#scb) { right: 12px; bottom: 12px; padding: 7px 12px; font-size: 12.5px; }
}
/* « Précédent / Suivant » : miniature à taille fixe, quelles que soient les règles d'image de la fiche ou du thème. */
.scb-adjacent .scb-adjacent__item:not(#scb) > img { flex: 0 0 64px !important; width: 64px !important; height: 64px !important; max-width: none !important; margin: 0 !important; object-fit: cover; aspect-ratio: auto !important; }
.scb-adjacent .scb-adjacent__item:not(#scb) > span { flex: 1 1 auto; min-width: 0; }
@media (max-width: 600px) {
	.scb-adjacent .scb-adjacent__item:not(#scb) > img { flex-basis: 44px !important; width: 44px !important; height: 44px !important; }
	.scb-adjacent { gap: 8px; }
	.scb-adjacent__item { padding: 6px; gap: 8px; }
}

/* ================================================================ Avant / après, vidéo, témoignage */
.scb-ba-block, .scb-video-block, .scb-quote-block { margin: 32px 0 0; }

/* Avant / après : hauteur par une marge en pourcentage (fiable partout, y compris Safari) */
.scb-ba { position: relative; overflow: hidden; border-radius: var(--scb-radius); background: var(--scb-surface); touch-action: pan-y; user-select: none; -webkit-user-select: none; cursor: ew-resize; }
.scb-ba::before { content: ""; display: block; padding-top: calc(100% / var(--scb-ba-ratio, 1.3333)); }
.scb-ba .scb-ba__img { position: absolute; inset: 0; }
.scb-ba .scb-ba__img img { display: block; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; pointer-events: none; }
.scb-ba .scb-ba__img--before { clip-path: inset(0 calc(100% - var(--scb-ba-pos, 50%)) 0 0); }
.scb-ba__handle { position: absolute; top: 0; bottom: 0; left: var(--scb-ba-pos, 50%); width: 3px; margin-left: -1.5px; background: #fff; box-shadow: 0 0 0 1px rgba(0, 0, 0, .12); pointer-events: none; }
.scb-ba__handle span { position: absolute; top: 50%; left: 50%; width: 44px; height: 44px; margin: -22px 0 0 -22px; border-radius: 50%; background: #fff; box-shadow: 0 4px 14px rgba(0, 0, 0, .25); }
.scb-ba__handle span::before, .scb-ba__handle span::after { content: ""; position: absolute; top: 50%; width: 9px; height: 9px; margin-top: -4.5px; border-left: 2px solid #16181d; border-bottom: 2px solid #16181d; }
.scb-ba__handle span::before { left: 11px; transform: rotate(45deg); }
.scb-ba__handle span::after { right: 11px; transform: rotate(-135deg); }
.scb-ba__tag { position: absolute; top: 14px; z-index: 2; padding: 5px 11px; border-radius: 999px; background: rgba(10, 12, 16, .62); color: #fff; font-size: 13px; font-weight: 600; letter-spacing: .02em; pointer-events: none; }
.scb-ba__tag.is-before { left: 14px; }
.scb-ba__tag.is-after { right: 14px; }
.scb-ba .scb-ba__range { position: absolute; inset: 0; z-index: 3; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; -webkit-appearance: none; appearance: none; background: transparent; }
.scb-ba:has(.scb-ba__range:focus-visible) .scb-ba__handle span { outline: 3px solid var(--scb-ink); outline-offset: 2px; }

/* Plusieurs avant / après : côte à côte (3 max. sur ordinateur, 2 sur tablette, 1 sur mobile) */
.scb-ba-grid { --scb-ba-cols: min(var(--scb-ba-n, 2), 3); display: grid; grid-template-columns: repeat(var(--scb-ba-cols), minmax(0, 1fr)); gap: var(--scb-ba-gap, 20px); }
.scb-ba-grid > .scb-ba { min-width: 0; }
.scb-ba-grid .scb-ba__tag { top: 10px; padding: 4px 9px; font-size: 12px; }
.scb-ba-grid .scb-ba__tag.is-before { left: 10px; }
.scb-ba-grid .scb-ba__tag.is-after { right: 10px; }
@media (max-width: 1024px) { .scb-ba-grid { --scb-ba-cols: min(var(--scb-ba-n, 2), 2); } }
@media (max-width: 600px) { .scb-ba-grid { --scb-ba-cols: 1; gap: var(--scb-ba-gap-m, 14px); } }

/* Vidéo : format 16:9 par une marge en pourcentage */
.scb-video { position: relative; overflow: hidden; border-radius: var(--scb-radius); background: #000; }
.scb-video::before { content: ""; display: block; padding-top: 56.25%; }
.scb-video > iframe, .scb-video > video, .scb-video__facade { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.scb-video__facade { cursor: pointer; }
.scb-video__facade img { display: block; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; }
.scb-video__play.scb-video__play:is(a, button, input, select, span, div):not(#scb) { position: absolute; top: 50%; left: 50%; width: 68px; height: 48px; margin: -24px 0 0 -34px; padding: 0; border: 0; background: transparent; cursor: pointer; filter: drop-shadow(0 4px 10px rgba(0, 0, 0, .35)); transition: transform .2s; }
.scb-video__facade:hover .scb-video__play { transform: scale(1.08); }
.scb-video__play:focus-visible { outline: 3px solid #fff; outline-offset: 4px; border-radius: 12px; }

/* Témoignage */
.scb-quote { margin: 0; padding: 26px 26px 22px; border-radius: var(--scb-radius); background: var(--scb-surface); position: relative; }
.scb-quote::before { content: "“"; position: absolute; top: -6px; right: 20px; font-size: 96px; line-height: 1; font-family: Georgia, serif; opacity: .12; }
.scb-quote__stars { display: flex; gap: 3px; margin: 0 0 12px; }
.scb-quote__stars svg { fill: color-mix(in srgb, currentColor 18%, transparent); }
.scb-quote__stars svg.is-on { fill: #F5A524; }
.scb-quote blockquote { margin: 0; padding: 0; border: 0; font-size: 1.08em; line-height: 1.6; font-style: normal; quotes: none; }
.scb-quote blockquote::before, .scb-quote blockquote::after { content: none; }
.scb-quote blockquote p { margin: 0; }
.scb-quote figcaption { margin-top: 12px; font-weight: 600; opacity: .85; }
@media (prefers-reduced-motion: reduce) { .scb-video__play { transition: none; } }

/* Glisser : géré par le script sur toute l'image ; le curseur natif ne sert qu'au clavier et aux lecteurs d'écran. */
.scb-ba .scb-ba__range { pointer-events: none; }

/* Pleine largeur : neutralise le cadre en boîte de la plupart des thèmes autour des fiches et listes. */
body.scb-full-width .site-content > .ast-container,
body.scb-full-width #primary.content-area,
body.scb-full-width .site-main.ast-container,
body.scb-full-width .content-container.site-container,
body.scb-full-width .site-content .content-area .site-main { max-width: none; width: 100%; padding-left: 0; padding-right: 0; margin-left: 0; margin-right: 0; }
body.scb-full-width .ast-article-single, body.scb-full-width .inside-article, body.scb-full-width .entry-content-wrap { padding: 0; background: transparent; box-shadow: none; border: 0; }
body.scb-full-width #secondary, body.scb-full-width .widget-area.sidebar-primary { display: none; }

/* ================================================================ Formations
   Grille (recherche + filtre instantanés) et fiche formation. Couleurs, arrondis et largeur
   se règlent par variables --scb-tr-* (widgets Elementor ou CSS personnalisé). */

.scb-tr,
.scb-trs,
.scb-dg {
	--scb-tr-primary: #2563eb;
	--scb-tr-primary-hover: #1d4ed8;
	--scb-tr-accent: #14b8a6;
	--scb-tr-dark: #0b1526;
	--scb-tr-on-dark: #fff;
	--scb-tr-on-dark-muted: rgba(255, 255, 255, 0.66);
	--scb-tr-ink: #172033;
	--scb-tr-title: #0f172a;
	--scb-tr-muted: #64748b;
	--scb-tr-line: #e2e8f0;
	--scb-tr-canvas: #f6f8fb;
	--scb-tr-card: #fff;
	--scb-tr-badge-bg: #eef2f7;
	--scb-tr-badge-ink: #172033;
	--scb-tr-radius: 12px;
	--scb-tr-btn-radius: 10px;
	--scb-tr-shell: 1280px;
	--scb-tr-gap: 20px;
	--scb-tr-cols: 3;
	--scb-tr-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	width: 100%;
	min-width: 0;
	color: var(--scb-tr-ink);
}

.scb-dg *,
.scb-dg *::before,
.scb-dg *::after,
.scb-tr *,
.scb-trs *,
.scb-tr *::before,
.scb-trs *::before,
.scb-tr *::after,
.scb-trs *::after {
	box-sizing: border-box;
}

.scb-tr .screen-reader-text,
.scb-trs .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.scb-tr-eyebrow {
	display: block;
	margin: 0;
	font-family: var(--scb-tr-mono);
	font-size: 0.7rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--scb-tr-primary);
}

.scb-tr-badge {
	display: inline-flex;
	align-items: center;
	padding: 4px 12px;
	border-radius: 999px;
	background: var(--scb-tr-badge-bg);
	color: var(--scb-tr-badge-ink);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
	white-space: nowrap;
}

/* ---------------------------------------------------------------- Grille */

.scb-tr__hero {
	padding: 80px 0;
	background: var(--scb-tr-dark);
	color: var(--scb-tr-on-dark);
}

.scb-tr__hero-inner,
.scb-tr.has-hero .scb-tr__body {
	max-width: var(--scb-tr-shell);
	margin: 0 auto;
	padding: 0 20px;
}

.scb-tr.has-hero .scb-tr__body {
	padding-top: 56px;
	padding-bottom: 80px;
}

.scb-tr .scb-tr__hero-eyebrow {
	color: var(--scb-tr-accent);
}

.scb-tr__hero-title {
	max-width: 48rem;
	margin: 20px 0 0;
	color: inherit;
	font-size: clamp(2.25rem, 1.5rem + 2.6vw, 3.75rem);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.02em;
}

.scb-tr__hero-text {
	max-width: 40rem;
	margin: 24px 0 0;
	color: var(--scb-tr-on-dark-muted);
	font-size: 1.125rem;
	line-height: 1.75;
}

.scb-tr__bar {
	display: flex;
	gap: 16px;
	padding: 16px;
	border: 1px solid var(--scb-tr-line);
	border-radius: var(--scb-tr-radius);
	background: var(--scb-tr-canvas);
}

.scb-tr__search,
.scb-tr__filter {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 48px;
	margin: 0;
	padding: 0 16px;
	border: 1px solid var(--scb-tr-line);
	border-radius: var(--scb-tr-btn-radius);
	background: #fff;
	color: var(--scb-tr-muted);
	cursor: text;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.scb-tr__search {
	flex: 1 1 auto;
	min-width: 0;
}

.scb-tr__filter {
	flex: 0 0 auto;
	width: 25rem;
	max-width: 40%;
	cursor: pointer;
}

.scb-tr__search > svg,
.scb-tr__filter > svg {
	flex: none;
}

.scb-tr__filter > svg:last-child {
	position: absolute;
	right: 16px;
	pointer-events: none;
	color: var(--scb-tr-ink);
}

.scb-tr__search:focus-within,
.scb-tr__filter:focus-within {
	border-color: var(--scb-tr-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--scb-tr-primary) 18%, transparent);
}

.scb-tr .scb-tr__search input,
.scb-tr .scb-tr__filter select {
	flex: 1 1 auto;
	width: 100%;
	min-width: 0;
	height: auto;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	outline: none;
	color: var(--scb-tr-ink);
	font: inherit;
	font-size: 15px;
	line-height: 1.4;
	-webkit-appearance: none;
	appearance: none;
}

.scb-tr .scb-tr__filter select {
	padding-right: 28px;
	cursor: pointer;
	text-overflow: ellipsis;
}

.scb-tr .scb-tr__search input::placeholder {
	color: var(--scb-tr-muted);
	opacity: 1;
}

.scb-tr .scb-tr__search input::-webkit-search-cancel-button {
	cursor: pointer;
}

.scb-tr__pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 16px;
}

.scb-tr__bar + .scb-tr__pills {
	margin-top: 16px;
}

.scb-tr__body > .scb-tr__pills:first-child {
	margin-top: 0;
}

.scb-tr .scb-tr__pill.scb-tr__pill:is(button):not(#scb) {
	display: inline-block;
	margin: 0;
	padding: 8px 16px;
	border: 1px solid var(--scb-tr-line);
	border-radius: 999px;
	background: #fff;
	color: var(--scb-tr-ink);
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	text-transform: none;
	letter-spacing: normal;
	box-shadow: none;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.scb-tr .scb-tr__pill.scb-tr__pill:is(button):not(#scb):hover {
	border-color: var(--scb-tr-primary);
	color: var(--scb-tr-primary);
}

.scb-tr .scb-tr__pill.scb-tr__pill:is(button):not(#scb)[aria-pressed="true"] {
	border-color: var(--scb-tr-primary);
	background: var(--scb-tr-primary);
	color: #fff;
}

.scb-tr .scb-tr__pill.scb-tr__pill:is(button):not(#scb):focus-visible {
	outline: 2px solid var(--scb-tr-primary);
	outline-offset: 2px;
}

.scb-tr__count {
	margin: 28px 0 0;
	color: var(--scb-tr-muted);
	font-size: 14px;
	line-height: 1.4;
}

.scb-tr__grid {
	display: grid;
	grid-template-columns: repeat(var(--scb-tr-cols), minmax(0, 1fr));
	gap: var(--scb-tr-gap);
	margin-top: 24px;
}

/* Ni recherche, ni filtre, ni compteur : la grille commence en haut du widget */
.scb-tr__body.is-bare > .scb-tr__grid {
	margin-top: 0;
}

.scb-tr__empty {
	margin: 24px 0 0;
	padding: 32px 20px;
	border: 1px dashed var(--scb-tr-line);
	border-radius: var(--scb-tr-radius);
	color: var(--scb-tr-muted);
	text-align: center;
}

.scb-tr__empty[hidden],
.scb-tr-card[hidden] {
	display: none;
}

.scb-tr-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	min-height: 320px;
	padding: 24px;
	border: 1px solid var(--scb-tr-line);
	border-radius: var(--scb-tr-radius);
	background: var(--scb-tr-card);
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 12px 32px -18px rgba(15, 23, 42, 0.18);
	transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.scb-tr-card:hover {
	transform: translateY(-4px);
	border-color: color-mix(in srgb, var(--scb-tr-primary) 35%, var(--scb-tr-line));
}

.scb-tr-card:focus-within {
	border-color: var(--scb-tr-primary);
}

.scb-tr-card__top {
	min-height: 26px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 32px;
}

.scb-tr-card__title {
	margin: 0;
	color: var(--scb-tr-title);
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: -0.01em;
}

.scb-tr-card__text {
	flex: 1 1 auto;
	margin: 16px 0 0;
	color: var(--scb-tr-muted);
	font-size: 14px;
	line-height: 1.7;
}

.scb-tr-card__spacer {
	flex: 1 1 auto;
}

/* Cartes avec infos supplémentaires : l'accroche ne s'étire plus, les infos la suivent directement
   et l'espace libre éventuel se place sous elles, au-dessus de la ligne durée / prix. */
.scb-tr-card.has-extra .scb-tr-card__text {
	flex: 0 0 auto;
}

.scb-tr-card.has-extra .scb-tr-card__extra {
	flex: 1 1 auto;
	align-content: start;
}

/* Accroche et infos limitées à un nombre de lignes (réglages du widget) */
.scb-tr-card.is-text-clamped .scb-tr-card__text,
.scb-tr-card.is-extra-clamped .scb-tr-card__extra-value {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.scb-tr-card.is-text-clamped .scb-tr-card__text {
	-webkit-line-clamp: var(--scb-tr-text-lines);
	line-clamp: var(--scb-tr-text-lines);
}

.scb-tr-card.is-extra-clamped .scb-tr-card__extra-value {
	-webkit-line-clamp: var(--scb-tr-extra-lines);
	line-clamp: var(--scb-tr-extra-lines);
}

/* Infos supplémentaires d'une carte (Pour qui, Livrable, Prochaine session…) */
.scb-tr-card__extra {
	display: grid;
	gap: 10px;
	margin: 18px 0 0;
	padding: 0;
	list-style: none;
}

.scb-tr-card__extra li {
	display: grid;
	gap: 2px;
	margin: 0;
}

.scb-tr-card__extra-label {
	color: var(--scb-tr-primary);
	font-family: var(--scb-tr-mono);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 1.4;
	text-transform: uppercase;
}

.scb-tr-card__extra-value {
	color: var(--scb-tr-ink);
	font-size: 14px;
	line-height: 1.5;
}

.scb-tr-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 16px;
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--scb-tr-line);
	color: var(--scb-tr-muted);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;
}

.scb-tr-card__price {
	margin-left: auto;
	color: var(--scb-tr-ink);
	font-weight: 600;
}

.scb-tr .scb-tr-card__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 20px;
	color: var(--scb-tr-ink);
	font-weight: 600;
	line-height: 1.5;
	text-decoration: none;
	transition: color 0.2s ease;
}

.scb-tr-card__meta + .scb-tr-card__link {
	margin-top: 20px;
}

.scb-tr .scb-tr-card__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
}

.scb-tr .scb-tr-card:hover .scb-tr-card__link,
.scb-tr .scb-tr-card__link:focus-visible {
	color: var(--scb-tr-primary);
}

.scb-tr .scb-tr-card__link:focus-visible {
	outline: none;
}

.scb-tr .scb-tr-card__link:focus-visible::after {
	outline: 2px solid var(--scb-tr-primary);
	outline-offset: 3px;
}

.scb-tr-card__link svg {
	flex: none;
	transition: transform 0.2s ease;
}

.scb-tr-card:hover .scb-tr-card__link svg {
	transform: translate(2px, -2px);
}

@media (max-width: 1024px) {
	.scb-tr {
		--scb-tr-cols: 2;
	}
}

@media (max-width: 767px) {
	.scb-tr {
		--scb-tr-cols: 1;
	}
	.scb-tr__hero {
		padding: 56px 0;
	}
	.scb-tr__bar {
		flex-direction: column;
		gap: 12px;
		padding: 12px;
	}
	.scb-tr__filter {
		width: auto;
		max-width: none;
	}
	.scb-tr-card {
		min-height: 0;
	}
	.scb-tr-card__top {
		margin-bottom: 20px;
	}
	.scb-tr-card__title {
		font-size: 1.3rem;
	}
}

/* ---------------------------------------------------------------- Fiche formation */

.scb-trs__shell {
	max-width: var(--scb-tr-shell);
	margin: 0 auto;
	padding: 0 20px;
}

.scb-trs__hero {
	padding: 80px 0;
	background: var(--scb-tr-dark);
	color: var(--scb-tr-on-dark);
}

.scb-trs__hero-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--scb-tr-card-w, 24rem);
	gap: 48px;
	align-items: start;
}

.scb-trs__crumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 8px;
	color: var(--scb-tr-on-dark-muted);
	font-size: 14px;
	line-height: 1.4;
}

.scb-trs .scb-trs__crumbs a {
	color: inherit;
	text-decoration: none;
}

.scb-trs .scb-trs__crumbs a:hover,
.scb-trs .scb-trs__crumbs a:focus-visible {
	color: var(--scb-tr-on-dark);
	text-decoration: underline;
}

.scb-trs__crumbs svg {
	flex: none;
	opacity: 0.7;
}

.scb-trs .scb-trs__eyebrow {
	margin-top: 32px;
	color: var(--scb-tr-accent);
}

.scb-trs__crumbs + .scb-trs__title,
.scb-trs__intro > .scb-trs__title:first-child {
	margin-top: 24px;
}

.scb-trs__intro > .scb-trs__title:first-child {
	margin-top: 0;
}

.scb-trs__title {
	margin: 20px 0 0;
	color: inherit;
	font-size: clamp(2.25rem, 1.5rem + 2.6vw, 3.75rem);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.02em;
	overflow-wrap: break-word;
}

.scb-trs__lead {
	max-width: 42rem;
	margin: 24px 0 0;
	color: var(--scb-tr-on-dark-muted);
	font-size: 1.125rem;
	line-height: 1.75;
}

.scb-trs__facts {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 20px;
	margin: 32px 0 0;
	padding: 0;
	list-style: none;
	color: var(--scb-tr-on-dark);
	font-size: 14px;
	line-height: 1.4;
}

.scb-trs__facts li {
	margin: 0;
	padding: 0;
}

.scb-trs__facts li:not(.scb-tr-badge) + li:not(.scb-tr-badge)::before {
	content: "";
	display: inline-block;
	width: 4px;
	height: 4px;
	margin: 0 12px 2px -8px;
	border-radius: 50%;
	background: currentColor;
	opacity: 0.45;
	vertical-align: middle;
}

.scb-trs__facts .scb-tr-badge {
	background: rgba(255, 255, 255, 0.12);
	color: var(--scb-tr-on-dark);
}

.scb-trs__card {
	padding: 24px;
	border-radius: var(--scb-tr-radius);
	background: var(--scb-tr-card);
	color: var(--scb-tr-ink);
}

.scb-trs__request {
	margin: 20px 0 0;
	color: var(--scb-tr-title);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.5;
}

.scb-trs__price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 10px;
	margin: 16px 0 0;
	color: var(--scb-tr-title);
	line-height: 1.1;
}

.scb-trs__amount {
	font-size: clamp(2.25rem, 1.9rem + 1vw, 2.75rem);
	font-weight: 600;
	letter-spacing: -0.02em;
}

.scb-trs__note {
	color: var(--scb-tr-muted);
	font-size: 1.125rem;
	font-weight: 600;
}

.scb-trs__dates {
	margin: 12px 0 0;
	color: var(--scb-tr-muted);
	font-size: 14px;
	line-height: 1.7;
}

.scb-trs__actions {
	display: grid;
	gap: 12px;
	margin-top: 24px;
}

.scb-trs .scb-trs__btn.scb-trs__btn:is(a):not(#scb) {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 20px;
	border: 1px solid transparent;
	border-radius: var(--scb-tr-btn-radius);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	text-align: center;
	text-decoration: none;
	text-transform: none;
	letter-spacing: normal;
	box-shadow: none;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.scb-trs .scb-trs__btn.scb-trs__btn.is-primary:is(a):not(#scb) {
	border-color: var(--scb-tr-btn1-border, var(--scb-tr-primary));
	background: var(--scb-tr-btn1-bg, var(--scb-tr-primary));
	color: var(--scb-tr-btn1-color, #fff);
}

.scb-trs .scb-trs__btn.scb-trs__btn.is-primary:is(a):not(#scb):hover,
.scb-trs .scb-trs__btn.scb-trs__btn.is-primary:is(a):not(#scb):focus-visible {
	border-color: var(--scb-tr-btn1-border-hover, var(--scb-tr-primary-hover));
	background: var(--scb-tr-btn1-bg-hover, var(--scb-tr-primary-hover));
	color: var(--scb-tr-btn1-color-hover, #fff);
}

.scb-trs .scb-trs__btn.scb-trs__btn.is-secondary:is(a):not(#scb) {
	border-color: var(--scb-tr-btn2-border, var(--scb-tr-line));
	background: var(--scb-tr-btn2-bg, #fff);
	color: var(--scb-tr-btn2-color, var(--scb-tr-title));
}

.scb-trs .scb-trs__btn.scb-trs__btn.is-secondary:is(a):not(#scb):hover,
.scb-trs .scb-trs__btn.scb-trs__btn.is-secondary:is(a):not(#scb):focus-visible {
	border-color: var(--scb-tr-btn2-border-hover, var(--scb-tr-primary));
	background: var(--scb-tr-btn2-bg-hover, var(--scb-tr-canvas));
	color: var(--scb-tr-btn2-color-hover, var(--scb-tr-primary));
}

.scb-trs .scb-trs__btn.scb-trs__btn:is(a):not(#scb):focus-visible {
	outline: 2px solid var(--scb-tr-primary);
	outline-offset: 2px;
}

.scb-trs__body {
	padding: 80px 0 96px;
}

.scb-trs__body-grid.is-split {
	display: grid;
	grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr);
	gap: 56px;
	align-items: start;
}

.scb-trs__body-grid.is-single > * {
	max-width: 52rem;
}

.scb-trs__block + .scb-trs__block {
	margin-top: 48px;
}

/* Widget « SC Programme » : programme seul, sans marges de fiche */
.scb-trs--program .scb-trs__program-title:first-child {
	margin-top: 0;
}

.scb-trs--program .scb-trs__modules:first-child {
	margin-top: 0;
}

.scb-trs .scb-trs__eyebrow-title {
	margin: 0;
}

.scb-trs__heading {
	margin: 0 0 16px;
	color: var(--scb-tr-title);
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.33;
	letter-spacing: -0.01em;
}

.scb-trs__checks,
.scb-trs__bullets {
	display: grid;
	gap: 14px;
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
}

.scb-trs__heading + .scb-trs__bullets {
	margin-top: 0;
}

.scb-trs__checks li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 0;
	color: var(--scb-tr-ink);
	line-height: 1.6;
}

.scb-trs__checks svg {
	flex: none;
	margin-top: 4px;
	color: var(--scb-tr-primary);
}

.scb-trs__bullets li {
	position: relative;
	margin: 0;
	padding-left: 20px;
	color: var(--scb-tr-muted);
	line-height: 1.6;
}

.scb-trs__bullets li::before {
	content: "";
	position: absolute;
	top: 0.62em;
	left: 2px;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--scb-tr-primary);
}

.scb-trs .scb-rich {
	color: var(--scb-tr-muted);
	line-height: 1.7;
}

.scb-trs .scb-rich p,
.scb-trs .scb-rich ul {
	margin: 0 0 0.8em;
}

.scb-trs .scb-rich > :last-child {
	margin-bottom: 0;
}

.scb-trs .scb-rich ul {
	padding-left: 1.2em;
}

.scb-trs .scb-rich li {
	margin: 0 0 0.35em;
}

.scb-trs__description .scb-description {
	margin-top: 16px;
	color: var(--scb-tr-ink);
	line-height: 1.75;
}

.scb-trs__program-title {
	margin: 16px 0 0;
	color: var(--scb-tr-title);
	font-size: clamp(1.75rem, 1.35rem + 1.4vw, 2.25rem);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.02em;
}

.scb-trs__modules {
	margin-top: 32px;
	border-top: 1px solid var(--scb-tr-line);
}

.scb-trs__mod {
	border-bottom: 1px solid var(--scb-tr-line);
}

.scb-trs__mod-head {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 20px 0;
	color: var(--scb-tr-title);
	font-weight: 600;
	line-height: 1.45;
	cursor: pointer;
	-webkit-user-select: none;
	user-select: none;
}

.scb-trs__mod.is-static .scb-trs__mod-head {
	cursor: default;
}

.scb-trs__mod-head:focus-visible {
	outline: 2px solid var(--scb-tr-primary);
	outline-offset: 2px;
	border-radius: 4px;
}

.scb-trs__mod-head:hover .scb-trs__mod-title {
	color: var(--scb-tr-primary);
}

.scb-trs__mod-num {
	flex: none;
	width: 24px;
	color: var(--scb-tr-primary);
	font-family: var(--scb-tr-mono);
	font-size: 12px;
	font-weight: 600;
}

.scb-trs__mod-title {
	flex: 1 1 auto;
	min-width: 0;
	transition: color 0.15s ease;
}

.scb-trs__mod-icon {
	position: relative;
	flex: none;
	width: 14px;
	height: 14px;
}

.scb-trs__mod-icon::before,
.scb-trs__mod-icon::after {
	content: "";
	position: absolute;
	top: 6px;
	left: 1px;
	width: 12px;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transition: transform 0.2s ease;
}

.scb-trs__mod-icon::after {
	transform: rotate(90deg);
}

.scb-trs__mod.is-open .scb-trs__mod-icon::after {
	transform: rotate(0deg);
}

.scb-trs__mod-panel {
	padding: 0 0 24px 40px;
	font-size: 15px;
}

.scb-js .scb-trs__mod-panel[data-closed] {
	display: none;
}

.scb-trs .scb-trs__pdf {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	margin-top: 28px;
	padding: 12px 18px;
	border: 1px solid var(--scb-tr-line);
	border-radius: var(--scb-tr-btn-radius);
	background: var(--scb-tr-card);
	color: var(--scb-tr-title);
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	transition: border-color 0.2s ease, color 0.2s ease;
}

.scb-trs .scb-trs__pdf:hover,
.scb-trs .scb-trs__pdf:focus-visible {
	border-color: var(--scb-tr-primary);
	color: var(--scb-tr-primary);
}

.scb-trs__pdf svg {
	flex: none;
	color: var(--scb-tr-primary);
}

.scb-trs__pdf small {
	color: var(--scb-tr-muted);
	font-size: 12px;
	font-weight: 500;
}

@media (max-width: 1023px) {
	.scb-trs__hero-grid,
	.scb-trs__body-grid.is-split {
		grid-template-columns: minmax(0, 1fr);
	}
	.scb-trs__hero-grid {
		gap: 32px;
	}
	.scb-trs__card {
		max-width: 32rem;
	}
	.scb-trs__body-grid.is-split {
		gap: 48px;
	}
}

@media (max-width: 767px) {
	.scb-trs__hero {
		padding: 40px 0 48px;
	}
	.scb-trs .scb-trs__eyebrow {
		margin-top: 24px;
	}
	.scb-trs__lead {
		font-size: 1.05rem;
	}
	.scb-trs__card {
		max-width: none;
		padding: 20px;
	}
	.scb-trs__body {
		padding: 48px 0 64px;
	}
	.scb-trs__mod-panel {
		padding-left: 40px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.scb-tr-card,
	.scb-tr-card__link svg,
	.scb-trs__mod-icon::before,
	.scb-trs__mod-icon::after {
		transition: none;
	}
	.scb-tr-card:hover {
		transform: none;
	}
}

/* Réglages des widgets Elementor (classes ajoutées au widget) */
.elementor-widget-scb-trainings:not(.scb-tr-lift-yes) .scb-tr-card:hover {
	transform: none;
}

.elementor-widget-scb-trainings:not(.scb-tr-frame-yes) .scb-tr__bar {
	padding: 0;
	border: 0;
	background: transparent;
}

.scb-tr__more {
	margin-top: 32px;
	text-align: center;
}

.scb-tr .scb-tr__more-link.scb-tr__more-link:is(a):not(#scb) {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	padding: 10px 22px;
	border: 1px solid var(--scb-tr-line);
	border-radius: var(--scb-tr-btn-radius);
	background: var(--scb-tr-card);
	color: var(--scb-tr-title);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	transition: border-color 0.2s ease, color 0.2s ease;
}

.scb-tr .scb-tr__more-link.scb-tr__more-link:is(a):not(#scb):hover,
.scb-tr .scb-tr__more-link.scb-tr__more-link:is(a):not(#scb):focus-visible {
	border-color: var(--scb-tr-primary);
	color: var(--scb-tr-primary);
}

/* ---------------------------------------------------------------- Diagnostic formations */

.scb-dg {
	--scb-dg-w: 768px;
	max-width: var(--scb-dg-w);
	margin-left: auto;
	margin-right: auto;
}

.scb-dg [hidden] {
	display: none !important;
}

.scb-dg__title {
	margin: 20px 0 0;
	color: var(--scb-tr-title);
	font-size: clamp(2rem, 1.4rem + 2.2vw, 3rem);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.02em;
}

.scb-dg__title:first-child {
	margin-top: 0;
}

.scb-dg__title:focus,
.scb-dg__question:focus {
	outline: none;
}

.scb-dg__text {
	margin: 24px 0 0;
	color: var(--scb-tr-muted);
	font-size: 1.05rem;
	line-height: 1.75;
}

.scb-dg__note {
	margin: 20px 0 0;
	color: var(--scb-tr-muted);
	font-size: 12px;
	line-height: 1.5;
}

.scb-dg__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 32px;
}

.scb-dg .scb-dg__btn.scb-dg__btn:is(a, button):not(#scb) {
	display: inline-block;
	min-height: 44px;
	margin: 0;
	padding: 12px 20px;
	border: 1px solid transparent;
	border-radius: var(--scb-tr-btn-radius);
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
	text-decoration: none;
	text-transform: none;
	letter-spacing: normal;
	box-shadow: none;
	cursor: pointer;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}

.scb-dg .scb-dg__btn svg,
.scb-dg .scb-dg__prev svg {
	display: inline-block;
	vertical-align: -3px;
}

.scb-dg .scb-dg__btn.scb-dg__btn.is-primary:is(a, button):not(#scb) {
	border-color: var(--scb-dg-btn1-border, var(--scb-tr-primary));
	background: var(--scb-dg-btn1-bg, var(--scb-tr-primary));
	color: var(--scb-dg-btn1-color, #fff);
}

.scb-dg .scb-dg__btn.scb-dg__btn.is-primary:is(a, button):not(#scb):not(:disabled):hover,
.scb-dg .scb-dg__btn.scb-dg__btn.is-primary:is(a, button):not(#scb):focus-visible {
	border-color: var(--scb-dg-btn1-border-hover, var(--scb-tr-primary-hover));
	background: var(--scb-dg-btn1-bg-hover, var(--scb-tr-primary-hover));
	color: var(--scb-dg-btn1-color-hover, #fff);
}

.scb-dg .scb-dg__btn.scb-dg__btn.is-secondary:is(a, button):not(#scb) {
	border-color: var(--scb-dg-btn2-border, var(--scb-tr-line));
	background: var(--scb-dg-btn2-bg, var(--scb-tr-card));
	color: var(--scb-dg-btn2-color, var(--scb-tr-title));
}

.scb-dg .scb-dg__btn.scb-dg__btn.is-secondary:is(a, button):not(#scb):hover,
.scb-dg .scb-dg__btn.scb-dg__btn.is-secondary:is(a, button):not(#scb):focus-visible {
	border-color: var(--scb-dg-btn2-border-hover, var(--scb-tr-primary));
	background: var(--scb-dg-btn2-bg-hover, var(--scb-tr-canvas));
	color: var(--scb-dg-btn2-color-hover, var(--scb-tr-primary));
}

.scb-dg .scb-dg__btn.scb-dg__btn:is(a, button):not(#scb):disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

.scb-dg .scb-dg__btn.scb-dg__btn:is(a, button):not(#scb):focus-visible,
.scb-dg .scb-dg__prev.scb-dg__prev:is(button):not(#scb):focus-visible,
.scb-dg .scb-dg__restart.scb-dg__restart:is(button):not(#scb):focus-visible {
	outline: 2px solid var(--scb-tr-primary);
	outline-offset: 2px;
}

.scb-dg__progress-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	color: var(--scb-tr-muted);
	font-size: 14px;
}

.scb-dg__bar {
	height: 6px;
	margin-top: 16px;
	overflow: hidden;
	border-radius: 999px;
	background: var(--scb-tr-badge-bg);
}

.scb-dg__bar > span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--scb-tr-primary);
	transition: width 0.35s ease;
}

.scb-dg__question {
	margin: 40px 0 0;
	color: var(--scb-tr-title);
	font-size: clamp(1.75rem, 1.3rem + 1.8vw, 3rem);
	font-weight: 600;
	line-height: 1.12;
	letter-spacing: -0.02em;
}

.scb-dg__hint {
	margin: 12px 0 0;
	color: var(--scb-tr-muted);
	font-size: 14px;
}

.scb-dg__options {
	display: grid;
	grid-template-columns: repeat(var(--scb-dg-cols, 2), minmax(0, 1fr));
	gap: 12px;
	margin-top: 32px;
}

.scb-dg__opt {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 80px;
	padding: 20px;
	border: 1px solid var(--scb-tr-line);
	border-radius: var(--scb-tr-radius);
	background: var(--scb-tr-card);
	color: var(--scb-tr-ink);
	font-weight: 500;
	line-height: 1.4;
	cursor: pointer;
	-webkit-user-select: none;
	user-select: none;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.scb-dg__opt:hover {
	border-color: color-mix(in srgb, var(--scb-tr-primary) 50%, var(--scb-tr-line));
}

.scb-dg__opt:focus-visible {
	outline: 2px solid var(--scb-tr-primary);
	outline-offset: 2px;
}

.scb-dg__opt[aria-pressed="true"] {
	border-color: var(--scb-tr-primary);
	background: var(--scb-dg-selected, color-mix(in srgb, var(--scb-tr-primary) 6%, var(--scb-tr-card)));
}

.scb-dg__opt-check {
	flex: none;
	display: flex;
	color: var(--scb-tr-primary);
	opacity: 0;
	transform: scale(0.6);
	transition: opacity 0.15s ease, transform 0.15s ease;
}

.scb-dg__opt[aria-pressed="true"] .scb-dg__opt-check {
	opacity: 1;
	transform: none;
}

.scb-dg__nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 32px;
}

.scb-dg .scb-dg__prev.scb-dg__prev:is(button):not(#scb),
.scb-dg .scb-dg__restart.scb-dg__restart:is(button):not(#scb) {
	display: inline-block;
	min-height: 44px;
	margin: 0;
	padding: 10px 12px;
	border: 0;
	border-radius: var(--scb-tr-btn-radius);
	background: transparent;
	color: var(--scb-tr-ink);
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	text-transform: none;
	letter-spacing: normal;
	box-shadow: none;
	cursor: pointer;
}

.scb-dg .scb-dg__prev.scb-dg__prev:is(button):not(#scb):hover:not(:disabled),
.scb-dg .scb-dg__restart.scb-dg__restart:is(button):not(#scb):hover {
	background: var(--scb-tr-canvas);
	color: var(--scb-tr-primary);
}

/* Première question : rien avant, le bouton est masqué (un bouton grisé semble en panne) ; sa place est gardée
   pour que « Continuer » reste à droite. */
.scb-dg .scb-dg__prev.scb-dg__prev:is(button):not(#scb):disabled {
	visibility: hidden;
}

.scb-dg .scb-dg__restart.scb-dg__restart:is(button):not(#scb) {
	margin-top: 16px;
	padding-left: 0;
	padding-right: 0;
	color: var(--scb-tr-muted);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.scb-dg .scb-dg__restart.scb-dg__restart:is(button):not(#scb):hover {
	background: transparent;
}

.scb-dg__summary {
	margin-top: 32px;
	padding: 24px;
	border: 1px solid var(--scb-tr-line);
	border-radius: var(--scb-tr-radius);
	background: var(--scb-tr-card);
}

.scb-dg__summary-title {
	margin: 0;
	color: var(--scb-tr-title);
	font-weight: 600;
}

.scb-dg__summary-text {
	margin: 12px 0 0;
	color: var(--scb-tr-muted);
	font-size: 14px;
	line-height: 1.7;
}

.scb-dg__cards {
	margin-top: 32px;
	--scb-tr-cols: var(--scb-dg-result-cols, 2);
}

.scb-dg__cards .scb-tr__grid {
	margin-top: 0;
}

.scb-dg__cards .scb-tr-card {
	min-height: 0;
}

@media (max-width: 767px) {
	.scb-dg__options {
		grid-template-columns: minmax(0, 1fr);
	}
	.scb-dg__opt {
		min-height: 64px;
		padding: 16px;
	}
	.scb-dg__question {
		margin-top: 28px;
	}
	.scb-dg__actions {
		flex-direction: column;
	}
	.scb-dg__cards {
		--scb-tr-cols: 1;
	}
}

/* Diagnostic : formulaire « envoyer mon profil » */
.scb-dg__lead {
	margin-top: 32px;
	padding: 24px;
	border: 1px solid var(--scb-tr-line);
	border-radius: var(--scb-tr-radius);
	background: var(--scb-tr-card);
}

.scb-dg__lead-title {
	margin: 0;
	color: var(--scb-tr-title);
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.3;
}

.scb-dg__lead-text {
	margin: 10px 0 0;
	color: var(--scb-tr-muted);
	font-size: 15px;
	line-height: 1.65;
}

.scb-dg__fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin-top: 20px;
}

.scb-dg__field {
	margin: 0;
}

.scb-dg__field.is-wide {
	grid-column: 1 / -1;
}

.scb-dg__field label {
	display: block;
	margin: 0 0 6px;
	color: var(--scb-tr-ink);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
}

.scb-dg .scb-dg__field input,
.scb-dg .scb-dg__field textarea {
	display: block;
	width: 100%;
	min-height: 46px;
	margin: 0;
	padding: 10px 14px;
	border: 1px solid var(--scb-tr-line);
	border-radius: var(--scb-tr-btn-radius);
	background: #fff;
	box-shadow: none;
	color: var(--scb-tr-ink);
	font: inherit;
	font-size: 15px;
	line-height: 1.5;
}

.scb-dg .scb-dg__field textarea {
	min-height: 96px;
	resize: vertical;
}

.scb-dg .scb-dg__field input:focus,
.scb-dg .scb-dg__field textarea:focus {
	border-color: var(--scb-tr-primary);
	outline: none;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--scb-tr-primary) 18%, transparent);
}

.scb-dg .scb-dg__lead [aria-invalid="true"] {
	border-color: #dc2626;
}

.scb-dg__consent {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 16px 0 0;
	color: var(--scb-tr-muted);
	font-size: 13px;
	line-height: 1.55;
}

.scb-dg__consent input {
	flex: none;
	width: 18px;
	height: 18px;
	margin: 1px 0 0;
	accent-color: var(--scb-tr-primary);
}

.scb-dg__consent input[aria-invalid="true"] {
	outline: 2px solid #dc2626;
	outline-offset: 1px;
}

.scb-dg__hp {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.scb-dg__lead-actions {
	margin-top: 20px;
}

.scb-dg__lead-msg {
	margin: 14px 0 0;
	color: #b91c1c;
	font-size: 14px;
}

.scb-dg__lead-done {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	color: var(--scb-tr-ink);
	font-weight: 600;
	line-height: 1.5;
}

.scb-dg__lead-done svg {
	flex: none;
	margin-top: 3px;
	color: #16a34a;
}

.scb-dg__lead-done:focus {
	outline: none;
}

@media (max-width: 767px) {
	.scb-dg__fields {
		grid-template-columns: minmax(0, 1fr);
	}
	.scb-dg__lead {
		padding: 20px;
	}
}

/* Diagnostic : titre des formations proposées sous le formulaire */
.scb-dg__cards-head {
	margin-bottom: 20px;
}

.scb-dg__cards-title {
	margin: 0;
	color: var(--scb-tr-title);
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.3;
}

.scb-dg__cards-text {
	margin: 8px 0 0;
	color: var(--scb-tr-muted);
	font-size: 15px;
	line-height: 1.6;
}

.scb-dg__lead + .scb-dg__cards {
	margin-top: 48px;
}

/* Diagnostic : niveaux atteints (questions notées) et formulaire lié */
.scb-dg__levels {
	display: grid;
	gap: 16px;
	margin-top: 32px;
}

.scb-dg__level {
	padding: 24px;
	border: 1px solid var(--scb-tr-line);
	border-left: 4px solid var(--scb-tr-primary);
	border-radius: var(--scb-tr-radius);
	background: var(--scb-tr-card);
}

.scb-dg__level-title {
	margin: 8px 0 0;
	color: var(--scb-tr-title);
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: -0.01em;
}

.scb-dg__level > .scb-dg__level-title:first-child {
	margin-top: 0;
}

.scb-dg__level-text {
	margin: 10px 0 0;
	color: var(--scb-tr-ink);
	line-height: 1.7;
}

.scb-dg__level-reco {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 14px 0 0;
	color: var(--scb-tr-title);
	font-weight: 600;
	line-height: 1.5;
}

.scb-dg__level-reco svg {
	flex: none;
	margin-top: 3px;
	color: var(--scb-tr-primary);
}

.scb-dg .scb-dg__level-link {
	display: inline-block;
	margin-top: 14px;
	color: var(--scb-tr-primary);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.scb-dg__level-note {
	margin: 14px 0 0;
	color: var(--scb-tr-muted);
	font-size: 13px;
	line-height: 1.55;
}

.scb-dg__form {
	margin-top: 32px;
	padding: 24px;
	border: 1px solid var(--scb-tr-line);
	border-radius: var(--scb-tr-radius);
	background: var(--scb-tr-card);
}

.scb-dg__form-body {
	margin-top: 20px;
}

.scb-dg__form > .scb-dg__form-body:first-child {
	margin-top: 0;
}

@media (max-width: 767px) {
	.scb-dg__level,
	.scb-dg__form {
		padding: 20px;
	}
}

/* Agenda et fiche d'événement : lien discret sous le bouton (ex. « Voir la formation ») */
.scb-agenda__action {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}

.scb-agenda .scb-agenda__more,
.scb-event .scb-event__more {
	color: inherit;
	opacity: var(--scb-muted-opacity, 0.68);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	text-align: center;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.scb-agenda .scb-agenda__more:hover,
.scb-agenda .scb-agenda__more:focus-visible,
.scb-event .scb-event__more:hover,
.scb-event .scb-event__more:focus-visible {
	opacity: 1;
}

@media (max-width: 640px) {
	.scb-agenda__action {
		align-items: flex-start;
	}
}

.scb-event__actions .scb-event__more {
	display: block;
	margin-top: -4px;
}

/* Listes déroulantes (filtres des formations et des catalogues) : sur les navigateurs qui le permettent (Chrome,
   Edge), la liste ouverte est stylée — marges intérieures, coins arrondis, option choisie en couleur. Ailleurs,
   la liste du système reste inchangée. */
@supports (appearance: base-select) {
	.scb-tr .scb-tr__filter select,
	.scb-tr .scb-tr__filter select::picker(select),
	select.scb-filter__control.scb-filter__control:is(select):not(#scb),
	select.scb-filter__control.scb-filter__control:is(select):not(#scb)::picker(select) {
		appearance: base-select;
	}

	/* Texte du champ fermé centré verticalement (en mode stylé, il remontait en haut) */
	select.scb-filter__control.scb-filter__control:is(select):not(#scb) {
		display: flex;
		align-items: center;
	}

	.scb-tr .scb-tr__filter select::picker-icon,
	select.scb-filter__control::picker-icon {
		display: none;
	}

	.scb-tr .scb-tr__filter select::picker(select),
	select.scb-filter__control::picker(select) {
		margin-block: 8px;
		padding: 6px;
		border: 1px solid var(--scb-tr-line, var(--scb-line));
		border-radius: 12px;
		background: var(--scb-tr-card, #fff);
		box-shadow: 0 14px 40px -12px rgba(15, 23, 42, 0.25);
	}

	.scb-tr .scb-tr__filter option,
	select.scb-filter__control option {
		padding: 10px 14px;
		border-radius: 8px;
		font-size: 15px;
		line-height: 1.35;
	}

	.scb-tr .scb-tr__filter option::checkmark,
	select.scb-filter__control option::checkmark {
		display: none;
	}

	.scb-tr .scb-tr__filter option:hover,
	.scb-tr .scb-tr__filter option:focus-visible {
		background: color-mix(in srgb, var(--scb-tr-primary) 10%, transparent);
	}

	select.scb-filter__control option:hover,
	select.scb-filter__control option:focus-visible {
		background: color-mix(in srgb, var(--scb-ink) 10%, transparent);
	}

	.scb-tr .scb-tr__filter option:checked {
		color: var(--scb-tr-primary);
		font-weight: 600;
	}

	select.scb-filter__control option:checked {
		color: var(--scb-ink);
		font-weight: 600;
	}
}

/* Widget SC Formateurs */
.scb-people { display: flex; flex-direction: column; gap: 16px; }
.scb-person { display: flex; gap: 18px; padding: 24px; border-radius: 16px; background: var(--scb-surface); }
.scb-person__icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 50px; height: 50px; border-radius: 12px; font-size: 26px; }
.scb-person__icon svg { width: 1em; height: 1em; fill: currentColor; }
.scb-person__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.scb-person__name { margin: 0; }
.scb-person__text p { margin: 0 0 8px; }
.scb-person__text p:last-child { margin-bottom: 0; }
.scb-person__tags { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.scb-person__tag { padding: 7px 12px; border-radius: 999px; background: var(--scb-surface); }
.scb-person__link { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; }
@media (max-width: 767px) {
	.scb-person { flex-direction: column; padding: 20px; }
}

/* SC Calendrier : onglets de période */
.scb-periods { display: flex; flex-wrap: wrap; gap: 4px 24px; margin: 0 0 18px; border-bottom: 1px solid var(--scb-line); }
.scb-periods__tab.scb-periods__tab:is(button):not(#scb) { padding: 10px 2px; border: 0; border-bottom: 2px solid transparent; border-radius: 0; margin-bottom: -1px; background: transparent; color: inherit; font-weight: 600; opacity: 0.65; cursor: pointer; text-transform: none; letter-spacing: normal; box-shadow: none; }
.scb-periods__tab.scb-periods__tab:is(button):not(#scb):hover { opacity: 1; background: transparent; }
.scb-periods__tab.scb-periods__tab:is(button):not(#scb)[aria-selected="true"] { opacity: 1; border-bottom-color: currentColor; }
.scb-periods__note { margin: 0 0 18px; padding: 24px; border-radius: 16px; background: var(--scb-surface); }
.scb-periods__note[hidden] { display: none; }
.scb-periods__note p { margin: 0; }
.scb-catfilter[hidden] { display: none; }

/* Résumé sur les cartes (1.24.0) */
.scb-card__summary { margin: 0; font-size: 0.92em; line-height: 1.55; opacity: 0.85; }

/* Questions fréquentes (1.24.0) : accordéon natif, sans JavaScript */
.scb-faq__title { margin: 0 0 16px; }
.scb-faq__list { display: flex; flex-direction: column; gap: 10px; }
.scb-faq__item { border: 1px solid rgba(128, 128, 128, 0.25); border-radius: 12px; background: var(--scb-surface); }
.scb-faq__item summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; cursor: pointer; list-style: none; }
.scb-faq__item summary::-webkit-details-marker { display: none; }
.scb-faq__item summary::after { content: "+"; flex: 0 0 auto; font-size: 1.4em; line-height: 1; transition: transform 0.2s ease; }
.scb-faq__item[open] summary::after { transform: rotate(45deg); }
.scb-faq__item summary:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; border-radius: 12px; }
.scb-faq__q { margin: 0; font-size: 1em; font-weight: 600; line-height: 1.4; }
.scb-faq__a { padding: 0 20px 18px; line-height: 1.6; }
.scb-faq__a p { margin: 0 0 0.6em; }
.scb-faq__a p:last-child { margin-bottom: 0; }
@media (prefers-reduced-motion: reduce) { .scb-faq__item summary::after { transition: none; } }

/* Carrousel, cartes classiques (1.24.6) : même hauteur, bouton aligné en bas */
.scb-carousel__slide > .scb-card--classic { height: 100%; }
.scb-carousel__slide > .scb-card--classic .scb-card__body { flex: 1 1 auto; }
.scb-carousel__slide > .scb-card--classic .scb-card__more { margin-top: auto; }

/* 1.24.7 : le bouton des cartes passe au-dessus du lien du titre étendu à toute la carte (survol visible) */
.scb-card__more { position: relative; z-index: 2; }

/* 1.24.7 : le carrousel occupe toute la largeur de son conteneur, même quand il est créé caché (onglet) */
.elementor-widget-scb-carousel { width: 100%; }
