

/******************************* Base *******************************/

:root {
	--coul-white: #FFFFFF;
	--coul-black: #000000;
	--coul-golden: #BEAF8A;
	--coul-dark-golden: #A5905B;
	--coul-beige: #EDE7D9;
	--coul-blue: #19255A;
	--coul-light-blue: #A7B3E7;
	--coul-red: #5C1925;
	--coul-light-grey: #F6F4EE;
	--coul-grey: #d8d4cc;
	
	--bg-opacity: 0.2;
	
	--gap : 10px;
	--gap2: calc(var(--gap) * 2);
	--gap4: calc(var(--gap) * 4);
	--gap8: calc(var(--gap) * 8);
	--gap16: calc(var(--gap) * 16);
	--gap32: calc(var(--gap) * 32);
	
	/* Font size */
	--fsize1: 20px;
	--fsize2: 32px;
	--fsize3: 51px;
	--fsize4: 82px;
	--fsize5: 131px;
	--fsizemin : max(0.75em, 12px);
	
	--fontfam : "Roustel";
	--fontfam2 : "DM Serif Text";
	
	--transitionA : 0.5s;
	--transitionB : 1s;
	
	--radius10: 10px;
	--radius5: 5px;
	
	--page-width: 1400px;
	
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

a {
	transition: color var(--transitionA);
	color: inherit;
	text-decoration: none;
}

h1, h2, h3, h4, p {
	margin: 0;
	font-weight: normal;
}

input, textarea, select {
	border: none;
	resize: none;
	outline: none;
	padding: var(--gap);
	border-radius: var(--radius5);
	font-family: inherit;
	color: inherit;
	font-size: inherit;
}

ul {
	padding: 0;
	margin: 0;
}

li {
	list-style: none;
	position: relative;
	display: flex;
	align-items: flex-start;
	grid-gap: var(--gap);
}

li::before {
	content: "";
	display: block;
	height: 5px;
	width: 5px;
	flex-shrink: 0;
	border-radius: 50%;
	background-color: var(--coul-blue);
	margin-top: 10px;
}

strong, .bold {
	font-family: "CabinetGrotesk-Bold";
}

.fsizemin {
	font-size: var(--fsizemin);
}

#__abconsent-cmp {
	position: absolute;
}

/* Maintenance */

#maintenance-page {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	min-height: 100vh;
}

/* Page 404 */

#page-404 {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	grid-gap: var(--gap2);
	min-height: 100vh;
	background-color: var(--coul-beige);
	color: var(--coul-blue);
	text-align: center;
	padding: var(--gap2);
}

#page-404 h1 {
	font-size: var(--fsize2);
	margin: 0;
}

.page-404-logo {
	width: 400px;
	margin-bottom: var(--gap8);
}

.page-404-logo svg * {
	fill: var(--coul-blue);
}

/* Alerts */

.alerts-container {
	position: fixed;
	bottom: var(--gap2);
	left: 50%;
	transform: translateX(-50%);
	z-index: 20;
	pointer-events: none;
	animation: disappear 5s forwards;
	animation-delay: 5s;
}

@keyframes disappear {
	0% { opacity: 1;}
	10% { opacity: 0;}
	100% { opacity: 0; display: none;}
}

/* Loading */

#loading {
	height: 100vh;
	width: 100vw;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 300;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	grid-gap: var(--gap4);
	background-color: var(--coul-beige);
	transition: var(--transitionB);
}

.loader, .loader:before, .loader:after {
  border-radius: 50%;
  width: 2.5em;
  height: 2.5em;
  animation-fill-mode: both;
  animation: bblFadInOut 1.8s infinite ease-in-out;
}

.loader {
  color: var(--coul-blue);
  font-size: 7px;
  position: relative;
  text-indent: -9999em;
  transform: translateZ(0);
  animation-delay: -0.16s;
}

.loader:before,
.loader:after {
  content: '';
  position: absolute;
  top: 0;
}

.loader:before {
  left: -3.5em;
  animation-delay: -0.32s;
}

.loader:after {
  left: 3.5em;
}

@keyframes bblFadInOut {
  0%, 80%, 100% { box-shadow: 0 2.5em 0 -1.3em }
  40% { box-shadow: 0 2.5em 0 0 }
}

#loading img {
	max-width: 80px;
}

#loading p {
	font-size: var(--fsize4);
	color: var(--coul-white);
	font-family: var(--fontfam);
}

.loading-hidden {
	transform: translateY(-100%);
	pointer-events: none;
}


/* Buttons */

.button-white, .button-blue, .button-golden {
	border: solid 2px transparent;
	border-radius: var(--radius5);
	padding: var(--gap) var(--gap4);
	transition: var(--transitionA);
	display: flex;
	justify-content: center;
	align-items: center;
	grid-gap: var(--gap);
	cursor: pointer;
	user-select: none;
	text-align: center;
	font-size: var(--fsize1);
	font-family: inherit;
	white-space: normal;
}

