* {
	margin: 0;
	padding: 0;
	box-sizing:border-box;
}

:root { overflow-x: clip; }

html{scroll-behavior:smooth}

body {
	height: 100%;
	min-height:100vh;
	font-size: 15px;
	line-height: 1.6;
	color: var(--main-color);
	position:relative;
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: 100%;
	background-color: #ffffff;
	font-family: var(--font-main);
}

table{
	border-collapse:collapse;
	border-spacing:0
}

::selection,
::-moz-selection {
 color: #fff;
 background: #353535;
}

a, a:link, a:visited, a:focus, a:active, a:hover{
	text-decoration:none;
	color: var(--main-color);
}

a:hover{
	text-decoration:none;
	color: var(--main-hover);
}

p{
	margin-bottom:1em;
	line-height: 1.4;
}


/* SECTIONS */
section{
	color:var(--text-color);
	font-size: 96%;
	overflow-x: hidden;
}

section a{
	font-weight: 700;
}

.bg-gris,
.bg-spots,
.bg-violet,
.bg-violet-f{
	position: relative;
	overflow-x: unset;
  	z-index: 0; 
}
.bg-gris::before,
.bg-spots::before,
.bg-violet::before,
.bg-violet-f::before {
  content: "";
  position: absolute;
  inset-block: 0;        /* top/bottom: 0 */
  left: 50%;
  width: 100vw;          /* s’étire bord à bord du viewport */
  transform: translateX(-50%);
  background: var(--bg-gris);      /* ton gris */
  z-index: -1;           /* derrière le contenu du container */
}

.bg-violet {
  color: var(--main-color-bg);
}
.bg-violet::before {
  background: var(--bg-violet);
}

.bg-spots{
	padding-top: 120px !important;
}
.bg-spots::before{
	background-image: url('../img/bg-spots.jpg');
	background-repeat: no-repeat;
	background-position: top center;
	background-size: auto 100%;
	background-color: #c5c5c5;
}

.bg-violet-f,
.bg-violet-f h1 {
  color: white !important;
}
.main-content.bg-violet-f h1.p-title::before, .main-content.bg-violet-f h1.p-title::after {
	  background: white !important;
}
.bg-violet-f h2 {
  color: var(--active-color-ccc) !important;
}
.bg-violet-f::before {
  background: var(--bg-violet-f);
}

@media (min-width: 1080px) {
	.bg-violet-f.pattern::before{
		background-image: url('../img/pattern-f.jpg?id=2');
		background-repeat: repeat;
		background-size: 100% auto;
	}
	.bg-violet.pattern::before{
		background-image: url('../img/pattern-c.jpg?id=2');
		background-repeat: repeat;
		background-size: 100% auto;
	}
}

.max-large-plus{
	max-width:var(--max-large-plus) !important;
	margin-left:auto;
	margin-right:auto;
}
.max-large{
	max-width:var(--max-large);
	margin-left:auto;
	margin-right:auto;
}
.large{
	max-width:var(--large);
	margin-left:auto;
	margin-right:auto;
}
.section-padding,
.section-padding-no-bottom
{
	padding:6em 3em;
}
.section-padding-no-bottom{
	padding-bottom:3em;
}
.section-padding-no-top{
	padding-top: 3em;
}
.section-padding-only-bottom{
	padding-bottom:6em;
}
.section-margin-top{
	margin-top:100px;
}
.section-margin-bottom{
	margin-bottom:70px;
}
.section-padding-bottom{
	padding-bottom:70px;
}

.section-flex{
	display: flex;
	width: 100%;
}
.section-flex-60{
	width: 60%;
}
.section-flex-50{
	width: 50%;
}
.section-flex-40{
	width: 40%;
}

.section-flex img{
	width: 100%;
	border-radius: 8px;
}

.main-content{
	padding: 48px 24px;
}

.no-padding-bottom,
.no-pad-bottom{
	padding-bottom: 0 !important;
}
.no-margin-bottom{
	margin-bottom: 0 !important;
}
.mid-margin-bottom{
	margin-bottom: .5em !important;
}

.main-content h1{
    padding: 0;
    text-align: center;
    margin-bottom: 1.5em;
    font-weight: 400;
    color: var(--title-color);
    font-size: 170%;
}
.p-title-container{
    padding-bottom: 0;
    display: flex;
    justify-content: center;
}
.main-content h1.p-title{
	font-weight: 600;
	text-transform: uppercase;
	color: var(--main-color-c);
	position: relative;
	display: inline-block;
	text-align: center;
}
.main-content.bg-violet h1.p-title{
	color: var(--main-color-bg);
}
.main-content h1.p-title::before, .main-content h1.p-title::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 30px;
    height: 1px;
    background: var(--main-color-c);
	opacity: .3;
}
.main-content h1.p-title::before {
    right: 100%;
    margin-right: 20px;
}
.main-content h1.p-title::after {
    left: 100%;
    margin-left: 20px;
}

