body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
    /* background-color: #f4f4f4;*/
    color: #333;
}

.site-header {
	display: flex;
	align-items: center;
	gap: 50px;
	padding: 0 20px;
	height: 70px;
	background-color: #ffffff;
}

.EM {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	height: 50px;
	width: auto;
	font-variant: small-caps;
}

.nav-menu {
  display: flex;
  gap: 20px;
  margin-left: auto; /* ⬅️ pousse le menu à droite */
}

.menu-toggle {
  display: none;
  margin-left: auto;
  font-size: 24px;
  background: none;
  border: none;
  cursor: pointer;
}

.nav-item {
	padding: 10px 15px;
	text-decoration: none;
	color: #333;
	font-weight: 500;
	transition: background-color 0.3s, color 0.3s;
}

.nav-item:hover {
  background-color: #333;
  color: #fff;
}

.mobile-page {
	display: none;
	align-items: center;
	margin-left: 20px;
}

.mobile-page h2 {
	text-align: center;
}

@media (max-width: 768px) {
	.nav-menu {
		display: none;
	}
	.menu-toggle {
		display: block;
	}
	.mobile-page {
		display: block;
	}
}


/* Conteneur page → marges extérieures constantes */
.page {
    padding-left: 30px;
	padding-right: 30px;
}

/* Grid */
.gallery {
    display: grid;
	gap: 60px 30px;
    grid-template-columns: repeat(
        auto-fit,
        minmax(350px, 1fr)
    );
}

.cartouche {
	display: flex;
	flex-direction: column;
	text-decoration: none;
}

.image-wrapper {
    position: relative;
    cursor: pointer;
    width: 100%;
}

.image-wrapper img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block;
	border: 0px solid #333;
    transition: filter 0.3s ease;
}

.overlay {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background-color: rgba(0,0,0,0);
    transition: background-color 0.5s ease;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

.overlay-titre {
    margin: 0;
    font-size: 1.8rem;
    font-weight: 600;
	opacity: 0;
	color: white;
	text-align: center;
}

.overlay-sstitre {
    margin: 6px 0 0;
    font-size: 1.5rem;
    opacity: 0.85;
	opacity: 0;
	color: white;
	text-align: center;
}

.legend {
	margin-top: 5px;
	text-align: right;
}

.legend h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
	color: #333;
}

.image-wrapper:hover .overlay {
    background-color: rgba(0,0,0,0.5);
}

.image-wrapper:hover .overlay-titre {
    opacity: 1;
}

.image-wrapper:hover .overlay-sstitre {
    opacity: 1;
}