@import url('/plugin/site/variables.css');

body, document, html {
	height: 100%;
	width: 100%;
	margin: 0;
	padding: 0;
}
body {
	height: auto;
	/*min-height: 100%;*/
	min-height: 100vh;
	position: relative;
	background-color: var(--color-background);

	font-family: var(--font-m-family);
	font-size: 1rem;
	font-weight: 400;
	/*line-height: 1.6;*/
	color: var(--color-main-text);

	display: flex !important;
	flex-direction: column !important;
	justify-content: space-between !important;
}
@media (max-width: 991.98px) {
	body {
		font-size: .9rem;
	}
}
@media (max-width: 767.98px) {
	body {
		font-size: .8rem;
	}
}


html, body {
	overflow-x: hidden !important; /* pour le bug AOS */
}

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

	-webkit-transition: var(--transition-color);
	-moz-transition: var(--transition-color);
	-o-transition: var(--transition-color);
	transition: var(--transition-color);
}
a:hover, a:focus {
	color: var(--color-anchor);
	text-decoration: none;
}
.btn {
	-webkit-transition: var(--transition-bg-color), var(--transition-color);
	-moz-transition: var(--transition-bg-color), var(--transition-color);
	-o-transition: var(--transition-bg-color), var(--transition-color);
	transition: var(--transition-bg-color), var(--transition-color);
}
img {
	border: none;
}

h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {
	margin-top: 0;
	margin-bottom: 1rem;
	font-weight: 800;
	line-height: 1.3;
	color: var(--color-heading-text);
}


h6 span, .h6 span, h5 span, .h5 span, h4 span, .h4 span, h3 span, .h3 span, h2 span, .h2 span, h1 span, .h1 span {
	color: var(--color-primary);
}


/*
h1 {
	font-size: 50px;
}

h2 {
	font-size: 30px;
}

h4 {
	font-size: 28px;
}*/

/*.text-gradient-primary {
	background: linear-gradient(to right, #B9121B, var(--color-main-text));
	background-clip: border-box;
	-webkit-background-clip: text;
	-webkit-text-fill-color: rgba(0,0,0,0);
}*/
/*
.text-gradient-primary {
	background: linear-gradient(to right, #6366f1, #8b5cf6, #d946ef);
	background-clip: border-box;
	-webkit-background-clip: text;
	-webkit-text-fill-color: rgba(0,0,0,0);
}
 */



/****************** HEADER ******************/

header#header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: white;
	-webkit-box-shadow:  0 5px 10px rgba(117, 117, 117, 0.3);
	/*box-shadow: 0 5px 15px rgba(117, 117, 117, 0.26);*/
	box-shadow: 0 5px 10px rgba(117, 117, 117, 0.3);
}


header#header nav.navbar {
	--bs-navbar-padding-x: 1rem;
	padding-top: 10px !important;
	padding-bottom: 10px !important;
}


header#header nav.navbar .navbar-brand {
	padding: 0;
	flex: 1 1;
	margin-left: 1rem;
}
header#header nav.navbar .navbar-brand img {
	min-height: 50px;
	max-height: 55px;
	width: auto;
	max-width: 80%;
}

header#header nav.navbar .navbar-toggler {
	padding-left: .25rem;
	border: none;
}
header#header nav.navbar .navbar-toggler:focus {
	box-shadow: none;
}
header#header nav.navbar .navbar-toggler[aria-expanded="true"] > * {
	color: var(--color-primary);
}

header#header nav.navbar .navbar-collapse ul.navbar-nav li.nav-item {
	padding-left: 20px;
	padding-right: 20px;

	font: var(--font-m-bold-16);
	display: inline-block;
	color: var(--color-primary);
	text-transform: uppercase !important;
}

header#header nav.navbar .navbar-collapse ul.navbar-nav li.nav-item a.nav-link:hover,
header#header nav.navbar .navbar-collapse ul.navbar-nav li.nav-item a.nav-link:active,
header#header nav.navbar .navbar-collapse ul.navbar-nav li.nav-item a.nav-link:focus {
	color: var(--color-primary) !important;
}
header#header nav.navbar .navbar-collapse ul.navbar-nav li.nav-item a.nav-link.active {
	color: var(--color-primary) !important;
	position: relative;
}
header#header nav.navbar .navbar-collapse ul.navbar-nav li.nav-item a.nav-link.active:after {
	content: '';
	position: absolute;
	width: 100%;
	left: 0;
	bottom: 0;
	height: 2px;
	background-color: #ec682e;
}


