/* ==========================================================================
   Helveticard — lien actif du menu
   Partagé par toutes les pages (index*, app, contact, privacy-cookie-policy).
   Couleur de la barre : variable --nav-active (définie par page si besoin).
   Position verticale : --nav-bar-top, calculée par js/nav-active.js.
   ========================================================================== */

/* Liens concernés : menu des index (.nav-links) et menu partagé (.main-nav) */
.nav-links a,
.main-nav .navbar-nav .nav-item > a {
  position: relative;
}
.nav-links a { display: inline-block; padding: 4px 0; }

/* Barre 4px en haut du menu (masquée par défaut) */
.nav-links a::before,
.main-nav .navbar-nav .nav-item > a:not(.btn-outline)::before {
  content: '';
  position: absolute;
  left: 0;
  top: var(--nav-bar-top, -16px);
  width: 100%;
  height: 4px;
  border-radius: 0 0 3px 3px;
  background: var(--nav-active, #2e7eed);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
}

/* Survol : la ligne apparaît en gold (--nav-hover) */
.nav-links a:hover::before,
.main-nav .navbar-nav .nav-item > a:not(.btn-outline):hover::before {
  transform: scaleX(1);
  background: var(--nav-hover, #B8925A);
}

/* État actif */
.nav-links a.active,
.main-nav .navbar-nav .nav-item > a.active { color: var(--nav-active-text, var(--grey-4, #2C3748)); }
.nav-links a.active::before,
.main-nav .navbar-nav .nav-item > a.active::before { transform: scaleX(1); }

/* Bouton Contact actif (page contact) */
.main-nav .navbar-nav .nav-item > a.btn-outline.active {
  color: var(--nav-active, #2e7eed);
  border-color: var(--nav-active, #2e7eed);
}

@media (prefers-reduced-motion: reduce) {
  .nav-links a::before,
  .main-nav .navbar-nav .nav-item > a::before { transition: none; }
}

/* Menu fixe : ombre légère dès qu'on a quitté le haut de page */
.main-nav { transition: box-shadow .2s ease; }
.main-nav.is-scrolled { box-shadow: 0 6px 18px -12px rgba(16, 24, 40, .35); }

/* Barre de progression de lecture, sous le menu (largeur pilotée par --nav-progress) */
.main-nav::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -1px;
  height: 2px;
  width: 100%;
  background: var(--nav-active, #2e7eed);
  transform: scaleX(var(--nav-progress, 0));
  transform-origin: left;
  pointer-events: none;
}

/* Menu replié (mobile) : barre verticale à gauche du lien actif */
@media (max-width: 991px) {
  .main-nav .navbar-nav .nav-item > a:not(.btn-outline)::before {
    top: 50%;
    left: -12px;
    width: 3px;
    height: 20px;
    border-radius: 0 3px 3px 0;
    transform: translateY(-50%) scaleY(0);
    transform-origin: center;
  }
  .main-nav .navbar-nav .nav-item > a.active::before,
  .main-nav .navbar-nav .nav-item > a:not(.btn-outline):hover::before { transform: translateY(-50%) scaleY(1); }
  .main-nav .navbar-collapse { max-height: calc(100vh - 64px); overflow-y: auto; }
}
