/* =============================================================
   QUAADRA — Navigation / Méga Menu (style Groupe Bolloré)
   Remplace les règles header dans style.css
   ============================================================= */

/* -------------------------------------------------------
   VARIABLES HEADER
   ------------------------------------------------------- */
:root {
  --nav-h:      110px;
  --header-h:   110px;        /* plus de topbar */
  --nav-bg:     rgba(8, 8, 8, 0.0);   /* transparent au départ */
  --nav-bg-scroll: rgba(8, 8, 8, 0.97);
  --mega-bg:    #111111;
  --mega-border: rgba(201, 168, 76, 0.12);
  --drawer-w:   320px;
}

/* -------------------------------------------------------
   1. BARRE DE NAVIGATION
   ------------------------------------------------------- */
.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 900;
  transition: background .4s, box-shadow .4s;
}
.site-header.scrolled {
  background: var(--nav-bg-scroll);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 1px 0 var(--mega-border);
}

.nav-bar {
  height: var(--nav-h);
  border-bottom: 1px solid rgba(201, 168, 76, 0.08);
}
.nav-bar-inner {
  max-width: 1400px; margin-inline: auto;
  padding-inline: clamp(1rem, 3vw, 2.5rem);
  height: 100%;
  display: grid;
  /* hamburger | logo | nav | lang */
  grid-template-columns: 48px 1fr auto 48px;
  align-items: center;
  gap: 1rem;
}

/* -------------------------------------------------------
   2. LOGO + SLOGAN
   ------------------------------------------------------- */
.nav-logo-wrap {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 1px;
  text-decoration: none;
  grid-column: 1;
  /* desktop: logo à gauche du menu */
}
.nav-logo-img {
  height: 38px; width: auto; object-fit: contain;
  /* Teinte dorée sur le logo blanc/noir */
  filter: brightness(0) saturate(100%) invert(72%) sepia(43%)
          saturate(512%) hue-rotate(5deg) brightness(92%) contrast(90%);
  transition: filter .3s;
}
.nav-logo-wrap:hover .nav-logo-img {
  filter: brightness(0) saturate(100%) invert(85%) sepia(30%)
          saturate(600%) hue-rotate(5deg) brightness(100%) contrast(90%);
}
.nav-slogan {
  display: block;
  font-family: var(--font-cond);
  font-size: 0.58rem; font-weight: 600;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--c-gold); opacity: 0.85;
  white-space: nowrap;
  line-height: 1;
}

/* -------------------------------------------------------
   3. MENU DESKTOP
   ------------------------------------------------------- */
.nav-desktop {
  grid-column: 3;
  display: flex; align-items: center;
}
.nav-list {
  display: flex; align-items: center; gap: 0;
  list-style: none; margin: 0; padding: 0;
}
.nav-item { position: relative; }

.nav-link {
  display: flex; align-items: center; gap: 0.3rem;
  padding: 0.55rem 1rem;
  font-family: var(--font-cond);
  font-size: 0.78rem; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: rgba(245, 240, 232, 0.7);
  background: none; border: none; cursor: pointer;
  transition: color .2s;
  white-space: nowrap;
  /* ligne de soulignement animée */
  position: relative;
}
.nav-link::after {
  content: '';
  position: absolute; bottom: -1px; left: 1rem; right: 1rem;
  height: 1px; background: var(--c-gold);
  transform: scaleX(0); transform-origin: left;
  transition: transform .3s var(--ease-out);
}
.nav-item.is-active .nav-link,
.nav-item:hover > .nav-link,
.nav-item.mega-open > .nav-link {
  color: var(--c-white);
}
.nav-item.is-active .nav-link::after,
.nav-item:hover > .nav-link::after,
.nav-item.mega-open > .nav-link::after {
  transform: scaleX(1);
}

.nav-chevron {
  transition: transform .25s;
  opacity: 0.6;
}
.nav-item.mega-open .nav-chevron {
  transform: rotate(180deg); opacity: 1;
}

/* -------------------------------------------------------
   4. LANGUE (droite)
   ------------------------------------------------------- */
.nav-lang {
  grid-column: 4;
  font-family: var(--font-cond);
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.18em;
  color: var(--c-gold);
  border: 1px solid rgba(201, 168, 76, 0.4);
  padding: 0.3rem 0.6rem;
  transition: all .2s;
  white-space: nowrap;
  text-align: center;
}
.nav-lang:hover { background: var(--c-gold); color: var(--c-black); }

/* -------------------------------------------------------
   5. HAMBURGER (gauche — visible mobile seulement par défaut)
   ------------------------------------------------------- */
