/**
 * En-tête premium — couche d'amélioration.
 *
 * Le balisage de la nav est dupliqué en styles en ligne dans les 18 pages
 * (généré par scripts/entete-jaune.mjs) et public/*-logic.js écrit encore
 * des styles en ligne au défilement. Ce fichier passe PAR-DESSUS sans
 * toucher au balisage : d'où les !important, qui sont ici volontaires et
 * nécessaires (une règle !important bat toujours un style en ligne).
 *
 * L'état « défilé » est porté par html[data-defile="1"], posé par
 * /entete.js. Palette : jaune #F7C647, vert #17301F, brun #96350F.
 */

:root {
  --ep-jaune: #f7c647;
  --ep-vert: #17301f;
  --ep-brun: #96350f;
  --ep-ambre: #e0742c;
  --ep-ressort: cubic-bezier(0.2, 0.7, 0.2, 1);
}

/* ─── La barre ───────────────────────────────────────────────────── */

#om-nav {
  padding: 14px clamp(16px, 3vw, 34px) !important;
  background: var(--ep-jaune) !important;
  box-shadow: inset 0 -1px 0 rgba(23, 48, 31, 0.1) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  transition:
    padding 0.38s var(--ep-ressort),
    background 0.38s ease,
    box-shadow 0.38s ease !important;
}

/* Verre dépoli au défilement. Le fond devient translucide : sans cela, le
   blur posé par *-logic.js sur un fond opaque ne produisait rien du tout. */
html[data-defile='1'] #om-nav {
  padding-top: 8px !important;
  padding-bottom: 8px !important;
  background: rgba(247, 198, 71, 0.86) !important;
  backdrop-filter: blur(20px) saturate(185%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(185%) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.4),
    inset 0 -1px 0 rgba(23, 48, 31, 0.14),
    0 14px 36px rgba(10, 22, 14, 0.17) !important;
}

/* ─── Le logo rétrécit avec la barre ─────────────────────────────── */

#om-nav a img {
  height: 72px !important;
  transition: height 0.38s var(--ep-ressort) !important;
}

html[data-defile='1'] #om-nav a img {
  height: 52px !important;
}

/* ─── Les liens de pages : soulignement qui se déploie ────────────── */

#om-nav #om-nav-links {
  gap: clamp(18px, 2.1vw, 30px) !important;
}

#om-nav #om-nav-links a {
  position: relative;
  padding: 7px 1px !important;
  font-size: 14px !important;
  letter-spacing: 0.1px !important;
  color: var(--ep-vert) !important;
  transition: color 0.28s ease !important;
}

#om-nav #om-nav-links a::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--ep-brun), var(--ep-ambre));
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.36s var(--ep-ressort);
}

#om-nav #om-nav-links a:hover,
#om-nav #om-nav-links a:focus-visible,
#om-nav #om-nav-links a[data-actif] {
  color: var(--ep-brun) !important;
}

#om-nav #om-nav-links a:hover::after,
#om-nav #om-nav-links a:focus-visible::after,
#om-nav #om-nav-links a[data-actif]::after {
  transform: scaleX(1);
}

/* ─── Le sélecteur de langue ─────────────────────────────────────── */

#om-nav #om-nav-lang {
  background: rgba(23, 48, 31, 0.09) !important;
  padding: 3px !important;
}

#om-nav #om-nav-lang a {
  transition:
    color 0.25s ease,
    background 0.25s ease !important;
}

/* Seule la langue INACTIVE réagit (l'active a déjà son fond vert). */
#om-nav #om-nav-lang a:not([style*='background:#17301F']):hover {
  background: rgba(23, 48, 31, 0.12) !important;
  color: var(--ep-brun) !important;
}

/* Sur téléphone, la bascule FR/EN reste accessible dès 560 px : c'est une
   garderie bilingue, cacher le choix de langue coûtait des visiteurs. */
@media (min-width: 560px) and (max-width: 940px) {
  #om-nav #om-nav-lang {
    display: flex !important;
  }
}

/* ─── Le bouton Inscription ──────────────────────────────────────── */

/* Pas de transform ici : data-magnet en pose un au survol (effet aimant). */
#om-nav a[data-magnet] {
  padding: 12px 26px !important;
  font-size: 14.5px !important;
  box-shadow: 0 8px 20px rgba(23, 48, 31, 0.22) !important;
  transition:
    box-shadow 0.3s ease,
    padding 0.38s var(--ep-ressort),
    filter 0.3s ease !important;
}

#om-nav a[data-magnet]:hover,
#om-nav a[data-magnet]:focus-visible {
  box-shadow: 0 16px 32px rgba(23, 48, 31, 0.32) !important;
  filter: brightness(1.12);
}

html[data-defile='1'] #om-nav a[data-magnet] {
  padding: 10px 22px !important;
}

/* ─── Le bouton menu, qui se plie en croix ───────────────────────── */

#om-burger {
  transition: background 0.25s ease !important;
}

#om-burger:hover {
  background: rgba(23, 48, 31, 0.16) !important;
}

#om-burger span {
  transition:
    transform 0.32s var(--ep-ressort),
    opacity 0.2s ease,
    width 0.32s var(--ep-ressort) !important;
}

#om-burger[aria-expanded='true'] span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

#om-burger[aria-expanded='true'] span:nth-child(2) {
  opacity: 0;
}

/* Le 3e trait fait 14 px et est jaune en ligne : il faut forcer les deux
   pour obtenir une croix propre et symétrique. */
#om-burger[aria-expanded='true'] span:nth-child(3) {
  width: 22px !important;
  background: #fffdf6 !important;
  transform: translateY(-7px) rotate(-45deg);
}

/* ─── Menu mobile ouvert : la bulle de clavardage s'efface ───────── */

/* Le widget se pose à z-index 99 999 999 : sans cela il recouvrait les
   liens du menu plein écran. */
html[data-menu='1'] chat-widget {
  display: none !important;
}

/* ─── La jauge de lecture, collée sous l'en-tête ─────────────────── */

#om-progress {
  top: calc(var(--ep-entete-h, 100px) - 3px) !important;
  height: 3px !important;
  border-radius: 0 !important;
  z-index: 81 !important;
  background: linear-gradient(90deg, var(--ep-brun), #f0764b 55%, #ffd98a) !important;
  box-shadow: 0 0 14px rgba(240, 118, 75, 0.5);
  transition:
    top 0.38s var(--ep-ressort),
    width 0.1s linear !important;
}

/* ─── Accessibilité au clavier ───────────────────────────────────── */

#om-nav a:focus-visible,
#om-burger:focus-visible {
  outline: 2px solid var(--ep-vert);
  outline-offset: 3px;
  border-radius: 6px;
}

/* ─── Téléphone ──────────────────────────────────────────────────── */

@media (max-width: 940px) {
  #om-nav {
    padding: 11px 16px !important;
  }
  #om-nav a img {
    height: 58px !important;
  }
  html[data-defile='1'] #om-nav {
    padding-top: 7px !important;
    padding-bottom: 7px !important;
  }
  html[data-defile='1'] #om-nav a img {
    height: 46px !important;
  }
  #om-nav a[data-magnet] {
    padding: 10px 18px !important;
    font-size: 13.5px !important;
  }
}

/* ─── Mouvement réduit ───────────────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
  #om-nav,
  #om-nav a img,
  #om-nav #om-nav-links a::after,
  #om-burger span,
  #om-progress {
    transition: none !important;
  }
}