.main-content h1.h2-dessous{
    margin-bottom: .25em;
}
.main-content h2{
    font-size: 240%;
    color: var(--title-color);
	font-family: var(--font-title);
	text-align: center;
	font-weight: 200;
	margin-bottom: 20px;
	line-height: 1.2;
}
.main-content h2.sparkling{
    display: grid;
}
.main-content h2.h1-dessus{
    margin-top: 0;
}

.main-content h2.title-underline{
    font-size: 270%;
	margin-bottom: 40px;
	border-bottom: 1px dotted;
	padding-bottom: .2em;
}

.main-content h3{
	font-size: 140%;
	line-height: 1.2;
	font-weight: 400;
	text-align: center;
	font-family: var(--font-main);
	margin-bottom: 20px;
}
.main-content h5{
	font-size: 140%;
	line-height: 1.2;
	font-weight: 400;
	text-align: center;
	font-family: var(--font-main);
	margin-bottom: 20px;
}

.section-container.gris,
.section-container.gris section{
	background-color:var(--bg-gris);
}
.section-container.gris-fonce,
.section-container.gris-fonce section{
	background-color: #747372;
    color: white;
}

ul{
	list-style: none;
	list-style-position: inside;
}

.hidden{
	display:none;
}

.center{
	text-align: center;
}

.justify{
	text-align: justify;
}

.a-right{
	text-align: right;
}

.pipe{
	opacity: .5;
	font-weight: 200;
	padding-right: .7em;
	padding-left: .7em;
}

.active-color{
	color: var(--active-color);
}

blockquote{
	border-left: 4px solid var(--active-color-f);
	padding-left: 1em;
	margin-left: 0;
	font-style: italic;
	color: var(--text-color-2);
	width: 96%;
	margin: 0 auto 0 auto;
}

.ul-bloc{
    width: 100%;
    max-width: 400px;
    text-align: left;
    margin: 0 auto;
	transform: translateX(1em);
	display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-content: flex-start;
    justify-content: flex-start;
    align-items: flex-start;
}
.ul-bloc li{
	width: 40%;
	margin:0 5%;
	font-weight: 600;
}
.ul-bloc li:before{
    content: "\e43b";
	font-family: var(--font-awesome);
	font-weight: 800;
	padding-right: .5em;
	opacity: .5;
	transform: translateX(-2em);
    position: absolute;
}

.ul-puce{
    width: 100%;
    text-align: left;
    margin: 0 auto;
	transform: translateX(1em);
	display: flex;
	flex-direction: column;
    flex-wrap: nowrap;
    align-content: flex-start;
    justify-content: flex-start;
    align-items: flex-start;
}
.ul-puce li{
	width: 90%;
	margin:0 5% 1em 5%;
	font-weight: 600;
}
.ul-puce li:before{
    content: "\f324";
	font-family: var(--font-awesome);
	font-weight: 800;
	padding-right: .5em;
	opacity: .5;
	transform: translateX(-2em);
    position: absolute;
}

.nowrap{
	white-space: nowrap;
}

.flex-horizontal-center{
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-content: center;
	justify-content: center;
	align-items: center;
	gap: 10%;
}

.list-flex{
	list-style: none;
	display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    align-content: center;
    justify-content: center;
    align-items: center;
    width: 50%;
    gap: 0;
    margin: 0 auto;
}

.list-flex li{
	background-color: white;
	border-radius: 1em;
	padding: 1em 2em;
	font-weight: 600;
	white-space: nowrap;
	width: 43%;
	margin: 2%;
}
/*.list-flex li:nth-child(even) {
	color: var(--title-color-f);
}*/

.valeurs i{
	transform: scale(2);
	color: var(--active-color-f);
	padding-right: 1em;
	width: 40px;
	text-align: center;
}

.spots{
	width: 80%;
	margin: 0 auto;
}
.spots p{
	text-indent: -1.5em;
	margin-bottom: 2em;
}
.spots p:last-child{
	margin-bottom: 0;
}
.spots p:first-child{
	margin-top: 2em;
}




/* BUTTONS */
.button,
a.button
{
	font-weight: 500;
	border:1px solid var(--active-color-f);
	border-radius: .4em;
	padding:.7em 2.5em;
	text-transform: uppercase;
	font-size: 90%;
	background-color:white;
	letter-spacing: .1em;
	color: var(--active-color-f);
	cursor: pointer;
}
.button.clair,
a.button.clair
{
	background-color: rgba(255,255,255,.5);
}
.button i{
	padding-right: .5em;
}
.button.center{
	display: block;
	margin:0 auto;
	margin-top:2em;
	width: fit-content;
}


.button:hover,
a.button:hover
{
	background-color: var(--active-color-f);
	color: white;
}

