:root {
 /* Nouvelle palette Rouge et Blanc/Clair sur fond Sombre */
 --bg: #0c0c0c; 
 --fg: #ffffff; /* Texte principal blanc */
 --mut: #d4d4d4; /* Texte secondaire gris clair */
 --red1: #d32f2f; /* Rouge primaire */
 --red2: #ef5350; /* Rouge secondaire/plus clair */
 --ink: #ffcdd2; /* Couleur pour le texte d'accentuation clair */
 --line: hsla(0, 0%, 70%, .22); /* Lignes de séparation plus claires */
 --glass: hsla(0, 0%, 100%, .06);
}

* { box-sizing: border-box }
body,html { height: 100% }

body {
 margin: 0;
 color: var(--fg);
 font: 400 15px/1.6 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial;
 /* Mise à jour des dégradés de fond */
 background: radial-gradient(1000px 700px at 0 -10%, rgba(211, 47, 47, .15), transparent 60%), 
       radial-gradient(1000px 700px at 110% 0, rgba(239, 83, 80, .12), transparent 60%), 
       var(--bg);
 max-width: 100vw;
 overflow-x: hidden;
}

a { color: inherit; text-decoration: none }

:focus-visible {
 outline: 2px dashed var(--red2);
 outline-offset: 2px;
}

/* SÉLECTEURS D'EN-TÊTE HARMONISÉS (H-CLASSES) */
.h-2b91 {
 position: fixed;
 inset: 0 0 auto 0;
 z-index: 60;
 background: linear-gradient(180deg, rgba(12, 12, 12, .82), rgba(12, 12, 12, .38));
 backdrop-filter: saturate(120%) blur(10px);
 border-bottom: 1px solid var(--line);
}

.h-8d22 {
 max-width: 1200px;
 margin: 0 auto;
 padding: 12px 16px;
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 12px;
}

.h-9ca0 { display: flex; align-items: center; gap: 10px }
.h-9ca0 svg { width: 36px; height: 36px }

.h-1a55 {
 font-weight: 900;
 font-size: 18px;
 letter-spacing: .5px;
 text-transform: uppercase;
 /* Mise à jour du dégradé de logo */
 background: linear-gradient(120deg, var(--red1), var(--red2));
 -webkit-background-clip: text;
 background-clip: text;
 color: transparent;
}

.h-33f0 { display: none; gap: 18px }
.h-33f0 a { opacity: .86 }
.h-33f0 a:hover { opacity: 1 }

.h-55aa {
 display: inline-flex;
 flex-direction: column;
 gap: 4px;
 padding: 8px;
 border-radius: 12px;
 border: 1px solid var(--line);
 background: var(--glass);
}
.h-55aa span {
 width: 22px;
 height: 2px;
 background: var(--fg);
 border-radius: 2px;
 transition: .25s;
}

.h-77cc {
 position: fixed;
 inset: 56px 12px auto 12px;
 z-index: 55;
 background: rgba(16,16,18,.98);
 border: 1px solid var(--line);
 border-radius: 16px;
 padding: 14px;
 transform: translateY(-20px);
 opacity: 0;
 pointer-events: none;
 transition: .25s;
}
.h-77cc.h--open {
 transform: translateY(0);
 opacity: 1;
 pointer-events: auto;
}
.h-77cc a {
 display: block;
 padding: 12px 10px;
 border-bottom: 1px dashed var(--line);
}
.h-77cc a:last-child { border-bottom: 0 }

/* Mise en page de la section Contact */
.c-hero {
 min-height: 100vh;
 padding-top: 70px;
 display: grid;
 place-items: center;
}

.c-wrap {
 max-width: 1100px;
 margin: 0 auto;
 padding: 28px 16px;
}

.c-ttl {
 margin: 0 0 10px;
 letter-spacing: -.01em;
 /* Mise à jour du dégradé du titre */
 background: linear-gradient(100deg, var(--fg), var(--red2));
 -webkit-background-clip: text;
 background-clip: text;
 color: transparent;
}

.c-sub {
 margin: 0;
 color: var(--mut);
 max-width: 70ch;
}

.c-grid {
 display: grid;
 grid-template-columns: 1fr;
 gap: 16px;
 margin-top: 18px;
}

.c-card {
 border: 1px solid var(--line);
 border-radius: 18px;
 /* Arrière-plan rouge très subtil pour la carte */
 background: rgba(211, 47, 47, .03);
 padding: 14px;
}

.f-form {
 border: 1px solid var(--line);
 border-radius: 18px;
 /* Arrière-plan plus subtil pour le formulaire */
 background: rgba(211, 47, 47, .02);
 padding: 16px;
}

.f-row {
 display: grid;
 grid-template-columns: 1fr;
 gap: 12px;
}

.f-col {
 display: flex;
 flex-direction: column;
 gap: 6px;
}

label { font-weight: 700 }

input {
 border: 1px solid var(--line);
 border-radius: 12px;
 /* Arrière-plan du champ de saisie */
 background: rgba(211, 47, 47, .04);
 color: var(--fg);
 padding: 10px 12px;
 font: inherit;
}

input::placeholder { color: var(--mut) }

button {
 padding: 10px 14px;
 border-radius: 999px;
 border: 1px solid var(--line);
 /* Mise à jour du dégradé des boutons */
 background: linear-gradient(180deg, var(--red2), var(--red1));
 color: var(--fg);
 font-weight: 700;
}

@media (min-width: 920px) {
 .h-33f0 { display: flex }
 .h-55aa { display: none }
 .c-grid { grid-template-columns: 1fr .9fr }
}

/* Pied de page (Footer) */
.ft {
 border-top: 1px solid var(--line);
 background: rgba(211, 47, 47, .02);
}

.ft-wrap {
 max-width: 1200px;
 margin: 0 auto;
 padding: 18px 16px;
 display: grid;
 grid-template-columns: 1fr;
 gap: 10px;
 color: var(--mut);
}

.ft-row {
 display: flex;
 gap: 16px;
 flex-wrap: wrap;
}
.ft-row--inl-4e8b8a { margin-top: 8px }

.ft-links a { opacity: .86 }
.ft-links a:hover { opacity: 1 }

/* Styles en ligne */
.elem--inl-1bb8d3 { margin: 0 0 8px }
.elem--inl-bf6ad6 { color: var(--mut); margin: 0 }
.elem--inl-421f82 { color: var(--mut); margin: 10px 0 0 }
.elem--inl-cc5793 { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px }
.elem--inl-0573f1 {
 background: rgba(211, 47, 47, .04);
 border: 1px solid var(--line);
 border-radius: 999px;
 padding: 10px 14px;
}