/*!
 * Framework CSS - École nationale du meuble 2026
 * Version: 1.0.001
 */

/* =============================================
   VARIABLES CSS
   ============================================= */
:root {
	/* Couleurs */
	--primary: #564546;   /* taupe */
	--secondary: #FAB500; /* jaune */
	--third: #33973A;     /* vert */
	--fourth: #A8ADAC;    /* gris */
	--fifth: #000000;     /* noir */
	--sixth: #FFFFFF;     /* blanc */
	--seventh: #EDEDED;    /* gris pale */
	--accent: #CD132C;    /* rouge */
	
	/* Effets */
	--inner-shadow: inset 0 0 50px rgba(0, 0, 0, 0.20);
	--border-radius: 30px;
	
	/* Tailles de texte responsive (clamp: min, préféré, max) */
	--text-xxxl: clamp(3.375rem, 2.0491rem + 2.4554vw, 4.875rem);  /* 54px → 78px */
	--text-xxl: clamp(1.75rem, 0.9821rem + 3.2738vw, 2.75rem);  /* 28px → 44px */
	--text-xl: clamp(1.5rem, 1.1518rem + 1.4881vw, 2.125rem);  /* 24px → 34px */
	--text-lg: clamp(1.0625rem, 0.7143rem + 1.4881vw, 1.75rem);  /* 17px → 28px */
	--text-md: clamp(1.0625rem, 0.8929rem + 0.7440vw, 1.5625rem); /* 17px → 25px */
	--text-base: clamp(1.0625rem, 0.9732rem + 0.3720vw, 1.25rem); /* 17px → 20px */
	--text-sm: 0.9375rem;   /* 15px */
	--text-xs: 0.8125rem;   /* 13px */
	--text-xxs: 0.625rem;   /* 10px */
	
	/* Gaps standardisés - base-mobile first */
	--gap-mini: 5px;
	--gap-sm: 15px;
	--gap-md: 20px;
	--gap-lg: 30px;
	--gap-xl: 40px;
	--gap-xxl: 60px;
	--gap-xxxl: 80px;
}

/* Border radius - Desktop */
@media (min-width: 992px) {
	:root {
		--border-radius: 50px;
	}
}

/* Gaps - Tablet */
@media (min-width: 768px) {
	:root {
		--gap-mini: 5px;
		--gap-sm: 15px;
		--gap-md: 25px;
		--gap-lg: 35px;
		--gap-xl: 50px;
		--gap-xxl: 80px;
		--gap-xxxl: 100px;
	}
}

/* Gaps - Desktop */
@media (min-width: 1200px) {
	:root {
		--gap-mini: 5px;
		--gap-sm: 20px;
		--gap-md: 40px;
		--gap-lg: 60px;
		--gap-xl: 76px;
		--gap-xxl: 120px;
		--gap-xxxl: 160px;
	}
}

/* =============================================
   RESET DE BASE
   ============================================= */
*,
*::before,
*::after {
	box-sizing: border-box;
}

/* =============================================
   CONTAINER
   ============================================= */
.container {
	position: relative;
	width: 100%;
	max-width: 1920px;
	margin: 0 auto;
	padding: 0 25px;
	--container-edge-offset: 25px !important;
}

@media (min-width: 768px) {
	.container {
		padding: 0 40px;
		--container-edge-offset: 40px !important;
	}
}

@media (min-width: 1200px) {
	.container {
		padding: 0 60px;
		--container-edge-offset: 60px !important;
	}
}

@media (min-width: 1600px) {
	.container {
		padding: 0 100px;
		--container-edge-offset: 100px !important;
	}
}

/* =============================================
   SYSTÈME DE GRILLE - FLEXBOX (Row/Col)
   Breakpoints: 768px (md), 992px (lg), 1200px (xl)
   ============================================= */

/* Row - Container flex */
.row {
	display: flex;
	flex-wrap: wrap;
	--row-gutter-x: var(--gap-md);
	margin-left: calc(var(--gap-md) * -0.5);
	margin-right: calc(var(--gap-md) * -0.5);
}

.row > * {
	padding-left: calc(var(--gap-md) * 0.5);
	padding-right: calc(var(--gap-md) * 0.5);
	width: 100%;
}

/* Gaps personnalisés */
.row.gap-sm { margin-left: calc(var(--gap-sm) * -0.5); margin-right: calc(var(--gap-sm) * -0.5); }
.row.gap-sm > * { padding-left: calc(var(--gap-sm) * 0.5); padding-right: calc(var(--gap-sm) * 0.5); }
.row.gap-sm { --row-gutter-x: var(--gap-sm); }

.row.gap-lg { margin-left: calc(var(--gap-lg) * -0.5); margin-right: calc(var(--gap-lg) * -0.5); }
.row.gap-lg > * { padding-left: calc(var(--gap-lg) * 0.5); padding-right: calc(var(--gap-lg) * 0.5); }
.row.gap-lg { --row-gutter-x: var(--gap-lg); }

.row.gap-xl { margin-left: calc(var(--gap-xl) * -0.5); margin-right: calc(var(--gap-xl) * -0.5); }
.row.gap-xl > * { padding-left: calc(var(--gap-xl) * 0.5); padding-right: calc(var(--gap-xl) * 0.5); }
.row.gap-xl { --row-gutter-x: var(--gap-xl); }

.row.gap-xxl { margin-left: calc(var(--gap-xxl) * -0.5); margin-right: calc(var(--gap-xxl) * -0.5); }
.row.gap-xxl > * { padding-left: calc(var(--gap-xxl) * 0.5); padding-right: calc(var(--gap-xxl) * 0.5); }
.row.gap-xxl { --row-gutter-x: var(--gap-xxl); }

.row.gap-0 { margin-left: 0; margin-right: 0; }
.row.gap-0 > * { padding-left: 0; padding-right: 0; }
.row.gap-0 { --row-gutter-x: 0px; }

.row-gap-sm { row-gap: var(--gap-sm); }
.row-gap-md { row-gap: var(--gap-md); }
.row-gap-lg { row-gap: var(--gap-lg); }
.row-gap-xl { row-gap: var(--gap-xl); }
.row-gap-xxl { row-gap: var(--gap-xxl); }
.row-gap-0 { row-gap: 0; }

/* -----------------------------------------
   COLONNES - Mobile first (100% par défaut)
   ----------------------------------------- */

/* Colonnes égales */
.col { flex: 1 1 0%; min-width: 0; }
.col-auto { flex: 0 0 auto; width: auto; }

/* Colonnes fixes */
.col-full { flex: 0 0 100%; max-width: 100%; }
.col-half { flex: 0 0 50%; max-width: 50%; }
.col-third { flex: 0 0 33.333%; max-width: 33.333%; }
.col-two-thirds { flex: 0 0 66.666%; max-width: 66.666%; }
.col-quarter { flex: 0 0 25%; max-width: 25%; }
.col-three-quarters { flex: 0 0 75%; max-width: 75%; }

/* Proportions asymétriques */
.col-45 { flex: 0 0 45%; max-width: 45%; }
.col-55 { flex: 0 0 55%; max-width: 55%; }
.col-40 { flex: 0 0 40%; max-width: 40%; }
.col-60 { flex: 0 0 60%; max-width: 60%; }
.col-35 { flex: 0 0 35%; max-width: 35%; }
.col-65 { flex: 0 0 65%; max-width: 65%; }
.col-30 { flex: 0 0 30%; max-width: 30%; }
.col-70 { flex: 0 0 70%; max-width: 70%; }

/* -----------------------------------------
   RESPONSIVE - Tablet (md: 768px+)
   ----------------------------------------- */
@media (min-width: 768px) {
	.col-md { flex: 1 1 0%; min-width: 0; }
	.col-md-auto { flex: 0 0 auto; width: auto; }
	.col-md-full { flex: 0 0 100%; max-width: 100%; }
	.col-md-half { flex: 0 0 50%; max-width: 50%; }
	.col-md-third { flex: 0 0 33.333%; max-width: 33.333%; }
	.col-md-two-thirds { flex: 0 0 66.666%; max-width: 66.666%; }
	.col-md-quarter { flex: 0 0 25%; max-width: 25%; }
	.col-md-three-quarters { flex: 0 0 75%; max-width: 75%; }
	.col-md-45 { flex: 0 0 45%; max-width: 45%; }
	.col-md-55 { flex: 0 0 55%; max-width: 55%; }
	.col-md-40 { flex: 0 0 40%; max-width: 40%; }
	.col-md-60 { flex: 0 0 60%; max-width: 60%; }
	.col-md-35 { flex: 0 0 35%; max-width: 35%; }
	.col-md-65 { flex: 0 0 65%; max-width: 65%; }
}

/* -----------------------------------------
   RESPONSIVE - Desktop (lg: 992px+)
   ----------------------------------------- */
@media (min-width: 992px) {
	.col-lg { flex: 1 1 0%; min-width: 0; }
	.col-lg-auto { flex: 0 0 auto; width: auto; }
	.col-lg-full { flex: 0 0 100%; max-width: 100%; }
	.col-lg-half { flex: 0 0 50%; max-width: 50%; }
	.col-lg-third { flex: 0 0 33.333%; max-width: 33.333%; }
	.col-lg-two-thirds { flex: 0 0 66.666%; max-width: 66.666%; }
	.col-lg-quarter { flex: 0 0 25%; max-width: 25%; }
	.col-lg-three-quarters { flex: 0 0 75%; max-width: 75%; }
	.col-lg-45 { flex: 0 0 45%; max-width: 45%; }
	.col-lg-55 { flex: 0 0 55%; max-width: 55%; }
	.col-lg-40 { flex: 0 0 40%; max-width: 40%; }
	.col-lg-60 { flex: 0 0 60%; max-width: 60%; }
	.col-lg-35 { flex: 0 0 35%; max-width: 35%; }
	.col-lg-65 { flex: 0 0 65%; max-width: 65%; }
	.col-lg-30 { flex: 0 0 30%; max-width: 30%; }
	.col-lg-70 { flex: 0 0 70%; max-width: 70%; }
}

/* -----------------------------------------
   RESPONSIVE - Large Desktop (xl: 1200px+)
   ----------------------------------------- */