.button-white {
	color: var(--coul-blue);
	background-color: var(--coul-white);
}

.button-white:hover {
	background-color: var(--coul-blue);
	color: var(--coul-white);
}

.button-blue {
	background-color: var(--coul-blue);
	color: var(--coul-white);
}

.button-blue:hover {
	background-color: var(--coul-white);
	color: var(--coul-blue);
	border: solid 2px var(--coul-blue);
}

.button-golden {
	background-color: var(--coul-dark-golden);
	color: var(--coul-white);
}

.button-golden:hover {
	background-color: var(--coul-white);
	color: var(--coul-dark-golden);
	border: solid 2px var(--coul-dark-golden);
}

.glowing {
	animation: border-glow 1s ease-in-out infinite alternate;
}

@keyframes border-glow {
  0% {
    box-shadow: 0 0 2px var(--coul-white);
  }
  100% {
    box-shadow: 0 0 60px var(--coul-light-blue);
  }
}

/* FAQ */

#faq {
	display: flex;
	flex-direction: column;
	grid-gap: var(--gap2);
	max-width: var(--page-width);
	width: 100%;
}

.accordions-container {
	display: flex;
	flex-direction: column;
	max-width: var(--page-width);
}

.accordion {
	border-bottom: solid 1px var(--coul-grey);
}

.accordion input[type="radio"] {
	display: none;
}

.accordion-title {
	padding: var(--gap) 0;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	grid-gap: var(--gap);
}

.accordion-status {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 20px;
	width: 20px;
	background-color: var(--coul-golden);
	color: var(--coul-white);
	border-radius: 50%;
	cursor: pointer;
	user-select: none;
	position: relative;
	flex-shrink: 0;
}

.accordion-status::before {
	content: "";
	height: 2px;
	width: 40%;
	background-color: var(--coul-white);
}

.accordion-status::after {
	position: absolute;
	content: "";
	width: 2px;
	height: 40%;
	background-color: var(--coul-white);
	transition: var(--transitionA);
}

.accordion-content {
	transition: var(--transitionA) linear;
	overflow: hidden;
}

.accordion input[type="radio"]:not(:checked) ~ .accordion-content {
	max-height: 0px;
}

.accordion input[type="radio"]:checked ~ .accordion-content{
	max-height: 800px;
}

.accordion input[type="radio"]:checked ~ .accordion-title .accordion-status::after{
	transform: rotate(-90deg);
}

.accordion-content-padding {
	padding: var(--gap);
	padding-top: 0;
	display: flex;
	flex-direction: column;
	grid-gap: var(--gap);
}


/* Footer */

#footer-container {
	display: flex;
	flex-direction: column;
	grid-gap: var(--gap4);
	width: 100%;
}

.referal-link {
	display: flex;
	flex-direction: column;
	grid-gap: var(--gap2);
	align-items: center;
	padding: var(--gap4);
	border: solid 2px;
	border-radius: var(--radius10);
	width: 100%;
	text-align: center;
}

footer {
	width: 100%;
	padding: var(--gap4);
	background-color: var(--coul-blue);
	position: relative;
	z-index: 1;
	color: var(--coul-white);
	overflow: hidden;
	border-radius: var(--radius10);
	display: flex;
	flex-direction: column;
	grid-gap: var(--gap32);
}

.footer-top, .footer-bottom {
	display: flex;
	justify-content: space-between;
	grid-gap: var(--gap4);
	align-items: flex-start;
	flex-wrap: wrap;
}

.footer-top-left {
	max-width: 650px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	grid-gap: var(--gap4);
}

.footer-buttons {
	display: flex;
	grid-gap: var(--gap2);
	flex-wrap: wrap;
}

.footer-newsletter input {
	color: var(--coul-white);
	background: transparent;
	border: solid 2px var(--coul-white);
}

.footer-newsletter input::placeholder {
	color: var(--coul-white);
}

.footer-newsletter {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	grid-gap: var(--gap2);
}

.footer-newsletter form {
	display: flex;
	grid-gap: var(--gap);
}

.footer-newsletter form button[type="submit"]{
	padding: var(--gap);
}

.footer-background {
	width: 100%;
	height: 100%;
	object-fit: cover;
	position: absolute;
	left: 0;
	top: 0;
	z-index: -1;
	opacity: var(--bg-opacity);
	object-position: top;
	pointer-events: none;
}

.footer-social-medias {
	display: flex;
	justify-content: center;
	align-items: center;
	grid-gap: var(--gap);
	font-size: var(--fsize2);
}

#legal-links {
	display: flex;
	justify-content: center;
	align-items: center;
	grid-gap: var(--gap4);
	flex-wrap: wrap;
}