@import url('https://fonts.googleapis.com/css2?family=BBH+Sans+Hegarty&family=Raleway:ital,wght@0,100..900;1,100..900&display=swap');

/******************** Reset ********************/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}

article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}

body {
	line-height: 1;
}

ol, ul {
	list-style: none;
}

blockquote, q {
	quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

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

/******************** Typography ********************/
body{
	color: #fff;
	font-size: 16px;
	line-height: 1.6;
	font-family: "Raleway", sans-serif;
}

p { margin-bottom: 1rem; }

h1, h2, h3, h4, h5, h6 {
	font-weight: 600;
	line-height: 1.2;
	margin-bottom: 0.6em;
	font-family: "BBH Sans Hegarty", sans-serif;
}

h1 { font-size: clamp(2rem, 4vw + 1rem, 3rem); }
h2 { font-size: clamp(1.75rem, 3vw + 0.5rem, 2.5rem); }
h3 { font-size: clamp(1.5rem, 2.5vw + 0.25rem, 2rem); }
h4 { font-size: clamp(1.25rem, 2vw, 1.5rem); }
h5 { font-size: clamp(1.125rem, 1.5vw, 1.25rem); }
h6 { font-size: 1rem; }

/******************** FORMULAIRES ********************/

/* Conteneur de formulaire */
form {
	max-width: 600px;
	margin: 2rem auto;
	display: flex;
	flex-direction: column;
	gap: 1.2rem;
}

/* Labels */
label {
	display: block;
	font-weight: 500;
	color: #ddd;
	font-size: 0.95rem;
	margin-bottom: 0.3rem;
}

/* Champs de saisie */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="url"],
input[type="search"],
select,
textarea {
	width: 100%;
	padding: 0.75rem 1rem;
	font-size: 1rem;
	color: #fff;
	background-color: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 8px;
	outline: none;
	transition: all 0.25s ease;
}

/* Effets focus */
input:focus,
select:focus,
textarea:focus {
	border-color: #e50914;
	box-shadow: 0 0 0 3px rgba(229, 9, 20, 0.3);
	background-color: rgba(255, 255, 255, 0.08);
}

/* Placeholder */
::placeholder {
	color: rgba(255, 255, 255, 0.4);
}