@media (min-width: 1200px) {
	.col-xl { flex: 1 1 0%; min-width: 0; }
	.col-xl-auto { flex: 0 0 auto; width: auto; }
	.col-xl-full { flex: 0 0 100%; max-width: 100%; }
	.col-xl-half { flex: 0 0 50%; max-width: 50%; }
	.col-xl-third { flex: 0 0 33.333%; max-width: 33.333%; }
	.col-xl-two-thirds { flex: 0 0 66.666%; max-width: 66.666%; }
	.col-xl-quarter { flex: 0 0 25%; max-width: 25%; }
	.col-xl-three-quarters { flex: 0 0 75%; max-width: 75%; }
	.col-xl-45 { flex: 0 0 45%; max-width: 45%; }
	.col-xl-55 { flex: 0 0 55%; max-width: 55%; }
	.col-xl-40 { flex: 0 0 40%; max-width: 40%; }
	.col-xl-60 { flex: 0 0 60%; max-width: 60%; }
	.col-xl-35 { flex: 0 0 35%; max-width: 35%; }
	.col-xl-65 { flex: 0 0 65%; max-width: 65%; }
	.col-xl-30 { flex: 0 0 30%; max-width: 30%; }
	.col-xl-70 { flex: 0 0 70%; max-width: 70%; }
}


/* -----------------------------------------
   RESPONSIVE - Extra Large Desktop (xxl: 1920px+)
   ----------------------------------------- */
   @media (min-width: 1920px) {
	.col-xxl { flex: 1 1 0%; min-width: 0; }
	.col-xxl-auto { flex: 0 0 auto; width: auto; }
	.col-xxl-full { flex: 0 0 100%; max-width: 100%; }
	.col-xxl-half { flex: 0 0 50%; max-width: 50%; }
	.col-xxl-third { flex: 0 0 33.333%; max-width: 33.333%; }
	.col-xxl-two-thirds { flex: 0 0 66.666%; max-width: 66.666%; }
	.col-xxl-quarter { flex: 0 0 25%; max-width: 25%; }
	.col-xxl-three-quarters { flex: 0 0 75%; max-width: 75%; }
	.col-xxl-45 { flex: 0 0 45%; max-width: 45%; }
	.col-xxl-55 { flex: 0 0 55%; max-width: 55%; }
	.col-xxl-40 { flex: 0 0 40%; max-width: 40%; }
	.col-xxl-60 { flex: 0 0 60%; max-width: 60%; }
	.col-xxl-35 { flex: 0 0 35%; max-width: 35%; }
	.col-xxl-65 { flex: 0 0 65%; max-width: 65%; }
	.col-xxl-30 { flex: 0 0 30%; max-width: 30%; }
	.col-xxl-70 { flex: 0 0 70%; max-width: 70%; }
}

/* =============================================
   SYSTÈME DE GRILLE - CSS GRID
   ============================================= */
.grid {
	display: grid;
	gap: var(--gap-md);
}

/* Grilles fixes */
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }

/* Grilles responsives auto */
.grid-auto-2 { grid-template-columns: 1fr; }
.grid-auto-3 { grid-template-columns: 1fr; }
.grid-auto-4 { grid-template-columns: 1fr; }

@media (min-width: 576px) {
	.grid-auto-2 { grid-template-columns: repeat(2, 1fr); }
	.grid-auto-3 { grid-template-columns: repeat(2, 1fr); }
	.grid-auto-4 { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 992px) {
	.grid-auto-3 { grid-template-columns: repeat(3, 1fr); }
	.grid-auto-4 { grid-template-columns: repeat(3, 1fr); }
}

@media (min-width: 1200px) {
	.grid-auto-4 { grid-template-columns: repeat(4, 1fr); }
}

/* Gaps pour grilles */
.grid.gap-mini { gap: var(--gap-mini); }
.grid.gap-sm { gap: var(--gap-sm); }
.grid.gap-lg { gap: var(--gap-lg); }
.grid.gap-xl { gap: var(--gap-xl); }
.grid.gap-0 { gap: 0; }

/* =============================================
   ALIGNEMENT FLEX
   ============================================= */

/* Justify content */
.row.justify-start { justify-content: flex-start; }
.row.justify-center { justify-content: center; }
.row.justify-end { justify-content: flex-end; }
.row.justify-between { justify-content: space-between; }
.row.justify-around { justify-content: space-around; }

/* Alignement vertical des items */
.row.align-start { align-items: flex-start; }
.row.align-center { align-items: center; }
.row.align-end { align-items: flex-end; }
.row.align-stretch { align-items: stretch; }
.row.align-baseline { align-items: baseline; }

/* Direction */
.row.flex-column { flex-direction: column; }
.row.flex-row-reverse { flex-direction: row-reverse; }
.row.flex-nowrap { flex-wrap: nowrap; }

@media (min-width: 768px) {
	.row.flex-md-row { flex-direction: row; }
	.row.flex-md-column { flex-direction: column; }
}

@media (min-width: 992px) {
	.row.flex-lg-row { flex-direction: row; }
	.row.flex-lg-column { flex-direction: column; }
}

/* =============================================
   UTILITAIRES DE TEXTE
   ============================================= */

/* Tailles de titres responsive */
h1, .h1 { font-size: clamp(2.125rem, 1.5rem + 3.2vw, 4rem); line-height: 1.15; margin-bottom: var(--gap-lg); } /* 34px → 64px */
h2, .h2 { font-size: clamp(1.75rem, 1.313rem + 1.87vw, 3.125rem); line-height: 1.15; color: var(--primary); margin-top: var(--gap-md); margin-bottom: var(--gap-md); } /* 28px → 50px */
h3, .h3 { font-size: clamp(1.5625rem, 1.188rem + 1.6vw, 2.625rem); line-height: 1.15; margin-top: var(--gap-md); margin-bottom: var(--gap-md); } /* 25px → 42px */
h4, .h4	 { font-size: clamp(1.25rem, 0.875rem + 1.6vw, 2.25rem); line-height: 1.25; margin-top: var(--gap-md); margin-bottom: var(--gap-md); } /* 20px → 36px */
h5, .h5 { font-size: clamp(1.125rem, 0.813rem + 1.33vw, 1.875rem); line-height: 1.3; margin-top: var(--gap-md); margin-bottom: var(--gap-md); } /* 18px → 30px */
h6, .h6 { font-size: clamp(1rem, 0.813rem + 0.8vw, 1.5rem); line-height: 1.35; margin-top: var(--gap-md); margin-bottom: var(--gap-md); } /* 16px → 24px */
.h1 { line-height: 1.07; }

@media (min-width: 992px) and (max-width: 1799px) {
	body:not(.liste-articles):not(.search) h1, body:not(.liste-articles):not(.search) .h1 { font-size: clamp(1.875rem, 1.05rem + 1.7vw, 3rem); }
}

/* Tailles de texte */
.text-xxxl, p.text-xxxl, .text-xxxl p, .site-main .text-xxxl, .site-main p.text-xxxl, .site-main .text-xxxl p { font-size: var(--text-xxxl); line-height: 1.15; }
.text-xxl, p.text-xxl, .text-xxl p, .site-main .text-xxl, .site-main p.text-xxl, .site-main .text-xxl p { font-size: var(--text-xxl); line-height: 1.15; }
.text-xl, p.text-xl, .text-xl p, .site-main .text-xl, .site-main p.text-xl, .site-main .text-xl p { font-size: var(--text-xl); line-height: 1.2; }
.text-lg, p.text-lg, .text-lg p, .site-main .text-lg, .site-main p.text-lg, .site-main .text-lg p { font-size: var(--text-lg); line-height: 1.25; }
.site-main p, .site-main .text-md, .site-main p.text-md, .site-main .text-md p, .site-main ul, .site-main ol, .site-main .text-md, .site-main p.text-md, .site-main .text-md p { font-size: var(--text-md); line-height: 1.25; }
.text-base, p.text-base, .text-base p, .site-main .text-base, .site-main p.text-base, .site-main .text-base p { font-size: var(--text-base); line-height: 1.3; }
.text-sm, p.text-sm, .text-sm p, .site-main .text-sm, .site-main p.text-sm, .site-main .text-sm p { font-size: var(--text-sm); line-height: 1.3; }
.text-xs, p.text-xs, .text-xs p, .site-main .text-xs, .site-main p.text-xs, .site-main .text-xs p { font-size: var(--text-xs); line-height: 1.35; }

@media (max-width: 991px) {
	.text-sm-xxxl, p.text-sm-xxxl, .text-sm-xxxl p, .site-main .text-sm-xxxl, .site-main p.text-sm-xxxl, .site-main .text-sm-xxxl p { font-size: var(--text-xxxl); line-height: 1.15; }
	.text-sm-xxl, p.text-sm-xxl, .text-sm-xxl p, .site-main .text-sm-xxl, .site-main p.text-sm-xxl, .site-main .text-sm-xxl p { font-size: var(--text-xxl); line-height: 1.15; }
	.text-sm-xl, p.text-sm-xl, .text-sm-xl p, .site-main .text-sm-xl, .site-main p.text-sm-xl, .site-main .text-sm-xl p { font-size: var(--text-xl); line-height: 1.15; }
	.text-sm-lg, p.text-sm-lg, .text-sm-lg p, .site-main .text-sm-lg, .site-main p.text-sm-lg, .site-main .text-sm-lg p { font-size: var(--text-lg); line-height: 1.25; }
	.text-sm-md, p.text-sm-md, .text-sm-md p, .site-main .text-sm-md, .site-main p.text-sm-md, .site-main .text-sm-md p { font-size: var(--text-md); line-height: 1.25; }
	.text-sm-sm, p.text-sm-sm, .text-sm-sm p, .site-main .text-sm-sm, .site-main p.text-sm-sm, .site-main .text-sm-sm p { font-size: var(--text-sm); line-height: 1.3; }
	.text-sm-xs, p.text-sm-xs, .text-sm-xs p, .site-main .text-sm-xs, .site-main p.text-sm-xs, .site-main .text-sm-xs p { font-size: var(--text-xs); line-height: 1.35; }
	.text-sm-xxs, p.text-sm-xxs, .text-sm-xxs p, .site-main .text-sm-xxs, .site-main p.text-sm-xxs, .site-main .text-sm-xxs p { font-size: var(--text-xxs); line-height: 1.35; }
}

@media (min-width: 992px) and (max-width: 1199px) {		
	.text-lg-xxxl, p.text-lg-xxxl, .text-lg-xxxl p, .site-main .text-lg-xxxl, .site-main p.text-lg-xxxl, .site-main .text-lg-xxxl p { font-size: var(--text-xxxl) !important; line-height: 1.15; }
	.text-lg-xxl, p.text-lg-xxl, .text-lg-xxl p, .site-main .text-lg-xxl, .site-main p.text-lg-xxl, .site-main .text-lg-xxl p { font-size: var(--text-xxl) !important; line-height: 1.15; }
	.text-lg-xl, p.text-lg-xl, .text-lg-xl p, .site-main .text-lg-xl, .site-main p.text-lg-xl, .site-main .text-lg-xl p { font-size: var(--text-xl) !important; line-height: 1.15; }
	.text-lg-lg, p.text-lg-lg, .text-lg-lg p, .site-main .text-lg-lg, .site-main p.text-lg-lg, .site-main .text-lg-lg p { font-size: var(--text-lg) !important; line-height: 1.25; }
	.text-lg-md, p.text-lg-md, .text-lg-md p, .site-main .text-lg-md, .site-main p.text-lg-md, .site-main .text-lg-md p { font-size: var(--text-md) !important; line-height: 1.25; }
	.text-lg-sm, p.text-lg-sm, .text-lg-sm p, .site-main .text-lg-sm, .site-main p.text-lg-sm, .site-main .text-lg-sm p { font-size: var(--text-sm) !important; line-height: 1.3; }
	.text-lg-xs, p.text-lg-xs, .text-lg-xs p, .site-main .text-lg-xs, .site-main p.text-lg-xs, .site-main .text-lg-xs p { font-size: var(--text-xs) !important; line-height: 1.35; }
	.text-lg-xxs, p.text-lg-xxs, .text-lg-xxs p, .site-main .text-lg-xxs, .site-main p.text-lg-xxs, .site-main .text-lg-xxs p { font-size: var(--text-xxs) !important; line-height: 1.35; }
}	

@media (min-width: 1200px) and (max-width: 1600px) {		
	.text-xl-xxxl, p.text-xl-xxxl, .text-xl-xxxl p, .site-main .text-xl-xxxl, .site-main p.text-xl-xxxl, .site-main .text-xl-xxxl p { font-size: var(--text-xxxl) !important; line-height: 1.15; }
	.text-xl-xxl, p.text-xl-xxl, .text-xl-xxl p, .site-main .text-xl-xxl, .site-main p.text-xl-xxl, .site-main .text-xl-xxl p { font-size: var(--text-xxl) !important; line-height: 1.15; }
	.text-xl-xl, p.text-xl-xl, .text-xl-xl p, .site-main .text-xl-xl, .site-main p.text-xl-xl, .site-main .text-xl-xl p { font-size: var(--text-xl) !important; line-height: 1.15; }
	.text-xl-lg, p.text-xl-lg, .text-xl-lg p, .site-main .text-xl-lg, .site-main p.text-xl-lg, .site-main .text-xl-lg p { font-size: var(--text-lg) !important; line-height: 1.25; }
	.text-xl-md, p.text-xl-md, .text-xl-md p, .site-main .text-xl-md, .site-main p.text-xl-md, .site-main .text-xl-md p { font-size: var(--text-md) !important; line-height: 1.25; }
	.text-xl-sm, p.text-xl-sm, .text-xl-sm p, .site-main .text-xl-sm, .site-main p.text-xl-sm, .site-main .text-xl-sm p { font-size: var(--text-sm) !important; line-height: 1.3; }
	.text-xl-xs, p.text-xl-xs, .text-xl-xs p, .site-main .text-xl-xs, .site-main p.text-xl-xs, .site-main .text-xl-xs p { font-size: var(--text-xs) !important; line-height: 1.35; }
	.text-xl-xxs, p.text-xl-xxs, .text-xl-xxs p, .site-main .text-xl-xxs, .site-main p.text-xl-xxs, .site-main .text-xl-xxs p { font-size: var(--text-xxs) !important; line-height: 1.35; }
}

@media (min-width: 1601px) {		
	.text-xxl-xxxl, p.text-xxl-xxxl, .text-xxl-xxxl p, .site-main .text-xxl-xxxl, .site-main p.text-xxl-xxxl, .site-main .text-xxl-xxxl p { font-size: var(--text-xxxl) !important; line-height: 1.15; }
	.text-xxl-xxl, p.text-xxl-xxl, .text-xxl-xxl p, .site-main .text-xxl-xxl, .site-main p.text-xxl-xxl, .site-main .text-xxl-xxl p { font-size: var(--text-xxl) !important; line-height: 1.15; }
	.text-xxl-xl, p.text-xxl-xl, .text-xxl-xl p, .site-main .text-xxl-xl, .site-main p.text-xxl-xl, .site-main .text-xxl-xl p { font-size: var(--text-xl) !important; line-height: 1.15; }
	.text-xxl-lg, p.text-xxl-lg, .text-xxl-lg p, .site-main .text-xxl-lg, .site-main p.text-xxl-lg, .site-main .text-xxl-lg p { font-size: var(--text-lg) !important; line-height: 1.25; }
	.text-xxl-md, p.text-xxl-md, .text-xxl-md p, .site-main .text-xxl-md, .site-main p.text-xxl-md, .site-main .text-xxl-md p { font-size: var(--text-md) !important; line-height: 1.25; }
	.text-xxl-sm, p.text-xxl-sm, .text-xxl-sm p, .site-main .text-xxl-sm, .site-main p.text-xxl-sm, .site-main .text-xxl-sm p { font-size: var(--text-sm) !important; line-height: 1.3; }
	.text-xxl-xs, p.text-xxl-xs, .text-xxl-xs p, .site-main .text-xxl-xs, .site-main p.text-xxl-xs, .site-main .text-xxl-xs p { font-size: var(--text-xs) !important; line-height: 1.35; }
	.text-xxl-xxs, p.text-xxl-xxs, .text-xxl-xxs p, .site-main .text-xxl-xxs, .site-main p.text-xxl-xxs, .site-main .text-xxl-xxs p { font-size: var(--text-xxs) !important; line-height: 1.35; }
}

/* Alignement de texte */
.text-left { text-align: left !important; }
.text-center, .centrer { text-align: center !important; }
.text-right { text-align: right !important; }

/* alignement standards WordPress */
.alignright {
    float: right;
    margin: 0 0 1.5em 1.5em;
}

.alignleft {
    float: left;
    margin: 0 1.5em 1.5em 0;
}

.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
	margin-top: 1.5em;
	margin-bottom: 1.5em;
}