.bt-center{
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-content: center;
    justify-content: center;
    align-items: center;
}
.bt-center button{
	margin: .5em;
}
.bt-disable{
	pointer-events:none;
	opacity:.3;
}
.button-container-center{
	display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-content: center;
    justify-content: center;
    align-items: center;
    margin-top: 4em;
}
.button-container-center a{
    margin:0 1.5em;
}


.btn-full{
	width: 100%;
	text-align: center;
	background-color: var(--title-color);
	color: white;
	font-size: 110%;
	border: none;
}
.btn-full:hover{
	background-color: var(--title-color-f);
}
.btn-full a{
	color: white;
	font-weight: 200;
	padding: 2em .5em;
	display: block;
}


/* INPUTS */


input,
textarea,
select{
	background:#FAFAFA;
	border: 1px solid #DDD;
    color: #666;
    padding: .6em .9em;
	border-radius: 6px;
	font-size:100%;
}
input:hover,
textarea:hover,
select:hover,
input:focus,
textarea:focus,
select:focus{
	border-color: rgba(13, 27, 219, 0.8);
	outline: 0;
	outline: thin dotted \9;
	-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(13, 27, 219, 0.3);
	-moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(13, 27, 219,.3);
	box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(13, 27, 219,.3);
}

input::-webkit-input-placeholder,
input:-ms-input-placeholder,
input::placeholder,
textarea::-webkit-input-placeholder,
textarea:-ms-input-placeholder,
textarea::placeholder{
	color: #333333;
}


/* PARALLAX */

.parallax{
    background-color: #3c3c3c;
    padding: 0;
    height: 30vh;
    background: transparent;
    background-position: top center;
    background-size: cover;
    background-repeat: no-repeat;
    position: relative;
}

/* HEADER-PAGES */
.page-header{
    background-color: #3c3c3c;
    height: 15vh;
    min-height: 200px;
    /*background: transparent;*/
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}



/* CHIPS */

.chip {
	display: inline-block;
    height: 32px;
    font-size: 13px;
    font-weight: 500;
    color: rgb(255 255 255);
    line-height: 32px;
    padding: 0 12px;
    border-radius: 4px;
    background-color: #bbab8d;
    margin-bottom: 7px;
    margin-right: 5px;
}
.chip > img {
    float: left;
    margin: 0 8px 0 -12px;
    height: 32px;
    width: 32px;
    padding: 4px;
    border-radius: 4px;
    background-color: #938161;
    box-sizing: border-box;
	transform: scale(0.8);
}
.chips{
	margin-bottom:40px;
	text-align: center;
}

/* VIDEO SECTION */
.video-content{
    background-color: var(--bg-gris);
    border-top: 1px solid var(--bg-gris-f);
    border-bottom: 1px solid var(--bg-gris-f);
}
.video-content figure{
	width: var(--max-large);
	max-width: 90vw;
    margin: 0 auto;
}
.sr-only{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;}
.video-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}
.video-block{width:100%;}
.video{width:100%;height:auto;aspect-ratio:16/9;display:block;}
.video-transcript{margin-top:0.5rem}

/* RESPONSIVE */


@media (max-width: 1079px) {
	nav * {
		-webkit-touch-callout: none;
		-webkit-user-select: none;
		-khtml-user-select: none;
		-moz-user-select: none;
		-ms-user-select: none;
		user-select: none;
		-webkit-tap-highlight-color: transparent;
	}

	main{
		margin-top: calc( var(--header-height) + 2px );
	}

	.section-flex{
		flex-direction: column;
	}
	.section-flex-40,
	.section-flex-50,
	.section-flex-60{
		width: 100%;
	}
	.section-padding,
	.section-padding-no-bottom {
		padding: 4em 1em;
	}

	.button{
		font-size: 100%;
	}
	.button-container-center{
		flex-direction: column;
		align-items: stretch;
		text-align: center;
		max-width: 80%;
		margin: 3em auto 0 auto;
	}
	.button-container-center a{
		margin:1.5em 0;
	}

	.parallax{
		position: unset;
	}

	.page-header{
		margin-top: 43px;
		min-height: unset;
	}

	.main-content h1.p-title::before, .main-content h1.p-title::after {
		display: none;
	}
	.main-content h1.p-title {
		font-size: 140%;
	}
	.main-content h3 {
		font-size: 120%;
	}

	.list-flex{
		flex-wrap: nowrap;
		flex-direction: column;
		width: 100%;
	}

	.list-flex li{
		width: 90%;
		/*text-align: center;*/
		display: flex;
		align-items: center;
        justify-content: center;
	}
	.list-flex li span:nth-child(1){
		width: 20%;
		text-align: center;
		display: block;
		padding-left: 8%;
	}
	.list-flex li span:nth-child(2){
		width: 60%;
		text-align: left;
		display: block;
		padding-left: 8%;
	}

	.pattern::before{
		background-image: none;
	}
}