@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&display=swap');

:root {
    --primary-blue: #250E62;
    --primary-yellow: #FECF0D;
    --text-dark: #111111;
    --bg-light: #F3F0EF;
    --white: #FFFFFF;
    --dark-gray: #252525;

    /* Typographie */
    --text-xxs: 11px;
    --text-xs: 13px;
    --text-sm: 14px;
    --text-base: 16px;
    --text-md: 18px;
    --text-lg: 20px;
    --text-xl-sm: 22px;
    --text-xl: 24px;
    --text-xl-md: 28px;
    --text-xxl: 32px;
    --text-display-sm: 36px;
    --text-display: 42px;
    --text-display-lg: 48px;
}

body {
    font-family: 'Outfit', sans-serif !important;
}

a {
	color: #35747f;
	text-decoration: underline;
	transition: color .3s;
}
	a:hover { color: #35747f; }
	
	.selected { text-decoration: underline; }


h1 {
	color: #35747f;
	font-weight: lighter;
	font-size: 2em;
	margin: 0.67em 0;
}

h2, h3 {
	color: #35747f;
	font-weight: lighter;
}


/* bouton pour les liens */
.bt, .bt.internal {
	background-color: #fff;
	color: #35747f;

	border: 1px solid #549ba0;/*35747f*/
	border-radius: 0.5em;
}
	.bt:hover, .bt.selected {
		background-color: #35747f;
		color: #fff;
	}



/* Couleur */
.color { color: #35747f; }
.color-alt { color: #76a5af; }

.bg-color {
	background-color: #35747f;
	color: #fff;
}
	a.bg-color:hover, a .bg-color:hover  {
		background-color: #fff;
		color: #35747f;
	}


/* Header */
header { box-shadow: 0px 10px 9px -9px rgba(153,156,153,0.37); }


/* Formulaire contact */
#contact input[name='reponse'] { display: none; }



/* Inspiré par knacss.com (Raphael Goetter) et donc normalize.css (Nicolas Gallagher & Jonathan Neal) */

/* Reset */

html {
	font-family: sans-serif;
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
	font-size: 62.5%;
	font-size: calc(1em * .625);
	scroll-behavior: smooth;
}

body {
	margin: 0;
	box-sizing: border-box;	
	background-color: #fff;
	color: #000;
	font-family: Helvetica, Arial, sans-serif;
	line-height: 1.5;
	/* letter-spacing: 0.12em; Accessible */
	/* word-spacing: 0.16em; Accessible */
	font-size: 1.6rem;
}


/*body > script { display: none !important; } Vérif la pertinence 06/01/2021 */

* { box-sizing: inherit; }

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; }

/* Pas utilisé 06/01/2021
audio, canvas, progress, video {
	display: inline-block;
	vertical-align: baseline;
}

audio:not([controls]) {
	display: none;
	height: 0;
} */

[hidden], template { display: none; }

a { 
	background-color: transparent;
	/* color: #333; valeur par défaut dans le theme 06/01/2021 */
}

	a:active, a:hover, a:focus { 
		/* outline: 0; Pas accessible 24/01/2022 */
		/* color: #000; */
	}
	a:focus-visible { outline-offset: 3px; }

/* abbr[title] { border-bottom: 1px dotted; } Très spécifique 06/01/2021 */

b, strong { font-weight: bold; }

/* dfn { font-style: italic; } Pas utilisé 06/01/2021 */

/* h1 { valeur par défaut dans le theme 06/01/2021
	font-size: 2em;
	margin: 0.67em 0;
} */

/* mark { Pas utilisé 06/01/2021
	background: #ff0;
	color: #000;
} */

small { font-size: 80%; }

sub, sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}
sup { top: -0.5em; }
sub { bottom: -0.25em; }

img { 
	border: 0;
	vertical-align: middle;
}
/*img:not([src$=".svg"]) { height: auto; }*/

svg:not(:root) { overflow: hidden; }

figure { margin: 1em 40px; }

blockquote, figure {
	margin-left: 0;
	margin-right: 0;
}

hr { 
	box-sizing: content-box;
	height: 0;
}

/* pre { overflow: auto; } Pas utilisé 06/01/2021 */

/* code, kbd, pre, samp { Pas utilisé 06/01/2021
	white-space: pre-line;
	white-space: pre-wrap;
	font-family: Consolas, "DejaVu Sans Mono", Courier, monospace;
	line-height: normal;
	font-size: 1em;
} */

button, input, optgroup, select, textarea {
	color: inherit;
	font: inherit;
	margin: 0;
	/* outline: none; Pas Accessible 24/01/2022 */
}
	input:focus, textarea:focus { border: 1px solid #000; }
	
button { overflow: visible; }

button, select { text-transform: none; }

button, html input[type="button"], input[type="reset"], input[type="submit"] {
	-webkit-appearance: button;
	cursor: pointer;
}

button[disabled], html input[disabled], .disabled { 
	background-color: buttonface !important;
	color: graytext;
	box-shadow: none;
	cursor: default;
}

button::-moz-focus-inner, input::-moz-focus-inner {
	border: 0;
	padding: 0;
}

input { 
	line-height: normal;
	background-color: #fff;
	border: 1px solid #919191;
    padding: 0.4em 0.5rem 0.5rem;
}

input[type="checkbox"], input[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}

input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; }

input[type="search"] {
	-webkit-appearance: textfield;
	box-sizing: content-box;
}

input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }

/* fieldset { Pas utilisé 06/01/2021
	border: 1px solid #c0c0c0;
	margin: 0 2px;
	padding: 0.35em 0.625em 0.75em;
}

legend {
	border: 0;
	padding: 0;
} */

textarea { 
	overflow: auto;
	padding: 0.4em;
	border: 1px solid #919191;
}

/* optgroup { font-weight: bold; } Pas utilisé 06/01/2021 */

table {
	border-collapse: collapse;
	border-spacing: 0;
}
td, th { padding: 0; }

ul, ol { padding: 0 0 2rem 2rem; }

ul.unstyled, ol.unstyled { list-style: none; }


p, .p-like, ul, ol, dl, blockquote, pre, td, th, label, textarea, caption, details, figure {
	/* margin-top: 0.75em; */
	margin-top: 0;
	margin-bottom: 0;
	line-height: 1.5;
}

p { margin-bottom: 2rem; } /* marge accessible sur les paragraphes */

h1, .h1-like { font-size: 3.2rem; }
h2, .h2-like { font-size: 2.8rem; }
h3, .h3-like { font-size: 2.4rem; }
h4, .h4-like { font-size: 2rem; }
h5, .h5-like { font-size: 1.8rem; }
h6, .h6-like { font-size: 1.6rem; }

em, .italic, address, cite, i, var { font-style: italic; }

/* End Reset*/



/* alternate font-sizing */
.smaller { font-size: 0.6em !important; }
.small { font-size: 0.8em !important; }
.medium { font-size: 1em !important; }
.big { font-size: 1.2em !important; }
.bigger { font-size: 1.5em !important;  }
.biggest { font-size: 2em !important; }
.mega { font-size: 4em !important; }


/* Text effect */
.up { text-transform: uppercase; }
.lighter { font-weight: lighter; }
.normal { font-weight: normal; }
.bold { font-weight: bold; }

