@font-face {
  font-family: 'EB Garamond';
  src: url('/fonts/eb-garamond-bold.woff') format('woff');
}

@font-face {
	font-family: 'Times New Roman';
	src: url('/fonts/times-new-roman.woff') format('woff');
}

@font-face {
	font-family: 'Times New Roman Bold';
	src: url('/fonts/times-new-roman-bold.woff') format('woff');
}

:root {
	color-scheme: light dark;
}

html, body {
	min-height: 100vh;
	margin: 0;
	overflow-x: hidden;
	scroll-behavior: smooth;
	background-color: light-dark(white, black);
}

body {
	display: flex;
	flex-direction: column;
	color: light-dark(black, white);
	font-family: 'Times New Roman';
}

body.modal-open {
	overflow: hidden;
	position: fixed;
	width: 100%;
	height: 100%;
}

#animation {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100vh;
	width: 100%;
	z-index: 100;
	transform-origin: center center;
}

#animation img {
	height: 80vh;
	margin-bottom: 20vh;
}

#navbar {
	display: flex;
	z-index: 9;
	background-color: #835e47;
	padding: calc(1.5rem + 1vh) 0;
	transition: padding 0.3s;
	position: fixed;
	top: 0;
	width: 100%;
	border-bottom-left-radius: 30px;
	border-bottom-right-radius: 30px;
	overflow-x: hidden;
	flex-wrap: nowrap;
	user-select: none;
}

.link:hover, #logo:hover, #hamburger:hover {
	background-color: light-dark(#a97c61, #6e4b35);
	cursor: pointer;
}

#logo {
	float: left;
	height: 6rem;
	padding: 1.5vh .5vw;
	margin-left: 3vw;
	margin-right: 3vw;
	transition: height 0.3s, background-color 0.3s;
	border-radius: 20px;
}

.link {
	float: left;
	color: white;
	font-family: serif;
	font-size: 1.75rem;
	text-align: center;
	text-decoration: none;
	font-weight: bold;
	padding: 2vh 1vw;
	margin: 3vh 7vw;
	transition: margin 0.1s, font 0.1s, background-color 0.3s;
	border-radius: 20px;
	position: relative;
	justify-content: center;
	align-items: center;
}

#hamburger {
	display: none;
	position: fixed;
	top: calc(3rem + 3vh);
	right: 40px;
	cursor: pointer;
	padding: 15px;
	border-radius: 20px;
	transition: top 0.3s, background-color 0.3s;
	z-index: 11;
}

#bar1, #bar2, #bar3 {
	width: 35px;
	height: 5px;
	background-color: white;
	margin: 6px 0;
	transition: 0.4s;
}

.x #bar1 {
	transform: translate(0, 11px) rotate(-45deg);
}

.x #bar2 {
	opacity: 0;
}

.x #bar3 {
	transform: translate(0, -11px) rotate(45deg);
}

#overlay {
	display: flex;
	position: fixed;
	height: 100vh;
	width: 100vw;
	top: 0;
	left: 0;
	z-index: 10;
	background-color: rgba(0, 0, 0, 0.8);
	visibility: hidden;
	opacity: 0;
	transition: opacity 0.4s;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

#overlay.show {
	visibility: visible;
	opacity: 1;
}

.overlay-link {
	display: block;
	color: white;
	font-family: serif;
	font-size: 1.75rem;
	text-align: center;
	text-decoration: none;
	font-weight: bold;
	margin: 5vh 0;
	padding: 2vh 3vw;
	border-radius: 20px;
	transition: 0.4s;
}

.overlay-link:hover {
	background-color: #a0a0a0;
}

main {
	display: block;
	margin-top: 8rem;
	transition: 0.5s;
	background-color: light-dark(white, black);
}

h1 {
	position: absolute;
	text-align: right;
	font-size: 8vw;
	font-family: Georgia, "EB Garamond";
	font-variant: small-caps;
	text-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.8);
	padding: 0 6vw;
	width: 70%;
	right: 0;
	user-select: none;
	z-index: 2;
}

h2 {
	color-scheme: only light;
	text-align: center;
	font-size: 3.5rem;
	font-family: Georgia, "EB Garamond";
	font-variant: small-caps;
	user-select: none;
}

h2 a {
	text-align: left;
	text-shadow: 0 0 0.4rem light-dark(rgba(0, 0, 0, 0.8), rgba(255, 255, 255, 0.8));
	color: white;
	padding: 3.5vh 1.5vw;
	border-radius: 30px;
	background-color: rgba(0, 0, 0, 0.2);
	transition: 0.5s;
}

