@Font-Face {
	font-family: "arial";
	src: url("fonts/arial.ttf") format("truetype");
	font-display: swap; }
@font-face {
	font-family: "space";
	src: url("fonts/space.ttf") format("truetype");
	font-display: swap; }
@font-face {
	font-family: "smilecandy";
	src: url("fonts/smilecandy.ttf") format("truetype");
	font-display: swap; }

Html, body, body * { font-family: "arial", sans-serif; }

:Root {
	--panel: rgba(255, 255, 255, .16);
	--ink: #080808;
	--line: rgba(255, 255, 255, .48);
	--shadow: 0 .55rem 1.5rem rgba(0, 0, 0, .24);
}

* { Box-sizing: border-box; }

Html,
body {
	width: 100%;
	min-width: 320px;
	height: 100%;
	margin: 0;
}

Body {
	display: flex;
	flex-direction: column;
	overflow-x: hidden;
	overflow-y: auto;
	color: var(--ink);
	font-family: 'space';
	background:
		linear-gradient(rgba(255,255,255,.08), rgba(255,255,255,.08)),
		url("fond.jpg") center center / cover no-repeat fixed;
}

img { display: block; max-width: 100%; }

.page {
	display: flex;
	flex: 1 0 auto;
	flex-direction: column;
	width: 100%;
	min-height: 0;
}

.hero {
	position: relative;
	width: min(1180px, 100%);
	margin: 0 auto;
	text-align: center;
}