/****************** MAIN ******************/
main {
	flex-grow: 1 !important;
}

section:not(.page-header) + section {
	margin-top: 8rem;
}
@media (max-width: 767.98px) {
	section:not(.page-header) + section {
		margin-top: 3rem;
	}
}


section.page-header {
	background-color: var(--color-primary);
	padding-top: 3.5rem;
	padding-bottom: 7rem;

	position: relative;
}
@media (max-width: 767.98px) { /* md*/
	section.page-header {
		padding-top: 1.5rem;
		padding-bottom: 5rem;
	}
}

section.page-header h1 {
	text-align: center;
	margin-bottom: 0;
}
section.page-header *:not(h1) {
	color: white;
}
section.page-header small {
	text-align: center;
	display: block;
	margin-top: 2rem;
}

@media (max-width: 767.98px) {
	section.page-header small {
		margin-top: .75rem;
	}
}

section.page-header:after {
	content: "";

	position: absolute;
	bottom: 0;
	left: -10%;
	width: 120%;
	height: 30%;

	background-color: var(--color-background);
	border-top-left-radius: 50%;
	border-top-right-radius: 50%;
}


section .head {
	margin-bottom: 2.5rem;
	text-align: center;
}
section .head h1 {
	font-size: 2.5rem;
}
section .head p {
	font-size: 1.125rem !important;
}

.nav .nav-link {
	color: var(--color-noir);
	border-bottom-color: #f3f6ff;
}
.nav .nav-link.active {
	color: var(--color-primary);
	border-bottom-color: var(--color-primary);
}

/****************** FOOTER ******************/
footer {
	margin-top: 4rem;
	padding-top: 2rem;
	padding-bottom: 2rem;
/*
	border-top-left-radius: 50%;
	border-top-right-radius: 50%;*/
	position: relative;
	background-color: var(--color-primary);

	color: #ffffff;
}

footer:before {
	content: "";

	position: absolute;
	top: -20px;
	left: -10%;
	width: 120%;
	height: 80px;

	background-color: var(--color-primary);
	border-top-left-radius: 50%;
	border-top-right-radius: 50%;
}

footer > * {
	position: relative; /* Pour que la bande arrondi (:before) ne passe pas devant */
}

footer * {
	color: #ffffff;
}

footer ul {
	margin-bottom: 0;
}
footer .logo {
	max-height: 76px;
}
footer .bt-social {
	font-size: 2rem;
}

/****************** DIVERS ******************/

.btn-primary {
	--bs-btn-color: #fff;
	--bs-btn-bg: var(--color-primary);
	--bs-btn-border-color: var(--color-primary);

	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: rgba(var(--color-rgb-primary), 0.8);
	--bs-btn-hover-border-color: rgba(var(--color-rgb-primary), 0.8);
	--bs-btn-focus-shadow-rgb: 49,132,253;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: rgba(var(--color-rgb-primary), 0.8);
	--bs-btn-active-border-color: rgba(var(--color-rgb-primary), 0.8);
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);

	--bs-btn-disabled-color: #fff;
	--bs-btn-disabled-bg: rgba(var(--color-rgb-primary), 0.3);
	--bs-btn-disabled-border-color: rgba(var(--color-rgb-primary), 0.3);
}

.btn-outline-primary {
	--bs-btn-color: var(--color-primary);
	--bs-btn-border-color: var(--color-primary);

	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: rgba(var(--color-rgb-primary), 0.8);
	--bs-btn-hover-border-color: rgba(var(--color-rgb-primary), 0.8);
	--bs-btn-focus-shadow-rgb: 13,110,253;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: rgba(var(--color-rgb-primary), 0.8);
	--bs-btn-active-border-color: rgba(var(--color-rgb-primary), 0.8);
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);

	--bs-btn-disabled-color: rgba(var(--color-rgb-primary), 0.3);
	--bs-btn-disabled-bg: transparent;
	--bs-btn-disabled-border-color: rgba(var(--color-rgb-primary), 0.3);
	--bs-gradient: none;
}

.accordion {
	--bs-accordion-active-color: #ffffff;
	--bs-accordion-active-bg: var(--color-primary);
}
.accordion .accordion-button {
	box-shadow: none !important;
}