h2 a:hover {
	background-color: rgba(255, 255, 255, 0.5);
}

#name {
	position: relative;
	text-align: right;
	margin-top: calc(20vw + 10vh);
	right: 5vw;
	font-size: 4vw;
	font-family: Georgia, "EB Garamond";
	font-variant: small-caps;
	font-weight: bold;
	text-shadow: 0 0 0.3rem rgba(0, 0, 0, 0.8);
	user-select: none;
}

h3 {
	text-align: left;
	font-size: 2rem;
	font-family: Georgia, "EB Garamond";
	font-variant: small-caps;
}

.title {
	text-align: left;
	margin-left: 7.5vw;
}

.description {
	width: 55vw;
	padding: 3vh 2vw;
	margin: auto;
	margin-top: 15vh;
	color: white;
	font-family: serif;
	font-size: 1.75rem;
	background-color: rgba(0, 0, 0, 0.35);
	-webkit-text-stroke: 0;
	border-radius: 20px;
	overflow: auto;
}

.description div {
	text-align: left;
}

.description a {
	color: #ccc;
}

a {
	text-decoration: none;
	color: light-dark(#666, #ccc);
}

#external-link {
	width: 1.2em;
	height: 1.2em;
	translate: 0 25%;
	stroke: light-dark(#666, #ccc);
	fill: none;
}

.inner-text-link {
	float: right;
	margin-top: 1vh;
	margin-right: 1vw;
	color: light-dark(gray, white);
	font-family: serif;
	font-size: 1.25rem;
	font-weight: bold;
	text-decoration: none;
}

.section {
	height: 80vh;
	padding-top: 22.5vh;
	color: white;
	-webkit-text-stroke: 1px light-dark(lightgray, darkgray);
	font-size: 2rem;
	overflow: hidden;
}

#bg1 {
	position: relative;
	padding-top: 17.5vh;
}

#slideshow {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: url('/imgs/bg/thumbnails/plane.jpg') center top/cover no-repeat;
	z-index: 0
}

#slideshow::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
	/*background-attachment: fixed;*/
	opacity: 0;
	transition: opacity 1s ease-in-out;
	z-index: 1;
}

#slideshow.fade::before {
	opacity: 1;
	background-image: var(--next-image);
}

#bg2 {
	background: url('/imgs/bg/thumbnails/equarrissage_foret.jpg') center top/cover no-repeat;
}

#bg3 {
	background: url('/imgs/bg/thumbnails/abri.jpg') center top/cover no-repeat;
}

#bg4 {
	background: url('/imgs/bg/thumbnails/chevilles.jpg') center top/cover no-repeat;
	height: 90vh;
	margin-bottom: -100px;
}

.pagetitle {
	padding-top: 5vh;
}

.spacer {
	background-color: black;
	height: 0.5vh;
}

.illustration-container {
	text-align: center
}

.illustration {
	height: 25vw;
	width: auto;
	margin: 2.5vh 0;
	border-radius: 20px;
	user-select: none;
}

#a-propos-table {
	margin: 0 2.5vw;
	font-size: 1.2rem;
}

.a-propos-content {
	width: 50vw;
}

#contact-container {
	display: flex;
	flex-direction: row;
	width: 100%;
	margin-bottom: 50px;
	gap: 20px;
}

#contact-container a {
	font-size: 1.25rem;
}

#map-container {
	flex: 1;
	position: relative;
	width: fit-content;
	height: fit-content;
	display: flex;
	align-self: center;
	justify-content: center;
}

#gmaps {
	margin: auto;
	width: 80%;
	height: 45vh;
	border-radius: 20px;
}

#contact-info {
	flex: 1;
}

.contact-data {
	font-family: Georgia, "EB Garamond", serif;
	font-size: 2rem;
	font-variant: small-caps;
	margin-bottom: 20px
}

.emoji {
	font-size: 2rem;
	margin-right: 20px;
	text-align: center;
	user-select: none;
}

#timeline {
	position: fixed;
	left: 30px;
	top: 30vh;
	bottom: 10vh;
	width: 2px;
	background-color: #ccc;
	z-index: 9;
}

.timeline-item {
	position: absolute;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background-color: #545454;
	cursor: pointer;
	transform: translateX(-50%);
	transition: opacity 0.25s;
}

.timeline-item:hover {
	background: #e0e0e0;
}

.timeline-item.active {
	background: #ccc;
}

.timeline-item:not(:last-child) {
	margin-bottom: 10px;
}