.tagline {
	margin-top: 35px;
	margin-bottom: 20px;
	font-family: "space", sans-serif;
	font-size: clamp(.78rem, 2.15vh, 1.45rem);
	line-height: 1.08;
	letter-spacing: .025em;
	text-transform: uppercase;
	text-shadow: 0 0 .45rem rgba(255,255,255,.95); }
		
		.tagline a,
		.tagline a:visited,
		.tagline a:hover,
		.tagline a:active { color: #000; text-decoration: none; }

.title-row {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: clamp(3.7rem, 10vh, 7rem);
}

H1, .h1b {
	font-family: "space", sans-serif;
	margin-top: 20px;
	margin-bottom: 30px;
	max-width: calc(100% - 5rem);
	line-height: .9;
	letter-spacing: .02em;
	text-transform: uppercase;
	text-shadow:
		0 0 8px #fff,
		0 0 16px #fff,
		0 0 32px #fff,
		0 0 64px #fff,
		0 0 128px #fff,
		0 0 256px #fff; }

H1 { font-size: clamp(1.65rem, 5.5vh, 4rem); }
.h1b { font-size: clamp(0.85rem, 4vh, 3rem); }

.smile-letters { font-family: "smilecandy", sans-serif; }

.menu {
	position: absolute;
	right: 8%;
	top: 50%;
	z-index: 20;
	transform: translatey(-50%); }

		.menu-button {
			display: grid;
			place-items: center;
			width: clamp(3rem, 5vh, 3rem);
			aspect-ratio: 1;
			padding: .7rem;
			border: 1px solid var(--line);
			border-radius: 1rem;
			background: rgba(255,255,255,.82);
			box-shadow: var(--shadow);
			cursor: pointer; }

		.menu-button span,
		.menu-button::before,
		.menu-button::after {
			content: "";
			width: 100%;
			height: .22rem;
			border-radius: 999px;
			background: #111; }

		.menu-button { gap: .34rem; }

		.menu-list {
			position: absolute;
			top: calc(100% + .45rem);
			right: 0;
			min-width: 12.5rem;
			margin: 0;
			padding: .4rem;
			list-style: none;
			border: 1px solid rgba(255,255,255,.75);
			border-radius: .9rem;
			background: rgba(255,255,255,.96);
			box-shadow: var(--shadow);
			opacity: 0;
			visibility: hidden;
			transform: translatey(-.4rem);
			transition: .2s ease; }

				.menu:hover .menu-list,
				.menu:focus-within .menu-list {
					opacity: 1;
					visibility: visible;
					transform: translatey(0); }

				.menu-list a {
					display: block;
					padding: .72rem .9rem;
					border-radius: .6rem;
					font-weight: 700;
					color: #000;
					text-align: left;
					text-decoration: none; }

				.menu-list a:hover,
				.menu-list a:focus-visible { background: #ececff; }

Main { display: block;
	   min-height: 0; }

.services {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-template-rows: repeat(2, minmax(0, 1fr));
	gap: clamp(.35rem, 1.1vh, .8rem) clamp(.4rem, 1.25vw, 1rem);
	width: min(1040px, 100%);
	margin: 2.2rem auto 3rem; }

		/*--- Tous les liens sont noirs ---*/
		.service-card,
		.service-card:visited,
		.service-card:hover,
		.service-card:focus,
		.service-card:active {
			color: #000;
			text-decoration: none; }

.service-card {
	position: relative;
	min-height: 0;
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: clamp(.7rem, 1.6vh, 1.2rem);
	background: var(--panel);
	box-shadow: 0 .28rem .8rem rgba(0,0,0,.14);
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease; }

		.service-card:hover,
		.service-card:focus-visible {
			z-index: 3;
			transform: translatey(-.2rem) scale(1.015);
			box-shadow: var(--shadow);
			outline: none; }

		.service-card img {
			width: 100%;
			height: 100%;
			object-fit: cover; }

.service-label {
	position: absolute;
	left: .45rem;
	right: .45rem;
	bottom: .42rem;
	padding: .42rem .45rem;
	border-radius: .55rem;
	background: rgba(255,255,255,.92);
	font-family: 'space';
	font-size: 20px;
	color: #000;
	line-height: 1;
	text-align: center;
	box-shadow: 0 .15rem .5rem rgba(0,0,0,.18);
	transition: opacity .18s ease, transform .18s ease; }

.service-tooltip {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: min(76%, 12rem);
	aspect-ratio: 1;
	padding: 1rem;
	border: 1px solid rgba(255,255,255,.85);
	border-radius: .9rem;
	background: rgba(255,255,255,.94);
	box-shadow: 0 .55rem 1.5rem rgba(0,0,0,.30);
	font-size: clamp(.78rem, 1vw, .95rem);
	font-weight: 700;
	color: #000;
	line-height: 1.35;
	text-align: center;
	opacity: 0;
	visibility: hidden;
	transform: translate(-50%, -46%) scale(.92);
	transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
	pointer-events: none; }

.service-card:hover .service-tooltip,
.service-card:focus-visible .service-tooltip {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, -50%) scale(1); }

.service-card:hover .service-label,
.service-card:focus-visible .service-label {
	opacity: 0;
	transform: translatey(.35rem); }

.service-card:hover img,
.service-card:focus-visible img {
	filter: brightness(.62) blur(1px);
	transform: scale(1.03); }

.service-card img { transition: filter .18s ease, transform .18s ease; }

.descriptif {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0; }

.footer {
	position: static;
	width: 100%;

	Display: flex;
	justify-content: space-between;
	align-items: center;

	Padding: .55rem 1.2rem;

	Background: rgba(255,255,255,.48);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);

	Font-size: .9rem; }

		.footer-left {
			display: flex;
			align-items: center;
			gap: .7rem; }
			
			/*--- LOGO OPTIONWEB AVEC LIEN & QUI SE RETOURNE AU SURVOL ---*/

			.footer-left .optionweb-link {
				display: flex;
				align-items: center;
				gap: .7rem;
				color: #000;
				text-decoration: none;
				transition: color .3s ease; }
			
			.footer-left .optionweb-link img {
				height: 34px;
				transition: transform .6s ease; }
			.footer-left .optionweb-link:hover { color: #f58220; }
			.footer-left .optionweb-link:hover img { transform: rotate(180deg); }
			

		/*--- ADRESSE & LIEN NOUS TROUVER ---*/
		.footer-right {
			display: flex;
			align-items: center;
			gap: .55rem;
			Text-align: right; }
			
				.footer a {
					color: #000;
					font-weight: bold;
					text-decoration: none; }

				.footer-address-mobile { display: none; }


/*--- AFFICHAGE MOBILE ---*/

@Media (max-width: 720px) {
	.page { padding-inline: 1rem; }
	.tagline { margin-inline: 3.8rem; font-size: clamp(.68rem, 1.9vh, 1rem); }
	
	H1 {
		text-align: left;
		max-width: calc(100% - 4.25rem);
		font-size: clamp(1.25rem, 4.5vh, 2.1rem); }

	.services {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		grid-template-rows: repeat(3, minmax(0, 1fr)) !important;
		width: min(340px, 82%);
		height: auto;
		margin: 1.6rem auto 1rem;
		gap: .50rem;
		padding-bottom: 40px; }

	.service-card { aspect-ratio: 1 / 1.08; }
	.service-label { font-size: 18px; }

	.hide-mobile { display: none !important; }

	.footer {
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: .42rem;
		padding: .5rem .7rem;
		background: rgba(255,255,255,.42);
		font-size: .72rem;
		text-align: center; }

	.footer-left { justify-content: center; }
	.footer-left img { height: 26px; }

	.footer-right {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: .42rem;
		text-align: center; }

	.footer-address-desktop { display: none; }
	.footer-address-mobile {
		display: block;
		width: 100%;
		line-height: 1.25;
		text-align: center; }
		
	.footer-find {
		display: block;
		margin-bottom: 20px; }	
}


/* ===== PAGE NOUS TROUVER ===== */

.back-button {
	position: absolute;
	right: 8%;
	top: 50%;
	z-index: 20;
	transform: translateY(-50%);
	display: block;
	width: clamp(42px, 5vh, 60px);
	height: auto;
	cursor: pointer; }

		.back-button img {
			display: block;
			width: 100%;
			height: auto; }

.find-main {
	width: 100%;
	padding: 0 1rem 3rem; }

.access-map {
	width: 45%;
	margin: 0 auto;
	margin-bottom: 40px;
	border: 0;
	background: none;
	box-shadow: none; }

		.access-map img {
			display: block;
			width: auto;
			height: auto;
			max-width: 100%;
			max-height: 50vh;
			margin: 0 auto;
			padding: 0;
			cursor: zoom-in;
			transition: transform .35s ease; }
			
		.access-map img.zoomed {
			transform: scale(1.6);
			position: relative;
			z-index: 50; }

.photo-strip {
	width: 60%;
	margin: 0 auto;
	overflow-x: auto;
	overflow-y: hidden;
	padding: .45rem 0;
	touch-action: pan-x;
	scrollbar-width: none;
	border-top: 1px solid rgba(255,255,255,.55);
	border-bottom: 1px solid rgba(255,255,255,.55);
	background: rgba(255,255,255,.14);
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
	margin: 2.2rem auto 3rem; }

.photo-strip::-webkit-scrollbar { display: none; }

		.photo-strip-track {
			display: flex;
			width: max-content;
			gap: .65rem;
			animation: access-photo-ticker 28s linear infinite; }

		.photo-strip:hover .photo-strip-track,
		.photo-strip:focus-within .photo-strip-track {
			animation-play-state: paused; }

		.photo-strip-item {
			position: relative;
			flex: 0 0 clamp(180px, 22vw, 310px);
			height: clamp(110px, 14vw, 185px);
			margin: 0;
			padding: 0;
			overflow: hidden;
			border: 0;
			border-radius: .8rem;
			background: #111;
			box-shadow: 0 .25rem .7rem rgba(0,0,0,.22);
			cursor: pointer; }

		.photo-strip-item img {
			width: 100%;
			height: 100%;
			object-fit: cover;
			transition: transform .25s ease, filter .25s ease; }

		.photo-strip-label {
			position: absolute;
			inset: 0;
			display: flex;
			align-items: center;
			justify-content: center;
			padding: 1rem;
			background: rgba(0,0,0,.48);
			color: #fff;
			font-family: Arial, sans-serif;
			font-size: clamp(.85rem, 1.25vw, 1.05rem);
			letter-spacing: .03em;
			opacity: 0;
			transition: opacity .22s ease; }

		.photo-strip-item:hover img,
		.photo-strip-item:focus-visible img {
			filter: brightness(.62);
			transform: scale(1.05); }

		.photo-strip-item:hover .photo-strip-label,
		.photo-strip-item:focus-visible .photo-strip-label {
			opacity: 1; }

		.photo-strip-item:focus-visible {
			outline: 3px solid #fff;
			outline-offset: 2px; }

		@keyframes access-photo-ticker {
			from { transform: translateX(0); }
			to { transform: translateX(calc(-50% - .325rem)); } }

.lightbox {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 4rem 5rem;
	background: rgba(0,0,0,.90);
	opacity: 0;
	visibility: hidden;
	transition: opacity .22s ease, visibility .22s ease; }

		.lightbox.is-open {
			opacity: 1;
			visibility: visible; }

		.lightbox-content {
			display: flex;
			align-items: center;
			justify-content: center;
			width: min(1200px, 88vw);
			height: min(82vh, 900px); }

		.lightbox-content img {
			max-width: 100%;
			max-height: 100%;
			border-radius: .75rem;
			box-shadow: 0 0 2rem rgba(255,255,255,.12);
			object-fit: contain; }

		.lightbox-close,
		.lightbox-prev,
		.lightbox-next {
			position: absolute;
			z-index: 2;
			display: grid;
			place-items: center;
			margin: 0;
			padding: 0;
			border: 1px solid rgba(255,255,255,.45);
			border-radius: 999px;
			background: rgba(255,255,255,.16);
			color: #fff;
			font-family: Arial, sans-serif;
			cursor: pointer;
			transition: background .18s ease, transform .18s ease; }

		.lightbox-close:hover,
		.lightbox-prev:hover,
		.lightbox-next:hover,
		.lightbox-close:focus-visible,
		.lightbox-prev:focus-visible,
		.lightbox-next:focus-visible {
			background: rgba(255,255,255,.30);
			transform: scale(1.08);
			outline: none; }

		.lightbox-close {
			top: 1.2rem;
			right: 1.2rem;
			width: 3rem;
			height: 3rem;
			font-size: 2rem; }

		.lightbox-prev,
		.lightbox-next {
			top: 50%;
			width: 3.4rem;
			height: 3.4rem;
			font-size: 3rem;
			transform: translateY(-50%); }

		.lightbox-prev:hover,
		.lightbox-prev:focus-visible,
		.lightbox-next:hover,
		.lightbox-next:focus-visible {
			transform: translateY(-50%) scale(1.08); }

		.lightbox-prev { left: 1.2rem; }
		.lightbox-next { right: 1.2rem; }

		body.lightbox-open { overflow: hidden; }
		
		.lightbox-photo {
			display: flex;
			flex-direction: column;
			align-items: center;
			max-width: 100%;
			max-height: 100%; }

		.lightbox-title {
			margin-bottom: 15px;
			color: #fff;
			font-family: Arial, sans-serif;
			font-size: 18px;
			text-align: center; }
		
		.lightbox-photo img {
			max-width: 100%;
			max-height: calc(100% - 45px);
			object-fit: contain; }

@media (max-width: 1000px) {
	.find-main { padding-inline: .65rem; }
	.access-map { width: 94%; margin: 0 auto; margin-bottom: 20px; }
	.photo-strip { width: 100%; }
	.photo-strip-item { flex-basis: 58vw; height: 36vw; } }
	
	.lightbox { padding: 4rem .75rem 1rem; }

		.lightbox-content { width: 96vw; height: 78vh; }
		.lightbox-prev,
		.lightbox-next {
			top: auto;
			bottom: 1rem;
			width: 3rem;
			height: 3rem;
			font-size: 2.4rem;
			transform: none; }

		.lightbox-prev:hover,
		.lightbox-prev:focus-visible,
		.lightbox-next:hover,
		.lightbox-next:focus-visible { transform: scale(1.08); }

		.lightbox-prev { left: calc(50% - 3.6rem); }
		.lightbox-next { right: calc(50% - 3.6rem); }
	}

@media (prefers-reduced-motion: reduce) {
	.photo-strip-track { animation: none; }
	.photo-strip-item img,
	.photo-strip-label,
	.lightbox { transition: none; } }
