/*
 Theme Name:     Divi Child
 Theme URI:      https://www.elegantthemes.com/
 Description:    Theme Enfant Divi
 Author:         Made for you
 Author URI:     https://www.madeforyou-agency.com/
 Template:       Divi
*/

#line3-info{display:none}

/*	********
	 GLOBAL
	******** */
body{
    font-family: 'NunitoS', Arial, sans-serif;
}
h1,h2,h3,h4,h5,h6{
    font-family:var(--falt);
}
.falt{
	font-family:var(--falt)
}
.blueStrong h1 strong,
.blueStrong h2 strong,
.blueStrong h3 strong,
.blueStrong h4 strong{
	font-weight:400;
	color:var(--blue)
}
.hide{display:none!important}

/*	***************
	 FLEX SHORCUTS
	*************** */
.flex{display:flex;flex-wrap:wrap;align-items:flex-start;align-content:flex-start}
.fxje{justify-content:flex-end}
.fxjb{justify-content:space-between}
.fxja{justify-content:space-around}
.fxjc{justify-content:center}
.fxac{align-items:center;align-content:center}
.fxae{align-content:flex-end;align-items:flex-end}
.fxab{align-content:space-between}
.fxaa{align-content:space-around}


/*	*****************
	 BACKOFFICE HACK
	***************** */
body.et-fb .mce-content-body h1 strong,
body.et-fb .mce-content-body h2 strong,
body.et-fb .mce-content-body h3 strong,
body.et-fb .mce-content-body h4 strong{
	background:rgba(0,0,0,0.1)
}
body.et-fb .mce-content-body blockquote{
	border:1px solid rgba(0,0,0,0.2)
}


/*	***************
	 DIVI OVERRIDE
	*************** */
body #et-main-area{
	padding-top:100px!important;
	overflow-x:hidden!important
}
.et_pb_text blockquote{
	padding-left:0;
	border:0;
	margin:0;
}
.et_pb_row{
	max-width:1260px;
	width:1260px
}
.et_pb_row.short{
	max-width:1175px;
	width:1175px
}
.et_pb_row.hidden{
	overflow:hidden
}
body.et-fb .et_pb_code{
	border:1px solid red
}

/*	***********
	 FRAMEWORK
	*********** */

/* UI */
.line3:before{
	opacity:0
}
.line3:before,
.line3_svg,
footer.main .inner:before,
footer.main .inner:after{
	content:'';
	position:absolute;
	top:50%;
	transform:translatey(-50%);
	width:95px;
	height:73px;
	z-index:10
}
.line3_svg.left,
footer.main .inner:before{
	left:-5px;
}	
.line3_svg.right,
footer.main .inner:after{
	right:-5px;
	transform:translatey(-50%) scalex(-1);
}

/*  Buttons
	------- */
.et-db #et-boc .et-l .et_pb_button.ld-default,
.forminator-button.ld-default{
	font-size:1.19rem;
	line-height:2rem!important;
	letter-spacing:0.01rem;
	color:var(--darkmain);
	border:none!important;
	background:none!important;
	position:relative;
	padding:10px 0 10px 20px!important;
	width:fit-content;
	border-width: 0px !important;
    border-radius: 0px;
	font-weight:700
}
.et-db #et-boc .et-l .et_pb_button.ld-default:hover,
.forminator-button.ld-default:hover{
	color:var(--red);
}
.et-db #et-boc .et-l .et_pb_button.ld-default:before,
.et-db #et-boc .et-l .et_pb_button.ld-default:after,
.forminator-button.ld-default:before,
.forminator-button.ld-default:after{
	content:''!important;
	display:block;
	width:8px;	
	position:absolute;
	font-size:0;
	opacity:1;
}
.et-db #et-boc .et-l .et_pb_button.ld-default:before,
.forminator-button.ld-default:before{
	height:8px;
	background:var(--red);
	left:0;
	top:calc(50% - 4px)
}
.et-db #et-boc .et-l .et_pb_button.ld-default:after,
.forminator-button.ld-default:after{
	border-style:solid;
	border-width:8px 0;
	border-color:white;
	top:0;
	left:0;
	bottom:3px;
	transition:width 600ms ease;
}
.et-db #et-boc .et-l .et_pb_button.ld-default.blue:after,
.forminator-button.ld-default.blue:after{
	border-color:var(--blue)
}
.et-db #et-boc .et-l .et_pb_button.ld-default:hover:after,
.forminator-button.ld-default:hover:after{
  	width:100%;
}

/*  Titles
	------ */
