@font-face { font-family: "Montserrat"; font-weight: 400; font-display: swap; src: url("/fonts/montserrat-latin-400.woff2") format("woff2"); }
@font-face { font-family: "Montserrat"; font-weight: 600; font-display: swap; src: url("/fonts/montserrat-latin-600.woff2") format("woff2"); }
@font-face { font-family: "Montserrat"; font-weight: 800; font-display: swap; src: url("/fonts/montserrat-latin-800.woff2") format("woff2"); }

:root {
  --nuit: #1F202B;
  --blanc: #FFFFFF;
  --blanc-doux: rgba(255, 255, 255, 0.72);
  --jade: #069982;
  --fluo: #EAFE51;
  --marge: clamp(16px, 6vw, 96px);
}

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

html { background: var(--nuit); color-scheme: dark; }

body {
  margin: 0;
  min-height: 100vh;
  min-height: 100svh;
  background: var(--nuit);
  color: var(--blanc);
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
}

.page {
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: clamp(40px, 8vh, 96px);
  padding: clamp(24px, 5vh, 56px) var(--marge);
  max-width: 1440px;
  margin: 0 auto;
}

.logo { display: block; width: clamp(88px, 10vw, 128px); height: auto; }

.coeur { align-self: center; max-width: 62rem; }

.surtitre {
  margin: 0 0 1.5rem;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--jade);
}

.titre {
  margin: 0;
  font-weight: 800;
  text-transform: uppercase;
  font-size: clamp(2.5rem, 9vw, 7.5rem);
  line-height: 0.95;
  letter-spacing: -0.02em;
  text-wrap: balance;
}

/* La seule occurrence du jaune fluo sur la page */
.trait {
  width: 64px;
  height: 0;
  margin: clamp(32px, 5vh, 56px) 0;
  border: 0;
  border-top: 2px solid var(--fluo);
}

.pitch {
  margin: 0 0 1.25rem;
  max-width: 38rem;
  font-size: clamp(1rem, 1.4vw, 1.2rem);
  line-height: 1.65;
}

.annonce {
  margin: 0;
  max-width: 38rem;
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--blanc-doux);
}

.contact {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 12px 40px;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

a { color: inherit; text-decoration: none; }
a:focus-visible { outline: 2px solid var(--jade); outline-offset: 4px; }

.contact-principal {
  font-weight: 600;
  font-size: clamp(1rem, 1.6vw, 1.25rem);
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s ease, color 0.2s ease;
}
.contact-principal:hover { border-bottom-color: var(--jade); }

.reseaux {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
  margin: 0 0 0 auto;
  padding: 0;
  list-style: none;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.reseaux a { color: var(--blanc-doux); transition: color 0.2s ease; }
.reseaux a:hover { color: var(--jade); }

@media (max-width: 640px) {
  .contact { flex-direction: column; gap: 14px; }
  .reseaux { margin: 12px 0 0; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; }
}
