/* ============================================================
   NAV — Caractère Libre
   Spec 01 · C01 · Spec 11 §5
   Design : pill flottante (Figma CLibre-PartageLM)
   ============================================================ */

/* ── Header wrapper — scroll avec la page ── */

.site-header {
  position: relative;
  z-index: var(--z-nav);
  padding: 40px 0 20px;
  /* Transparent — la pill fournit le fond blanc */
}

/* ── Pill de navigation ── */

.nav {
  display: flex;
  align-items: center;
  height: var(--nav-height);
  background: var(--color-white);
  border-radius: var(--nav-pill-radius);
  padding: 0 80px;
  gap: var(--space-4);
  box-shadow: 0 0px 0px rgba(30, 75, 156, 0.08);
  max-width: 1280px;
  margin: 0 auto;
}

/* ── Logo ── */

.nav__logo {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  /* pas de margin-right: auto — les liens gèrent le centrage */
  transition: opacity var(--transition-fast);
}

.nav__logo:hover {
  opacity: 0.8;
}

.nav__logo img {
  height: 52px;
  width: auto;
}

/* ── Liens piliers en pills ── */

.nav__links {
  flex: 1;                    /* occupe l'espace central */
  display: flex;
  align-items: left;
  justify-content: left;   
  margin-left: 4px;
  gap: 4px;
}

.nav__pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 37px;
  padding: 0 var(--space-5);
  border: none;
  border-radius: var(--radius-pill);
  font-family: var(--font-display);
  font-size: var(--text-base);
  font-weight: var(--weight-extrabold);
  letter-spacing: var(--tracking-wide);
  color: var(--color-text);
  text-transform: uppercase;
  white-space: nowrap;
  transition:
    background var(--transition-fast),
    color var(--transition-fast);
}

.nav__pill:hover,
.nav__pill.is-active {
  background: var(--color-blue);
  color: var(--color-white);
}

/* ── Icônes réseaux ── */

.nav__social {
  flex: 0 0 auto;             /* taille fixe, collé à droite naturellement */
  display: flex;
  align-items: center;
  gap: 12px;
}

.nav__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  color: var(--color-blue);
  transition: opacity var(--transition-fast), color var(--transition-fast);
}

/* Header : picto SVG inline (fill="currentColor") recolorable
   → bleu par défaut, couleur texte au survol. Même principe que .rs-links.
   L'overlay mobile garde son fondu d'origine (voir .nav__mobile-social). */
.nav__social .nav__social-link:hover {
  color: var(--color-text);
}

.nav__social-link img,
.nav__social-link svg {
  width: 100%;
  height: 100%;
}

/* ── YouTube plus large (ratio natif) ── */
.nav__social-link--youtube {
  width: 28.53px;
}

/* ── Bouton hamburger ── */

.nav__hamburger {
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--radius-sm);
  margin-left: auto;
  color: var(--color-blue);
  transition: background var(--transition-fast);
}

.nav__hamburger:hover {
  background: var(--color-blue-light);
}

.nav__hamburger-icon {
  display: flex;
  flex-direction: column;
  gap: 5px;
  pointer-events: none;
}

.nav__hamburger-icon span {
  display: block;
  width: 22px;
  height: 2px;
  background: currentColor;
  border-radius: 2px;
  transition: transform var(--transition-fast), opacity var(--transition-fast);
}

/* ── Mobile overlay ── */

.nav__mobile-overlay {
  position: fixed;
  inset: 0;
  z-index: var(--z-menu);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--color-blue);
  padding: var(--space-8) var(--space-6);

  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity var(--transition-nav-in),
    transform var(--transition-nav-in);
  pointer-events: none;
}

.nav__mobile-overlay:not([hidden]) {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.nav__mobile-overlay[hidden] {
  display: flex;
  opacity: 0;
  transform: translateY(20px);
  pointer-events: none;
  visibility: hidden;
}

/* Bouton fermeture */
.nav__mobile-close {
  position: absolute;
  top: var(--space-5);
  right: var(--space-10);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background-color: #ffffff;
  color: var(--color-blue);
  transition: background var(--transition-fast);
}

.nav__mobile-close:hover {
  background: rgba(255, 255, 255, 0.15);
}

/* Liens mobile */
.nav__mobile-links ul {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
  text-align: center;
}

.nav__mobile-link {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(22px, 6.5vw, 40px);
  font-weight: var(--weight-black);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--color-white);
  line-height: 1.15;
  padding: var(--space-2) var(--space-4);
  transition: opacity var(--transition-fast);
  white-space: nowrap;
}

.nav__mobile-link:hover {
  opacity: 0.7;
}

/* Newsletter mobile */
.nav__mobile-newsletter {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-6) 0;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  width: 100%;
  max-width: 320px;
  margin-top: 50px;
}

.nav__mobile-newsletter-label {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: var(--weight-extrabold);
  letter-spacing: var(--tracking-widest);
  color: rgba(255, 255, 255, 0.55);
  text-transform: uppercase;
  margin: 0;
}

.nav__mobile-newsletter-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 44px;
  padding: 0 24px;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: var(--radius-pill);
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: var(--weight-bold);
  color: var(--color-white);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  transition: background var(--transition-fast);
}

.nav__mobile-newsletter-btn:hover {
  background: rgba(255, 255, 255, 0.22);
}

/* Réseaux mobile — pill blanche pour délimiter du fond bleu */
.nav__mobile-social-wrap {
  position: absolute;
  bottom: var(--space-10);
  display: flex;
  align-items: center;
  gap: 16px;
  background: var(--color-white);
  border-radius: var(--radius-pill);
  padding: 12px 24px;
}

.nav__mobile-social-label {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: var(--weight-extrabold);
  letter-spacing: var(--tracking-widest);
  color: var(--color-blue);
  text-transform: uppercase;
  white-space: nowrap;
  margin: 0;
}

.nav__mobile-social {
  display: flex;
  align-items: center;
  gap: 12px;
}

.nav__mobile-social .nav__social-link {
  opacity: 1;
  transition: opacity var(--transition-fast);
}

.nav__mobile-social .nav__social-link--youtube {
  width: 31px;
}

.nav__mobile-social .nav__social-link:hover {
  opacity: 0.65;
}

/* ── Responsive ── */

@media (min-width: 768px) and (max-width: 1180px) {
  .nav {
    padding: 0 20px;
    gap: 8px;
  }

  .nav__links {
    margin-left: 12px;
    gap: 6px;
  }

  .nav__pill {
    padding: 0 12px;
    font-size: 14px;
  }

  .nav__social {
    gap: 8px;
  }
}

@media (max-width: 767px) {
  .site-header {
    padding: 12px 16px;
  }

  .nav {
    height: 55px;
    padding: 0 var(--space-5);
    border-radius: 32px;
  }

  .nav__links,
  .nav__social {
    display: none;
  }

  .nav__logo {
    margin-right: 0;
  }

  .nav__logo img {
    height: 45px;
  padding-left: 0px;
  }

  .nav__hamburger {
    display: flex;
    margin-left: auto;
  }

}

@media (prefers-reduced-motion: reduce) {
  .nav__mobile-overlay,
  .nav__mobile-overlay:not([hidden]) {
    transition: none;
  }
}