/* gestion du texte qui entoure */
img.alignright, img.alignleft, img.aligncenter {
    max-width: 100%;
    height: auto;
	--media-radius-tl: var(--border-radius);
    --media-radius-tr: var(--border-radius);
    --media-radius-br: var(--border-radius);
	--media-radius-bl: var(--border-radius);
}

img.alignright, img.aligncenter {
	border-top-left-radius: var(--media-radius-tl);
    border-top-right-radius: var(--media-radius-tr);
    border-bottom-right-radius: var(--media-radius-br);
}

img.alignleft {
	border-top-left-radius: var(--media-radius-tl);
    border-top-right-radius: var(--media-radius-tr);
    border-bottom-left-radius: var(--media-radius-bl);
}



/* =============================================
   UTILITAIRES DE COULEUR
   ============================================= */

/* Couleurs de texte */
.primary { color: var(--primary); }
.secondary, .sixth a { color: var(--secondary); }
.third { color: var(--third); }
.fourth { color: var(--fourth); }
.fifth { color: var(--fifth); }
.sixth, .sixth h2, .sixth h3, .sixth h4, .sixth h5, .sixth h6, .sixth a:not(.btn):hover { color: var(--sixth); transition: color 0.3s ease; }
.seventh { color: var(--seventh); }
.accent { color: var(--accent); }

/* Couleurs de fond */
.bg-primary { background-color: var(--primary); }
.bg-secondary { background-color: var(--secondary); }
.bg-third { background-color: var(--third); }
.bg-fourth { background-color: var(--fourth); }
.bg-fifth { background-color: var(--fifth); }
.bg-sixth { background-color: var(--sixth); }
.bg-seventh { background-color: var(--seventh); }
.bg-accent { background-color: var(--accent); }

/* =============================================
   UTILITAIRES D'ESPACEMENT
   ============================================= */

/* Marges verticales */
.my-mini { margin-top: var(--gap-mini); margin-bottom: var(--gap-mini); }
.my-sm { margin-top: var(--gap-sm); margin-bottom: var(--gap-sm); }
.my-md { margin-top: var(--gap-md); margin-bottom: var(--gap-md); }
.my-lg { margin-top: var(--gap-lg); margin-bottom: var(--gap-lg); }
.my-xl { margin-top: var(--gap-xl); margin-bottom: var(--gap-xl); }
.my-xxl { margin-top: var(--gap-xxl); margin-bottom: var(--gap-xxl); }
.my-xxxl { margin-top: var(--gap-xxxl); margin-bottom: var(--gap-xxxl); }

.my-0 { margin-top: 0; margin-bottom: 0; }
.mx-0 { margin-left: 0; margin-right: 0; }
.mx-auto { margin-left: auto; margin-right: auto; }

.mt-mini { margin-top: var(--gap-mini); }
.mt-sm { margin-top: var(--gap-sm); }
.mt-md { margin-top: var(--gap-md); }
.mt-lg { margin-top: var(--gap-lg); }
.mt-xl { margin-top: var(--gap-xl); }
.mt-xxl { margin-top: var(--gap-xxl); }
.mt-xxxl { margin-top: var(--gap-xxxl); }

.mb-mini { margin-bottom: var(--gap-mini); }
.mb-sm { margin-bottom: var(--gap-sm); }
.mb-md { margin-bottom: var(--gap-md); }
.mb-lg { margin-bottom: var(--gap-lg); }
.mb-xl, .site-main .vc_row:not(:last-child) { margin-bottom: var(--gap-xl); }
.mb-xxl { margin-bottom: var(--gap-xxl); }
.mb-xxxl { margin-bottom: var(--gap-xxxl); }

.m-0 { margin: 0 !important; }
.mt-0 { margin-top: 0 !important; }
.mb-0 { margin-bottom: 0 !important; }

/* Paddings verticaux */
.py-mini { padding-top: var(--gap-mini); padding-bottom: var(--gap-mini); }
.py-sm { padding-top: var(--gap-sm); padding-bottom: var(--gap-sm); }
.py-md { padding-top: var(--gap-md); padding-bottom: var(--gap-md); }
.py-lg { padding-top: var(--gap-lg); padding-bottom: var(--gap-lg); }
.py-xl { padding-top: var(--gap-xl); padding-bottom: var(--gap-xl); }
.py-xxl { padding-top: var(--gap-xxl); padding-bottom: var(--gap-xxl); }
.py-xxxl { padding-top: var(--gap-xxxl); padding-bottom: var(--gap-xxxl); }

.p-0 { padding: 0 !important; }
.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
.px-0 { padding-left: 0 !important; padding-right: 0 !important; }

/* Padding horizontal uniquement */
.px-mini { padding-left: var(--gap-mini); padding-right: var(--gap-mini); }
.px-sm { padding-left: var(--gap-sm); padding-right: var(--gap-sm); }
.px-md { padding-left: var(--gap-md); padding-right: var(--gap-md); }
.px-lg { padding-left: var(--gap-lg); padding-right: var(--gap-lg); }
.px-xl { padding-left: var(--gap-xl); padding-right: var(--gap-xl); }
.px-xxl { padding-left: var(--gap-xxl); padding-right: var(--gap-xxl); }
.px-xxxl { padding-left: var(--gap-xxxl); padding-right: var(--gap-xxxl); }

