/* Menu principal : sous-menus par intention (voir outils/nav_menu.py, js/nav.js). Chargé depuis le bloc du menu, avec numéro de version. */
.nav-links .nav-group { position: relative; }
.nav-group-toggle { background: none; border: 0; cursor: pointer; font: inherit; font-family: inherit; font-weight: 500; font-size: 0.84em; letter-spacing: 0; color: var(--text-dark, #2c3e50); padding: 6px 0; display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; transition: color 0.3s ease; }
.nav-group-toggle:hover, .nav-group.open .nav-group-toggle, .nav-group.is-active .nav-group-toggle { color: var(--pepite-gold); }
.nav-caret { width: 5px; height: 5px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; opacity: 0.7; transform: rotate(45deg) translateY(-2px); transition: transform 0.2s ease; }
.nav-group.open .nav-caret { transform: rotate(225deg) translateY(-1px); }
/* panneau : filet fin, liseré or, ombre diffuse, angles quasi droits */
.nav-sub { list-style: none; margin: 0; position: absolute; top: calc(100% + 14px); left: -22px; min-width: 250px; background: #fff; border: 1px solid rgba(20,41,74,0.09); border-top: 2px solid var(--pepite-gold); border-radius: 2px; box-shadow: 0 22px 44px -14px rgba(20,41,74,0.20); padding: 6px 0; opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s; z-index: 10000; }
.nav-sub::before { content: ''; position: absolute; left: 0; right: 0; top: -16px; height: 16px; }
.nav-group.open > .nav-sub { opacity: 1; visibility: visible; transform: none; }
@media (hover: hover) { .nav-group:hover > .nav-sub, .nav-group:focus-within > .nav-sub { opacity: 1; visibility: visible; transform: none; } }
.nav-sub a { position: relative; display: block; padding: 11px 28px 11px 26px; border-radius: 0; font-size: 0.85em; font-weight: 400; letter-spacing: 0.01em; color: rgba(20,41,74,0.82); white-space: nowrap; transition: color 0.2s ease, background-color 0.2s ease; }
.nav-sub a::after { display: none; }
.nav-sub a::before { content: ''; position: absolute; left: 0; top: 50%; width: 2px; height: 0; background: var(--pepite-gold); transform: translateY(-50%); transition: height 0.2s ease; }
.nav-sub a:hover { background: rgba(171,151,101,0.07); color: var(--ink, #14294a); }
.nav-sub a:hover::before, .nav-sub a[aria-current="page"]::before { height: 16px; }
.nav-links a[aria-current="page"] { color: var(--pepite-gold); }
.nav-sub a[aria-current="page"] { font-weight: 500; }
.nav-links > li:nth-last-child(2).nav-group > .nav-sub { left: auto; right: -22px; }
@media (max-width: 900px) {
  .nav-links { overflow-y: auto; }
  .nav-group-toggle { font-weight: 700; font-size: 1em; pointer-events: none; padding: 0; }
  .nav-caret { display: none; }
  .nav-sub { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; background: transparent; padding: 6px 0 0 14px; min-width: 0; }
  .nav-sub::before { display: none; }
  .nav-sub a { padding: 7px 0; font-size: 0.95em; white-space: normal; color: inherit; }
  .nav-sub a::before { display: none; }
  .nav-sub a:hover { background: transparent; }
}

/* ===== Logo (version recadrée : le SVG d'origine contient ~50 % de blanc) ===== */
.main-nav .nav-container { padding-top: 10px; padding-bottom: 10px; }
.main-nav .nav-logo img { height: clamp(30px, 3.3vw, 42px); width: auto; display: block; }
.nav-home { display: none; }

/* ===== Mobile : panneau calé sur la hauteur réellement visible (iOS : 100vh dépasse l'écran), CTA toujours visible ===== */
@media (max-width: 900px) {
  .main-nav .nav-logo img { height: 36px; }
  .main-nav .nav-links {
    top: var(--nav-h, 58px); bottom: 0; height: auto; width: min(340px, 90vw);
    padding: 8px 22px 0; gap: 0; align-items: stretch;
    overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
  }
  .main-nav .nav-links > li { flex: none; }
  .main-nav .nav-links { line-height: 1.3; }
  .main-nav .nav-links > li + li { margin-top: 10px; }
  .nav-home { display: block; }
  .nav-links > li > a:not(.nav-cta) { display: inline-block; padding: 2px 0; font-size: 1em; font-weight: 700; }
  .nav-sub { padding: 4px 0 0 14px; }
  .nav-sub li + li { margin-top: 0; }
  .nav-sub a { padding: 5px 0; font-size: 0.93em; }
  /* CTA épinglé en bas du panneau */
  .main-nav .nav-links > li:last-child { position: sticky; bottom: 0; margin-top: auto; padding: 12px 0 calc(14px + env(safe-area-inset-bottom)); background: #fff; box-shadow: 0 -10px 12px -10px rgba(20,41,74,0.12); }
  .main-nav .nav-links > li:last-child .nav-cta { display: block; text-align: center; padding: 13px 20px; }
  body.nav-open { overflow: hidden; }
}