.timeline-label {
	position: absolute;
	left: 20px;
	color: black;
	background: white;
	font-family: Georgia, "EB Garamond";
	padding: 2px 8px;
	border-radius: 4px;
	font-size: 12px;
	box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
	transform: translateY(-50%);
	opacity: 0.5;
	transition: 0.25s;
	user-select: none;
}

.timeline-label:hover {
	opacity: 0.75;
}

.timeline-label.active{
	opacity: 1;
}

#gallery-container {
	max-width: 90vw;
	margin: 0 auto;
}

.gallery-group {
	margin-bottom: 30px;
	padding: 20px 30px;
	background-color: light-dark(#f2f2f2, #222);
	border-radius: 20px;
}

.gallery-group h3 {
	margin-top: 0;
	color: light-dark(#333, #ccc);
}

.gallery-group p {
	color: light-dark(#666, #eee);
	margin-bottom: 15px;
	font-size: 1.2rem;
}

.gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(max(250px, 20%), 1fr));
	gap: 25px;
	padding: 15px 20px;
	user-select: none;
}

.lazyload {
	filter: blur(5px);
	cursor: progress !important;
}

.image {
	cursor: pointer;
	transition: transform 0.3s;
	width: 100%;
	aspect-ratio: 16/9;
	object-fit: cover;
	border-radius: 10px;
}

.image:hover {
	transform: scale(1.05);
}

#modal {
	display: none;
	position: fixed;
	z-index: 12;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.8);
}

#modal-close {
	position: absolute;
	top: 20px;
	right: 30px;
	color: white;
	font-size: 3rem;
	font-weight: bold;
	cursor: pointer;
	z-index: 2;
	user-select: none;
	transition: 0.3s;
}

#modal-prev, #modal-next {
	position: absolute;
	top: 50%;
	color: white;
	font-size: 3rem;
	cursor: pointer;
	padding: 10px 15px;
	border-radius: 50%;
	user-select: none;
	z-index: 2;
	transition: 0.3s;
	translate: 0 -25%;
}

#modal-prev, .portrait-prev {
	left: 20px;
}

#modal-next, .portrait-next {
	right: 20px;
}

#modal-close:hover, #modal-prev:hover, #modal-next:hover {
	transform: scale(1.2);
}

#modal-prev.disabled, #modal-next.disabled, .portrait-prev.disabled, .portrait-next.disabled {
	opacity: 0.3;
	cursor: not-allowed;
}

#modal-image-container {
	position: relative;
	width: 100%;
	height: 90%;
	overflow: hidden;
	display: flex;
	justify-content: center;
	align-items: center;
	user-select: none;
	transition: 0.35s;;
}

#image-container {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
	display: flex;
	justify-content: center;
	align-items: center;
}

#modal-image-current, #modal-image-next {
	position: absolute;
	width: auto;
	height: auto;
	max-width: 85%;
	max-height: 85%;
	border-radius: 20px;
}

#modal-image-current {
	display: block;
}

#modal-image-next {
	display: none;
}

#modal-desc {
	color: white;
	text-align: center;
	padding: 10px;
	font-size: 1.2rem;
	background-color: black;
	margin-top: 10px;
	border-radius: 10px;
	max-width: 80%;
	margin-left: auto;
	margin-right: auto;
}

.sitemap, .legal {
	padding: 0 5vw;
	margin-bottom: 25px;
}

.sitemap ul {
	padding: 0 5vw;
	font-size: 1rem;
}

.sitemap ul a {
	font-size: 1.2rem;
}

.legal p {
	padding-left: 5vw;
	font-size: 1.2rem;
}

footer {
	position: relative;
	background-color: light-dark(#d7d7d7, #151515);
	padding: 2vh 1.8vw;
	margin-top: 50px;
	transition: 0.3s;
	border-top-left-radius: 30px;
	border-top-right-radius: 30px;
	overflow: hidden;
	user-select: none;
	z-index: 8;
}

#footer-links {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
}

#footer-left, #footer-right {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
}

