/******************* Constants *******************/
:root {
	--font-color: #EFEFEF;
	--font-color-em: #8C8C8C;
	--background-color-main: #404040;
	--background-color-secondary: #505050;
	--avatar-background: #B6B6B6;
	--color01: #99CCFF;
	--color01_bright: #58af58;
	--color02: #ab7026;
	--color02_bright: #ea9a36;

	--nav-maxwidth: 900px;
	--nav-height: 5em;
	--body-maxwidth: 900px;
	--footer-maxwidth: 900px;
	--footer-height: 9em;
	--padding-border: 1em;
}

/******************* Page *******************/
* {
	box-sizing: border-box;
}
html {
	background-color: var(--background-color-main);
	font-family: Lato, Helvetica, sans-serif;
	font-size: large;
	color: var(--font-color);
	min-height: 100vh
}
body {
	margin: 0;
	position: relative;
}

a {
	color: var(--color01);
	text-decoration: none;
}
a:visited {
	color: var(--color01);
}
a:hover, a:focus {
	color: var(--color01);
	border-bottom: 2px solid var(--color01) !important;
}
.page-title {
	margin-top: 2em;
	font-size: 2em;
}

/******************* NavBar *******************/

#navigation {
	position: relative;
	width: var(--nav-maxwidth);
	max-width: 100%;
	height: var(--nav-height);
	margin: auto;
	padding: 0 var(--padding-border);
}
#navigation #menu {
	position: absolute;
	right: var(--padding-border);
	top: 50%;
	transform: translateY(-50%);
	margin: 0;
	list-style-type: none;
}
#navigation #menu li {
	display: inline-block;
	padding-left: 2em;
}
@media only screen and (max-width: 400px) {
	#navigation #menu li {
		display: block;
		padding-left: 0;
		padding-top: 0.5em;
	}
	#navigation #menu li:first-child {
		padding-top: 0;
	}
}
#navigation #menu .actualPage a {
	border-bottom: 1px solid var(--font-color);
}
#navigation .logo {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	height: 2em;
}


/******************* Container *******************/
.container {
	display: inline-block;
	width: 100%;
	min-height: calc(100vh - var(--nav-height) - var(--footer-height));
	background-color: var(--background-color-secondary);
	margin-bottom: 9em;
	padding-bottom: 3em;
}

.container>article {
	margin: auto;
	width: var(--body-maxwidth);
	max-width: 100%;
	padding: 0 var(--padding-border);
}


/******************* Footer *******************/
footer {
	background-color: var(--background-color-main);
	position: absolute;
	bottom: 0;
	height: var(--footer-height);
	width: 100%;
	padding: 0 2em;
	text-align: center;
}
#footer-content {
	display: flex;
	flex-wrap: wrap;
	flex-direction: row;
	width: 100%;
	max-width: var(--footer-maxwidth);
	width: 90vw;
	margin: auto;
	white-space: nowrap;
}
#footer-content * {
	white-space: normal;
}
.footer-element {
	display: inline-block;
	text-align: center;
	width: calc(100% / 2);
	margin: 0;
	vertical-align: top;
}

.footer-element>div {
	text-align: left;
	width: fit-content;
	width: -moz-fit-content;
	margin: auto;
}
.footer-element:first-child>div {
	margin-left: 0;
}
.footer-element:last-child>div {
	margin-right: 0;
}

.footer-element ul {
	padding-left: 0;
}
.footer-element ul li {
	list-style: none;
}

@media only screen and (max-width: 500px) {
	.footer-element {
		width: 100%;
		text-align: left;
	}
	.footer-element>div {
		margin: 0;
	}
}

/******************* Form *******************/

form {
	white-space: nowrap;
	display: flex;
	flex-wrap: wrap;
	flex-direction: row;
	margin: 0 -1em;
}
form * {
	white-space: normal;
}
.form-element {
	padding: 0 1em;
	margin-bottom: 1.5em;
	width: 100%;
}
.form-element:not(.inline) label {
	display: block;
	width: 100%;
}
.form-element.inline>* {
	display: inline-block;
}
.form-element.clear {
	display: block;
	margin: 0;
}
.form-element.half {
	display: inline-block;
	width: 50%;
}
.form-element.third {
	display: inline-block;
	width: 33.33%;
}
.form-element.twothird {
	display: inline-block;
	width: 66.66%;
}
.form-element.submit {
	width: 33.33%;
	margin: auto;
}
@media only screen and (max-width: 750px) {
	.form-element.half {
		width: 100%;
	}
	.form-element.third {
		width: 50%;
	}
	.form-element.twothird {
		width: 100%;
	}
	.form-element.submit {
		width: 100%;
	}
}

@media only screen and (max-width: 500px) {
	.form-element.third {
		width: 100%;
	}
}
.form-element>textarea {
	width: 100%;
	max-width: 100%;
	min-width: 100%;
	height: 7em;
	padding: 0.3em;
}
.form-element:not(.inline) input, .form-element:not(.inline) select {
	width: 100%;
	padding: 0.3em;
}
.form-element input:not([type="checkbox"]), .form-element select {
	height: 2.3em;
}
.form-element input[type="checkbox"] {
	height: 1.5em;
	width: 1.5em;
	vertical-align: bottom;
}
form .mandatory {
	color: red;
}
.form-element label.required::after {
	content: " *";
	color: red;
}
.required-description {
	width: 100%;
	margin: 0 1em;
	margin-bottom: 1.5em;
}

#messages {
	margin-bottom: 2em;
	padding: 0.5em;
	border: 1px solid var(--color02_bright);
	color: var(--color02_bright);
}

.form-serious {
	display: none;
}

/******************* Text *******************/

.textBloc {
	position: relative;
	left: calc(-1em - 2px);
	width: calc(100% + 1em);
	padding-left: 1em;
	border-left: 2px solid var(--color01);
}

.textBloc dl dt::after {
	display: inline-block;
	content: ": ";
}

.theme-title {
	color: var(--color01);
}

/******************* Services *******************/

.services {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: space-evenly;
	max-width: 100%;
}
.services .activity {
	max-width: 45%;
	vertical-align: top;
	margin-left: 0;
	margin-right: 0;
}
@media only screen and (max-width: 750px) {
	.services .activity {
		max-width: 90%;
	}
}
.services .img_container {
	width: 55%;
	margin: auto;
	display: block;
}
.services .activity img {
	width: 100%;
	padding: 1em;
}
.services .activity .title {
	color: var(--color01);
	display: block;
	font-weight: bold;
	margin-top: 1em;
	margin-bottom: 0.3em;
}

/******************* Index *******************/
.img_index img {
	max-width: 100%;
}