/* Padding top uniquement */
.pt-mini { padding-top: var(--gap-mini); }
.pt-sm { padding-top: var(--gap-sm); }
.pt-md { padding-top: var(--gap-md); }
.pt-lg { padding-top: var(--gap-lg); }
.pt-xl { padding-top: var(--gap-xl); }
.pt-xxl { padding-top: var(--gap-xxl); }
.pt-xxxl { padding-top: var(--gap-xxxl); }

/* Padding bottom uniquement */
.pb-mini { padding-bottom: var(--gap-mini); }
.pb-sm { padding-bottom: var(--gap-sm); }
.pb-md { padding-bottom: var(--gap-md); }
.pb-lg { padding-bottom: var(--gap-lg); }
.pb-xl { padding-bottom: var(--gap-xl); }
.pb-xxl { padding-bottom: var(--gap-xxl); }
.pb-xxxl { padding-bottom: var(--gap-xxxl); }

.pb-0 { padding-bottom: 0 !important; }


/* affecte seulement mobile-petite-tablette */
@media (max-width: 991px) {
	.text-sm-left { text-align: left; }
	.text-sm-center { text-align: center; }
	.text-sm-right { text-align: right; }

	.py-sm-mini { padding-top: var(--gap-mini) !important; padding-bottom: var(--gap-mini) !important; }
	.py-sm-sm { padding-top: var(--gap-sm) !important; padding-bottom: var(--gap-sm) !important; }
	.py-sm-md { padding-top: var(--gap-md) !important; padding-bottom: var(--gap-md) !important; }
	.py-sm-lg { padding-top: var(--gap-lg) !important; padding-bottom: var(--gap-lg) !important; }
	.py-sm-xl { padding-top: var(--gap-xl) !important; padding-bottom: var(--gap-xl) !important; }
	.py-sm-xxl { padding-top: var(--gap-xxl) !important; padding-bottom: var(--gap-xxl) !important; }
	.py-sm-xxxl { padding-top: var(--gap-xxxl) !important; padding-bottom: var(--gap-xxxl) !important; }

	.px-sm-mini { padding-left: var(--gap-mini) !important; padding-right: var(--gap-mini) !important; }
	.px-sm-sm { padding-left: var(--gap-sm) !important; padding-right: var(--gap-sm) !important; }
	.px-sm-md { padding-left: var(--gap-md) !important; padding-right: var(--gap-md) !important; }
	.px-sm-lg { padding-left: var(--gap-lg) !important; padding-right: var(--gap-lg) !important; }
	.px-sm-xl { padding-left: var(--gap-xl) !important; padding-right: var(--gap-xl) !important; }
	.px-sm-xxl { padding-left: var(--gap-xxl) !important; padding-right: var(--gap-xxl) !important; }
	.px-sm-xxxl { padding-left: var(--gap-xxxl) !important; padding-right: var(--gap-xxxl) !important; }

	.pb-sm-mini { padding-bottom: var(--gap-mini) !important; }
	.pb-sm-sm { padding-bottom: var(--gap-sm) !important; }
	.pb-sm-md { padding-bottom: var(--gap-md) !important; }
	.pb-sm-lg { padding-bottom: var(--gap-lg) !important; }
	.pb-sm-xl { padding-bottom: var(--gap-xl) !important; }
	.pb-sm-xxl { padding-bottom: var(--gap-xxl) !important; }
	.pb-sm-xxxl { padding-bottom: var(--gap-xxxl) !important; }

	.pt-sm-mini { padding-top: var(--gap-mini) !important; }
	.pt-sm-sm { padding-top: var(--gap-sm) !important; }
	.pt-sm-md { padding-top: var(--gap-md) !important; }
	.pt-sm-lg { padding-top: var(--gap-lg) !important; }
	.pt-sm-xl { padding-top: var(--gap-xl) !important; }
	.pt-sm-xxl { padding-top: var(--gap-xxl) !important; }
	.pt-sm-xxxl { padding-top: var(--gap-xxxl) !important; }

	.pb-sm-0 { padding-bottom: 0 !important; }
	.pt-sm-0 { padding-top: 0 !important; }

	.mt-sm-sm { margin-top: var(--gap-sm) !important; }
	.mt-sm-md { margin-top: var(--gap-md) !important; }
	.mt-sm-lg { margin-top: var(--gap-lg) !important; }
	.mt-sm-xl { margin-top: var(--gap-xl) !important; }
	.mt-sm-xxl { margin-top: var(--gap-xxl) !important; }
	.mt-sm-xxxl { margin-top: var(--gap-xxxl) !important; }

	.mb-sm-sm { margin-bottom: var(--gap-sm) !important; }
	.mb-sm-md { margin-bottom: var(--gap-md) !important; }
	.mb-sm-lg { margin-bottom: var(--gap-lg) !important; }
	.mb-sm-xl { margin-bottom: var(--gap-xl) !important; }
	.mb-sm-xxl { margin-bottom: var(--gap-xxl) !important; }
	.mb-sm-xxxl { margin-bottom: var(--gap-xxxl) !important; }

	.mb-sm-0 { margin-bottom: 0 !important; }
	.mt-sm-0 { margin-top: 0 !important; }

	.mt-sm-offset-sm  { margin-top: calc(var(--gap-sm) * -1) !important; }
	.mt-sm-offset-md  { margin-top: calc(var(--gap-md) * -1) !important; }
	.mt-sm-offset-lg  { margin-top: calc(var(--gap-lg) * -1) !important; }
	.mt-sm-offset-xl  { margin-top: calc(var(--gap-xl) * -1) !important; }
	.mt-sm-offset-xxl { margin-top: calc(var(--gap-xxl) * -1) !important; }
	.mt-sm-offset-xxxl { margin-top: calc(var(--gap-xxxl) * -1) !important; }
}

/* affecte seulement tablette */
@media (min-width: 768px) {
	.py-md-mini { padding-top: var(--gap-mini) !important; padding-bottom: var(--gap-mini) !important; }
	.py-md-sm { padding-top: var(--gap-sm) !important; padding-bottom: var(--gap-sm) !important; }
	.py-md-md { padding-top: var(--gap-md) !important; padding-bottom: var(--gap-md) !important; }
	.py-md-lg { padding-top: var(--gap-lg) !important; padding-bottom: var(--gap-lg) !important; }
	.py-md-xl { padding-top: var(--gap-xl) !important; padding-bottom: var(--gap-xl) !important; }
	.py-md-xxl { padding-top: var(--gap-xxl) !important; padding-bottom: var(--gap-xxl) !important; }
	.py-md-xxxl { padding-top: var(--gap-xxxl) !important; padding-bottom: var(--gap-xxxl) !important; }
	
	.px-md-mini { padding-left: var(--gap-mini) !important; padding-right: var(--gap-mini) !important; }
	.px-md-sm { padding-left: var(--gap-sm) !important; padding-right: var(--gap-sm) !important; }
	.px-md-md { padding-left: var(--gap-md) !important; padding-right: var(--gap-md) !important; }
	.px-md-lg { padding-left: var(--gap-lg) !important; padding-right: var(--gap-lg) !important; }
	.px-md-xl { padding-left: var(--gap-xl) !important; padding-right: var(--gap-xl) !important; }
	.px-md-xxl { padding-left: var(--gap-xxl) !important; padding-right: var(--gap-xxl) !important; }
	.px-md-xxxl { padding-left: var(--gap-xxxl) !important; padding-right: var(--gap-xxxl) !important; }

	.pb-md-mini { padding-bottom: var(--gap-mini) !important; }
	.pb-sm-sm { padding-bottom: var(--gap-sm) !important; }
	.pb-md-md { padding-bottom: var(--gap-md) !important; }
	.pb-md-lg { padding-bottom: var(--gap-lg) !important; }
	.pb-md-xl { padding-bottom: var(--gap-xl) !important; }
	.pb-md-xxl { padding-bottom: var(--gap-xxl) !important; }
	.pb-md-xxxl { padding-bottom: var(--gap-xxxl) !important; }

	.pt-md-mini { padding-top: var(--gap-mini) !important; }
	.pt-md-sm { padding-top: var(--gap-sm) !important; }
	.pt-md-md { padding-top: var(--gap-md) !important; }
	.pt-md-lg { padding-top: var(--gap-lg) !important; }
	.pt-md-xl { padding-top: var(--gap-xl) !important; }
	.pt-md-xxl { padding-top: var(--gap-xxl) !important; }
	.pt-md-xxxl { padding-top: var(--gap-xxxl) !important; }

	.mb-md-lg { margin-bottom: var(--gap-lg) !important; }
	.mt-md-lg { margin-top: var(--gap-lg) !important; }
	.mb-md-0 { margin-bottom: 0 !important; }
	.mt-md-0 { margin-top: 0 !important; }
}

/* affecte seulement desktop */
@media (min-width: 992px) {
	.py-lg-mini { padding-top: var(--gap-mini) !important; padding-bottom: var(--gap-mini) !important; }
	.py-lg-sm { padding-top: var(--gap-sm) !important; padding-bottom: var(--gap-sm) !important; }
	.py-lg-md { padding-top: var(--gap-md) !important; padding-bottom: var(--gap-md) !important; }
	.py-lg-lg { padding-top: var(--gap-lg) !important; padding-bottom: var(--gap-lg) !important; }
	.py-lg-xl { padding-top: var(--gap-xl) !important; padding-bottom: var(--gap-xl) !important; }
	.py-lg-xxl { padding-top: var(--gap-xxl) !important; padding-bottom: var(--gap-xxl) !important; }
	.py-lg-xxxl { padding-top: var(--gap-xxxl) !important; padding-bottom: var(--gap-xxxl) !important; }

	.px-lg-mini { padding-left: var(--gap-mini) !important; padding-right: var(--gap-mini) !important; }
	.px-lg-sm { padding-left: var(--gap-sm) !important; padding-right: var(--gap-sm) !important; }
	.px-lg-md { padding-left: var(--gap-md) !important; padding-right: var(--gap-md) !important; }
	.px-lg-lg { padding-left: var(--gap-lg) !important; padding-right: var(--gap-lg) !important; }
	.px-lg-xl { padding-left: var(--gap-xl) !important; padding-right: var(--gap-xl) !important; }
	.px-lg-xxl { padding-left: var(--gap-xxl) !important; padding-right: var(--gap-xxl) !important; }
	.px-lg-xxxl { padding-left: var(--gap-xxxl) !important; padding-right: var(--gap-xxxl) !important; }

	.pb-lg-mini { padding-bottom: var(--gap-mini) !important; }
	.pb-lg-sm { padding-bottom: var(--gap-sm) !important; }
	.pb-lg-md { padding-bottom: var(--gap-md) !important; }
	.pb-lg-lg { padding-bottom: var(--gap-lg) !important; }
	.pb-lg-xl { padding-bottom: var(--gap-xl) !important; }
	.pb-lg-xxl { padding-bottom: var(--gap-xxl) !important; }
	.pb-lg-xxxl { padding-bottom: var(--gap-xxxl) !important; }

	.pt-lg-mini { padding-top: var(--gap-mini) !important; }
	.pt-lg-sm { padding-top: var(--gap-sm) !important; }
	.pt-lg-md { padding-top: var(--gap-md) !important; }
	.pt-lg-lg { padding-top: var(--gap-lg) !important; }
	.pt-lg-xl { padding-top: var(--gap-xl) !important; }
	.pt-lg-xxl { padding-top: var(--gap-xxl) !important; }
	.pt-lg-xxxl { padding-top: var(--gap-xxxl) !important; }
	
	.mb-lg-lg { margin-bottom: var(--gap-lg) !important; }
	.mt-lg-lg { margin-top: var(--gap-lg) !important; }
	.mb-lg-0 { margin-bottom: 0 !important; }
	.mt-lg-0 { margin-top: 0 !important; }
}