.nav-hamburger {
  grid-column: 1;
  display: none;          /* affiché uniquement en mobile */
  flex-direction: column;
  justify-content: center; align-items: center;
  gap: 5px;
  width: 44px; height: 44px;
  background: none; border: none; cursor: pointer;
  padding: 6px; z-index: 10;
}
.ham-line {
  display: block;
  width: 22px; height: 1.5px;
  background: var(--c-white);
  border-radius: 2px;
  transition: all .3s var(--ease-out);
  transform-origin: center;
}
.nav-hamburger.is-open .ham-line:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.nav-hamburger.is-open .ham-line:nth-child(2) { opacity: 0; transform: scaleX(0); }
.nav-hamburger.is-open .ham-line:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* -------------------------------------------------------
   6. MÉGA PANNEAU (desktop)
   ------------------------------------------------------- */
.mega-panel {
  position: fixed;
  top: var(--nav-h); left: 0; right: 0;
  background: var(--mega-bg);
  border-top: 1px solid var(--mega-border);
  border-bottom: 1px solid var(--mega-border);
  z-index: 800;
  /* État fermé */
  opacity: 0; visibility: hidden; pointer-events: none;
  transform: translateY(-12px);
  transition: opacity .3s var(--ease-out),
              transform .3s var(--ease-out),
              visibility .3s;
}
.mega-panel.is-open {
  opacity: 1; visibility: visible; pointer-events: auto;
  transform: translateY(0);
}

.mega-inner {
  max-width: 1400px; margin-inline: auto;
  padding: 2.5rem clamp(1rem, 3vw, 2.5rem);
  display: flex; gap: 0; align-items: flex-start;
}

/* Colonnes */
.mega-col {
  flex: 1; padding: 0 1.75rem;
  border-right: 1px solid rgba(255,255,255,.05);
}
.mega-col:first-child { padding-left: 0; }

.mega-col-title {
  font-family: var(--font-cond);
  font-size: 0.65rem; font-weight: 700;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--col-color, var(--c-gold));
  margin-bottom: 1rem; padding-bottom: 0.6rem;
  border-bottom: 1px solid rgba(255,255,255,.06);
}

.mega-links { list-style: none; display: flex; flex-direction: column; gap: 0.15rem; }

.mega-link {
  display: flex; flex-direction: column; gap: 0.15rem;
  padding: 0.55rem 0.75rem;
  border-left: 2px solid transparent;
  transition: border-color .2s, background .2s, padding-left .2s;
  border-radius: 0;
}
.mega-link:hover {
  border-left-color: var(--col-color, var(--c-gold));
  background: rgba(255,255,255,.03);
  padding-left: 1rem;
}
.mega-link-label {
  font-family: var(--font-cond);
  font-size: 0.88rem; font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--c-white);
  transition: color .2s;
}
.mega-link:hover .mega-link-label { color: var(--col-color, var(--c-gold)); }
.mega-link-desc {
  font-size: 0.72rem; color: var(--c-grey-3); line-height: 1.3;
}

/* CTA latéral */
.mega-cta-col {
  flex: 0 0 200px; padding-left: 2rem;
  display: flex; flex-direction: column; justify-content: flex-start;
}
.mega-cta-card {
  display: flex; flex-direction: column; gap: 0.5rem;
  padding: 1.5rem; background: rgba(201,168,76,.07);
  border: 1px solid rgba(201,168,76,.2);
  transition: background .25s, border-color .25s;
}
.mega-cta-card:hover { background: rgba(201,168,76,.12); border-color: rgba(201,168,76,.4); }
.mega-cta-icon { font-size: 1.4rem; color: var(--c-gold); }
.mega-cta-text {
  font-family: var(--font-cond); font-size: 0.82rem;
  font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--c-white); line-height: 1.3;
}
.mega-cta-arrow { font-size: 1.1rem; color: var(--c-gold); }

/* Overlay méga */
.mega-overlay {
  position: fixed; inset: 0; z-index: 799;
  background: rgba(0,0,0,.5); backdrop-filter: blur(2px);
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .3s, visibility .3s;
}
.mega-overlay.is-visible { opacity: 1; visibility: visible; pointer-events: auto; }

/* -------------------------------------------------------
   7. DRAWER MOBILE
   ------------------------------------------------------- */
.mobile-drawer {
  position: fixed; top: 0; left: 0; bottom: 0;
  width: var(--drawer-w); max-width: 85vw;
  background: var(--c-dark);
  z-index: 1000;
  transform: translateX(-100%);
  transition: transform .38s var(--ease-out);
  display: flex; flex-direction: column;
  overflow-y: auto; overflow-x: hidden;
}
.mobile-drawer.is-open { transform: translateX(0); }