/* Color */
.white { color: #fff !important; }
.black { color: #000 !important; }
.grey { color: #808080 !important; }

.yes, .green { color: #358529 !important; }
.orange { color: #a26a01 !important; }
.no, .red { color: #9f2d2d !important; }

.checked { color: #358529 !important; opacity: 1 !important; }

/* .color { color: #77d1d0; } valeur par défaut dans le theme 06/01/2021
.bg-color { background-color: #77d1d0; } */
/* .box-shadow { box-shadow: 0 1px 2px 0 rgba(150, 150, 150, 0.8); } Pas utilisé 06/01/2021 */


/* @todo transfert dans lucide.css */
/* Transparence */
.o50 { opacity: 0.5; }
.o80 { opacity: 0.8; }
.ho1:hover { opacity: 1; } 


/* Rotation */
.r90 { transform: rotate(90deg) }
.r180 { transform: rotate(180deg) }
.r270 { transform: rotate(270deg) }/* @todo vérif l'utilisation */


/* Background */
.nor { background-repeat: no-repeat !important; }
.cover { 
	background-size: cover !important;
	background-repeat: no-repeat;
    background-position: top center;
}
/* .bg-center { background-position: center !important; } Pas utilisé 06/01/2021 */


/* Alignement */
.vat { vertical-align: top !important; }
.vam { vertical-align: middle !important; }
.vab { vertical-align: bottom !important; }
.vabl { vertical-align: baseline !important; }
.vatt { vertical-align: text-top !important; }
.nowrap, .nw { white-space: nowrap; }
.short { text-overflow: ellipsis; }

/* Alignement grids */
.jcc { justify-content: center; }
.jic { justify-items: center; }
.aic { align-items: center; }
.asc { align-self: center; }

/*  Layout and modules */
.mod { overflow: hidden; }

.clear { clear: both; }

.clearfix::after {
	content: "";
	display: table;
	clear: both;
	border-collapse: collapse;
}

.left { margin-right: auto; }
.right { margin-left: auto; }
.auto { margin: auto; }
.center { 
	margin-left: auto !important;
	margin-right: auto !important;
}
	img.center { display: block !important; }

.tl { text-align: left !important; }
.tr { text-align: right !important; }
.tc { text-align: center !important; }
.tj { text-align: justify; }

.fl { float: left; }
.fr { float: right; }

img.fl, figure.fl { margin-right: 1rem; }
img.fr, figure.fr { margin-left: 1rem; }
img.fl, img.fr, figure.fl, figure.fr { margin-bottom: 0.5rem; }

figure.center {	text-align: center; }

article img { max-width: 100%; } /* Pour que les images ne dépassent pas la taille du contener */

/* Pour que l'image au clic soit bien centré dans le figure*/
figure img { display: inline-block !important; }


/* Mise en avant contenu */
.highlight {
	background-color: #808080;
	padding: 2rem;
}


/* Table layout */
/* .row { Pas utilisé 06/01/2021
	display: table;
	table-layout: fixed;
	width: 100%;
}
.row > *, .col {
	display: table-cell;
	vertical-align: top;
} */

.inbl {
  display: inline-block;
  vertical-align: top;
}

.inline { display: inline !important; }
.block { display: block !important; }
/* .inflex { display: inline-flex !important; } Pas utilisé 06/01/2021 */
.none, .editable-hidden { display: none; }

.hidden { visibility: hidden; }
.visible { visibility: visible !important; }

.sr-only {/* pour un texte lisible qu'en mode accessible */
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap; /* added line */
	border: 0;
}

.absolute { position: absolute; }
.fixed { position: fixed; }
.relative { position: relative; }


/* @todo revoir */
/* Forms */
form, .bn {
  border: none;
}
input, button, select, label, .bt {
  vertical-align: middle;
  font-family: inherit;
  font-size: inherit;
}
button, input, optgroup, select, textarea { color: #3a3a3a; }
label {
  display: inline-block;
  vertical-align: middle;
  cursor: pointer;
}
legend {
  border: 0;
  white-space: normal;
}
textarea {
  min-height: 5em;
  vertical-align: top;
  font-family: inherit;
  font-size: inherit;
  resize: vertical;
}
select {
  -webkit-appearance: menulist-button;
}
/* if select styling bugs on WebKit */
/* select { -webkit-appearance: none; } */
/* 'x' appears on right of search input when text is entered. This removes it */
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
  display: none;
}
::-webkit-input-placeholder {
  color: #777;
}
input:-moz-placeholder,
textarea:-moz-placeholder {
  color: #777;
}
/* unstyled forms */
button.unstyled,
input[type="button"].unstyled,
input[type="submit"].unstyled,
input[type="reset"].unstyled {
  padding: 0;
  border: none;
  line-height: 1;
  text-align: left;
  background: none;
  border-radius: 0;
  box-shadow: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
button.unstyled:focus,
input[type="button"].unstyled:focus,
input[type="submit"].unstyled:focus,
input[type="reset"].unstyled:focus {
  box-shadow: none;
  outline: none;
}


/* Curseur */
.pointer { cursor: pointer !important; }

/* Lien */
.tdn, .tdn a { text-decoration: none !important; }
.tdn:hover { text-decoration: none !important; }


/* Pour ajouter des pictos dans les menus select */
/* .fa-select { font-family: FontAwesome, Helvetica, Arial, sans-serif; } Pas utilisé 06/01/2021  */


/* Module */
body.lucide.module > li:last-child { display: none; }


/* Vidéo */
.video {
	position: relative;
	display: inline-block;
}
	.video:after {
		content: '\f144';
		font-family: FontAwesome;
		font-size: 6rem;
		position: absolute;
		left: 50%;
		top: 50%;
		transform: translate(-50%, -50%);
		color: #ff0000;
		opacity: .8;
		transition: all 1.5s;
	}
		.video:hover:after { opacity: 1; }
		.video.play:after { content: ''; }

	.video iframe { display: block; }
		

/* Bouton */
.bt, button {
	/* background-color: #f5f5f5; valeur par défaut dans le theme 06/01/2021
	color: #507075; */
	text-align: center;
	text-decoration: none;
	font-family: sans-serif;

	display: inline-block;

	padding: 0 6px 1px;

	height: auto !important;

	/* border-radius: 3px; valeur par défaut dans le theme 06/01/2021
	border: 1px solid rgba(117, 137, 140, 0.5); */
	/* box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1); Pas utilisé 06/01/2021  */

	overflow: hidden;
    /* text-overflow: ellipsis; @todo crée des bug avec les icones <i .fa> */

	transition: all .3s;
}
	.bt:focus, input[type="button"]:focus, button:focus {
	  -webkit-tap-highlight-color: transparent;
	  -webkit-user-select: none;
	  -moz-user-select: none;
	  -ms-user-select: none;
	  user-select: none;
	}
	.bt:hover, button:hover {
		/* background-color: #75898c; valeur par défaut dans le theme 06/01/2021	
		color: #fff; */
		text-decoration: none;
		box-shadow: none;

		/* box-shadow: 0 -2px 0 rgba(0, 0, 0, 0.2) inset, 0 100px 0 rgba(255, 255, 255, 0.05) inset; Pas utilisé 06/01/2021  */
	}
		.bt a:hover { color: #fff; }
	.bt:active, button:active { 
		box-shadow: 0 2px 0 rgba(0, 0, 0, 0.2) inset, 0 110px 0 rgba(0, 0, 0, 0.1) inset;
	}

/* Bouton de connexion */
.bt.connect {
	font-family: arial;
	font-weight: bold;
	font-size: 12px;
	color: #fff;
    text-decoration: none;
    white-space: nowrap;
	text-align: left;

	padding: 8px;
	margin: 0 0 5px 0;
	width: 100%;
}
	.bt.connect:before {
		font-family: FontAwesome;
		font-size: 15px;
		text-align: center;

		vertical-align: bottom;

		margin-right: 10px;
		padding-right: 8px;

		width: 8%;		
		
		display: inline-block;

		border-right: rgba(0, 0, 0, 0.2) 1px solid;		
	}

	.bt.connect.nohover:hover { box-shadow: none !important; }
	.bt.connect.nohover:active { box-shadow: none !important; }

	/* @todo voir pour déplacer dans le plugin multi-connexion*/
	/*.bt.internal { background-color: #77d1d0; } fusion style.css et global.css 06/01/2021 */
		.bt.connect.internal:before { content: "\e838"; }
	/*.bt.facebook { background-color: #3A5795; }  Pas utilisé 06/01/2021 
		.bt.connect.facebook:before { content: "\f09a"; }
	.bt.google { background-color: #dd4b39; }
		.bt.connect.google:before { content: "\f1a0"; }
	.bt.yahoo { background-color: #4101af; }
		.bt.connect.yahoo:before { content: "\f19e"; }
	.bt.microsoft { background-color: #008299; }
		.bt.connect.microsoft:before { content: "\f17a"; }*/


/* Bouton flottant */
.bt.fixed {
	display: none;	
	position: fixed;
	z-index: 99;/*999*/

	width: auto;
	left: 20px;/* right */
	bottom: 20px;

	margin: 0;
	padding: 0.2rem 1rem;

	border-radius: 30px;

	opacity: 1;/*0.6 pas accessible*/
	text-shadow: none;
}
	.bt.fixed.top { 	
		right: 20px;
		left: inherit;
	}
	.bt.edit, .bt.add, .bt.top { 
		height: 38px !important;
		padding: 0.5rem;
	}
	.bt.fixed.edit { 	
		/* transition: right .1s; */	
		/* opacity: 0.2; pas accessible */
		left: 20px;
		right: initial;
	}
		.bt.fixed.edit.key {
			position: initial;
			border: none;
			margin: 0 0 0 10px;
    		display: inline-block !important;
			vertical-align: middle;
		}
	.bt.fixed.add { 
		margin-bottom: 10px;
		transition: bottom .3s, right .1s, opacity .3s;		
		z-index: 998;
	}
	.bt.fixed.construction { 		
		left: 70px;/*10px*/
		right: initial;
		opacity: 0.6;
		display: block;		
		padding-left: 0.5rem;
		border-radius: 8px;
	}
	.bt.fixed:hover { 		
		opacity: 1 !important;	
	}


/* Image dans le fond d'un input */
.wrapper {
	color: #757575;
	position: relative;
	display: inline-block;
	vertical-align: text-bottom;
	text-align: center;
	top: 4px;
	right: -4px;
	width: 22px;
	margin-left: -28px;
}


/* MESSAGE */
#error, .error {
	border-radius: 5px;
    border: 1px solid #cd0a0a;
    background: #fef1ec;
    color: #9f2d2d;
    z-index: 1000;
}
#popin, #light, .light {
	border-radius: 5px;
	border: 1px solid #fcefa1;
    background: #fbf9ee;
    color: #363636;
    z-index: 1000;
}



/* GRIDS */
@media (min-width: 480px) {/* 544px */
	
	.medium-hidden { display: none !important; }

	.flex { 
		display: flex;
		/* flex-wrap: wrap; Crée un bug */
	}

	/* INFO
	IE ne gère pas l'implicite du auto-flow. il est donc necessaire de spécifier le positionnement de chaque élément fils des grids en css avec :
		-ms-grid-column: x;
		-ms-grid-column: y;
	*/
	.grid {
		display: -ms-grid;
		display: grid;
		grid-auto-flow: column;
		grid-auto-columns: 1fr;
	}

	[class*=" grid-"],
	[class^="grid-"] {
		display: -ms-grid;
		display: grid;
		grid-auto-flow: dense;
	}
	
	/* space */
	.grid.space, 
	[class*=" grid-"].space, 
	[class^="grid-"].space { 
		grid-gap: 1rem;
	}
	.grid.space-l, 
	[class*=" grid-"].space-l, 
	[class^="grid-"].space-l { 
		grid-gap: 2rem;
	}
	.grid.space-xl, 
	[class*=" grid-"].space-xl, 
	[class^="grid-"].space-xl { 
		grid-gap: 4rem;	
	}

}

[class*="grid-2"] {
	-ms-grid-columns: (1fr)[2];
	grid-template-columns: repeat(2, 1fr);
}
  
[class*="grid-3"] {
	-ms-grid-columns: (1fr)[3];
	grid-template-columns: repeat(3, 1fr);
}
  
[class*="grid-4"] {
	-ms-grid-columns: (1fr)[4];
	grid-template-columns: repeat(4, 1fr);
}

/*.pull { margin-right: auto; }
.push { margin-left: auto; } */


/* blocks widths (percentage and pixels) */
.w10 { width: 10%; }
.w20 { width: 20%; }
.w25 { width: 25%; }
.w30 { width: 30%; }
.w33 { width: 33.3333%; }
.w40 { width: 40%; }
.w50 { width: 50%; }
.w60 { width: 60%; }
.w66 { width: 66.6666%; }
.w70 { width: 70%; }
.w75 { width: 75%; }
.w80 { width: 80%; }
.w90 { width: 90%; }
.w100 { width: 100%; }

.w50p { width: 50px; }
.w100p { width: 100px; }
.w150p { width: 150px; }
.w200p { width: 200px; }
.w300p { width: 300px; }

/* .w400p { width: 400px; } Pas utilisé 06/01/2021
.w500p { width: 500px; }
.w600p { width: 600px; }
.w700p { width: 700px; }
.w800p { width: 800px; }
.w960p { width: 960px; }
.w1140p { width: 1140px; } */

.mw320p { max-width: 320px; }
.mw960p { max-width: 960px; }
.mw1140p { max-width: 1140px; }
.wauto { width: auto; }

/* spacing helpers
p,m = padding,margin
a,t,r,b,l = all,top,right,bottom,left
s,m,l,n = small, medium, large, none
*/
.man { margin: 0; }
.mat { margin: 0.5rem; }
.mas { margin: 1rem; }
.mam { margin: 2rem; }
.mal { margin: 4rem; }
.mtn { margin-top: 0; }
.mtt { margin-top: 0.5rem; }
.mts { margin-top: 1rem; }
.mtm { margin-top: 2rem; }
.mtl { margin-top: 4rem; }
.mrn { margin-right: 0; }
.mrt { margin-right: 0.5rem; }
.mrs { margin-right: 1rem; }
.mrm { margin-right: 2rem; }
.mrl { margin-right: 4rem; }
.mbn { margin-bottom: 0; }
.mbt { margin-bottom: 0.5rem; }
.mbs { margin-bottom: 1rem; }
.mbm { margin-bottom: 2rem; }
.mbl { margin-bottom: 4rem; }
.mln { margin-left: 0; }
.mlt { margin-left: 0.5rem; }
.mls { margin-left: 1rem; }
.mlm { margin-left: 2rem; }
.mll { margin-left: 4rem; }

.pan { padding: 0; }
.pat { padding: 0.5rem; }
.pas { padding: 1rem; }
.pam { padding: 2rem; }
.pal { padding: 4rem; }
.ptn { padding-top: 0; }
.ptt { padding-top: 0.5rem; }
.pts { padding-top: 1rem; }
.ptm { padding-top: 2rem; }
.ptl { padding-top: 4rem; }
.prn { padding-right: 0; }
.prt { padding-right: 0.5rem; }
.prs { padding-right: 1rem; }
.prm { padding-right: 2rem; }
.prl { padding-right: 4rem; }
.pbn { padding-bottom: 0; }
.pbt { padding-bottom: 0.5rem; }
.pbs { padding-bottom: 1rem; }
.pbm { padding-bottom: 2rem; }
.pbl { padding-bottom: 4rem; }
.pbp { padding-bottom: 4.9rem; }
.pln { padding-left: 0; }
.plt { padding-left: 0.5rem; }
.pls { padding-left: 1rem; }
.plm { padding-left: 2rem; }
.pll { padding-left: 4rem; }


/* Contenu éditable */
div.editable {
	display: inherit;/*inline-flex inline-block*/
	/* @todo voir car il y a un bug avec les contenu pas très large */
}


/* Barre de progression */
.progress {
	/*background-color: rgba(122, 210, 217, 0.8);*/	
	position: absolute;
	top: 0;
	left: 0;
	max-width: 100%;
	min-height: 4px;
	z-index: 10;
	opacity: .8;
	transition: all .3s;
}


/* LAYER & Tooltip */
.layer, body .ui-tooltip  {
	background-color: #fbfbfb;
	border-width: 1px;
	border: 0;
	
	border-top: 1px solid #ccc;
	border-radius: 4px;
	box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 2px 5px rgba(0, 0, 0, 0.3);
}
	/* Fleche au dessu du layer */
	.layer:before, .layer:after, .ui-tooltip:before, .ui-tooltip:after {
		content: "";
		position: absolute;
		top: -20px;
		left: 2rem;
		height: 0;
		width: 0;
		border: 10px solid transparent;
		border-bottom-color: rgba(190, 190, 190, 0.6);
	}
		.layer:after, .ui-tooltip:after {		
			top: -18px;
			border-bottom-color: #ffffff;			
		}


/* HEADER */

/* 
#accessibilite {
	background-color: #fff;
	position: absolute;
	padding: 1rem;
	opacity: 0;
	z-index: -1;
}
	#accessibilite:focus-within, #accessibilite:hover {
		opacity: 1;
		z-index: 100000;
	}
*/


header #logo { transition: opacity .5s; }
	header #logo:hover { opacity: 0.6; }


/* MENU DE NAVIGATION */
	header nav ul {
		list-style: none;
		display: inline-block;
		padding: 0;
		margin-top: 2rem;
	}
		header nav li {
			float: left;
			margin: 0 0.5rem;
		}
		header nav a { text-decoration: none; }


	/* BOUTON BURGER & Animation */
	header nav .burger {
		display: none;
		position: absolute;
		overflow: hidden;
		float: right;
		top: 10px;
		right: 0;
		margin: 0 1rem;
		padding: 0;
		width: 30px;
		height: 30px !important;
		font-size: 0;
		text-indent: -9999px;
		appearance: none;
		box-shadow: none;
		border-radius: 3px;
		border: none;
		cursor: pointer;
		transition: background 0.3s;

		background-color: #35747f;
	}
		.burger span {
			position: absolute;
			top: 14px;
			left: 6px;
			right: 6px;
			height: 2px;
			background: white;

			transition: background 0.3s;
		}

			.burger span::before,
			.burger span::after {
				position: absolute;
				display: block;
				left: 0;
				width: 100%;
				height: 2px;
				background-color: #fff;
				content: "";

				transition-duration: 0.3s, 0.3s;
				transition-delay: 0.3s, 0s;
			}

			.burger span::before { top: -6px; transition-property: top, transform; }
			.burger span::after { bottom: -6px; transition-property: bottom, transform; }

		/* active state, i.e. menu open */
		.burger.active { background-color: #cb0032; }
			.burger.active span { background: none; }
				.burger.active span::before { top: 0; transform: rotate(45deg);	}
				.burger.active span::after { bottom: 0; transform: rotate(-45deg); }
				.burger.active span::before,
				.burger.active span::after { transition-delay: 0s, 0.3s; }



/* HIDING content */
@media (max-width: 640px) {
	.no-small-screen, .noss { display: none !important; }
	.small-screen { display: block; }
}
@media (min-width: 1280px) {
	.no-large-screen { display: none; }
}





/* RESPONSIVE medium */
@media (max-width: 480px)
{
	.w10, .w20, .w25, .w30, .w33, .w40, .w50,
	.w60, .w66, .w70, .w75, .w80, .w90 {
		width: auto;
		float: none;
	}

	/* @todo revoir les trailles */
	.plm, .pll { padding-left: 0; }
	.prm, .prl { padding-right: 0; }

	/* @todo revoir les trailles */
	.mrl { margin-right: 0; }
	.mll { margin-left: 0; }

	.tr, .tl { text-align: center !important; }

	article {
		/*display: inline-block; Crée un bug collateral avec l'editeur de menu ... utile ?*/
		padding-left: 0.5rem !important;
		padding-right: 0.5rem !important;
	}
		
	.editable img.fl, .editable img.fr {
		float: none;
		display: block;
		margin: 0 auto 0.5rem;
	}
	.editable img {
		max-width: 100%;
		height: auto;
	}
}

/* RESPONSIVE small */
@media (min-width: 321px) and (max-width: 640px) {
	/* quick reset in small resolution and less */
	/* .w600p, Pas utilisé 06/01/2021
	.w700p,
	.w800p,
	.w960p, */
	.mw960p {
		width: auto;
		float: none;
	}	
}

/* RESPONSIVE tiny */
@media (max-width: 320px) {
	/* quick tiny resolution reset */
	.mod {
		/* display: block !important; empèche les toggle js */
		float: none !important;
		clear: none !important;
		width: auto !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		border: 0;
	}
	.w300p {
		width: auto;
		float: none;
	}
	/* .row {  Pas utilisé 06/01/2021
		display: block !important;
		width: 100% !important;
	} */

	th,
	td {
		display: block;
		width: auto;
		text-align: left;
	}
}


/* PRINT RESET */
@media print {
	* {
		background: transparent !important;
		box-shadow: none !important;
		text-shadow: none !important;
	}
	/* @todo voir pour passer les textes en noir et les images en grayscale pour plus d'écoconception */
	body {
		width: auto;
		margin: auto;
		font-family: serif;
		font-size: 12pt;
	}
	p, .p-like,
	h1, .h1-like,
	h2, .h2-like,
	h3, .h3-like,
	h4, .h4-like,
	h5, .h5-like,
	h6, .h6-like,
	blockquote,
	ul,
	ol {
		color: #000;
		margin: auto;
	}
	.print { display: block; }
	.no-print { display: none; }
	/* no orphans, no widows */
	p,
	.p-like,
	blockquote {
		orphans: 3;
		widows: 3;
	}
	/* no breaks inside these elements */
	blockquote,
	ul,
	ol {
		page-break-inside: avoid;
	}
	/* no breaks after these elements */
	h1, .h1-like,
	h2, .h2-like,
	h3, .h3-like,
	caption {
		page-break-after: avoid;
	}
	a {	color: #000; }
	/* displaying URLs
	a[href]::after {
	content: " (" attr(href) ")";
	}
	*/
	a[href^="javascript:"]::after,
	a[href^="#"]::after {
		content: "";
	}
}


/* ---------------------------------- */
/* ==Icons                            */
/* ---------------------------------- */
.fa {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.fa-fw {
  width: 1.28571429em;
  text-align: center;
}
.fa-spin {
  animation: fa-spin 2s infinite linear;
}

.fa-ul {
  padding-left: 0;
  list-style-type: none;
}
.fa-ul > li {
  position: relative;
}
/* .fa-li {
  position: absolute;
  left: -2.14285714em;
  width: 2.14285714em;
  top: 0.3em;
  text-align: center;
} */
.fa-li {
    position: relative;
    left: inherit;
    top: inherit;
    width: inherit;
   	float: none;
}

@keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}


/* Les icones */
.fa-music:before { content: '\e800'; } /* '' */
.fa-search:before { content: '\e801'; } /* '' */
.fa-mail:before { content: '\e802'; } /* '' */
.fa-star:before { content: '\e803'; } /* '' */
.fa-user:before { content: '\e804'; } /* '' */
.fa-users:before { content: '\e805'; } /* '' */
.fa-video:before { content: '\e806'; } /* '' */
.fa-picture:before { content: '\e807'; } /* '' */
.fa-camera:before { content: '\e808'; } /* '' */
.fa-th-large:before { content: '\e809'; } /* '' */
.fa-ok:before { content: '\e80a'; } /* '' */
.fa-cancel:before { content: '\e80b'; } /* '' */
.fa-plus:before { content: '\e80c'; } /* '' */
.fa-info-circled:before { content: '\e80d'; } /* '' */
.fa-home:before { content: '\e80e'; } /* '' */
.fa-link:before { content: '\e80f'; } /* '' */
.fa-attach:before { content: '\e810'; } /* '' */
.fa-lock-open:before { content: '\e811'; } /* '' */
.fa-eye:before { content: '\e812'; } /* '' */
.fa-eye-off:before { content: '\e813'; } /* '' */
.fa-tag:before { content: '\e814'; } /* '' */
.fa-flag:before { content: '\e815'; } /* '' */
.fa-upload:before { content: '\e816'; } /* '' */
.fa-pencil:before { content: '\e817'; } /* '' */
.fa-print:before { content: '\e818'; } /* '' */
.fa-bell:before { content: '\e819'; } /* '' */
.fa-attention:before { content: '\e81a'; } /* '' */
.fa-logout:before { content: '\e81b'; } /* '' */
.fa-location:before { content: '\e81c'; } /* '' */
.fa-doc:before { content: '\e81d'; } /* '' */
.fa-phone:before { content: '\e81e'; } /* '' */
.fa-cog:before { content: '\e81f'; } /* '' */
.fa-basket:before { content: '\e820'; } /* '' */
.fa-volume-off:before { content: '\e821'; } /* '' */
.fa-volume-up:before { content: '\e822'; } /* '' */
.fa-clock:before { content: '\e823'; } /* '' */
.fa-resize-full:before { content: '\e824'; } /* '' */
.fa-resize-small:before { content: '\e825'; } /* '' */
.fa-resize-vertical:before { content: '\e826'; } /* '' */
.fa-resize-horizontal:before { content: '\e827'; } /* '' */
.fa-up-open:before { content: '\e828'; } /* '' */
.fa-up-big:before { content: '\e829'; } /* '' */
.fa-lock:before { content: '\e82a'; } /* '' */
.fa-arrows-cw:before { content: '\e82c'; } /* '' */
.fa-globe:before { content: '\e82d'; } /* '' */
.fa-bold:before { content: '\e82e'; } /* '' */
.fa-italic:before { content: '\e82f'; } /* '' */
.fa-align-left:before { content: '\e830'; } /* '' */
.fa-align-center:before { content: '\e831'; } /* '' */
.fa-align-right:before { content: '\e832'; } /* '' */
.fa-align-justify:before { content: '\e833'; } /* '' */
.fa-list:before { content: '\e834'; } /* '' */
.fa-chart-bar:before { content: '\e835'; } /* '' */
.fa-credit-card:before { content: '\e836'; } /* '' */
.fa-floppy:before { content: '\e837'; } /* '' */
.fa-key:before { content: '\e838'; } /* '' */
.fa-login:before { content: '\e839'; } /* '' */
.fa-x-twitter:before { content: '\e86c'; } /* '' */
.fa-no-access:before { content: '\e86f'; } /* '' */
.fa-move:before { content: '\f047'; } /* '' */
.fa-link-ext:before { content: '\f08e'; } /* '' */
.fa-twitter:before { content: '\f099'; } /* '' */
.fa-facebook:before { content: '\f09a'; } /* '' */
.fa-rss:before { content: '\f09e'; } /* '' */
.fa-menu:before { content: '\f0c9'; } /* '' */
.fa-underline:before { content: '\f0cd'; } /* '' */
.fa-money:before { content: '\f0d6'; } /* '' */
.fa-mail-alt:before { content: '\f0e0'; } /* '' */
.fa-linkedin:before { content: '\f0e1'; } /* '' */
.fa-doc-text:before { content: '\f0f6'; } /* '' */
.fa-angle-double-up:before { content: '\f102'; } /* '' */
.fa-quote-left:before { content: '\f10d'; } /* '' */
.fa-quote-right:before { content: '\f10e'; } /* '' */
.fa-folder-empty:before { content: '\f114'; } /* '' */
.fa-code:before { content: '\f121'; } /* '' */
.fa-help:before { content: '\f128'; } /* '' */
.fa-superscript:before { content: '\f12b'; } /* '' */
.fa-calendar-empty:before { content: '\f133'; } /* '' */
.fa-play-circled:before { content: '\f144'; } /* '' */
.fa-ticket:before { content: '\f145'; } /* '' */
.fa-doc-inv:before { content: '\f15b'; } /* '' */
.fa-youtube:before { content: '\f167'; } /* '' */
.fa-instagram:before { content: '\f16d'; } /* '' */
.fa-up:before { content: '\f176'; } /* '' */
.fa-skype:before { content: '\f17e'; } /* '' */
.fa-language:before { content: '\f1ab'; } /* '' */
.fa-soundcloud:before { content: '\f1be'; } /* '' */
.fa-file-pdf:before { content: '\f1c1'; } /* '' */
.fa-file-word:before { content: '\f1c2'; } /* '' */
.fa-file-excel:before { content: '\f1c3'; } /* '' */
.fa-file-powerpoint:before { content: '\f1c4'; } /* '' */
.fa-file-image:before { content: '\f1c5'; } /* '' */
.fa-file-archive:before { content: '\f1c6'; } /* '' */
.fa-file-audio:before { content: '\f1c7'; } /* '' */
.fa-file-video:before { content: '\f1c8'; } /* '' */
.fa-file-code:before { content: '\f1c9'; } /* '' */
.fa-circle-notch:before { content: '\f1ce'; } /* '' */
.fa-paper-plane-empty:before { content: '\f1d9'; } /* '' */
.fa-header:before { content: '\f1dc'; } /* '' */
.fa-paragraph:before { content: '\f1dd'; } /* '' */
.fa-share:before { content: '\f1e0'; } /* '' */
.fa-paypal:before { content: '\f1ed'; } /* '' */
.fa-trash:before { content: '\f1f8'; } /* '' */
.fa-pinterest:before { content: '\f231'; } /* '' */
.fa-user-plus:before { content: '\f234'; } /* '' */
.fa-shopping-basket:before { content: '\f291'; } /* '' */
.fa-hashtag:before { content: '\f292'; } /* '' */
.fa-question-circle-o:before { content: '\f29c'; } /* '' */
.fa-user-circle:before { content: '\f2bd'; } /* '' */
.fa-snowflake-o:before { content: '\f2dc'; } /* '' */
.fa-twitter-squared:before { content: '\f304'; } /* '' */
.fa-facebook-squared:before { content: '\f308'; } /* '' */


/* AccessConfig | Access42 | accessconfig.a11y.fr */

/**
 * Common styles to enforced and inverted contrasts
 */

/* Cancel background images and image borders which may cause contrast problems */
.hc *,
.hc *::after,
.hc *::before {
	border-image: none !important;
	text-shadow: none !important;
}

/* Let SVG elements adapt to the chosen color scheme */
.hc path,
.hc polygon,
.hc svg,
.hc svg * {
	fill: currentColor;
}

/* Add a border on form elements when custom contrasts are on */
.hc input,
.hc textarea,
.hc select,
.hc form button {
	border-width: 1px !important;
	border-style: solid !important;
}

/* Change color of ::first-letter pseudo-elements if needed */
.hc *::first-letter {
	color: inherit !important;
}

/* input[type="range"] */
.hc input[type="range"] {
	border: 0 !important;
}

.hc input[type="range"]::-webkit-slider-thumb {
	margin-top: -.25em; /* You need to specify a margin in Chrome, but in Firefox and IE it is automatic */
}

	@supports (-ms-ime-align: auto) { /* Dirty hack to target Edge only */
		.hc input[type="range"]::-webkit-slider-thumb {
			margin-top: 0;
		}
	}

.hc input[type="range"]::-webkit-slider-runnable-track {
	height: 0.313em;
}


/**
 * Enforced contrast (.hc)
 */
.hc,
.hc *{
	background-color: #343643 !important;
	color: white !important;
}

.hc,
.hc *,
.hc *::before,
.hc *::after{
	border-color: white !important;
}

/* Add a border on form elements when high contrast is on */
.hc input,
.hc textarea,
.hc select{
	border-color: #f9fcff !important;
	color: inherit !important;
}

/* High contrast placeholder */
.hc *::-webkit-input-placeholder { /* Chrome/Opera/Safari */
	color: white !important;
}

.hc *::-moz-placeholder { /* Firefox 19+ */
	color: white !important;
	opacity: 1 !important;
}

.hc *:-ms-input-placeholder { /* IE 10+ */
	color: white !important;
}

.hc *:-moz-placeholder { /* Firefox 18- */
	color: white !important;
	opacity: 1 !important;
}

/* High contrast for input[type="date"] */
.hc *::-webkit-datetime-edit-text { 
	color: white !important;
}

.hc *::-webkit-datetime-edit-month-field { 
	color: white !important;
}

.hc *::-webkit-datetime-edit-day-field { 
	color: white !important;
}

.hc *::-webkit-datetime-edit-year-field { 
	color: white !important;
}

.hc ::-webkit-calendar-picker-indicator { 
	background: #343643 !important;
}

/* High contrast for input[type="range"] */
.hc input[type="range"]::-webkit-slider-runnable-track { /* Webkit */
	background: white !important;
}

.hc input[type="range"]::-moz-range-track {  /* Firefox */
	background: white !important;
}
.hc input[type="range"]::-moz-range-thumb {
	background: black !important;
	border: .15em solid white !important;
}

.hc input[type="range"]::-ms-fill-lower {  /* IE/Edge */
	background: white !important;
}
.hc input[type="range"]::-ms-fill-upper {
	background: white !important;
}
.hc input[type="range"]:focus::-ms-fill-lower {
	background: white !important;
}
.hc input[type="range"]:focus::-ms-fill-upper {
	background: white !important;
}

.hc input[type="range"]::-ms-thumb {
	background: black !important;
	border: .15em solid white !important;
}

/* ==========================================
   FFSS 73 ASSOCIATION HEADER & NAVIGATION STYLES
   ========================================== */

/* Buttons */
.btn {
    display: inline-block;
    padding: 12px 24px;
    font-weight: 700;
    font-size: var(--text-base);
    border-radius: 4px;
    transition: all 0.3s ease;
    text-align: center;
    text-decoration: none !important;
}

.btn-primary {
    background-color: var(--primary-yellow);
    color: var(--primary-blue) !important;
}

.btn-primary:hover {
    background-color: #e5b900;
}

/* Header Container & Sticky States */
.header {
    background-color: var(--white);
    padding: 15px 0;
    position: sticky;
    top: 0;
    z-index: 9;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    transition: padding 0.3s ease, box-shadow 0.3s ease;
}

.header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1400px !important;
    margin: 0 auto;
    padding: 0 30px;
}

.header-container .logo {
    max-width: 70%;
    display: flex;
    align-items: center;
}

.header-container .logo img {
    max-height: 110px;
    max-width: 100%;
    height: auto;
    object-fit: contain;
    transition: max-height 0.3s ease;
}

@media (min-width: 1281px) {
    .header.scrolled {
        padding: 5px 0;
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    }

    .header.scrolled .logo img {
        max-height: 70px;
    }
}

/* Main Navigation */
.main-nav {
    display: block;
}

.mobile-only-nav-item {
    display: none !important;
}

.main-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.main-nav > ul {
    display: flex;
    gap: 20px;
}

.main-nav > ul > li {
    position: relative;
    padding-bottom: 25px;
    margin-bottom: -25px;
    display: flex;
    align-items: center;
    white-space: nowrap;
}

.main-nav a {
    font-size: var(--text-base);
    font-weight: 700;
    color: var(--primary-blue) !important;
    text-transform: uppercase;
    display: inline-block;
    text-decoration: none !important;
}

.main-nav a:hover {
    color: var(--primary-yellow) !important;
}

/* Dropdown Toggle Chevron Buttons */
.dropdown-toggle {
    background: none;
    border: none;
    cursor: default;
    pointer-events: none;
    color: var(--primary-blue);
    padding: 0 5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: color 0.3s ease, transform 0.3s ease;
}

.main-nav li:hover > .dropdown-toggle {
    color: var(--primary-yellow);
}

.has-dropdown-right > .dropdown-toggle svg {
    transform: rotate(-90deg);
}

.has-dropdown.open > .dropdown-toggle svg,
.has-dropdown-right.open > .dropdown-toggle svg {
    transform: rotate(180deg);
}

/* Dropdown styling (Level 2 & 3) */
.main-nav .dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    background-color: var(--white);
    min-width: 250px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    border-radius: 4px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all 0.3s ease;
    display: block;
    z-index: 200;
    padding: 10px 0;
}

.main-nav .has-dropdown:hover > .dropdown,
.main-nav .has-dropdown-right:hover > .dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.main-nav .has-dropdown-right {
    position: relative;
}

.main-nav .right-dropdown {
    top: -10px;
    left: 100%;
}

.main-nav .has-dropdown-right::after {
    content: '';
    position: absolute;
    top: 0;
    right: -20px;
    width: 20px;
    height: 100%;
}

.main-nav .dropdown li {
    width: 100%;
    position: relative;
    display: block;
    float: none !important;
    margin: 0 !important;
}

.main-nav .dropdown > li > .dropdown-toggle {
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    padding: 0;
}

.main-nav .dropdown a {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: 12px 35px 12px 20px;
    font-size: var(--text-sm);
    font-weight: 600;
    text-transform: none;
    text-wrap: auto;
    color: var(--text-dark) !important;
    transition: background-color 0.2s, color 0.2s;
}

.main-nav .dropdown a:hover {
    background-color: var(--bg-light);
    color: var(--primary-blue) !important;
}

/* Mobile Hamburger Menu Button */
.hamburger {
    display: none;
    cursor: pointer;
    background: none;
    border: none;
    padding: 10px;
    z-index: 101;
}

.hamburger .bar {
    display: block;
    width: 25px;
    height: 3px;
    margin: 5px auto;
    transition: all 0.3s ease-in-out;
    background-color: var(--primary-blue);
}

/* Responsive Mobile Layouts (< 1280px) */
@media (max-width: 1280px) {
    .header-container .logo {
        max-width: 60%;
    }
    .header-container .logo img {
        max-height: 60px;
    }

    .mobile-only-nav-item {
        display: block !important;
    }

    .hamburger {
        display: block;
    }

    .hamburger.active .bar:nth-child(2) {
        opacity: 0;
    }

    .hamburger.active .bar:nth-child(1) {
        transform: translateY(8px) rotate(45deg);
    }

    .hamburger.active .bar:nth-child(3) {
        transform: translateY(-8px) rotate(-45deg);
    }

    .main-nav {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background-color: var(--white);
        box-shadow: 0 4px 6px rgba(0,0,0,0.1);
        display: none;
	max-height: calc(100vh - 100%);
	overflow-y: auto;
    }

    .main-nav.active {
        display: block;
    }

    .main-nav > ul {
        flex-direction: column;
        gap: 0;
    }

    .main-nav > ul > li {
        display: block;
        text-align: center;
        border-top: 1px solid var(--bg-light);
        padding-bottom: 0;
        margin-bottom: 0;
        position: relative;
    }

    .main-nav > ul > li > a {
        display: block;
        padding: 20px;
    }

    .main-nav > ul > li > .dropdown-toggle,
    .main-nav .dropdown > li > .dropdown-toggle {
        pointer-events: auto;
        cursor: pointer;
    }

    .main-nav > ul > li > .dropdown-toggle {
        position: absolute;
        top: 20px;
        right: 0;
        height: 61px;
        width: 60px;
        background-color: transparent;
        border: none;
    }

    .main-nav .dropdown,
    .main-nav .right-dropdown {
        display: none;
        position: static;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
        background-color: var(--bg-light);
        width: 100%;
        padding: 0;
    }

    .main-nav .has-dropdown.open > .dropdown,
    .main-nav .has-dropdown-right.open > .dropdown {
        display: block;
    }

    .main-nav .has-dropdown-right > .dropdown-toggle svg {
        transform: rotate(0);
    }

    .main-nav .dropdown li {
        border-top: 1px solid #e0e0e0;
        text-align: center;
        position: relative;
    }

    .main-nav .dropdown a {
        display: block;
        padding: 15px 20px;
        background-color: var(--bg-light);
    }

    .main-nav .dropdown > li > .dropdown-toggle {
        position: absolute;
        top: 15px;
        right: 0;
        height: 49px;
        width: 50px;
        background-color: transparent;
        border: none;
        transform: none;
    }

    .main-nav .right-dropdown a {
        background-color: #e8e8e8;
    }

    .header-btn {
        display: none;
    }

    .dropdown-toggle svg {
        width: 24px;
        height: 24px;
    }
}

/* ==========================================
   FFSS 73 ASSOCIATION FOOTER STYLES
   ========================================== */

.footer {
    background-color: var(--primary-blue);
    color: var(--white);
    padding: 60px 0 0;
}

.footer a {
    color: var(--white) !important;
    text-decoration: none !important;
}

.footer-top {
    display: grid;
    grid-template-columns: 2fr 1.5fr 2fr 1fr;
    gap: 40px;
    margin-bottom: 40px;
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 20px;
}

.footer-logo {
    max-height: 100px;
    margin-bottom: 20px;
}

.footer-certifications {
    display: flex;
    gap: 15px;
    align-items: center;
}

.footer-certifications img {
    max-height: 100px;
    width: auto;
}

.footer-col h4 {
    font-size: var(--text-base);
    font-weight: 700;
    margin-bottom: 20px;
    text-transform: uppercase;
    color: var(--white);
}

.nav-col ul {
    display: flex;
    flex-direction: column;
    gap: 10px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.nav-col a {
    font-size: var(--text-base);
    transition: color 0.3s ease;
    font-weight: 500;
    line-height: 1.35;
}

.nav-col a:hover {
    color: var(--primary-yellow) !important;
}

.contact-col p {
    font-size: var(--text-base);
    margin-bottom: 10px;
    font-weight: 500;
    line-height: 1.35;
}

.social-links,
.social-links .editable {
    display: flex;
    gap: 15px;
    align-items: center;
}

.social-links img {
    width: 35px;
    height: 35px;
    object-fit: contain;
}

.footer-bottom {
    text-align: center;
    padding-top: 20px;
    padding-bottom: 20px;
    font-size: var(--text-sm);
    color: var(--white);
    background-color: var(--dark-gray);
}

.footer-bottom p{
    margin-bottom: 0;
}

#footer-bottom-mentions-text{
    transition: all 0.3s ease;
}

#footer-bottom-mentions-text:hover{
    color: var(--primary-yellow);
}

/* Footer Responsive Breakpoints */
@media (max-width: 992px) {
    .footer-top {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .footer-top {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .footer-certifications {
        justify-content: center;
    }

    .social-links,
    .social-links .editable {
        justify-content: center;
    }
}

/* Custom 404 Page Styles */
.error-404-container {
    min-height: calc(100vh - 220px);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-light);
    padding: 40px;
    font-family: 'Outfit', sans-serif;
    width: 100%;
}

.error-404-inner {
    text-align: center;
    max-width: 640px;
    width: 100%;
}

.error-404-title {
    font-size: clamp(64px, 10vw, 128px) !important;
    margin: 0 !important;
    letter-spacing: .05em;
    color: var(--primary-blue);
    font-weight: 800;
}

.error-404-text {
    font-size: 20px !important;
    color: var(--dark-gray);
    margin: 24px 0 32px !important;
    line-height: 1.6;
}

/* ==========================================
   FFSS 73 ASSOCIATION HOMEPAGE STYLES
   ========================================== */

.hero {
    background-color: var(--bg-light);
    padding: 100px 0;
    position: relative;
    overflow: hidden;
    min-height: 500px;
    display: flex;
    align-items: center;
}

.hero-container {
    width: 100%;
    position: relative;
    z-index: 2;
}

.hero-content {
    max-width: 40%;
}

.hero-content h1 {
    font-size: var(--text-display-lg);
    color: var(--primary-blue);
    line-height: 1.2;
    margin-bottom: 20px;
    font-weight: 700;
}

.hero-content p {
    font-size: var(--text-md);
    margin-bottom: 30px;
    max-width: 500px;
}

.hero-logos {
    display: flex;
    gap: 25px;
    margin-top: 40px;
    align-items: center;
    flex-wrap: wrap;
}

.logo-wrapper {
    max-width: 200px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.logo-wrapper img {
    max-height: 100%;
    max-width: 100%;
    object-fit: contain;
}

.hero-logos .logo-wrapper:nth-child(1) {
    max-width: 110px;
    height: 80px;
}

.hero-logos .logo-wrapper:nth-child(2) {
    max-width: 270px;
    height: 150px;
}

.hero-logos .logo-wrapper:nth-child(3) {
    max-width: 140px;
    height: 150px;
}

.logo-wrapper .editable-media {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.logo-wrapper img,
.logo-wrapper .editable-media img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}

.hero-image {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 55%;
    z-index: 1;
}

.hero-image::before {
    content: '';
    position: absolute;
    top: 0;
    left: -1px;
    bottom: 0;
    width: 250px;
    background: linear-gradient(to right, var(--bg-light) 0%, rgba(243, 240, 239, 0) 100%);
    z-index: 2;
}

.hero-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* Missions */
.missions {
    padding: 80px 0;
    background-color: var(--white);
}

.missions-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.mission-card {
    background-color: var(--bg-light);
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.mission-card img {
    width: 100%;
    height: 200px;
    object-fit: cover;
}

.mission-content {
    padding: 30px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.mission-content h3 {
    color: var(--primary-blue);
    font-size: var(--text-lg);
    margin-bottom: 15px;
    margin-top: 0;
    font-weight: 700;
}

.mission-content p {
    font-size: var(--text-base);
    margin-bottom: 20px;
    flex: 1;
    font-weight: 500;
    line-height: 1.35;
}

.mission-content .btn {
    align-self: flex-start;
}

/* Stats */
.stats {
    background-color: var(--primary-blue);
    padding: 60px 0;
}

.stats-container {
    display: flex;
    justify-content: space-around;
    text-align: center;
    max-width: 1200px;
    margin: 0 auto;
}

.stat-item {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.stat-number {
    color: var(--primary-yellow);
    font-size: var(--text-display-lg);
    font-weight: 700;
}

.stat-label {
    color: var(--white);
    font-size: var(--text-lg);
    font-weight: 600;
    text-transform: uppercase;
}

/* Partners */
.partners {
    padding: 80px 0;
    background-color: var(--white);
}

.partners-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 40px;
    align-items: center;
    justify-items: center;
    max-width: 1200px;
    margin: 0 auto;
}

.partner-wrapper {
    width: 100%;
    max-width: 200px;
    height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.partner-wrapper img,
.partner-wrapper .editable-media,
.partner-wrapper .editable-media img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

/* CTA Section */
.cta-section {
    padding: 80px 0;
    background-color: var(--bg-light);
}

.cta-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
    max-width: 1200px;
    margin: 0 auto;
}

.cta-card {
    display: flex;
    flex-direction: column;
}

.cta-card h3 {
    color: var(--primary-blue);
    font-size: var(--text-xl);
    margin-bottom: 20px;
    font-weight: 700;
}

.cta-card img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    border-radius: 8px;
    margin-bottom: 20px;
}

.cta-card p {
    font-size: var(--text-base);
    margin-bottom: 25px;
    flex: 1;
    font-weight: 500;
    line-height: 1.35;
}

.cta-card .btn {
    align-self: flex-start;
}

/* Responsive Homepage Styles */
@media (max-width: 992px) {
    .hero {
        padding: 0;
        display: flex;
        flex-direction: column;
    }

    .hero-container {
        padding: 40px 20px;
    }

    .hero-content {
        max-width: 100%;
        text-align: center;
    }

    .hero-image {
        position: relative;
        width: 100%;
        height: 350px;
        order: -1;
    }

    .hero-image::before {
        width: 100%;
        height: 100px;
        background: linear-gradient(to top, var(--bg-light) 0%, rgba(243, 240, 239, 0) 100%);
        left: 0;
        top: auto;
        bottom: 0;
    }

    .hero-content h1 {
        font-size: var(--text-display-sm);
    }

    .hero-content p {
        margin: 0 auto 30px;
    }

    .hero-logos {
        justify-content: center;
    }

    .missions-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .cta-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .missions-grid {
        grid-template-columns: 1fr;
    }

    .stats-container {
        flex-direction: column;
        gap: 30px;
    }

    .partners-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }
}

/* Common Layout Elements */
.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}

.section-title {
    text-align: center;
    color: var(--primary-blue);
    font-size: var(--text-xxl);
    font-weight: 700;
    margin-bottom: 40px;
}

/* --- Styles pour les pages internes --- */

/* Page Banner */
.page-banner {
    background: linear-gradient(135deg, #1b0a4a 0%, var(--primary-blue) 100%);
    padding: 80px 0 70px;
    color: var(--white);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.page-banner::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(254, 207, 13, 0.08) 0%, transparent 60%);
    pointer-events: none;
}

.page-banner h1 {
    font-size: var(--text-display);
    font-weight: 700;
    margin-bottom: 20px;
    color: var(--white);
    letter-spacing: 0.5px;
    position: relative;
    display: inline-block;
}

.page-banner h1::after {
    content: '';
    display: block;
    width: 60px;
    height: 4px;
    background-color: var(--primary-yellow);
    margin: 10px auto 0;
    border-radius: 2px;
}

.page-banner p {
    font-size: var(--text-md);
    max-width: 800px;
    margin: 0 auto;
    color: rgba(255, 255, 255, 0.9);
    line-height: 1.6;
    font-weight: 400;
}

/* Blocks de présentation */
.about-section {
    padding: 80px 0;
}

.about-section.alt-bg {
    background-color: var(--bg-light);
}

.grid-2col {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 50px;
    align-items: center;
}

@media (max-width: 992px) {
    .grid-2col {
        grid-template-columns: 1fr;
        gap: 30px;
    }
}

.section-badge {
    display: inline-block;
    background-color: rgba(37, 14, 98, 0.08);
    color: var(--primary-blue);
    padding: 6px 16px;
    font-weight: 700;
    font-size: var(--text-xs);
    text-transform: uppercase;
    letter-spacing: 1px;
    border-radius: 50px;
    margin-bottom: 15px;
}

.section-badge-yellow {
    background-color: rgba(254, 207, 13, 0.15);
    color: #a68400;
}

.about-title {
    font-size: var(--text-xxl);
    color: var(--primary-blue);
    font-weight: 700;
    margin-bottom: 20px;
    line-height: 1.3;
}

.about-text p {
    font-size: var(--text-base);
    color: var(--text-dark);
    margin-bottom: 20px;
    line-height: 1.65;
}

.about-text p:last-child {
    margin-bottom: 0;
}

.about-text h3 {
    color: var(--primary-blue);
    font-size: var(--text-lg);
    margin-top: 35px;
    margin-bottom: 15px;
    font-weight: 700;
}

.about-text h4 {
    color: var(--primary-blue);
    font-size: var(--text-base);
    margin-top: 25px;
    margin-bottom: 10px;
    font-weight: 700;
}

.about-text ul {
    margin-top: 10px;
    margin-bottom: 20px;
    padding-left: 20px;
    list-style-type: disc;
}

.about-text li {
    font-size: var(--text-base);
    color: var(--text-dark);
    margin-bottom: 8px;
    line-height: 1.6;
}


.about-stats-card {
    background-color: var(--white);
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    border-left: 4px solid var(--primary-blue);
}

.about-stats-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

@media (max-width: 576px) {
    .about-stats-grid {
        grid-template-columns: 1fr;
        gap: 15px;
    }
}

.about-stat-box {
    background-color: var(--bg-light);
    padding: 20px;
    border-radius: 8px;
    text-align: center;
    transition: transform 0.3s ease;
}

.about-stat-box:hover {
    transform: translateY(-5px);
}

.about-stat-num {
    font-size: var(--text-xl-md);
    font-weight: 800;
    color: var(--primary-blue);
    margin-bottom: 5px;
}

.about-stat-num span {
    color: var(--primary-blue);
}

.about-stat-label {
    font-size: var(--text-xs);
    font-weight: 600;
    text-transform: uppercase;
    color: var(--dark-gray);
    letter-spacing: 0.5px;
}

/* Timeline Component */
.timeline {
    position: relative;
    max-width: 850px;
    margin: 40px auto 0;
    padding-left: 30px;
    border-left: 3px solid var(--primary-blue);
    list-style: none;
}

.timeline-item {
    position: relative;
    margin-bottom: 40px;
}

.timeline-item:last-child {
    margin-bottom: 0;
}

.timeline-marker {
    position: absolute;
    top: 5px;
    left: -41.5px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: var(--bg-light);
    border: 4px solid var(--primary-blue);
    transition: all 0.3s ease;
}

.timeline-item:hover .timeline-marker {
    background-color: var(--primary-yellow);
    border-color: var(--primary-blue);
    transform: scale(1.2);
}

.timeline-date {
    font-size: var(--text-base);
    font-weight: 800;
    color: var(--primary-blue);
    margin-bottom: 8px;
    display: inline-block;
    background-color: rgba(37, 14, 98, 0.06);
    padding: 2px 12px;
    border-radius: 4px;
    width: fit-content;
}


.timeline-date p,
.timeline-date div {
    margin: 0;
    padding: 0;
    display: inline;
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
    line-height: inherit;
}

.timeline-content {
    background-color: var(--white);
    padding: 20px 25px;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
    border-left: 3px solid var(--primary-yellow);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.timeline-content:hover {
    transform: translateX(5px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.07);
}

.timeline-content p {
    font-size: var(--text-base);
    line-height: 1.6;
    color: var(--text-dark);
}

/* Carousel Component */
.carousel-section {
    padding: 80px 0;
    background-color: var(--bg-light);
}

.carousel-container {
    max-width: 1000px;
    margin: 0 auto;
    position: relative;
    overflow: hidden;
}

.carousel-viewport {
    width: 100%;
    overflow: hidden;
    position: relative;
    border-radius: 8px;
    aspect-ratio: 16 / 9;
}

.carousel-track {
    display: flex;
    transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    height: 100%;
    width: 100%;
    list-style: none;
    padding: 0;
    margin: 0;
}

.carousel-slide {
    min-width: 100%;
    flex-shrink: 0;
    height: 100%;
    position: relative;
}

.carousel-slide img,
.carousel-slide .editable-media,
.carousel-slide .editable-media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

.carousel-caption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 100%);
    color: var(--white);
    padding: 40px 25px 20px;
    font-size: var(--text-base);
    font-weight: 500;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}

.carousel-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background-color: rgba(255, 255, 255, 0.9);
    border: none;
    width: 50px;
    height: 50px !important;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--primary-blue);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    z-index: 10;
}

.carousel-btn:hover {
    background-color: var(--primary-blue);
    color: var(--white);
    transform: translateY(-50%) scale(1.1);
}

.carousel-btn.prev {
    left: 30px;
}

.carousel-btn.next {
    right: 30px;
}

.carousel-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 25px;
}

.carousel-dot {
    width: 12px;
    height: 6px !important;
    border-radius: 3px;
    background-color: rgba(37, 14, 98, 0.15);
    border: none;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.carousel-dot:hover {
    background-color: rgba(37, 14, 98, 0.3);
}

.carousel-dot.active {
    background-color: var(--primary-yellow);
    width: 32px;
}

/* --- Carousel Edit Mode Overrides (Grid View) --- */
body.lucide .carousel-viewport {
    overflow: visible !important;
    height: auto !important;
    aspect-ratio: auto !important;
}

body.lucide .carousel-track {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
    gap: 20px !important;
    transform: none !important;
    transition: none !important;
    height: auto !important;
    width: 100% !important;
    list-style: none !important;
    padding: 60px 0 0 0 !important;
    margin: 0 !important;
}

body.lucide .carousel-slide {
    min-width: 0 !important;
    height: 180px !important;
    width: 100% !important;
    position: relative !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    border: 1px solid #ddd !important;
    background: #fff !important;
}

body.lucide .carousel-btn,
body.lucide .carousel-dots {
    display: none !important;
}

/* Delete button styling for dynamic module items in edit mode */
body.lucide .module > li {
    position: relative !important;
}

body.lucide .module > li .del {
    position: absolute;
    top: 5px;
    right: 5px;
    z-index: 10;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 50%;
    width: 30px;
    height: 30px !important;
    display: none;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(0,0,0,0.15);
    padding: 0;
}

body.lucide .module > li:hover .del {
    display: flex !important;
}

@media (max-width: 768px) {
    .carousel-btn {
        width: 40px;
        height: 40px !important;
    }
    
    .carousel-btn.prev {
        left: 15px;
    }
    
    .carousel-btn.next {
        right: 15px;
    }
}

@media (max-width: 576px) {
    .carousel-viewport {
        aspect-ratio: 4 / 3;
    }
    
    .carousel-caption {
        padding: 25px 15px 15px;
        font-size: var(--text-xs);
    }
}

/* Custom Utility and Means Page Classes */
.container-wide {
    max-width: 1100px;
}
.container-narrow {
    max-width: 900px;
}
.section-title-left {
    text-align: left;
    color: var(--primary-blue);
    margin-bottom: 25px;
}
.section-title-left-large {
    text-align: left;
    color: var(--primary-blue);
    margin-bottom: 50px;
}
.badge-inline {
    margin-bottom: 12px;
    display: inline-block;
}
.vehicles-list {
    display: flex;
    flex-direction: column;
    gap: 70px;
}
.vehicle-grid-item {
    gap: 40px;
    align-items: center;
}
.vehicle-title {
    color: var(--primary-blue);
    font-size: var(--text-xl-sm);
    font-weight: 800;
    margin-bottom: 5px;
}
.vehicle-subtitle {
    font-size: var(--text-xs);
    color: var(--dark-gray);
    font-style: italic;
    margin-bottom: 15px;
}
.vehicle-img-wrapper {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0,0,0,0.06);
    height: 350px;
}
.vehicle-img-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.flex-column-gap-35 {
    display: flex;
    flex-direction: column;
    gap: 35px;
    margin-top: 30px;
}
.equipment-block-title {
    color: var(--primary-blue);
    font-size: var(--text-lg);
    font-weight: 700;
    margin-bottom: 5px;
}
.equipment-block-subtitle {
    font-size: var(--text-xs);
    color: var(--dark-gray);
    font-style: italic;
    margin-bottom: 12px;
}
.equipment-block-desc {
    font-size: var(--text-base);
    line-height: 1.7;
    color: var(--dark-gray);
    margin-bottom: 10px;
}
.equipment-block-list {
    margin: 10px 0 10px 20px;
    line-height: 1.8;
    color: var(--dark-gray);
    font-size: var(--text-base);
    list-style-type: disc;
}
.vehicle-missions {
    font-size: var(--text-sm);
    margin-bottom: 8px;
}
.vehicle-equipments {
    font-size: var(--text-sm);
    margin-bottom: 12px;
    line-height: 1.6;
    color: var(--dark-gray);
}
.vehicle-crew {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--primary-blue);
}
.vehicle-grid-item-reverse {
    direction: rtl;
}
.vehicle-grid-item-reverse > * {
    direction: ltr;
}
@media (max-width: 992px) {
    .vehicle-grid-item-reverse {
        direction: ltr;
    }
}
.hero-centered {
    min-height: 400px;
}
.hero-centered .hero-container {
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
}
.hero-centered .hero-content {
    max-width: 100%;
}
.hero-image-yellow {
    background: var(--primary-yellow);
    opacity: 0.1;
}
.construction-section {
    padding: 80px 0;
    background-color: var(--white);
    min-height: 40vh;
}
.construction-text {
    text-align: center;
    font-size: var(--text-md);
    color: var(--dark-gray);
    font-weight: 500;
}
.mt-10 {
    margin-top: 10px;
}
.mt-15 {
    margin-top: 15px;
}
.section-subtitle-left {
    color: var(--dark-gray);
    font-size: var(--text-base);
    margin-bottom: 40px;
    text-align: left;
}
.subsection-title {
    color: var(--primary-blue);
    font-size: var(--text-lg);
    margin-bottom: 10px;
    font-weight: 700;
}
.subsection-desc {
    color: var(--dark-gray);
    font-size: var(--text-base);
    line-height: 1.7;
}
.cta-card-img-modern {
    width: 100%;
    border-radius: 12px;
    margin: 0;
}
.m-0 {
    margin: 0 !important;
}
.bullet-list-custom {
    list-style: none;
    margin-bottom: 25px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}
.bullet-list-item-custom {
    position: relative;
    padding-left: 20px;
    font-size: var(--text-base);
    line-height: 1.6;
}
.bullet-dot {
    position: absolute;
    left: 0;
    color: var(--primary-blue);
    font-weight: bold;
}
.delegation-list {
    font-weight: 600;
    color: var(--primary-blue);
    font-size: var(--text-base);
    line-height: 1.6;
}
.stats-card-title {
    color: var(--primary-blue);
    font-size: var(--text-lg);
    font-weight: 700;
    margin-bottom: 20px;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.about-stat-num-small {
    font-size: var(--text-xl-sm) !important;
}
.stat-label-sub {
    font-size: var(--text-xxs);
    text-transform: none;
    font-weight: normal;
    color: #555;
}
.list-intro {
    margin-top: 20px;
    font-weight: 500;
}
.regular-list {
    margin: 10px 0 20px 20px;
    line-height: 1.8;
    color: var(--dark-gray);
    list-style-type: disc;
}
.highlight-box {
    margin-top: 30px;
    border-left: 4px solid var(--primary-yellow);
    padding-left: 20px;
}
.highlight-box-title {
    color: var(--primary-blue);
    font-size: var(--text-md);
    font-weight: 700;
    margin-bottom: 10px;
}
.highlight-box-text {
    font-size: var(--text-base);
    line-height: 1.6;
}
.text-center {
    text-align: center;
}
.badge-white {
    background-color: var(--white);
    color: var(--primary-blue);
    border: 1px solid rgba(37, 14, 98, 0.1);
    margin-bottom: 20px;
    display: inline-block;
}
.dps-examples-text {
    font-size: var(--text-md);
    line-height: 2;
    color: var(--dark-gray);
    font-weight: 400;
    max-width: 800px;
    margin: 0 auto;
}
.text-bullet {
    color: var(--primary-blue);
    margin: 0 8px;
}
.dps-stats-highlight {
    margin-top: 35px;
    font-size: var(--text-xl-sm);
    font-weight: 700;
    color: var(--primary-blue);
    letter-spacing: 0.5px;
}
.cta-footer-section {
    padding: 60px 0;
    text-align: center;
    border-top: 1px solid rgba(0,0,0,0.05);
    background-color: var(--white);
}
.container-small {
    max-width: 700px;
}
.cta-footer-title {
    color: var(--primary-blue);
    font-size: var(--text-xl);
    font-weight: 700;
    margin-bottom: 15px;
    text-align: center;
}
.cta-footer-text {
    margin-bottom: 25px;
    font-size: var(--text-base);
    color: var(--dark-gray);
    text-align: center;
}
.flex-center-wrap {
    display: flex;
    gap: 15px;
    justify-content: center;
    flex-wrap: wrap;
}

/* --- Organigramme --- */
.org-container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
}

.org-grid {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 30px;
    width: 100%;
    list-style: none;
    padding: 0;
    margin: 0;
}

.org-card {
    background-color: var(--white);
    border-radius: 10px;
    border: 2px solid var(--bg-light);
    padding: 25px 20px;
    width: 280px;
    text-align: center;
    transition: all 0.3s ease;
    min-height: 155px;
}

.org-card:hover {
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
    border-color: var(--primary-yellow);
}

.org-role {
    font-size: var(--text-sm);
    color: var(--dark-gray);
    font-weight: 600;
    text-transform: uppercase;
    margin-bottom: 8px;
    letter-spacing: 0.5px;
}

.org-name {
    font-size: var(--text-lg);
    font-weight: 700;
    color: var(--primary-blue);
}

.clubs-section {
    padding: 60px 0;
    background-color: var(--bg-light);
}

.clubs-list {
    display: flex;
    flex-direction: column;
    gap: 25px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.club-card {
    background-color: var(--white);
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
    padding: 25px 30px;
    display: flex;
    align-items: center;
    gap: 30px;
    transition: all 0.3s ease;
    border-left: 5px solid var(--primary-blue);
    position: relative;
}

.club-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
    border-left-color: var(--primary-yellow);
}

.club-logo-col {
    flex: 0 0 100px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.club-logo-wrapper {
    width: 80px;
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.club-logo-wrapper img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.club-info-col {
    flex: 1;
    min-width: 250px;
    padding-left: 20px;
    border-left: 1px dashed #ddd;
}

.club-title {
    font-size: var(--text-md);
    font-weight: 800;
    color: var(--primary-blue);
    margin-bottom: 8px;
    text-transform: uppercase;
    line-height: 1.3;
}

.club-desc {
    font-size: var(--text-base);
    color: var(--dark-gray);
    margin: 0;
    line-height: 1.4;
}

.club-contact-col {
    flex: 0 0 320px;
    padding-left: 25px;
    border-left: 1px dashed #ddd;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.club-contact-item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: var(--text-sm);
    color: var(--text-dark);
}

.club-contact-item i {
    color: var(--primary-blue);
    width: 16px;
    text-align: center;
}

.club-contact-text {
    overflow-wrap: break-word;
    word-break: normal;
}

/* Responsive */
@media (max-width: 992px) {
    .club-card {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
        padding: 20px;
    }
    
    .club-logo-col {
        align-self: center;
        flex: 0 0 auto;
    }
    
    .club-info-col, .club-contact-col {
        border-left: none;
        padding-left: 0;
        width: 100%;
    }
    
    .club-contact-col {
        flex: 0 0 auto;
    }
}