.title-default{
	font-size:1.125rem;
	margin-bottom:0;
	padding-bottom:50px;
}
body:not(.et-fb) .title-default{
	overflow-x:hidden;
}
.title-default h1,
.title-default h2,
.title-default h3,
.title-default h4,
.title-default h1::before,
.title-default h2::before,
.title-default h3::before,
.title-default h4::before{
	font-size:2.9rem!important;
	line-height:1.3em!important;
}
.title-default h1::before,
.title-default h2::before,
.title-default h3::before,
.title-default h4::before{
	overflow:hidden
}

.title-default h1 strong,
.title-default h2 strong,
.title-default h3 strong,
.title-default h4 strong{
	display:block;
	color:var(--blue);
	font-weight:400;
	font-size:0.8em;
	line-height:1.2em
}
.title-default.white h1,
.title-default.white h2,
.title-default.white h3,
.title-default.white h4,
.title-default.white h1 strong,
.title-default.white h2 strong,
.title-default.white h3 strong,
.title-default.white h4 strong{
	color:white;
}

.title-default h1 em,
.title-default h2 em,
.title-default h3 em,
.title-default h4 em{
  font-style:normal;
  position:relative;
  display:inline-block;
}
.title-default h1 em::before,
.title-default h2 em::before,
.title-default h3 em::before,
.title-default h4 em::before{
  content:'';
  position:absolute;
  top:50%;
  left:calc(100% + 20px);
  width:0;
  height:1px;
  background:var(--red);
  transition:width 800ms
}
.title-default.et_had_animation h1 em::before,
.title-default.et_had_animation h2 em::before,
.title-default.et_had_animation h3 em::before,
.title-default.et_had_animation h4 em::before{
  width:2000px
}

.title-default h1 + p,
.title-default h2 + p,
.title-default h3 + p,
.title-default h4 + p,
.title-default h1 + blockquote,
.title-default h2 + blockquote,
.title-default h3 + blockquote,
.title-default h4 + blockquote{
	margin-top:15px;/*
		background:grey*/
}
.title-default.top_page h1 + .chapo,
.title-default.top_page h2 + .chapo,
.title-default.top_page h3 + .chapo,
.title-default.top_page h4 + .chapo,
.title-default.top_page h1 + p,
.title-default.top_page h2 + p,
.title-default.top_page h3 + p,
.title-default.top_page h4 + p,
.title-default.top_page h1 + blockquote,
.title-default.top_page h2 + blockquote,
.title-default.top_page h3 + blockquote,
.title-default.top_page h4 + blockquote{
	width:60%;
	margin:30px auto 0;
}

body:not(.et-fb) .title-default.side.abs{
	padding-right:420px;
	position:static!important;
}
body:not(.et-fb) .title-default.side.large.abs{
	padding-right:620px;
}
body:not(.et-fb) .title-default.side .et_pb_text_inner{
	display:flex;
	flex-wrap:wrap;
	align-items:flex-start;
}
body:not(.et-fb) .title-default.side.abs .et_pb_text_inner{
	position:static!important
}
body:not(.et-fb) .title-default.side.abs blockquote{
	position:absolute;
	top:35px;
	right:0;
	width:420px;
	color:rgba(255,255,255,0);
	padding-top:30px;
	padding-left:0;
	transition:color 800ms 500ms
}
body:not(.et-fb) .title-default.side blockquote{
	flex:1;
	padding-top:70px;
	padding-left:100px;
	margin-top:0
}

body:not(.et-fb) .title-default.side blockquote p{
	text-align:right
}
body:not(.et-fb) .title-default.side.et_had_animation blockquote{
	color:var(--main)
}
body:not(.et-fb) .title-default.white.side.et_had_animation blockquote{
	color:white
}

/* Top page with uneven width */
.top1_cpt_page h1,
.top1_cpt_page h2,
.top1_cpt_page h3,
.top1_cpt_page h4{
	font-size:3.125rem;
	line-height:1.1em;
	text-align:center!important
}
.top1_cpt_page h1 em,
.top1_cpt_page h2 em,
.top1_cpt_page h3 em,
.top1_cpt_page h4 em{
	display:block;
	font-size:0.8em;
	color:var(--blue);
	font-style:normal
}


/*	********
	 HEADER
	******** */
header#main{
	position:fixed;
	z-index:90000;
	top:0;
	left:0;
	width:100%;
	min-width:1260px;
	padding:20px calc((100% - 1260px) / 2);
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	align-items:center;
}
header.scrolled{
	background:var(--back);
	box-shadow:0 0 5px rgba(0,0,0,0.2)
}