.footer-link {
	display: inline-block;
	font-size: 1.2rem;
	text-decoration: none;
	font-family: 'Times New Roman Bold';
	color: #d7d7d7;
	background-color: light-dark(#a0a0a0, #6b6b6b);
	margin: 2vh 12vw;
	padding: 1.5vh 1vw;
	transition: 0.3s;
	border-radius: 20px;
}

.footer-link:hover {
	background-color: white;
	cursor: pointer;
}

.social {
	float: right;
	height: 3rem;
	margin: 0 1vh;
	padding: 1.5vh;
}

footer p {
	text-align: center;
}

@media only screen and (orientation: portrait) {
	#animation img {
		width: 100vw;
		height: 130vw;
		margin-bottom: calc(25vh + 40vw);
		overflow: hidden;
	}

	#navbar {
		padding-top: 2vh;
		padding-bottom: 2vh;
		border-bottom-left-radius: 60px;
		border-bottom-right-radius: 60px;
	}

	#logo {
		height: 12rem;
		margin-left: 6vw;
		border-radius: 40px;
	}

	.link {
		display: none;
	}

	#hamburger {
		display: block;
	}

	#bar1, #bar2, #bar3 {
		width: 70px;
		height: 10px;
		margin: 12px 0;
	}

	.x #bar1 {
		transform: translate(0, 22px) rotate(-45deg);
	}

	.x #bar3 {
		transform: translate(0, -22px) rotate(45deg);
	}

	.overlay-link {
		font-size: 4rem;
		border-radius: 40px;
	}

	h1 {
		width: 100%;
		font-size: 12.5vw;
	}

	h2 a {
		padding: 2vh 3vw;
	}

	#name {
		margin-top: 45vh;
		font-size: 7.5vw;
	}

	h3 {
		font-size: 5rem;
	}

	.description {
		width: 70vw;
		padding: 1.5vh 3vw;
		font-size: 2.5rem;
	}

	#slideshow, #slideshow::before {
		background-position-x: 30%;
	}

	#bg2 {
		background-position-x: 25%;
	}

	#bg3 {
		background-position-x: 65%;
	}

	#bg4 {
		background-position-x: 80%;
	}

	.pagetitle {
		padding-top: 8vh;
		font-size: 7.5rem;
	}

	#a-propos-table {
		font-size: 2rem;
		margin-top: -5vh;
	}

	#contact-container {
		flex-direction: column;
	}

	#contact-container a {
		font-size: 2rem;
	}

	#map-container {
		width: 100%;
		height: fit-content;
	}

	#gmaps {
		position: relative;
		border-radius: 40px;
		width: 80%;
		height: 30vh;
		margin: 0;
	}

	#contact-info {
		position: relative;
		top: 0;
		right: 0;
		width: 100%;
		margin-top: 3vh;
		margin-left: 5vw;
	}

	.contact-data {
		font-size: 5rem;
		margin-bottom: 40px;
	}

	.timeline-item {
		width: 3vw;
		height: 3vw;
	}	

	.timeline-label {
		left: 4vw;
		font-size: 2vw;
	}

	.gallery-group {
		padding: 30px 40px;
	}
	
	.gallery-group p {
		font-size: 2rem;
	}

	.gallery {
		display: block;
		margin: auto;
		position: relative;
	}

	.portrait-image-container {
		margin-bottom: 2vh;
		position: relative;
		touch-action: none;
		overflow: hidden;
		border-radius: 20px;
	}

	.portrait-prev, .portrait-next {
		position: absolute;
		top: 50%;
		color: white;
		font-size: 5vw;
		cursor: pointer;
		width: 5vw;
		text-align: center;
		padding: 10px 15px;
		border-radius: 50%;
		user-select: none;
		z-index: 2;
		transition: 0.3s;
		transform: translateY(-50%);
	}

	.portrait-prev:hover, .portrait-next:hover {
		transform: translateY(-50%) scale(1.2);
	}

	.portrait-image-current, .portrait-image-next {
		height: 43vw;
		max-width: 100%;
		margin: auto;
		border-radius: 20px;
	}

	.portrait-image-current {
		display: block;
	}

	.portrait-image-next {
		display: none;
		position: absolute;
		top: 0;
		left: 50%;
	}

	.portrait-desc {
		margin: auto;
		font-size: 2rem;
		text-align: center;
		width: 75%;
		color: light-dark(#666, #ccc);
		background-color: light-dark(#ddd, #444);
		padding: 2vw 3vh;
		border-radius: 20px;
	}

	footer {
		padding: 1vh 3vw;
	}

	#footer-links {
		flex-direction: column;
	}

	#footer-left {
		justify-content: space-around;
		width: 100%;
	}

	#footer-left a {
		margin: 2vh 0;
	}

	.footer-link {
		font-size: 2.4rem;
		padding: 0.75vh 2vw;
	}

	.social {
		height: 4rem;
		padding: 1.5vh;
	}

	footer p {
		font-size: 2rem;
	}
}