.drawer-backdrop {
  position: fixed; inset: 0; z-index: 999;
  background: rgba(0,0,0,.65);
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .35s, visibility .35s;
}
.drawer-backdrop.is-visible { opacity: 1; visibility: visible; pointer-events: auto; }

/* Drawer header */
.drawer-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid var(--c-dark-3);
  flex-shrink: 0;
}
.drawer-logo {
  display: flex; flex-direction: column; gap: 3px; text-decoration: none;
}
.drawer-logo img {
  height: 30px; width: auto;
  filter: brightness(0) saturate(100%) invert(72%) sepia(43%)
          saturate(512%) hue-rotate(5deg) brightness(92%) contrast(90%);
}
.drawer-slogan {
  font-family: var(--font-cond); font-size: 0.55rem;
  letter-spacing: 0.2em; text-transform: uppercase; color: var(--c-gold);
}
.drawer-close {
  width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center;
  color: var(--c-grey-3); background: none; border: none; cursor: pointer;
  transition: color .2s;
}
.drawer-close:hover { color: var(--c-gold); }

/* Drawer nav */
.drawer-nav { flex: 1; padding: 0.5rem 0; }
.drawer-list { list-style: none; margin: 0; padding: 0; }
.drawer-item { border-bottom: 1px solid rgba(255,255,255,.05); }

.drawer-link {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; padding: 1rem 1.5rem;
  font-family: var(--font-cond); font-size: 0.9rem;
  font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--c-grey-4); background: none; border: none; cursor: pointer;
  text-align: left; transition: color .2s, background .2s;
}
.drawer-link:hover,
.drawer-link.is-open { color: var(--c-gold); background: rgba(201,168,76,.04); }

.drawer-chevron { transition: transform .25s; flex-shrink: 0; }
.drawer-link.is-open .drawer-chevron { transform: rotate(180deg); }

/* Accordion sub */
.drawer-sub {
  display: none; padding: 0 0 0.75rem;
  background: rgba(0,0,0,.2);
}
.drawer-sub.is-open { display: block; }
.drawer-sub-cat {
  padding: 0.75rem 1.5rem 0.3rem;
  font-family: var(--font-cond); font-size: 0.6rem;
  font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
}
.drawer-sub-link {
  display: block; padding: 0.55rem 1.5rem 0.55rem 2rem;
  font-size: 0.85rem; color: var(--c-grey-3);
  border-left: 2px solid transparent;
  transition: color .2s, border-color .2s, padding-left .2s;
}
.drawer-sub-link:hover {
  color: var(--c-white); border-left-color: var(--c-gold); padding-left: 2.4rem;
}

/* Drawer footer */
.drawer-footer {
  padding: 1.25rem 1.5rem;
  border-top: 1px solid var(--c-dark-3); flex-shrink: 0;
}
.drawer-lang {
  display: flex; align-items: center; gap: 0.6rem;
  font-family: var(--font-cond); font-size: 0.75rem;
  font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--c-gold);
}

/* -------------------------------------------------------
   8. RESPONSIVE
   ------------------------------------------------------- */

/* Desktop large : logo à gauche, nav à droite */
@media (min-width: 1025px) {
  .nav-bar-inner {
    grid-template-columns: auto 1fr auto;
  }
  .nav-hamburger { display: none !important; }
  .nav-logo-wrap  { grid-column: 1; flex-direction: row; gap: 0.75rem; align-items: center; }
  .nav-logo-img   { height: 100px; }
  .nav-slogan     { font-size: 0.6rem; }
  .nav-desktop    { grid-column: 2; justify-content: center; }
  .nav-lang       { grid-column: 3; }
}

/* Tablette / Mobile : hamburger gauche, logo centre, langue droite */
@media (max-width: 1024px) {
  .nav-bar-inner {
    grid-template-columns: 68px 1fr 68px;
  }
  .nav-hamburger  { display: flex; grid-column: 1; }
  .nav-logo-wrap  { grid-column: 2; align-items: center; }
  .nav-desktop    { display: none; }
  .nav-lang       { grid-column: 3; font-size: 0.68rem; padding: 0.25rem 0.45rem; }
  .mega-panel     { display: none; }
  .mega-overlay   { display: none; }
}

@media (max-width: 480px) {
  .nav-logo-img { height: 48px; }
  .nav-slogan   { font-size: 0.52rem; }
}