@media (min-width: 1200px) {
	.py-xl-mini { padding-top: var(--gap-mini) !important; padding-bottom: var(--gap-mini) !important; }
	.py-xl-sm { padding-top: var(--gap-sm) !important; padding-bottom: var(--gap-sm) !important; }
	.py-xl-md { padding-top: var(--gap-md) !important; padding-bottom: var(--gap-md) !important; }
	.py-xl-lg { padding-top: var(--gap-lg) !important; padding-bottom: var(--gap-lg) !important; }
	.py-xl-xl { padding-top: var(--gap-xl) !important; padding-bottom: var(--gap-xl) !important; }
	.py-xl-xxl { padding-top: var(--gap-xxl) !important; padding-bottom: var(--gap-xxl) !important; }
	.py-xl-xxxl { padding-top: var(--gap-xxxl) !important; padding-bottom: var(--gap-xxxl) !important; }

	.px-xl-mini { padding-left: var(--gap-mini) !important; padding-right: var(--gap-mini) !important; }
	.px-xl-sm { padding-left: var(--gap-sm) !important; padding-right: var(--gap-sm) !important; }
	.px-xl-md { padding-left: var(--gap-md) !important; padding-right: var(--gap-md) !important; }
	.px-xl-lg { padding-left: var(--gap-lg) !important; padding-right: var(--gap-lg) !important; }
	.px-xl-xl { padding-left: var(--gap-xl) !important; padding-right: var(--gap-xl) !important; }
	.px-xl-xxl { padding-left: var(--gap-xxl) !important; padding-right: var(--gap-xxl) !important; }
	.px-xl-xxxl { padding-left: var(--gap-xxxl) !important; padding-right: var(--gap-xxxl) !important; }

	.pb-xl-mini { padding-bottom: var(--gap-mini) !important; }
	.pb-xl-sm { padding-bottom: var(--gap-sm) !important; }
	.pb-xl-md { padding-bottom: var(--gap-md) !important; }
	.pb-xl-lg { padding-bottom: var(--gap-lg) !important; }
	.pb-xl-xl { padding-bottom: var(--gap-xl) !important; }
	.pb-xl-xxl { padding-bottom: var(--gap-xxl) !important; }
	.pb-xl-xxxl { padding-bottom: var(--gap-xxxl) !important; }

	.pt-xl-mini { padding-top: var(--gap-mini) !important; }
	.pt-xl-sm { padding-top: var(--gap-sm) !important; }
	.pt-xl-md { padding-top: var(--gap-md) !important; }
	.pt-xl-lg { padding-top: var(--gap-lg) !important; }
	.pt-xl-xl { padding-top: var(--gap-xl) !important; }
	.pt-xl-xxl { padding-top: var(--gap-xxl) !important; }
	.pt-xl-xxxl { padding-top: var(--gap-xxxl) !important; }
	
	.mt-xl-sm { margin-top: var(--gap-sm) !important; }
	.mt-xl-md { margin-top: var(--gap-md) !important; }
	.mt-xl-lg { margin-top: var(--gap-lg) !important; }
	.mt-xl-0 { margin-top: 0 !important; }
	.mb-xl-sm { margin-bottom: var(--gap-sm) !important; }
	.mb-xl-md { margin-bottom: var(--gap-md) !important; }
	.mb-xl-lg { margin-bottom: var(--gap-lg) !important; }
	.mb-xl-0 { margin-bottom: 0 !important; }
}

@media (min-width: 1600px) {
	.mt-xxl-mini { margin-top: var(--gap-mini) !important; }
	.mt-xxl-sm { margin-top: var(--gap-sm) !important; }
	.mt-xxl-md { margin-top: var(--gap-md) !important; }
	.mt-xxl-lg { margin-top: var(--gap-lg) !important; }
	.mt-xxl-0 { margin-top: 0 !important; }
	.mb-xxl-mini { margin-bottom: var(--gap-mini) !important; }
	.mb-xxl-sm { margin-bottom: var(--gap-sm) !important; }
	.mb-xxl-md { margin-bottom: var(--gap-md) !important; }
	.mb-xxl-lg { margin-bottom: var(--gap-lg) !important; }
	.mb-xxl-0 { margin-bottom: 0 !important; }
}


/* Offset négatif (chevauchement par-dessus la section précédente)
   La section avec .offset-* remonte derrière la section précédente.
   Ajouter un padding-top supplémentaire pour compenser la zone cachée.
   La section précédente doit conserver position: relative (z-index auto suffit). */
   
.mt-offset-sm  { margin-top: calc(var(--gap-sm) * -1) !important;  }
.mt-offset-md  { margin-top: calc(var(--gap-md) * -1) !important;  }
.mt-offset-lg  { margin-top: calc(var(--gap-lg) * -1) !important;  }
.mt-offset-xl  { margin-top: calc(var(--gap-xl) * -1) !important;  }
.mt-offset-xxl { margin-top: calc(var(--gap-xxl) * -1) !important; }
.mt-offset-xxxl { margin-top: calc(var(--gap-xxxl) * -1) !important; }

/* Offsets fixes pour chevauchements plus importants */
.mt-offset-100 { margin-top: -100px !important; }
.mt-offset-150 { margin-top: -150px !important; }
.mt-offset-200 { margin-top: -200px !important; }

.mb-offset-sm  { margin-bottom: calc(var(--gap-sm) * -1) !important;  }
.mb-offset-md  { margin-bottom: calc(var(--gap-md) * -1) !important;  }
.mb-offset-lg  { margin-bottom: calc(var(--gap-lg) * -1) !important;  }
.mb-offset-xl  { margin-bottom: calc(var(--gap-xl) * -1) !important;  }
.mb-offset-xxl { margin-bottom: calc(var(--gap-xxl) * -1) !important; }
.mb-offset-xxxl { margin-bottom: calc(var(--gap-xxxl) * -1) !important; }

@media (max-width: 767px) {
	.mt-no-offset-sm-sm  { margin-top: var(--gap-md) !important; }	
	.mt-no-offset-sm-md  { margin-top: var(--gap-lg) !important; }
	.mt-no-offset-sm-lg  { margin-top: var(--gap-xl) !important; }
	.mt-no-offset-sm-xl  { margin-top: var(--gap-xxl) !important; }
	.mt-no-offset-sm-xxl { margin-top: var(--gap-xxxl) !important; }
	.mt-no-offset-sm-xxxl { margin-top: var(--gap-xxxl) !important; }
}

@media (min-width: 768px) and (max-width: 991px) {
	.mt-no-offset-md-sm  { margin-top: var(--gap-sm) !important; }	
	.mt-no-offset-md-md  { margin-top: var(--gap-md) !important; }
	.mt-no-offset-md-lg  { margin-top: var(--gap-lg) !important; }
	.mt-no-offset-md-xl  { margin-top: var(--gap-xl) !important; }
	.mt-no-offset-md-xl  { margin-top: var(--gap-xxl) !important; }
	.mt-no-offset-md-xxl { margin-top: var(--gap-xxl) !important; }
	.mt-no-offset-md-xxxl { margin-top: var(--gap-xxxl) !important; }
}

@media (min-width: 768px) {
	.mt-offset-md-sm  { margin-top: calc(var(--gap-sm) * -1) !important;  }
	.mt-offset-md-md  { margin-top: calc(var(--gap-md) * -1) !important;  }
	.mt-offset-md-lg  { margin-top: calc(var(--gap-lg) * -1) !important;  }
	.mt-offset-md-xl  { margin-top: calc(var(--gap-xl) * -1) !important;  }
	.mt-offset-md-xxl { margin-top: calc(var(--gap-xxl) * -1) !important; }
	.mt-offset-md-xxxl { margin-top: calc(var(--gap-xxxl) * -1) !important; }
	.mt-offset-md-100 { margin-top: -100px !important; }
	.mt-offset-md-150 { margin-top: -150px !important; }
	.mt-offset-md-200 { margin-top: -200px !important; }
}

@media (min-width: 992px) {
	.mt-offset-sm, .mt-offset-lg-sm  { margin-top: calc(var(--gap-sm) * -1) !important;  }
	.mt-offset-md, .mt-offset-lg-md  { margin-top: calc(var(--gap-md) * -1) !important;  }
	.mt-offset-lg, .mt-offset-lg-lg  { margin-top: calc(var(--gap-lg) * -1) !important;  }
	.mt-offset-xl, .mt-offset-lg-xl  { margin-top: calc(var(--gap-xl) * -1) !important;  }
	.mt-offset-xxl, .mt-offset-lg-xxl { margin-top: calc(var(--gap-xxl) * -1) !important; }
	.mt-offset-xxxl, .mt-offset-lg-xxxl { margin-top: calc(var(--gap-xxxl) * -1) !important; }
	.mt-offset-lg-100 { margin-top: -100px !important; }
	.mt-offset-150, .mt-offset-lg-150 { margin-top: -150px !important; }
	.mt-offset-200, .mt-offset-lg-200 { margin-top: -200px !important; }

	.mb-offset-lg-xxxl  { margin-bottom: calc(var(--gap-xxxl) * -1) !important; }
}

@media (min-width: 769px) and (max-width: 1199px) {
	.mt-no-offset-lg-sm  { margin-top: var(--gap-sm) !important; }	
	.mt-no-offset-lg-md  { margin-top: var(--gap-md) !important; }
	.mt-no-offset-lg-lg  { margin-top: var(--gap-lg) !important; }
	.mt-no-offset-lg-xl  { margin-top: var(--gap-xl) !important; }
	.mt-no-offset-lg-xxl  { margin-top: var(--gap-xxl) !important; }
	.mt-no-offset-lg-xxxl { margin-top: var(--gap-xxxl) !important; }
}