/*  Logo
	------ */
.logo_site{
	flex:0 0 160px
}
.logo_site img{
	display:block;
}

/*  Menu
	------ */
header nav.main{
	flex:1 1 auto;
	padding:0 5vw
}
header nav.main ul.level1{
	display:flex;
	justify-content:space-between;
	align-content:center;
}
header nav.main li.lv1{
	position:relative;
	padding:8px;
}
header nav.main li.lv1:before,
header nav.main li.lv1 a:before{
	content:'';
	display:block;
	width:8px;
	height:8px;
	background:var(--red);
	position:absolute;
	top:0;
	left:0;
	z-index:0;
	transition:top 500ms ease
}
header nav.main li.lv1 a:before{
	display:none
}
header nav.main li.lv1:hover:before{
	top:calc(100% - 8px)
}
header nav.main li a{
	text-transform:uppercase;
	font-weight:bold;
	font-size:0.9375rem;
	color:var(--main);
	letter-spacing:0.1rem;
}
header nav.main ul.sub{
	position:absolute;
	top:100%;
	left:0;
	white-space:nowrap;
	max-height:0;
	overflow:hidden;
}
header nav.main li.lv1:hover ul.sub{
	max-height:200px;
	transition:max-height 500ms ease
}
header nav.main li ul.sub li{
	padding:4px 28px 4px 8px;
	background:white;
}
header nav.main li li a{
	text-transform:none;
	font-size:1rem;
	position:relative;
	left:0;
	transition:left 500ms ease
}
header nav.main li li:hover a{
	left:20px
}

/*  Tools
	------ */
header .tools{
	flex:0 0 auto;
	display:inline-flex;
	align-items:center;
	gap:12px;
	white-space:nowrap;
}

/* LANGUAGES */
#language_switcher li{
	padding:0;
	list-style:none;
}
#language_switcher li a{
	display:inline-block;
	text-transform:uppercase;
	width:35px;
	height:35px;
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	align-items:center;
	align-content:center;
	font-size:0.8rem;
	line-height:1;
	font-weight:700;
	background:rgba(0,0,0,0.1);
	border-radius:50%;
	transition:background 500ms
}
#language_switcher li a:hover{
	background:rgba(0,0,0,0.15);
}

/* BURGER MENU */
#burger_menu {
	position: relative;
	width: 25px;
	height: 30px;
	cursor: pointer;
	display:none
}
#burger_menu::before,
#burger_menu::after {
	content: '';
	position: absolute;
	width: 100%;
	height: 3px;
	background: #333;
	border-radius: 2px;
	transition: all 0.3s ease;
}
#burger_menu span {
	position: absolute;
	width: 100%;
	height: 3px;
	background: red;
	border-radius: 2px;
	top: 50%;
	transform: translateY(-50%);
	transition: all 0.3s ease;
}
#burger_menu::before {
	top: 0;
}
#burger_menu::after {
	bottom: 0;
}
/* État actif - transformation en X */
header.active #burger_menu span {
	opacity: 0;
	transform: translateY(-50%) rotate(45deg);
}
header.active #burger_menu::before {
	top: 50%;
	transform: translateY(-50%) rotate(45deg);
	background: #e91e63;
}
header.active #burger_menu::after {
	bottom: 50%;
	transform: translateY(50%) rotate(-45deg);
	background: #e91e63;
}

/*	***************************
	 CIRCLE BULLET PAGNINATION
	*************************** */
.circle-slider{
	position:relative;
}
.slider-custom-circle-pagination {
    position: absolute;
    left: -30px!important;  /* Changé de 40px à -50px */
    top: 50%!important;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    gap: 20px;    /* Changé de 10px à 30px */
    width: fit-content!important;
    height: auto;
    z-index: 10;
}
.slider-custom-circle-bullet {
    position: relative;
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
    display: flex !important;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    box-sizing: border-box !important;
}
.slider-custom-circle-bullet-number {
    position: absolute;
    z-index: 10;
    font-weight: bold;
    font-size: 14px;
    color: #000;
}
.slider-custom-progress-circle {
    position: absolute;
    top: 0;
    left: 0;
    width: 40px !important;
    height: 40px !important;
}
.slider-custom-circle-bg {
    fill: transparent;
    stroke: var(--main);
    stroke-width: 1px;
}
.slider-custom-circle-progress {
    fill: transparent;
    stroke: var(--red);
    stroke-width: 3px;
    stroke-linecap: round;
    stroke-dasharray: 113; /* Circonférence approximative pour r=18 */
    stroke-dashoffset: 113; /* Départ à 100% */
    transform: rotate(-90deg);
    transform-origin: center;
}
.slider-custom-circle-bullet-active .slider-custom-circle-bullet-number {
    font-weight: bold;
}


