/* ============================================================
   Belyo | Navigation commune : en-tête, menus, menu mobile, pied de page
   Un seul menu, le même sur toutes les pages publiques.
   ============================================================ */

.site-header .container { gap: 16px; }

/* --- Menu principal (ordinateur) --- */
.mainnav { display: flex; align-items: center; gap: 4px; margin-right: auto; margin-left: 28px; }
.mainnav > a,
.nav-dd-btn {
  font: inherit;
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--ink-soft);
  text-decoration: none;
  background: none;
  border: 0;
  padding: 8px 12px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}
.mainnav > a:hover,
.nav-dd-btn:hover,
.nav-dd.open .nav-dd-btn { color: var(--ink); background: rgba(27, 36, 48, 0.05); }
.mainnav > a[aria-current="page"] { color: var(--ink); }
.nav-dd-btn svg { width: 10px; height: 10px; transition: transform .15s; }
.nav-dd.open .nav-dd-btn svg { transform: rotate(180deg); }

.nav-dd { position: relative; }
.nav-dd-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  min-width: 300px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-levee);
  padding: 8px;
  display: none;
  z-index: 60;
}
.nav-dd.open .nav-dd-menu { display: block; }
.nav-dd-menu a {
  display: block;
  padding: 10px 12px;
  border-radius: var(--radius-md);
  text-decoration: none;
  color: var(--ink);
  font-size: 0.93rem;
  font-weight: 600;
  line-height: 1.3;
}
.nav-dd-menu a span { display: block; font-weight: 400; font-size: 0.83rem; color: var(--ink-soft); margin-top: 2px; }
.nav-dd-menu a:hover,
.nav-dd-menu a[aria-current="page"] { background: var(--accent-soft); }

/* --- Partie droite --- */
.nav-right { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.nav-right .nav-court { display: none; }
.lang-btn {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 4px 9px;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .04em;
  line-height: 1.2;
  color: var(--ink-soft);
  text-decoration: none;
}
.lang-btn:hover { color: var(--ink); border-color: var(--ink-soft); }

.burger {
  display: none;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--panel);
  color: var(--ink);
  cursor: pointer;
  padding: 0;
}
.burger svg { width: 20px; height: 20px; }
.burger .ic-close { display: none; }
.burger[aria-expanded="true"] .ic-open { display: none; }
.burger[aria-expanded="true"] .ic-close { display: block; }

/* --- Menu mobile --- */
.mnav {
  border-top: 1px solid var(--line);
  background: var(--bg);
  max-height: calc(100vh - 68px);
  overflow-y: auto;
}
.mnav[hidden] { display: none; }
.mnav-inner { padding: 12px 24px 24px; display: grid; gap: 18px; }
.mnav-group h3 {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--ink-soft);
  font-weight: 600;
  margin: 8px 0 6px;
}
.mnav a {
  display: block;
  padding: 11px 0;
  border-bottom: 1px solid var(--line-soft);
  color: var(--ink);
  text-decoration: none;
  font-weight: 500;
  font-size: 1rem;
}
.mnav a[aria-current="page"] { color: var(--accent); }
.mnav .mnav-cta { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 4px; }
.mnav .mnav-cta a { border: 0; padding: 0; }
.mnav .mnav-cta .btn { padding: 10px 16px; }

@media (max-width: 1100px) {
  .mainnav { display: none; }
  .burger { display: inline-flex; }
  .nav-right .btn-secondary {
    border: none;
    background: none;
    padding: 8px 2px;
    color: var(--ink-soft);
    text-decoration: underline;
    text-underline-offset: 3px;
  }
}
@media (max-width: 760px) {
  .nav-right .nav-long { display: none; }
  .nav-right .nav-court { display: inline; }
}
@media (max-width: 480px) {
  .site-header .container { gap: 8px; }
  .nav-right { gap: 8px; }
  .nav-right .btn-secondary { display: none; }
}
@media (min-width: 1101px) {
  .mnav { display: none !important; }
}

/* --- Pied de page --- */
.footer-cols {
  display: grid;
  grid-template-columns: 1.3fr repeat(3, 1fr);
  gap: 28px;
  align-items: start;
  width: 100%;
}
.site-footer .footer-cols { display: grid; }
.footer-cols h4 {
  font-family: var(--font-display);
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--ink);
  margin: 0 0 10px;
}
.footer-cols ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 7px; }
.footer-cols a { text-decoration: none; }
.footer-cols a:hover { color: var(--ink); text-decoration: underline; }
.footer-cols .footer-about span { display: block; margin-top: 8px; line-height: 1.5; }

@media (max-width: 860px) {
  .footer-cols { grid-template-columns: 1fr 1fr; }
  .footer-cols .footer-about { grid-column: 1 / -1; }
}
@media (max-width: 420px) {
  .footer-cols { grid-template-columns: 1fr; }
}

@media print {
  .burger, .mnav, .mainnav, .nav-right { display: none !important; }
}

/* Le menu mobile et les mentions du pied de page réutilisent .container :
   on neutralise ici la mise en ligne flexible de l'en-tête et du pied. */
.site-header .mnav .mnav-inner { display: grid; height: auto; align-items: stretch; justify-content: stretch; }
.site-footer .footer-refs { display: block; }
.footer-cols .footer-about .trust-location { display: flex; }