@media (min-width: 1200px) {
	.mt-offset-sm, .mt-offset-xl-sm  { margin-top: calc(var(--gap-sm) * -1) !important;  }
	.mt-offset-md, .mt-offset-xl-md  { margin-top: calc(var(--gap-md) * -1) !important;  }
	.mt-offset-lg, .mt-offset-xl-lg  { margin-top: calc(var(--gap-lg) * -1) !important;  }
	.mt-offset-xl, .mt-offset-xl-xl  { margin-top: calc(var(--gap-xl) * -1) !important;  }
	.mt-offset-xxl, .mt-offset-xl-xxl { margin-top: calc(var(--gap-xxl) * -1) !important; }
	.mt-offset-xxxl, .mt-offset-xl-xxxl { margin-top: calc(var(--gap-xxxl) * -1) !important; }
	.mt-offset-100, .mt-offset-xl-100 { margin-top: -100px !important; }
	.mt-offset-150, .mt-offset-xl-150 { margin-top: -150px !important; }
	.mt-offset-200, .mt-offset-xl-200 { margin-top: -200px !important; }
	.mt-offset-xl-250 { margin-top: -250px !important; }

	.mb-offset-xl-200 { margin-bottom: -200px !important; }

	.mt-no-offset-xl-sm  { margin-top: var(--gap-sm) !important; }	
	.mt-no-offset-xl-md  { margin-top: var(--gap-md) !important;  }
	.mt-no-offset-xl-lg  { margin-top: var(--gap-lg) !important;  }
	.mt-no-offset-xl-xl  { margin-top: var(--gap-xl) !important;  }
	.mt-no-offset-xl-xxl { margin-top: var(--gap-xxl) !important; }
	.mt-no-offset-xl-xxxl { margin-top: var(--gap-xxxl) !important; }
}

@media (min-width: 1600px) {
	.mt-offset-xxl-sm  { margin-top: calc(var(--gap-sm) * -1) !important;  }
	.mt-offset-xxl-md  { margin-top: calc(var(--gap-md) * -1) !important;  }
	.mt-offset-xxl-lg  { margin-top: calc(var(--gap-lg) * -1) !important;  }
	.mt-offset-xxl-xl  { margin-top: calc(var(--gap-xl) * -1) !important;  }
	.mt-offset-xxl-xxl { margin-top: calc(var(--gap-xxl) * -1) !important; }
	.mt-offset-xxl-xxxl { margin-top: calc(var(--gap-xxxl) * -1) !important; }
	.mt-offset-xxl-250 { margin-top: -250px !important; }
}

/* Gaps globaux */
.gap-sm:not(.row):not(.vc_row) { gap: var(--gap-sm); }
.gap-md:not(.row):not(.vc_row) { gap: var(--gap-md); }
.gap-lg:not(.row):not(.vc_row) { gap: var(--gap-lg); }
.gap-xl:not(.row):not(.vc_row) { gap: var(--gap-xl); }
.gap-xxl:not(.row):not(.vc_row) { gap: var(--gap-xxl); }

.gap-0:not(.row):not(.vc_row) { gap: 0; }

/* =============================================
   UTILITAIRES D'AFFICHAGE
   ============================================= */
.d-none { display: none; }
.d-block { display: block; }
.d-flex { display: flex; }
.d-grid { display: grid; }
.d-inline { display: inline; }
.d-inline-block { display: inline-block; }

@media (min-width: 768px) {
	.d-md-none { display: none; }
	.d-md-block { display: block; }
	.d-md-flex { display: flex; }
	.d-md-grid { display: grid; }
}

@media (min-width: 992px) {
	.d-lg-none { display: none; }
	.d-lg-block { display: block; }
	.d-lg-flex { display: flex; }
	.d-lg-grid { display: grid; }
}

@media (min-width: 1200px) {
	.d-xl-none { display: none; }
	.d-xl-block { display: block; }
	.d-xl-flex { display: flex; }
	.d-xl-grid { display: grid; }
}

/* =============================================
   SECTIONS FULL-BLEED 50/50
   ============================================= */