/*	********
	 FOOTER
	******** */
footer.main{
	background:var(--blue);
	color:white;
	position:relative;
	padding:20px calc((100% - 1260px) / 2);
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
}
footer .left{
	width:120px;
}
footer .right{
	width:calc(100% - 180px);
}

footer.main .logo_site img{
	width:100%;
	max-width:120px;
}

footer.main .social-networks {
	display: flex;
	gap: 1rem;
	align-items: center;
	margin-top:20px;
}
footer.main .social-networks .social-icon-link {
	display: inline-block;
	text-decoration: none;
	font-family: 'ETmodules';
	font-size: 1.5rem;
	line-height: 1;
	color: inherit;
	position: relative;
}
footer.main .social-networks .social-icon-link:hover {
	opacity:0.8
}
footer.main .social-networks .social-icon-link::before {
	font-family: 'ETmodules';
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 1;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
/* Codes spécifiques pour chaque réseau avec pseudo-éléments */
footer.main .social-networks .social-icon-link.social-facebook::before { content: "\e093"; } /* Facebook */
footer.main .social-networks .social-icon-link.social-linkedin::before { content: "\e09d"; } /* LinkedIn */
footer.main .social-networks .social-icon-link.social-youtube::before { content: "\e0a3"; } /* YouTube */

footer.main a{
	color:white;
	cursor:pointer!important
}
footer.main a:hover{
	color:rgba(255,255,255,0.7)
}

footer.main nav.main ul{
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	align-items:flex-start;
	text-transform:uppercase
}
footer.main nav.main ul li{
	font-weight:700
}
footer.main nav.main ul ul{
	width:100%;
	padding:0 0 0 10px;
}
footer.main nav.main ul ul li{
	display:block;
	width:100%;
	font-weight:400!important;
	text-transform:none
}

footer.main .contacts{
	width:calc(100% - 250px);
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	align-items:center;
	align-content:center;
	position:relative;
	z-index:5;
	top:-40px
}

footer.main #legals{
	width:100%;
	font-size:0.875rem;
	line-height:1rem;
	text-align:center;
	position:relative;
}


/* ======================= */
/* RESPONSIVE BREAK POINTS */
/* ======================= */

/* ---------- BIG DESKTOP ---------- */
@media screen and (min-width:1550px){}

/* ---------- BIG TABLET LANDSCAPE (1000) ---------- */
@media screen and (max-width:1360px){
	.et_pb_section{
		padding-left:20px;
		padding-right:20px
	}
	.et_pb_row,
	.et_pb_row.short{
		max-width:100%;
		width:100%
	}
	header#main{
		min-width:0;
		padding:20px;
	}
}

/* ---------- TABLET LANDSCAPE (900) ---------- */
@media screen and (max-width:1050px){	
	.active .logo_site,
	header .tools{
		position:relative;
		z-index:100;
	}
	
	#burger_menu{
		display:block;
	}
	header nav.main{
		opacity:0;
		position:fixed;
		z-index:90;
		top:0;
		left:-100%;
		width:100%;
		height:100vh;
		max-height:none;
		overflow:hidden;
		background:linear-gradient(to bottom, white 75%, rgba(255,255,255,0.8) 90%, rgba(255,255,255,0.5) 97%, rgba(255,255,255,0) 100%);
		padding:80px 30px 150px;
		transition:opacity 800ms
	}
	header.active nav.main{
		opacity:1;
		left:0;
	}
	header nav.main ul.level1{
		display:block;
		width:100%;
		max-width:300px;
		max-height:100%;
		overflow:hidden;
		margin:0 auto;
		position:relative
	}
	header nav.main li.lv1{
		width:100%;
		margin:15px auto;
		display:flex;
		flex-wrap:wrap;
		justify-content:space-between;
		align-items:center;
		align-content:center;
		position:static
	}
	header nav.main li.lv1:after{
		content:'>';
		color:var(--blue);
		font-size:1.2rem;
		font-weight:700;
		top:-5px
	}
	header nav.main li.lv1:before{
		display:none
	}
	header nav.main li.lv1 a{
		position:relative;
		width:calc(100% - 20px);
	}
	header nav.main li.lv1 a:before{
		display:block;
		top:-8px;
		left:-8px
	}
	header nav.main li.lv1 ul li a:before{
		display:none
	}
	header nav.main ul.sub,
	header nav.main li.lv1:hover ul.sub{
		position: absolute;
		z-index:1;
		width:100%;
		top:0;
		left:100%;
		bottom:0;
		height:100%;
		max-height:none;
		background:white;
		padding-left:30px;
		transition:all 300ms ease-in-out
	}
	
	header nav.main li.lv1.active ul.sub{
		left:0
	}
	header nav.main ul.sub li:first-child:before{
		content:'<';
		color:var(--blue);
		font-size:1.2rem;
		font-weight:700;
		position:absolute;
		z-index:2;
		left:0
	}
	header nav.main li li:hover a{
		left:0
	}
	header nav.main ul.sub li.close{
		position:absolute;
		top:0;
		left:0;
		width:30px;
		height:35px;
	}
}

