html {
	background-color: var(--background);
	color: var(--text);
	font: normal normal normal 16px/24px Muli;
	scroll-behavior: smooth;
	& * {
		margin: 0;
		padding: 0;
	}
}

body {
	overflow: hidden;
	position: relative;
	width: 100%;
	min-height: 100dvh;
}

address {
	font-style: normal;
	
	& br {
		display: inline;
		content: none;
		margin-top: 0;
	}
}

a {
	color: var(--link-color);
	font-weight: bold;
	text-decoration: unset;
}

a.discrete {
	color: unset;
	font-weight: unset;
	text-decoration: unset;
	display: block;
	height: 100%;
}

img {
	pointer-events: none;
	object-fit: cover;
}

:is(section, .content) :not(button) a:not(.button, .discrete, .sommaire-h2, .sommaire-h3) {
	color: var(--link-color);
    &:hover {
        text-decoration: underline;
        text-underline-offset: .3em;
        text-decoration-thickness: 2px;
    }
}

h1, h2, h3, h4, h5 {
	font-family: 'Playfair Display';
	font-weight: bold;
	color: var(--title);
	text-align: left;
}

div.titre {
	font-family: 'Playfair Display';
	font-weight: bold;
	color: white;
	text-align: left;
	display: flex;
	width: 100%;
	flex-direction: column;
	justify-content: center;
	font-size: 24px;
	line-height: 36px;
	letter-spacing: 0.12px;
	margin-left: 10vw;
	text-transform: uppercase;
	text-decoration: underline;
	text-decoration-thickness: 3px;
	text-underline-offset: .3em;
}

h1 {
	font-size: 48px;
	line-height: 72px;
	letter-spacing: 0.72px;
	text-align: center;
	border-bottom: solid 4px var(--wyg-blue-alt);
	padding-bottom: .1em;
}

h2 {
	font-size: 24px;
	line-height: 36px;
	letter-spacing: 0.12px;
	margin-bottom: 24px;
}

h3 {
	font-size: 20px;
	line-height: 30px;
	letter-spacing: 0.12px;
	margin-bottom: 30px;
}

h4 {
	font-size: 16px;
	line-height: 24px;
	letter-spacing: 0px;
	margin-bottom: 24px;
}

h5 {
	font-size: 14px;
	line-height: 20px;
	letter-spacing: 0px;
	margin-bottom: 20px;
}

.sous-titre {
	font-family: Muli;
	font-size: 24px;
	line-height: 36px;
	font-weight: bold;
	margin-top: 32px;
	margin-bottom: 16px;
}

.sous-titre-2 {
	font-family: Muli;
	font-size: 20px;
	line-height: 24px;
	font-weight: bold;
	margin-top: 24px;
	margin-bottom: 12px;
}

strong {
	font-weight: bold;
}

.small {
	font-size: 14px;
	line-height: 20px;
}

.caption {
	font-size: 12px;
	line-height: 18px;
}

p {
	text-align: left;
}

:is(ul, p):has(+ :is(h1, h2, h3, h4, h5, p, ul, img)) {
	margin-bottom: 1em;
}

.before-link:has(+ a) {
	color: var(--link-color);
}

ins {
	text-decoration: none;
}

button, a.button {
	display: flex;
    align-items: center;
	color: var(--button-text);
	background: var(--button-background) 0% 0% no-repeat padding-box;
	font-size: 1em;
	font-family: Muli;
	font-weight: bold;
	border-radius: 3px;
	border: none;
	padding-inline: 20px;
	height: 48px;
	box-shadow: 0px 2px 4px #C8D5C633;
	transition: .3s ease-out;
	cursor: pointer;
	margin: 1.5em auto 0 0;
	width: fit-content;

	&::before {
		filter: grayscale(0) brightness(1);
		transition: .3s ease-out;
	}

	&:hover {
		background-color: var(--button-hover);
	}

	&:active {
		color: white;
		background-color: var(--button-click);

		&::before {
			filter: grayscale(0) brightness(10);
		}
	}

	&:disabled {
		color: #8A9389;
		background-color: var(--button-hover);

		&::before {
			filter: grayscale(0.8) brightness(2.5);
		}
	}

	&.contact::before {
		content: '';
		display: inline-block;
		background: url(../images/icons/icon-contact.svg) center no-repeat;
		background-size: contain;
		margin-right: 8px;
		width: 24px;
		min-width: 24px;
		height: 24px;
	}
}