.fullbleed-split {
	--fullbleed-split-gap: 0px;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.fullbleed-split-side {
	align-self: stretch;
}

.fullbleed-split .row.gap-0 > .fullbleed-split-side-start {
	padding-right: var(--gap-lg);
}

.fullbleed-split .row.gap-0 > .fullbleed-split-side-end {
	padding-left: var(--gap-lg);
}

.fullbleed-split .row.gap-0 > .fullbleed-split-side + .fullbleed-split-side {
	margin-top: var(--fullbleed-split-gap);
}

.fullbleed-split-media,
.fullbleed-split-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.fullbleed-split-rounded-right {
	border-top-right-radius: var(--border-radius);
	border-bottom-right-radius: var(--border-radius);
}

.fullbleed-split-rounded-left {
	border-top-left-radius: var(--border-radius);
	border-bottom-left-radius: var(--border-radius);
}

.fullbleed-split-panel-inner {
	padding: var(--gap-xl);
}

.fullbleed-split-panel-inner > :last-child {
	margin-bottom: 0;
}

.fullbleed-split-gap-0 { --fullbleed-split-gap: 0px; }
.fullbleed-split-gap-sm { --fullbleed-split-gap: var(--gap-sm); }
.fullbleed-split-gap-md { --fullbleed-split-gap: var(--gap-md); }
.fullbleed-split-gap-lg { --fullbleed-split-gap: var(--gap-lg); }
.fullbleed-split-gap-xl { --fullbleed-split-gap: var(--gap-xl); }
.fullbleed-split-gap-xxl { --fullbleed-split-gap: var(--gap-xxl); }

@media (min-width: 992px) {
	.fullbleed-split .row.gap-0 > .fullbleed-split-side-start { padding-right: calc(var(--fullbleed-split-gap) * 0.5); }
	.fullbleed-split .row.gap-0 > .fullbleed-split-side-end { padding-left: calc(var(--fullbleed-split-gap) * 0.5); }
	.fullbleed-split .row.gap-0 > .fullbleed-split-side + .fullbleed-split-side { margin-top: 0; }
}

@media (min-width: 1600px) {
	.fullbleed-split-panel-inner {
		padding: var(--gap-xl) var(--gap-xxl);
	}
}

/* =============================================
   EDGE BLEED LAYOUT DANS WPBakery
   ============================================= */
.vc_row.edge-bleed-layout {
	--row-gutter-x: var(--gap-md);
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-right: 0 !important;
	padding-left: 0 !important;
	align-items: flex-start !important;
	overflow: visible !important;
	display: flex !important;
}

.vc_row.edge-bleed-layout.gap-sm { --row-gutter-x: var(--gap-sm); }
.vc_row.edge-bleed-layout.gap-lg { --row-gutter-x: var(--gap-lg); }
.vc_row.edge-bleed-layout.gap-xl { --row-gutter-x: var(--gap-xl); }
.vc_row.edge-bleed-layout.gap-xxl { --row-gutter-x: var(--gap-xxl); }
.vc_row.edge-bleed-layout.gap-0 { --row-gutter-x: 0px; }

.vc_row.edge-bleed-layout .vc_column_container {
	width: auto;
	max-width: none;
	padding-left: calc(var(--row-gutter-x) * 0.5);
	padding-right: calc(var(--row-gutter-x) * 0.5);
}

.vc_row.edge-bleed-layout:has(> .edge-bleed-media-right) > .vc_column_container:not(.edge-bleed-media-right):not(.edge-bleed-media-left) {
	/* padding-left: var(--container-edge-offset, 25px); */
	padding-left: 0 !important;
}

.vc_row.edge-bleed-layout:has(> .edge-bleed-media-left) > .vc_column_container:not(.edge-bleed-media-right):not(.edge-bleed-media-left) {
	/* padding-right: var(--container-edge-offset, 25px); */
	padding-right: 0 !important;
}

.vc_row.edge-bleed-layout .edge-bleed-media-left, .vc_row.edge-bleed-layout .edge-bleed-media-left .vc_figure-caption {
	text-align: left;
}

.vc_row.edge-bleed-layout .edge-bleed-media-right, .vc_row.edge-bleed-layout .edge-bleed-media-right .vc_figure-caption {
	text-align: right;
}

@media (max-width: 991px) {
	.vc_row.edge-bleed-layout {
		display: flex !important;
		flex-wrap: wrap !important;
	}

	.vc_row.edge-bleed-layout > .vc_column_container {
		float: none !important;
		flex: 0 0 100% !important;
		max-width: 100% !important;
		width: 100% !important;
		display: block !important;
		clear: both;
	}

	.vc_row.edge-bleed-layout > .vc_column_container:not(.edge-bleed-media-right):not(.edge-bleed-media-left) {
		/* padding-left: var(--container-edge-offset, 25px);
		padding-right: var(--container-edge-offset, 25px); */
		padding-left: 0 !important;
		padding-right: 0 !important;
		padding-top: 0 !important;
	}

	.vc_row.edge-bleed-layout > .edge-bleed-media-right {
		/* padding-left: var(--container-edge-offset, 25px); */
		padding-left: 0 !important;
		padding-right: 0;
	}

	.vc_row.edge-bleed-layout > .edge-bleed-media-left {
		padding-left: 0;
		/* padding-right: var(--container-edge-offset, 25px); */
		padding-right: 0;
	}

	.row.edge-bleed-layout > .edge-bleed-media-right > :first-child,
	.row.edge-bleed-layout > .edge-bleed-media-left > :first-child,
	.vc_row.edge-bleed-layout > .edge-bleed-media-left > :first-child,
	.vc_row.edge-bleed-layout > .edge-bleed-media-left > .vc_column-inner > .wpb_wrapper > :first-child {
		width: 100%;
		margin-left: 0;
		margin-right: 0;
	}

	/* Mobile: image collée au bord du viewport selon le côté média */
	.vc_row.edge-bleed-layout > .edge-bleed-media-right > .vc_column-inner > .wpb_wrapper > .wpb_single_image {
		width: calc(100% + var(--edge-bleed-size)) !important;
		max-width: none !important;
		margin-right: calc(-1 * var(--edge-bleed-size)) !important;
		margin-left: 0 !important;
	}

	.vc_row.edge-bleed-layout > .edge-bleed-media-left > .vc_column-inner > .wpb_wrapper > .wpb_single_image {
		width: calc(100% + var(--edge-bleed-size)) !important;
		max-width: none !important;
		margin-left: calc(-1 * var(--edge-bleed-size)) !important;
		margin-right: 0 !important;
	}

	.vc_row.edge-bleed-layout > .edge-bleed-media-right > .vc_column-inner > .wpb_wrapper > .wpb_single_image .vc_figure,
	.vc_row.edge-bleed-layout > .edge-bleed-media-right > .vc_column-inner > .wpb_wrapper > .wpb_single_image .vc_single_image-wrapper,
	.vc_row.edge-bleed-layout > .edge-bleed-media-right > .vc_column-inner > .wpb_wrapper > .wpb_single_image .vc_single_image-img,
	.vc_row.edge-bleed-layout > .edge-bleed-media-left > .vc_column-inner > .wpb_wrapper > .wpb_single_image .vc_figure,
	.vc_row.edge-bleed-layout > .edge-bleed-media-left > .vc_column-inner > .wpb_wrapper > .wpb_single_image .vc_single_image-wrapper,
	.vc_row.edge-bleed-layout > .edge-bleed-media-left > .vc_column-inner > .wpb_wrapper > .wpb_single_image .vc_single_image-img {
		width: 100% !important;
		max-width: none !important;
	}
}

.vc_row.edge-bleed-layout .vc_column_container>.vc_column-inner {
    padding-left: 0;
    padding-right: 0;
}

@media (min-width: 768px) {
	.vc_row.deux-colonnes:not(.edge-bleed-layout):has(> .vc_column_container:nth-child(2):last-child) > .vc_column_container:nth-child(2) > .vc_column-inner {
		padding-left: var(--gap-xl);
	}
}

@media (max-width: 767px) {
	.vc_row.deux-colonnes:not(.edge-bleed-layout):has(> .vc_column_container:nth-child(2):last-child) > .vc_column_container:nth-child(2),
	.vc_row:not(.edge-bleed-layout) > .vc_column_container:nth-child(n+2) {
		margin-top: var(--gap-xl);
	}
}

.vc_row.edge-bleed-layout > .edge-bleed-media-right > .vc_column-inner,
.vc_row.edge-bleed-layout > .edge-bleed-media-left > .vc_column-inner,
.vc_row.edge-bleed-layout > .edge-bleed-media-right > .vc_column-inner > .wpb_wrapper,
.vc_row.edge-bleed-layout > .edge-bleed-media-left > .vc_column-inner > .wpb_wrapper {
	height: 100%;
}


/* =============================================
   LAYOUT MEDIA COLLÉE AU BORD (responsive)
   Contenu dans le container, média full-bleed sur un côté.
   ============================================= */

.row.edge-bleed-layout > .edge-bleed-media-right, .vc_row.edge-bleed-layout > .edge-bleed-media-right {
	padding-right: 0;
	--edge-bleed-extra: 0px;
	--edge-bleed-size: max(calc((var(--container-edge-offset, 25px) + var(--edge-bleed-extra)) - (var(--row-gutter-x, var(--gap-md)) * 0.5)), 0px);
}

.row.edge-bleed-layout > .edge-bleed-media-left, .vc_row.edge-bleed-layout > .edge-bleed-media-left {
	padding-left: 0;
	--edge-bleed-extra: 0px;
	--edge-bleed-size: max(calc((var(--container-edge-offset, 25px) + var(--edge-bleed-extra)) - (var(--row-gutter-x, var(--gap-md)) * 0.5)), 0px);
}

.vc_row.edge-bleed-layout > .edge-bleed-media-right,
.vc_row.edge-bleed-layout > .edge-bleed-media-left {
	--edge-bleed-mobile-fix: 0px;
	--edge-bleed-size: max(calc(var(--container-edge-offset, 25px) + var(--edge-bleed-extra, 0px) + var(--edge-bleed-mobile-fix, 0px)), 0px);
}

/* On étend le bloc média lui-même pour coller réellement au viewport */
.row.edge-bleed-layout > .edge-bleed-media-right > :first-child {
	width: calc(100% + var(--edge-bleed-size));
	margin-right: calc(-1 * var(--edge-bleed-size));
}

.vc_row.edge-bleed-layout > .edge-bleed-media-right > .vc_column-inner > .wpb_wrapper > :first-child {
	width: calc(100% + var(--edge-bleed-size));
	margin-right: calc(-1 * var(--edge-bleed-size));
}

.row.edge-bleed-layout > .edge-bleed-media-left > :first-child {
	width: calc(100% + var(--edge-bleed-size));
	margin-left: calc(-1 * var(--edge-bleed-size));
}

.vc_row.edge-bleed-layout > .edge-bleed-media-left > .vc_column-inner > .wpb_wrapper > :first-child {
	width: calc(100% + var(--edge-bleed-size));
	margin-left: calc(-1 * var(--edge-bleed-size));
}

.vc_row.edge-bleed-layout > .edge-bleed-media-right .wpb_single_image,
.vc_row.edge-bleed-layout > .edge-bleed-media-left .wpb_single_image {
	margin-bottom: 0;
}

.vc_row.edge-bleed-layout > .edge-bleed-media-right .wpb_single_image .vc_figure-caption,
.vc_row.edge-bleed-layout > .edge-bleed-media-left .wpb_single_image .vc_figure-caption {
	box-sizing: border-box;
	width: 100%;
}

.vc_row.edge-bleed-layout > .edge-bleed-media-left .wpb_single_image .vc_figure-caption {
	padding-left: calc(var(--gap-md) + var(--edge-bleed-size, 0px));
	padding-right: var(--gap-md);
}

.vc_row.edge-bleed-layout > .edge-bleed-media-right .wpb_single_image .vc_figure-caption {
	padding-left: var(--gap-md);
	padding-right: calc(var(--gap-md) + var(--edge-bleed-size, 0px));
}

.vc_row.edge-bleed-layout > .edge-bleed-media-right .vc_figure,
.vc_row.edge-bleed-layout > .edge-bleed-media-left .vc_figure,
.vc_row.edge-bleed-layout > .edge-bleed-media-right .vc_single_image-wrapper,
.vc_row.edge-bleed-layout > .edge-bleed-media-left .vc_single_image-wrapper,
.vc_row.edge-bleed-layout > .edge-bleed-media-right .vc_single_image-img,
.vc_row.edge-bleed-layout > .edge-bleed-media-left .vc_single_image-img {
	display: block;
	width: 100%;
}

@media (min-width: 992px) {
	.row.edge-bleed-layout, .vc_row.edge-bleed-layout {
		align-items: stretch;
	}

	/* Au-delà de 1920px, on prolonge jusqu'au viewport */
	.row.edge-bleed-layout > .edge-bleed-media-right, .vc_row.edge-bleed-layout > .edge-bleed-media-right,
	.row.edge-bleed-layout > .edge-bleed-media-left, .vc_row.edge-bleed-layout > .edge-bleed-media-left {
		--edge-bleed-extra: max((100vw - 1920px) / 2, 0px);
	}
}

@media (max-width: 991px) {
	.vc_row.edge-bleed-layout > .edge-bleed-media-right,
	.vc_row.edge-bleed-layout > .edge-bleed-media-left {
		--edge-bleed-size: max(var(--container-edge-offset, 25px), 0px);
	}

	.vc_row.edge-bleed-layout > .edge-bleed-media-left .wpb_single_image .vc_figure-caption {
		padding-left: calc(var(--gap-md) + var(--edge-bleed-size));
		padding-right: var(--gap-md);
	}

	.vc_row.edge-bleed-layout > .edge-bleed-media-right .wpb_single_image .vc_figure-caption {
		padding-left: var(--gap-md);
		padding-right: calc(var(--gap-md) + var(--edge-bleed-size));
	}
}

@media (max-width: 767px) {
	.vc_row.edge-bleed-layout {
		--edge-bleed-mobile-fix: 0px;
	}
}


/* =============================================
   MEDIA FRAME (IMAGES AVEC OMBRE + RADIUS)
   ============================================= */
.media-frame, .wpb_single_image:not(.media-frame) {
	--media-radius-tl: var(--border-radius);
	--media-radius-tr: var(--border-radius);
	--media-radius-br: var(--border-radius);
	--media-radius-bl: var(--border-radius);
	position: relative;
	overflow: hidden;
	border-top-left-radius: var(--media-radius-tl);
	border-top-right-radius: var(--media-radius-tr);
	border-bottom-right-radius: var(--media-radius-br);
	border-bottom-left-radius: var(--media-radius-bl);
}

.media-frame::after, .wpb_single_image:not(.media-frame)::after {
	content: "";
	position: absolute;
	inset: 0;
	box-shadow: var(--inner-shadow);
	border-top-left-radius: var(--media-radius-tl);
	border-top-right-radius: var(--media-radius-tr);
	border-bottom-right-radius: var(--media-radius-br);
	border-bottom-left-radius: var(--media-radius-bl);
	pointer-events: none;
	z-index: 2;
}

.media-frame-link {
	display: block;
	line-height: 0;
}

.media-frame-image, .wpb_single_image:not(.media-frame) > .vc_figure > a.vc_single_image-wrapper .vc_single_image-img {
	display: block;
	width: 100%;
	height: auto;
	border-top-left-radius: var(--media-radius-tl);
	border-top-right-radius: var(--media-radius-tr);
	border-bottom-right-radius: var(--media-radius-br);
	border-bottom-left-radius: var(--media-radius-bl);
	transition: transform 0.5s ease;
}

.media-frame-link:hover .media-frame-image,
.media-frame-link:focus-visible .media-frame-image, 
.wpb_single_image:not(.media-frame) > .vc_figure > a.vc_single_image-wrapper:hover .vc_single_image-img,
.wpb_single_image:not(.media-frame) > .vc_figure > a.vc_single_image-wrapper:focus-visible .vc_single_image-img {
	transform: scale(1.05);
}

.media-frame-hover:hover .media-frame-image,
.media-frame-hover:focus-visible .media-frame-image {
	transform: scale(1.05);
}

.wpb_single_image:not(.media-frame), .wpb_single_image:not(.media-frame)::after, 
.wpb_single_image:not(.media-frame) > .vc_figure, 
.wpb_single_image:not(.media-frame) > .vc_figure > .vc_single_image-wrapper, 
.wpb_single_image:not(.media-frame) > .vc_figure > a.vc_single_image-wrapper .vc_single_image-img {
	border-bottom-left-radius: 0 !important;
	max-width: fit-content;
}

/* WPBakery: quand une legende est presente, l'ombrage doit rester sur l'image seulement. */
.wpb_single_image.media-frame {
	background-color: var(--sixth);
}

.wpb_single_image.media-frame::after {
	display: none;
}

.wpb_single_image.media-frame > .vc_figure, .wpb_single_image:not(.media-frame) > .vc_figure {
	margin: 0;
}

.wpb_single_image.media-frame > .vc_figure > .vc_single_image-wrapper,
.wpb_single_image.media-frame > .vc_figure > a,
.wpb_single_image:not(.media-frame) > .vc_figure > .vc_single_image-wrapper,
.wpb_single_image:not(.media-frame) > .vc_figure > a {
	position: relative;
	display: block;
	line-height: 0;
	overflow: hidden;
	border-top-left-radius: var(--media-radius-tl);
	border-top-right-radius: var(--media-radius-tr);
	border-bottom-right-radius: var(--media-radius-br);
	border-bottom-left-radius: var(--media-radius-bl);
}

.wpb_single_image.media-frame > .vc_figure > .vc_single_image-wrapper:last-child,
.wpb_single_image.media-frame > .vc_figure > a:last-child,
.wpb_single_image:not(.media-frame) > .vc_figure > .vc_single_image-wrapper:last-child,
.wpb_single_image:not(.media-frame) > .vc_figure > a:last-child {
	border-bottom-right-radius: var(--media-radius-br);
	border-bottom-left-radius: var(--media-radius-bl);	
}

.wpb_single_image.media-frame > .vc_figure > .vc_single_image-wrapper::after,
.wpb_single_image.media-frame > .vc_figure > a::after,
.wpb_single_image:not(.media-frame) > .vc_figure > .vc_single_image-wrapper::after,
.wpb_single_image:not(.media-frame) > .vc_figure > a::after {
	content: "";
	position: absolute;
	inset: 0;
	box-shadow: var(--inner-shadow);
	border-top-left-radius: inherit;
	border-top-right-radius: inherit;
	border-bottom-right-radius: inherit;
	border-bottom-left-radius: inherit;
	pointer-events: none;
	z-index: 2;
}

.wpb_single_image.media-frame > .vc_figure > .vc_single_image-wrapper .vc_single_image-img,
.wpb_single_image.media-frame > .vc_figure > a .vc_single_image-img,
.wpb_single_image:not(.media-frame) > .vc_figure > .vc_single_image-wrapper .vc_single_image-img,
.wpb_single_image:not(.media-frame) > .vc_figure > a .vc_single_image-img {
	display: block;
	width: 100%;
	height: auto;
	transition: transform 0.5s ease;
}

.entry-content a[href]:has(img.aligncenter),
.entry-content a[href]:has(img.alignright),
.entry-content a[href]:has(img.alignleft) {
	display: block;
	line-height: 0;
	position: relative;
	overflow: hidden !important;
}

.entry-content a[href]:has(img.aligncenter) img.aligncenter,
.entry-content a[href]:has(img.alignright) img.alignright,
.entry-content a[href]:has(img.alignleft) img.alignleft {
	display: block;
	float: none;
	margin: 0;
	border-radius: 0 !important;
	transition: transform 0.5s ease;
}

.entry-content a[href]:has(img.aligncenter),
.entry-content a[href]:has(img.alignright) {
	--media-radius-tl: var(--border-radius);
	--media-radius-tr: var(--border-radius);
	--media-radius-br: var(--border-radius);
	--media-radius-bl: var(--border-radius);
	border-top-left-radius: var(--media-radius-tl);
	border-top-right-radius: var(--media-radius-tr);
	border-bottom-right-radius: var(--media-radius-br);
}

.entry-content a[href]:has(img.alignleft) {
	--media-radius-tl: var(--border-radius);
	--media-radius-tr: var(--border-radius);
	--media-radius-br: var(--border-radius);
	--media-radius-bl: var(--border-radius);
	border-top-left-radius: var(--media-radius-tl);
	border-top-right-radius: var(--media-radius-tr);
	border-bottom-left-radius: var(--media-radius-bl);
}

.entry-content a[href]:has(img.alignright) {
	float: right;
	margin: 0 0 1.5em 1.5em;
}

.entry-content a[href]:has(img.alignleft) {
	float: left;
	margin: 0 1.5em 1.5em 0;
}

.entry-content a[href]:has(img.aligncenter) {
	width: fit-content;
	margin: 1.5em auto;
}

@media (max-width: 991px) {
	img.alignright,
	img.alignleft,
	img.aligncenter,
	.entry-content a[href]:has(img.alignright),
	.entry-content a[href]:has(img.alignleft),
	.entry-content a[href]:has(img.aligncenter) {
		float: none;
		clear: both;
		display: block;
		width: 100%;
		max-width: 100%;
		margin: var(--gap-sm) auto var(--gap-lg) !important;
	}

	.entry-content a[href]:has(img.alignright) img.alignright,
	.entry-content a[href]:has(img.alignleft) img.alignleft,
	.entry-content a[href]:has(img.aligncenter) img.aligncenter {
		width: 100%;
		height: auto;
	}
}

.wpb_single_image.media-frame > .vc_figure > a.vc_single_image-wrapper:hover .vc_single_image-img,
.wpb_single_image.media-frame > .vc_figure > a.vc_single_image-wrapper:focus-visible .vc_single_image-img,
.wpb_single_image.media-frame > .vc_figure > a:hover .vc_single_image-img,
.wpb_single_image.media-frame > .vc_figure > a:focus-visible .vc_single_image-img, 
.entry-content a[href]:has(img.aligncenter):hover img.aligncenter, 
.entry-content a[href]:has(img.alignright):hover img.alignright, 
.entry-content a[href]:has(img.alignleft):hover img.alignleft {
	transform: scale(1.05);
}

.wpb_single_image.media-frame > .vc_figure > .vc_single_image-wrapper + .vc_figure-caption {
	padding: var(--gap-sm) var(--gap-md);
	font-size: var(--text-base); 
	line-height: 1.3;
}

.media-radius-no-tl, .media-radius-no-tl .media-frame::after { --media-radius-tl: 0 !important; }
.media-radius-no-tr, .media-radius-no-tr .media-frame::after { --media-radius-tr: 0 !important; }
.media-radius-no-br, .media-radius-no-br.media-frame::after { --media-radius-br: 0 !important; }
.media-radius-no-bl, .media-radius-no-bl.media-frame::after { --media-radius-bl: 0 !important; }

/* =============================================
   BOUTONS
   ============================================= */
.btn-wrapper {
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
}

.btn, a.vc_btn3, .gform_wrapper input[type="submit"],
.gform_wrapper input[type="button"],
.gform_wrapper button[type="submit"],
.gform_wrapper button[type="button"]:not(.ui-select-trigger):not(.ui-select-option),
.gform_wrapper .gform_button {
	position: relative;
	display: inline-block;
	margin-top: var(--gap-sm);
	padding: 13px 25px 11px !important;
	font-size: 14px !important;
	line-height: 1;
	text-transform: uppercase;
	text-decoration: none;
	text-align: center;
	background-color: var(--accent) !important;
	color: var(--sixth) !important;
	border: none !important;
	border-radius: 20px !important;
	cursor: pointer !important;
	transition: all 0.3s ease !important;
}

.btn:hover, a.vc_btn3:hover, .gform_wrapper input[type="submit"]:hover,
.gform_wrapper input[type="button"]:hover,
.gform_wrapper button[type="submit"]:hover,
.gform_wrapper button[type="button"]:hover,
.gform_wrapper .gform_button:hover {
	background-color: var(--primary) !important;
	color: var(--sixth) !important;
}

.btn-md {
	padding: 11px 25px 9px !important;
	border-radius: 20px !important;
}

.btn-sm {
	padding: 10px 18px 9px !important;
	border-radius: 20px !important;
}

@media (max-width: 767px) {
	.btn, a.vc_btn3 { max-width: 250px; margin: 0 auto; }
	body.page-template-template-liste-formations .btn, body.archive-categorie-formation .btn, body.page-template-template-liste-formations a.vc_btn3, body.archive-categorie-formation a.vc_btn3 { max-width: fit-content; }
	.btn-md { font-size: 13px !important; }	
	.btn-sm { font-size: 12px !important; }
}
@media (min-width: 768px) {
	.btn, a.vc_btn3, .gform_wrapper input[type="submit"],
	.gform_wrapper input[type="button"],
	.gform_wrapper button[type="submit"],
	.gform_wrapper button[type="button"]:not(.ui-select-trigger):not(.ui-select-option),
	.gform_wrapper .gform_button { padding: 17px 35px 15px !important; font-size: 20px !important; border-radius: 30px !important; }
	.btn-md { padding: 12px 23px 9px !important; font-size: 14px !important; border-radius: 25px !important; }
	.btn-sm { padding: 11px 20px 9px !important; font-size: 14px !important; }
}

@media (min-width: 992px) {
	.btn-ancre { white-space: nowrap; margin: 0 !important; }
}

@media (min-width: 1200px) {
	.btn, a.vc_btn3, .gform_wrapper input[type="submit"],
	.gform_wrapper input[type="button"],
	.gform_wrapper button[type="submit"],
	.gform_wrapper button[type="button"]:not(.ui-select-trigger):not(.ui-select-option),
	.gform_wrapper .gform_button { padding: 19px 40px 17px !important; font-size: 22px !important; border-radius: 35px !important; }
	.btn-md { padding: 16px 31px 13px !important; font-size: 16px !important; border-radius: 30px !important; }
	.btn-sm { padding: 15px 28px 13px !important; font-size: 15px !important; border-radius: 25px !important; }
}

@media (min-width: 1400px) {
	.btn, a.vc_btn3, .gform_wrapper input[type="submit"],
	.gform_wrapper input[type="button"],
	.gform_wrapper button[type="submit"],
	.gform_wrapper button[type="button"]:not(.ui-select-trigger):not(.ui-select-option),
	.gform_wrapper .gform_button { padding: 23px 42px 19px !important; font-size: 24px !important; border-radius: 50px !important; }
	.btn-md	 { padding: 19px 35px 16px !important; font-size: 18px !important; border-radius: 40px !important; }
	.btn-sm { padding: 15px 28px 13px !important; font-size: 15px !important; border-radius: 30px !important; }
}

/* Variantes de couleur */
.btn-white {
	background-color: var(--sixth) !important;
	color: var(--primary) !important;
}

.btn-white:hover {
	background-color: var(--third) !important;
	color: var(--sixth) !important;
}

.btn-primary {
	background-color: var(--primary) !important;
	color: var(--sixth) !important;
}

.btn-primary:hover {
	background-color: var(--third) !important;
	color: var(--sixth) !important;
}

.btn-third {
	background-color: var(--third) !important;
	color: var(--sixth) !important;
}

.btn-third:hover {
	background-color: var(--primary) !important;
	color: var(--sixth) !important;
}

/* =============================================
   LARGEURS SPÉCIALES
   ============================================= */
/* Container étroit */
.largeur100 {
	width: 100%;
}

.largeur100 .container, .etroit {
	max-width: 1300px;
}
.etroit.centrer {
	text-align: center !important;
	margin-left: auto !important;
	margin-right: auto !important;
}