/* Sélecteurs */
select {
	appearance: none;
	background-image: url("data:image/svg+xml;utf8,<svg fill='white' height='16' viewBox='0 0 24 24' width='16' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	background-size: 14px;
}

/* Textarea */
textarea {
	min-height: 120px;
	resize: vertical;
}

/* Boutons de formulaire */
button,
input[type="submit"],
input[type="button"] {
	display: inline-block;
	font-size: 1rem;
	font-weight: 600;
	color: #fff;
	background-color: #e50914;
	border: 1px solid #e50914;
	border-radius: 30px;
	padding: 0.75rem 1.5rem;
	cursor: pointer;
	transition: all 0.3s ease;
}

button:hover,
input[type="submit"]:hover {
	background-color: #b0060e;
}

/* Bouton secondaire */
button.btn-outline {
	background: transparent;
	border: 1px solid #e50914;
	color: #e50914;
}
button.btn-outline:hover {
	background-color: #e50914;
	color: #fff;
}

/* Alerte d’erreur */
input.error,
textarea.error,
select.error {
	border-color: #ff4444;
	background-color: rgba(255, 68, 68, 0.1);
}

.error-message {
	font-size: 0.85rem;
	color: #ff4444;
	margin-top: -0.5rem;
}

/* Champs groupés */
.form-group {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

/* Checkbox / Radio */
input[type="checkbox"],
input[type="radio"] {
	accent-color: #e50914;
	transform: scale(1.2);
	margin-right: 0.4rem;
}

/******************** Template ********************/
body{
	background: #000;
}

/* ------  HEADER ------ */
.site-header{
	position: sticky;
	top: 0;
	z-index: 1000;
	background: rgba(10,10,10,0.85);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid rgba(255,255,255,0.1);
	padding: 20px 0;
}

.header-container{
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 0; /* le padding latéral vient de .container */
}

/* Brand */
.brand a{
	color:#fff;
	text-decoration:none;
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:.06em;
	font-size:1.25rem;
	transition:color .25s ease;
}
.brand a:hover{ color:#e50914; }
.brand-highlight{ color:#e50914; }

/* Burger (mobile) */
.menu-toggle{
	display:flex;
	flex-direction:column;
	justify-content:space-between;
	width:26px; height:18px;
	background:transparent; border:0; padding:0;
	cursor:pointer;
}
.menu-toggle span{
	display:block; height:3px; border-radius:2px; background:#fff;
	transition:transform .3s ease, opacity .3s ease;
}

/* Nav off-canvas (mobile) */
.main-nav{
	position: fixed;
	top: 0; right: 0;
	height: 100vh; width: 265px;
	padding: 92px 24px 24px;
	background: rgba(10,10,10,.96);
	transform: translateX(100%);
	transition: transform .3s ease;
	display: flex; flex-direction: column; gap: 28px;
}
.main-nav.active{ transform: translateX(0); }
.nav-list{ display:flex; flex-direction:column; gap:18px; }
.nav-list a{
	color:#ddd; text-decoration:none; font-weight:500;
	transition:color .2s ease;
}
.nav-list a:hover{ color:#fff; }

.nav-actions{ display:flex; flex-direction:column; gap:12px; }
.btn{
	display:inline-block; text-align:center;
	padding:.6rem 1.2rem; border-radius:28px;
	text-decoration:none; font-weight:600; font-size:.95rem;
	transition: all .25s ease;
}
.btn-outline{ border:1px solid #e50914; color:#e50914; }
.btn-outline:hover{ background:#e50914; color:#fff; }
.btn-primary{ background:#e50914; color:#fff; border:1px solid #e50914; }
.btn-primary:hover{ background:#b0060e; }

/* States */
.main-nav.active ~ #menuToggle,
.menu-toggle.active{ /* rien, mais garde le hook si besoin */ }
.menu-toggle.active span:nth-child(1){ transform: translateY(7.5px) rotate(45deg); }
.menu-toggle.active span:nth-child(2){ opacity:0; }
.menu-toggle.active span:nth-child(3){ transform: translateY(-7.5px) rotate(-45deg); }

/* Focus visible (accessibilité) */
a:focus-visible, button:focus-visible{
	outline: 2px solid #e50914; outline-offset: 3px;
}

/* ------  FOOTER ------ */

footer{
    background: rgba(10, 10, 10, 0.85);
}


/******************** Grid ********************/
/* === CONTAINERS === */

/* Container Standard (avec max-width) */
.container {
	width: 100%;
	margin: 0 auto;
	padding: 0 16px;
}

/* Container Fluid (toujours 100% de largeur) */
.container-fluid {
	width: 100%;
	margin: 0 auto;
	padding: 0 16px;
}

/* === Système de  GRILLE === */

.row {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -15px;
}

.row > * {
	padding: 0 15px;
}

/* === COLONNES DE BASE === */

.col {
	flex: 1 0 0%;
}

.col-auto {
	flex: 0 0 auto;
	width: auto;
}

/* === COLONNES EXTRA SMALL (par dÃƒÂ©faut, mobile-first) === */

.col-1 { flex: 0 0 8.333333%; max-width: 8.333333%; }
.col-2 { flex: 0 0 16.666667%; max-width: 16.666667%; }
.col-3 { flex: 0 0 25%; max-width: 25%; }
.col-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
.col-5 { flex: 0 0 41.666667%; max-width: 41.666667%; }
.col-6 { flex: 0 0 50%; max-width: 50%; }
.col-7 { flex: 0 0 58.333333%; max-width: 58.333333%; }
.col-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
.col-9 { flex: 0 0 75%; max-width: 75%; }
.col-10 { flex: 0 0 83.333333%; max-width: 83.333333%; }
.col-11 { flex: 0 0 91.666667%; max-width: 91.666667%; }
.col-12 { flex: 0 0 100%; max-width: 100%; }

/* === UTILITAIRES D'ALIGNEMENT === */

.justify-content-start { justify-content: flex-start; }
.justify-content-end { justify-content: flex-end; }
.justify-content-center { justify-content: center; }
.justify-content-between { justify-content: space-between; }
.justify-content-around { justify-content: space-around; }
.justify-content-evenly { justify-content: space-evenly; }

/* === SMALL - 576px+ === */
@media (min-width: 576px) {

	.brand a{ font-size:1.35rem; }
		.main-nav{ width: 300px; }

	/******************** Grid ********************/

	.container {
		max-width: 540px;
		padding: 0 20px;
	}
	.container-fluid {
		padding: 0 20px;
	}
	
	.col-sm { flex: 1 0 0%; }
	.col-sm-auto { flex: 0 0 auto; width: auto; }
	.col-sm-1 { flex: 0 0 8.333333%; max-width: 8.333333%; }
	.col-sm-2 { flex: 0 0 16.666667%; max-width: 16.666667%; }
	.col-sm-3 { flex: 0 0 25%; max-width: 25%; }
	.col-sm-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
	.col-sm-5 { flex: 0 0 41.666667%; max-width: 41.666667%; }
	.col-sm-6 { flex: 0 0 50%; max-width: 50%; }
	.col-sm-7 { flex: 0 0 58.333333%; max-width: 58.333333%; }
	.col-sm-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
	.col-sm-9 { flex: 0 0 75%; max-width: 75%; }
	.col-sm-10 { flex: 0 0 83.333333%; max-width: 83.333333%; }
	.col-sm-11 { flex: 0 0 91.666667%; max-width: 91.666667%; }
	.col-sm-12 { flex: 0 0 100%; max-width: 100%; }
}

@media (min-width: 768px) {

	form {
		gap: 1.5rem;
	}

	input,
	select,
	textarea {
		font-size: 1.05rem;
	}

	.menu-toggle{ display:none; }

	.main-nav{
		position: static; height:auto; width:auto;
		padding: 0; background: transparent; transform: none;
		flex-direction: row; align-items: center; gap: 28px;
	}

	.nav-list{
		flex-direction: row; align-items:center; gap: 24px;
	}

	.nav-actions{
		flex-direction: row; gap: 12px;
	}

	/******************** Grid ********************/

	.container {
		max-width: 720px;
		padding: 0 24px;
	}
	.container-fluid {
		padding: 0 24px;
	}
	
	.col-md { flex: 1 0 0%; }
	.col-md-auto { flex: 0 0 auto; width: auto; }
	.col-md-1 { flex: 0 0 8.333333%; max-width: 8.333333%; }
	.col-md-2 { flex: 0 0 16.666667%; max-width: 16.666667%; }
	.col-md-3 { flex: 0 0 25%; max-width: 25%; }
	.col-md-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
	.col-md-5 { flex: 0 0 41.666667%; max-width: 41.666667%; }
	.col-md-6 { flex: 0 0 50%; max-width: 50%; }
	.col-md-7 { flex: 0 0 58.333333%; max-width: 58.333333%; }
	.col-md-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
	.col-md-9 { flex: 0 0 75%; max-width: 75%; }
	.col-md-10 { flex: 0 0 83.333333%; max-width: 83.333333%; }
	.col-md-11 { flex: 0 0 91.666667%; max-width: 91.666667%; }
	.col-md-12 { flex: 0 0 100%; max-width: 100%; }
}

/* === LARGE - 992px+ === */
@media (min-width: 992px) {

	.header-container{ padding: 18px 0; }
	.brand a{ font-size:1.5rem; letter-spacing:.08em; }
	.nav-list{ gap: 32px; }
	.main-nav{ gap: 32px; }

	/******************** Grid ********************/

	.container {
		max-width: 960px;
		padding: 0 32px;
	}
	.container-fluid {
		padding: 0 32px;
	}
	
	.col-lg { flex: 1 0 0%; }
	.col-lg-auto { flex: 0 0 auto; width: auto; }
	.col-lg-1 { flex: 0 0 8.333333%; max-width: 8.333333%; }
	.col-lg-2 { flex: 0 0 16.666667%; max-width: 16.666667%; }
	.col-lg-3 { flex: 0 0 25%; max-width: 25%; }
	.col-lg-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
	.col-lg-5 { flex: 0 0 41.666667%; max-width: 41.666667%; }
	.col-lg-6 { flex: 0 0 50%; max-width: 50%; }
	.col-lg-7 { flex: 0 0 58.333333%; max-width: 58.333333%; }
	.col-lg-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
	.col-lg-9 { flex: 0 0 75%; max-width: 75%; }
	.col-lg-10 { flex: 0 0 83.333333%; max-width: 83.333333%; }
	.col-lg-11 { flex: 0 0 91.666667%; max-width: 91.666667%; }
	.col-lg-12 { flex: 0 0 100%; max-width: 100%; }
}

/* === EXTRA LARGE - 1200px+ === */
@media (min-width: 1200px) {

	.brand a{ font-size:1.6rem; }
	.btn{ font-size:1rem; padding:.65rem 1.3rem; }

	/******************** Grid ********************/

	.container {
		max-width: 1140px;
		padding: 0 40px;
	}
	.container-fluid {
		padding: 0 40px;
	}
	
	.col-xl { flex: 1 0 0%; }
	.col-xl-auto { flex: 0 0 auto; width: auto; }
	.col-xl-1 { flex: 0 0 8.333333%; max-width: 8.333333%; }
	.col-xl-2 { flex: 0 0 16.666667%; max-width: 16.666667%; }
	.col-xl-3 { flex: 0 0 25%; max-width: 25%; }
	.col-xl-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
	.col-xl-5 { flex: 0 0 41.666667%; max-width: 41.666667%; }
	.col-xl-6 { flex: 0 0 50%; max-width: 50%; }
	.col-xl-7 { flex: 0 0 58.333333%; max-width: 58.333333%; }
	.col-xl-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
	.col-xl-9 { flex: 0 0 75%; max-width: 75%; }
	.col-xl-10 { flex: 0 0 83.333333%; max-width: 83.333333%; }
	.col-xl-11 { flex: 0 0 91.666667%; max-width: 91.666667%; }
	.col-xl-12 { flex: 0 0 100%; max-width: 100%; }
}

/* === EXTRA EXTRA LARGE - 1400px+ === */
@media (min-width: 1400px) {

	.header-container{ padding: 20px 0; }
	.nav-list{ gap: 36px; }

	/******************** Grid ********************/

	.container {
		max-width: 1320px;
		padding: 0 48px;
	}
	.container-fluid {
		padding: 0 48px;
	}
	
	.col-xxl { flex: 1 0 0%; }
	.col-xxl-auto { flex: 0 0 auto; width: auto; }
	.col-xxl-1 { flex: 0 0 8.333333%; max-width: 8.333333%; }
	.col-xxl-2 { flex: 0 0 16.666667%; max-width: 16.666667%; }
	.col-xxl-3 { flex: 0 0 25%; max-width: 25%; }
	.col-xxl-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
	.col-xxl-5 { flex: 0 0 41.666667%; max-width: 41.666667%; }
	.col-xxl-6 { flex: 0 0 50%; max-width: 50%; }
	.col-xxl-7 { flex: 0 0 58.333333%; max-width: 58.333333%; }
	.col-xxl-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
	.col-xxl-9 { flex: 0 0 75%; max-width: 75%; }
	.col-xxl-10 { flex: 0 0 83.333333%; max-width: 83.333333%; }
	.col-xxl-11 { flex: 0 0 91.666667%; max-width: 91.666667%; }
	.col-xxl-12 { flex: 0 0 100%; max-width: 100%; }
}