[onclick] {
	cursor: pointer;
}

.filters {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;

	& button {
		margin: 12px;
		padding-inline: 12px;
		height: 36px;
		border: solid 1px var(--button-background);
		background-color: white;
		color: var(--button-text);
		white-space: nowrap;

		&:is(.selected, :active) {
			background-color: var(--button-background);
			color: var(--button-text);
		}
	}
}

.content :is(ol, ul) {
	padding: 1em 1em 0 1em;
}

nav[aria-label="Sommaire"] :is(ol, ul):has(.sommaire-h2, .sommaire-h3) {
	padding: 0;
	margin: 0;
	list-style: none;
}

li {
	text-align: left;
}

#header, #header::before {
	position: fixed;
	top: 0;
	width: 100%;
	height: 4.5rem;
}

#header {
	z-index: 1000;

	&::before {
		content: "";
        background-color: white;
        z-index: 1;
        opacity: 0;
        transition: .3s ease-in;
	}

	&:has(#menu.visible)::before {
		box-shadow: 0px 3px 6px #1B335F33;
		opacity: 1;
	}

	&.sticky-bar::before {
		box-shadow: 0px 3px 6px #1B335F33;
		opacity: 1;
	}

	&.sticky-bar:has(#menu.visible) {
		box-shadow: 0px 3px 6px #1B335F33;
	}

	& #nav {
		height: 100%;
		display: flex;
		align-items: center;
		justify-content: space-between;
		flex-flow: row;
	}

	& #menu {
		display: flex;
		flex-grow: 1;
		list-style: none;
		position: absolute;
		flex-direction: column;
		width: 100%;
		max-height: 80vh;
		overflow: auto;
		align-self: start;
		background-color: white;
		box-shadow: 0px 3px 6px #2E3A2D33;
		visibility: collapse;
		opacity: 0;
		transform: translate(0, -100%);
		padding-top: 1em;

		& li {
			text-align: center;
			display: flex;
			justify-content: center;
			align-items: center;
			padding: 1em;
			font-size: 1em;
		}

		& li:first-child {
			visibility: hidden;
		}

		& .button {
			margin: 0;
		}

		&.visible {
			visibility: visible;
			opacity: 1;
			transform: translate(0, 0);
		}

		& a:not(.button) {
			color: var(--wyg-blue);
			padding: 4px .3em 0 .3em;

			&::after {
				content: '';
                position: relative;
                display: block;
                margin-inline: -0.35rem;
                border-bottom: solid 2px var(--wyg-blue);
                opacity: 0;
                transform: scaleX(0);
                transition: .3s ease-out;
			}

			&:hover::after {
				opacity: 1;
				transform: scaleX(1);
			}
		}

		& a.currentPage {
			/*color: var(--wyg-sand);*/

			&::after {
				border-color: var(--wyg-sand);
				opacity: 1;
				transform: scaleX(1);
			}
		}
	}

	& #menu-icon {
		display: flex;
		justify-content: center;
		align-items: center;
		z-index: 1;
		height: 4rem;
        padding-right: 1em;
        
		& svg {
			height: 100%;
			width: 100%;
			transform: rotate(0deg);
        	transition: .3s ease-in-out;
		}
	}

	& #menu-icon-handler {
		display: grid;
    	grid-template-columns: 24px 0;
	}

	&:has(#menu.visible) #menu-icon svg {
        transform: rotate(-180deg);
	}

	& .logo {
		height: 48px;
		padding-left: 1em;
		display: grid;
		grid-template-columns: 54px 1fr;
		text-align: center;
		position: relative;
		z-index: 1;

		&::before {
			content: '';
			background-image: url('../images/logo-wyg.svg');
			background-size: contain;
			background-position: left;
			background-repeat: no-repeat;
			overflow: visible;
		}
	}

	& .txt-logo {
		display: flex;
    	align-items: center;
    	justify-content: center;
		white-space: nowrap;
		font-family: Playfair Display;
		font-weight: bold;
		font-size: 1rem;
		line-height: 1rem;
		color: var(--title);
		letter-spacing: 0.72px;
	}

	& #progress-bar{
		position: absolute;
		width: 0;
		bottom: -1px;
	    height: 3px;
	    background: var(--wyg-blue);
	    border-radius: 2px;
	    z-index: 1;
	    transition: none;
	}
}