.form-control:focus {
	border-color: rgba(var(--color-rgb-primary), 0.4);
	box-shadow: 0 0 0 .25rem rgba(var(--color-rgb-primary),.25);
}

.bg-secondary {
	background-color: #f3f6ff !important;
}

.card-asymetrique {
	border-radius: 25% 10% !important;
}

form fieldset button[type="submit"] .spinner-border {
	display: none;
}
form fieldset:disabled {
	opacity: .7;
}
form fieldset:disabled button[type="submit"] .spinner-border {
	display: inline-block;
}

.form-check-input:checked {
	background-color: var(--color-primary);
	border-color: var(--color-primary);
}

.form-check-input:focus {
	box-shadow: 0 0 0 .25rem rgba(var(--color-rgb-primary),.25);

}
.form-switch .form-check-input:not(:checked) {
	border-color: rgba(var(--color-rgb-primary),.5);
	--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23B9121B'/%3e%3c/svg%3e");
}

form .col-form-label.required:after,
form .form-label.required:after,
form .form-check-label.required:after,
form .form-floating label.required:after {
	content: ' *';
	color: var(--color-rouge);
}

form .buttons {
	text-align: center;
}
form .buttons > button + *,
form .buttons > a + * {
	margin-left: 7px;
}

.bd-callout {
	padding: 1.25rem;
	margin-top: 1.25rem;
	margin-bottom: 1.25rem;
	background-color: rgba(var(--color-rgb-primary), .1);
	border-left: 0.25rem solid var(--color-primary);
}

.btn-xs {
	--bs-btn-padding-y: .15rem;
	--bs-btn-padding-x: .5rem;
	--bs-btn-font-size: .75rem;
}

.color-assuragents {
	color: var(--color-rouge) !important;
}

body.environnement-developpement:not(.espace-pro)::after {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	height: 30px;
	background-color: rgba(140, 185, 140, .9);
	content: "developpement";
	color: #FFFFFF;
	text-align: center;
	font-size: 16px;
	line-height: 30px;
	z-index: 9999;
}
body.environnement-developpement.espace-pro div.footer {
	background-color: rgb(140, 185, 140);
}

body.environnement-preproduction:not(.espace-pro)::after {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	height: 30px;
	background-color: rgba(248, 213, 71, .9);
	content: "preproduction";
	color: #FFFFFF;
	text-align: center;
	font-size: 16px;
	line-height: 30px;
	z-index: 9999;
}
body.environnement-preproduction.espace-pro div.footer {
	background-color: rgb(248, 213, 71);
}

.app-msg {
	text-align: center;
}
.app-msg i {
	font-size: 50px;
}
.app-msg-loading i {
	display: inline-block;
	-webkit-animation: spinner .75s linear infinite;
	animation: spinner .75s linear infinite;
}

.app-msg-searching i {
	display: inline-block;
	-webkit-animation: squareAnimation 2s linear infinite;
	animation: squareAnimation 2s linear infinite;
}

@keyframes squareAnimation {
	0% {
		transform: translate(-10px, -10px);
	}
	25% {
		transform: translate(-10px, 10px);
	}
	50% {
		transform: translate(10px, 10px);
	}
	75% {
		transform: translate(10px, -10px);
	}
	100% {
		transform: translate(-10px, -10px);
	}
}



.page-loading {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
	-webkit-transition: all .4s .2s ease-in-out;
	transition: all .4s .2s ease-in-out;
	background-color: #fff;
	opacity: 0;
	visibility: hidden;
	z-index: 9999;
}
.page-loading.active {
	opacity: 1;
	visibility: visible;
}
.page-loading-inner {
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	text-align: center;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	-webkit-transition: opacity .2s ease-in-out;
	transition: opacity .2s ease-in-out;
	opacity: 0;
}
.page-loading.active > .page-loading-inner {
	opacity: 1;
}
.page-loading-inner > span {
	display: block;
	font-size: 1rem;
	font-weight: normal;
	color: #9397ad;
}
.page-spinner {
	display: inline-block;
	width: 2.75rem;
	height: 2.75rem;
	margin-bottom: .75rem;
	vertical-align: text-bottom;
	border: .15em solid #b4b7c9;
	border-right-color: transparent;
	border-radius: 50%;
	-webkit-animation: spinner .75s linear infinite;
	animation: spinner .75s linear infinite;
}
@-webkit-keyframes spinner {
	100% {
		-webkit-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}
@keyframes spinner {
	100% {
		-webkit-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}