/* =========================
   RESET GLOBAL
========================= */

*,
*::before,
*::after {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

/* =========================
   BASE
========================= */

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;

	padding: 0;

	min-width: 320px;

	font-family:
		-apple-system,
		BlinkMacSystemFont,
		"Segoe UI",
		Roboto,
		Arial,
		sans-serif;

	background: #f9fafb;

	color: #111827;

	overflow-x: hidden;

	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

/* =========================
   MEDIA
========================= */

img,
svg,
video,
canvas,
picture {
	display: block;
	max-width: 100%;
}

/* =========================
   HEADER
========================= */

header.en-tete {
	width: 100%;

	height: 72px;

	position: sticky;

	top: 0;
	left: 0;

	background: rgba(255, 255, 255, 0.9);

	backdrop-filter: blur(10px);

	-webkit-backdrop-filter: blur(10px);

	border-bottom: 1px solid #e5e7eb;

	z-index: 1000;
}

.en-tete-contenu {
	width: 100%;

	max-width: 1200px;

	height: 100%;

	margin: 0 auto;

	padding: 0 24px;

	display: flex;

	align-items: center;

	justify-content: space-between;

	gap: 20px;

	position: relative;
}

/* =========================
   LOGO
========================= */

.marque {
	display: flex;

	align-items: center;

	gap: 10px;

	text-decoration: none;

	flex-shrink: 0;

	z-index: 1100;
}

.marque span {
	font-size: 28px;

	font-weight: 800;

	letter-spacing: -1px;

	color: #d88fa4;

	font-family: "Georgia", serif;

	line-height: 1;

	transition:
		color 0.2s,
		transform 0.2s;

	white-space: nowrap;
}

.marque:hover span {
	color: #c76f8c;

	transform: scale(1.03);
}

.marque img,
.marque-logo {
	width: 28px;

	height: 28px;

	object-fit: contain;

	flex-shrink: 0;
}

/* =========================
   HAMBURGER
========================= */

.hamburger {
	display: none;

	width: 46px;

	height: 46px;

	border: none;

	background: transparent;

	cursor: pointer;

	padding: 0;

	position: relative;

	z-index: 1100;
}

.hamburger span {
	position: absolute;

	left: 10px;

	width: 26px;

	height: 2px;

	background: #111827;

	border-radius: 999px;

	transition: 0.25s;
}

.hamburger span:nth-child(1) {
	top: 14px;
}

.hamburger span:nth-child(2) {
	top: 22px;
}

.hamburger span:nth-child(3) {
	top: 30px;
}

/* ANIMATION */

.hamburger.actif span:nth-child(1) {
	transform: rotate(45deg);
	top: 22px;
}

.hamburger.actif span:nth-child(2) {
	opacity: 0;
}

.hamburger.actif span:nth-child(3) {
	transform: rotate(-45deg);
	top: 22px;
}

/* =========================
   MENU
========================= */

.menu {
	display: flex;

	align-items: center;

	justify-content: flex-end;

	flex-wrap: wrap;

	gap: 12px;
}

.menu a {
	display: flex;

	align-items: center;

	justify-content: center;

	gap: 6px;

	min-height: 38px;

	padding: 0 14px;

	border-radius: 10px;

	text-decoration: none;

	color: #374151;

	font-size: 15px;

	font-weight: 500;

	transition:
		background 0.2s,
		color 0.2s,
		transform 0.2s;

	white-space: nowrap;
}

.menu a:hover {
	background: rgba(216, 143, 164, 0.08);

	color: #111827;
}

/* =========================
   BOUTON INSCRIPTION
========================= */

.menu a.menu-bouton {
	background: #d88fa4;

	color: #fff;

	font-weight: 700;
}

.menu a.menu-bouton:hover {
	background: #cc7e97;

	color: #fff;

	transform: translateY(-1px);
}

/* =========================
   UTILISATEUR
========================= */

.utilisateur {
	display: flex;

	align-items: center;

	gap: 8px;

	max-width: 180px;
}

.utilisateur svg,
.icone svg {
	width: 20px;

	height: 20px;

	flex-shrink: 0;
}

/* =========================
   BOUTON DECONNEXION
========================= */	

.logout-form {
	display: flex;

	align-items: center;
}

.logout-btn {
	display: flex;

	align-items: center;

	justify-content: center;

	width: 40px;

	height: 40px;

	padding: 0;

	border: none;

	border-radius: 10px;

	background: transparent;

	cursor: pointer;

	color: #374151;

	transition:
		background 0.2s,
		color 0.2s,
		transform 0.2s;
}

.logout-btn:hover {
	background: rgba(216, 143, 164, 0.08);

	color: #d88fa4;

	transform: translateY(-1px);
}

.logout-btn svg {
	width: 20px;

	height: 20px;
}

/* =========================
   MAIN
========================= */

main {
	display: block;

	width: 100%;

	padding-top: 1px;
}

/* =========================
   TABLET
========================= */

@media screen and (max-width: 900px) {

	.en-tete-contenu {
		padding: 0 18px;
	}

	.menu a {
		font-size: 14px;

		padding: 0 12px;
	}
}

/* =========================
   MOBILE MENU
========================= */

@media screen and (max-width: 768px) {

	header.en-tete {
		height: 72px;
	}

	.en-tete-contenu {
		height: 72px;

		padding: 0 16px;
	}

	.hamburger {
		display: block;
	}

	.menu {
		position: fixed;

		top: 72px;
		left: 0;

		width: 100%;

		background: rgba(255, 255, 255, 0.98);

		backdrop-filter: blur(12px);

		-webkit-backdrop-filter: blur(12px);

		border-bottom: 1px solid #e5e7eb;

		padding: 20px 16px 24px;

		display: flex;

		flex-direction: column;

		align-items: stretch;

		gap: 12px;

		transform: translateY(-120%);

		opacity: 0;

		pointer-events: none;

		transition:
			transform 0.3s ease,
			opacity 0.3s ease;
	}

	.menu.menu-ouvert {
		transform: translateY(0);

		opacity: 1;

		pointer-events: auto;
	}

	.menu a {
		width: 100%;

		min-height: 46px;

		justify-content: center;

		font-size: 15px;

		padding: 0 14px;
	}

	.utilisateur {
		max-width: 100%;

		justify-content: center;
	}
}

/* =========================
   PETITS TELEPHONES
========================= */

@media screen and (max-width: 420px) {

	.en-tete-contenu {
		padding: 0 12px;
	}

	.marque span {
		font-size: 22px;
	}

	.marque img,
	.marque-logo {
		width: 24px;

		height: 24px;
	}

	.menu {
		padding:
			16px
			12px
			20px;
	}

	.menu a {
		font-size: 14px;
	}
}