/* ===========================================================
   Général
   =========================================================== */
* {
	box-sizing: border-box;
}

body{
	font-family: Arial, Helvetica, sans-serif;
	color: #333;
	background: white;
	font-size: 16px;
	margin: 0;
	padding: 0;
	text-align: center;
}

/* ===========================================================
   Navbar
   =========================================================== */
nav.topbar{
	padding: 12px 25px;
	margin: 0;
	position: static;

	background: #0f5d91;
	color: white;
	box-shadow: 0 2px 8px rgba(0,0,0,.15);

	display: flex;
	flex-direction: row;
	justify-content: space-between;
	justify-self: stretch;
	align-items: center;
	width: 100%;
	height: 80px;
	min-width: 450px;
}

nav.topbar > * {
	margin: 0;
	padding: 0;
	border: 0;
}

nav.topbar a {
	color: #ffffff;
	text-decoration: none;
	font-weight: normal;
	font-size: 22px;

	padding: 10px 18px;
	border: 0;
	border-radius: 4px;
	background: rgba(255,255,255,0);
	transition: .3s;
}

nav.topbar a:hover {
	background: rgba(255,255,255,.25);
	font-weight: bold;
}

nav.topbar a.logo {
	flex: 0 0 auto;

	height: 100%;
	max-width: 250px;
	max-height: 60px;
}

nav.topbar a.logo > img {
	padding: 0;
	width: auto;
	height: 100%;
}

nav.topbar ul {
	list-style: none;
	margin-block-start: 0;
	margin-block-end: 0;
	padding-inline-start: 0;
	margin: 0;
	padding: 0;
}

nav.topbar ul.menu {
	display: flex;
	flex: 1 0 auto;
	flex-direction: row;
	justify-self: stretch;
	justify-content: center;
	align-items: center;
	gap: 35px;
}

nav.topbar ul.social {
	display: flex;
	flex: 0 1 auto;
	flex-direction: row;
	justify-self: end;
	align-items: center;
	gap: 15px;
}

nav.topbar ul.social a {
	padding: 0;
}

nav.topbar ul.social img {
	padding: 0;
	width: auto;
	height: 100%;
	border: 0px;
}

/*nav.topbar ul.menu {
 *	position: absolute;
 *	left: 50%;
 *	transform: translateX(-50%);
 *}
 */

.menu-overlay {
	position: fixed;
	inset: 0;
	width: 100%;
	height: 100%;
	margin-top: 80px;
	background: rgba(0,0,0,.5);
	opacity: 0;
	visibility: hidden;
	transition: .3s;
	z-index: 999;
}

.menu-overlay.open {
	opacity: 1;
	visibility: visible;
}

/* ===========================================================
   Hamburger
   =========================================================== */

.hamburger{
	display: none;
	font-size: 34px;
	cursor: pointer;
	z-index: 1001;
}


/* ===========================================================
   Diaporama
   =========================================================== */
.slideshow{
	position: relative;
	width: 100%;
	height: auto;
	aspect-ratio: 16/9;
	max-height: 500px;
	overflow: hidden;
}

.slideshow img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;

	opacity: 0;
	transition:
	opacity 1.2s ease;

	z-index: 0;
}

.slideshow img.active {
	opacity: 1;
	z-index: 1;
}

/* ===========================================================
   Page simple
   =========================================================== */
main {
	max-width: 1000px;
	margin: 60px auto;
	padding: 20px;
}

main h1{
	text-align: center;
	margin-bottom: 30px;
}
main h2{
	text-align: center;
	margin-bottom: 30px;
}
main figure {
	text-align: center;
}
main figure > blockquote {
	font-size: 16px;
	font-weight: bold;
	color: #002238;
}
main figure > figcaption {
	font-style: italic;
}

/* ===========================================================
   Blocs image / texte
   =========================================================== */
.twocolumn {
	text-align: center;
	margin: 0;
	width: 45%;
	margin: 15px;
	line-height: normal;
}
.twocolumn h2 {
	background: #bcc6db;
	color: #000000;
	font-weight: bold;
	padding: 20px;
}
.twocolumn p {
	margin-top: 15px;
}
.bloc{
	display: flex;
	align-items: center;

	margin: 15px;
	width: 100%;
	min-height: 350px;
	background: #bcc6db;
}

.bloc .image,
.bloc .texte{
	padding: 15px;
	width: 50%;

}

.bloc .image{
	height: 350px;
}

.bloc img{
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.bloc h2{
	margin-bottom: 20px;
}

a {
	text-decoration: none;
	color: #002238;
}
a:hover {
	color: #d3a900;
}

a.button {
	display: inline-block;
	color: #eeeeee;
	text-decoration: none;
	background: #015a82;
	border-radius: 15px;
	margin: 15px;
	padding: 15px;
}
a.button:hover {
	background: #002238;
	color: #eeeeee;
}

/* alternance */
.inverse{
	flex-direction: row-reverse;
}

/* ===========================================================
   Pied de page
   =========================================================== */

footer {
	background: #111;
	color: white;

	display: flex;
	justify-content: space-around;
	padding: 50px;
}

footer a {
	color: inherit;
	text-decoration: none;
	font-weight: bold;
}

.footer-column{
	flex: 1;
}

.footer-column a {
	font-weight:  bold;
}

/* ===========================================================
   Responsive
   =========================================================== */

@media (max-width: 900px){
	.hamburger{
		display: inline;
	}

	nav.topbar.open {
		position: fixed;
		top: 0;
		left: 0;
		z-index: 1000;
	}

	nav.topbar ul.menu {
		position: fixed;
		top: 80px;
		right: -300px;
		width: 90%;
		max-width: 300px;
		height: auto;
		padding: 1em;

		background: #0f5d91;

		display: flex;
		flex-direction: column;
		justify-content: start;

		transition: right .3s ease;
		z-index: 1000;
	}

	nav.topbar ul.menu.open {
		right: 0px;
	}

	#menu-toggle: checked ~ nav.menu {
		display: flex;
	}

	.bloc,
	.inverse{
		flex-direction: column;
	}

	.bloc .image,
	.bloc .texte{
		width: 100%;
	}

	.bloc .texte{
		padding: 35px;
	}

	footer{
		flex-direction: column;
	}
}