#header, #header * {
	transition: all .3s ease-out, font-size 0s;
}

#header.sticky-bar {
	background-color: white;
}

section {
	position: relative;
	overflow: hidden;
}

section:first-child {
	height: 100vw;

	&::before {
		content: '';
		z-index: -1;
		left: 0;
		top: calc(var(--currentScroll) * -0.5 + 4.5rem);
		background-size: auto 100vw;
		background-repeat: no-repeat;
		overflow: hidden;
		position: fixed;
		height: 100vw;
		width: 100%;
	}
}

section:not(:first-child) {
	padding: 0 2rem;
}

main {
	min-height: 100%;
	width: 100%;
	overflow: hidden;
}

#cookie-banner {
	display: none;
	position: fixed;
	bottom: 0;
	max-width: 512px;
	margin: 0;
	z-index: 1000;
	flex-direction: column;

	& #deny-cookies {
		position: relative;
		top: -.5em;
		margin-left: auto;
		cursor: pointer;
	}
}

#menu-backdrop {
	visibility: collapse;
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	-webkit-backdrop-filter: blur(0);
	backdrop-filter: blur(0);
	transition: -webkit-backdrop-filter .3s ease-out, backdrop-filter .3s ease-out;
	z-index: 999;
}

body:has(#menu.visible) #menu-backdrop {
	visibility: visible;
	-webkit-backdrop-filter: blur(5px);
	backdrop-filter: blur(5px);
}

