/* ══════════════════════════════════════════
   style.css — Latitude Sud
   ══════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Lexend:wght@400;600&display=swap');

/* ── Tokens ── */
/* filtre pour couleurs (plus simple) */


/* ── Reset ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

body {
  font-family: 'Lexend', sans-serif;
  font-weight: 600;
  background-color: var(--bg);
  color: var(--fg);
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  transition: background-color 0.3s ease, color 0.3s ease;
}

/* ── Hero ── */
.hero {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(1.4rem, 3vw, 2.6rem);
  padding: clamp(3rem, 6vw, 6rem) clamp(1.5rem, 5vw, 3rem);
}

/* ── Logo composé ── */
.logo-wrap {
  position: relative;
  width: min(520px, 82vw);
  opacity: 0;
  transform: translateY(12px);
  animation: fade-up 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.1s forwards;
}

/* picture de base — définit la hauteur du conteneur */
.logo-pic--sud {
  display: block;
  width: 100%;
}
.logo-pic--sud img {
  display: block;
  width: 100%;
  height: auto;
}

/* picture "Latitude" superposée exactement */
.logo-pic--latitude {
  position: absolute;
  inset: 0;
  display: block;
}
.logo-pic--latitude img {
  position: absolute;
  top: 45%;
  left: 45%;
  width: 85%;
  height: auto;
  transform: translate(-46%, -50%); /* -50% = centre parfait, -46% = légèrement à droite */
  object-fit: contain;
}

.logo-pic--baseline img {
  position: absolute;
  top: 65%;
  left: 45%;
  width: 45%;
  height: auto;
  transform: translate(-40%, -50%); /* -50% = centre parfait, -46% = légèrement à droite */
  object-fit: contain;
}


/* ── Tagline ── */
.tagline {
  max-width: 200ch;
  text-align: center;
  font-size: clamp(0.75rem, 1.4vw, 0.92rem);
  font-weight: 600;
  line-height: 1.65;
  color: #4ef29f;
  opacity: 0;
  animation: fade-up 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.3s forwards;
}

/* ── Boutons sociaux ── */
.socials {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  justify-content: center;
  opacity: 0;
  animation: fade-up 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.45s forwards;
}

.btn {
  display: inline-block;
  padding: 0.6rem 3.6rem;
  border-radius: 999px;
  background: var(--btn-bg);
  color: var(--btn-fg);
  text-decoration: none;
  font-family: 'Lexend', sans-serif;
  font-size: clamp(0.78rem, 1.2vw, 0.88rem);
  font-weight: 600;
  letter-spacing: 0.03em;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.btn:hover { opacity: 0.72; transform: translateY(-2px); }

/* ── Label clients ── */
.clients-label {
  font-size: clamp(0.75rem, 1.2vw, 0.83rem);
  font-weight: 600;
  color: #e6e6e6;
  text-align: center;
  opacity: 0;
  animation: fade-up 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.55s forwards;
}

/* ── Grille clients — 2 lignes en plein écran ──
   max-width calculé pour que ~12 logos tiennent sur une ligne desktop.
   flex-wrap gère naturellement le passage à la ligne 2.         ── */
.clients-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  /* gap : vertical / horizontal */
  gap: clamp(1.2rem, 2.5vw, 2rem) clamp(1.5rem, 3.5vw, 3rem);
  max-width: min(960px, 95vw);
  width: 100%;
  opacity: 0;
  animation: fade-up 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.65s forwards;
  
}

/* Chaque logo-lien */
.client-logo img {
  height: clamp(16px, 2.2vw, 24px);
  width: auto;
  max-width: 90px;
  opacity: 0.65;
  transition: opacity 0.25s ease;
  display: block;
}


.client-logo:hover { transform: scale(1.12); }

.client-logo img {
  /* hauteur de référence maquette ≈ 22px */
  height: clamp(16px, 2.2vw, 24px);
  width: auto;
  max-width: 90px;     /* empêche les logos très larges de déborder */
  opacity: 0.65;
  transition: opacity 0.25s ease;
  display: block;
}

.client-logo:hover img { opacity: 1; }

/* ── Contact / Footer ── */
.contact {
  text-align: center;
  font-size: clamp(0.72rem, 1.2vw, 0.82rem);
  font-weight: 400;
  line-height: 1.85;
  color: #4ef29f;
  font-style: normal;
  opacity: 0;
  animation: fade-up 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.75s forwards;
}

.contact sup { font-size: 0.65em; }

.contact a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}
.contact a:hover { color: var(--violet); }



/* ── Keyframes ── */
@keyframes fade-up {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Mobile ── */
@media (max-width: 480px) {
  .socials { gap: 0.75rem; }
  .btn     { padding: 0.55rem 2.8rem; }
  .clients-grid { gap: 1.2rem 1.8rem; }
  .client-logo img { max-width: 70px; }
}