/* ---------- TABLET PORTRAIT AND SMARTPHONE LANDSCAPE (720) ---------- */
@media screen and (max-width:900px){}

/* ---------- SMARTPHONE PORTRAIT (350) ---------- */
@media screen and (max-width:470px){	
	.et-db #et-boc .et-l .et_pb_button.ld-default:hover,
	.forminator-button.ld-default:hover{
		color:var(--darkmain);
	}
	.et-db #et-boc .et-l .et_pb_button.ld-default:hover:after,
	.forminator-button.ld-default:hover:after{
		width:0;
	}
	
	.title-default h1,
	.title-default h2,
	.title-default h3,
	.title-default h4{
		font-size:1.875rem!important;
	}	
	.title-default h1 em,
	.title-default h2 em,
	.title-default h3 em,
	.title-default h4 em{
		padding-bottom:20px
	}
	.title-default h1 em::before,
	.title-default h2 em::before,
	.title-default h3 em::before,
	.title-default h4 em::before{
	  content:'';
	  top:calc(100% - 10px);
	  left:0;
	}
	.title-default.top_page h1 + .chapo,
	.title-default.top_page h2 + .chapo,
	.title-default.top_page h3 + .chapo,
	.title-default.top_page h4 + .chapo,
	.title-default.top_page h1 + p,
	.title-default.top_page h2 + p,
	.title-default.top_page h3 + p,
	.title-default.top_page h4 + p,
	.title-default.top_page h1 + blockquote,
	.title-default.top_page h2 + blockquote,
	.title-default.top_page h3 + blockquote,
	.title-default.top_page h4 + blockquote{
		width:100%;
		margin:0 auto;
		padding-top:0
	}	
	body:not(.et-fb) .title-default.side.abs,
	body:not(.et-fb) .title-default.side.large.abs{
		padding-right:0;
	}
	body:not(.et-fb) .title-default.side.abs blockquote{
		position:relative;
		right:auto;
		width:100%;
		padding-top:0
	}
	body:not(.et-fb) .title-default.side blockquote{
		width:100%;
		flex:auto;
		padding-top:10px;
		padding-left:0;
	}
	body:not(.et-fb) .title-default.side blockquote p{
		text-align:left
	}	
	.slider-custom-circle-pagination {
		position: absolute;
		left:0!important;  /* Changé de 40px à -50px */
		top:calc(100% - 40px)!important;
		width:100%;
		transform:none;
		flex-direction:row;
		justify-content:center
	}
	
	footer.main{
		padding:40px 20px 30px;
	}
	footer .left,
	footer .right{
		width:100%;
		text-align:center
	}
	footer.main .logo_site img{
		max-width:180px;
		margin:auto
	}

	footer.main .social-networks {
		justify-content:center;
		margin-bottom:30px
	}
	footer.main .social-networks .social-icon-link:hover {
		opacity:1
	}
	footer.main .social-networks .social-icon-link {
		font-size: 2rem;
	}
	footer.main a:hover{
		color:white
	}
	footer.main nav.main ul{
		gap:10px;
	}
	footer.main nav.main ul li{
		width:100%;
		font-size:1.1rem
	}
	footer.main nav.main ul ul{
		gap:0;
		padding:10px 0 0;
	}
	footer.main .contacts{
		width:100%;
		top:auto;
		margin:30px 0;
		justify-content:center
	}
	footer.main .contacts a{
		display:block;
		width:fit-content
	}
	footer.main #legals{
		width:100%;
		font-size:0.875rem;
		line-height:1rem;
		text-align:center;
		position:relative;
	}
	
	
	#wpadminbar{display:none}
}

/* ---------- MOBILE PORTRAIT (320) ---------- */
@media screen and (max-width:350px){}