body:not(:has(#menu.visible)) #menu-backdrop {
	transition: visibility 0s .3s, -webkit-backdrop-filter .3s ease-out, backdrop-filter .3s ease-out;
}

.icon-down {
	display: none;
	position: absolute;
	background: url('../images/icons/icon-down-white.svg') center no-repeat;
	bottom: 1em;
	left: 0;
	width: 100%;
	height: 48px;
	opacity: 0;
	transform: translate(0,-10vh);
	filter: drop-shadow(0 0 5px #404040);
	animation: 1.5s ease-in-out 1s fade forwards, 1.5s ease-in-out 1s icon-down-anim forwards;
}

@keyframes icon-down-anim {
	from {
		transform: translate(0, -10vh);
	}
	to {
		transform: translate(0, 0);
	}
}

.content {
	margin: .5em;
	padding: 1em;
	background-color: white;
	box-shadow: 0px 0 6px 2px #1B335F33;
	border-radius: 4px;
	border: none;
}

:is(#faq a:has(h2), #prestas a:has(h3)) + div {
	transition: .3s ease-out height;
	overflow: hidden;
	height: 0;
}

#transition-page {
	position: fixed;
	width: 100%;
	height: 100%;
	z-index: 5000;
	background-color: var(--background);
	visibility: visible;
	opacity: 1;
	transition: .3s ease-in-out;

	&::before {
		content: '';
		opacity: 0;
		position: absolute;
		width: 100%;
		height: 100%;
		background-image: url('../images/logo-wyg.svg');
		background-repeat: no-repeat;
		background-position: center;
		background-size: 256px;
		animation: .8s cubic-bezier(0.6, 0, 0.4, 1) infinite alternate fade;
	}
}

.arrow {
	display: none;
}

iframe {
	border-radius: .5rem;
}

footer {
	position: relative;
	margin-bottom: 0;
	background-color: var(--background);
	overflow: hidden;

	& section#footer-1 {
		display: flex;
		justify-content: center;
		height: unset;
		background-image: url('../images/ponton-top-360.webp');
		background-position: center;
		background-repeat: no-repeat;
		background-size: cover;
		padding: 2rem 1rem;

		& div {
			display: flex;
			flex-direction: column;
			align-items: center;
			max-width: 1024px;
			padding: 1.5rem;
		}

		& h2 {
			max-width: 560px;
			text-decoration: none;
			white-space: normal;
			text-align: center;
		}

		& p {
			max-width: 720px;
		}

		& .button {
			margin-left: auto;
		}
	}

	& section#footer-2 {
		background: var(--wyg-blue);
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
		padding: 2.75rem 0 1.75rem 0;

		& h3 {
			color: white;
			font-size: 24px;
			line-height: 36px;
			margin-bottom: .5rem;
		}

		& a {
			color: white;
			font-weight: 200;

			&:hover {
				text-decoration: underline;
				text-underline-offset: .3em;
				text-decoration-thickness: 1px;
			}
		}

		& > div {
			display: flex;
			flex-direction: row;
			flex-wrap: wrap;
			align-items: flex-start;
		}

		& > div > div {
			margin: 1.25rem 2rem;
			min-width: 232px;
		}

		& > div:first-child > div:first-child ul {
			margin-left: 0;

			& li:nth-child(1)::before {
				content: '';
				display: inline-block;
				background: url(../images/icons/icon-contact.svg) center no-repeat;
				background-size: contain;
				margin-right: 8px;
				width: 24px;
				height: 24px;
				filter: brightness(10);
			}

			& li:nth-child(2)::before {
				content: '';
				display: inline-block;
				background: url(../images/icons/icon-phone.svg) center no-repeat;
				background-size: contain;
				margin-right: 8px;
				width: 24px;
				height: 24px;
				filter: brightness(10);
			}
		}

		& ul {
			margin-left: .5rem;
		}

		& li {
			color: white;
			display: flex;
			align-items: center;
			font-weight: 200;
			height: 40px;
			white-space: nowrap;
		}

	}

	& #footer-3 {
		position: relative;
		display: flex;
		flex-direction: column;
		justify-content: space-around;
		align-items: center;
		padding: .75rem;

		& > div {
			height: 48px;

			&:not(.logo) {
				display: flex;
				flex-direction: row;
				align-items: center;
			}
		}

		& p {
			color: var(--wyg-blue);
		}

		& a {
			font-size: 16px;

			&:hover {
				text-decoration: underline;
				text-underline-offset: .3em;
				text-decoration-thickness: 1px;
			}
		}

		& #social-msg {
			& :is(p, a) {
				color: var(--wyg-blue);
				font-weight: normal;
				margin-inline: .5rem;
			}
		}
	}

	& .logo {
		display: grid;
		grid-template-columns: 48px 1fr;
		text-align: center;
		position: relative;
		z-index: 1;

		&::before {
			content: '';
			background-image: url('../images/logo-wyg.svg');
			background-size: 40px;
			background-position: left;
			background-repeat: no-repeat;
			overflow: visible;
		}
	}

	& .txt-logo {
		display: flex;
    	align-items: center;
    	justify-content: center;
		white-space: nowrap;
		font-family: Playfair Display;
		font-weight: bold;
		font-size: 13px !important;
		line-height: 1rem;
		margin-right: 1rem;
		color: var(--wyg-blue);
	}
}

@keyframes fade {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}