/* Menu mobile déroulant + bouton « Retour en haut » — partagé par toutes les pages publiques.
   Chargé en dernier : surcharge le CSS de menu dupliqué inline dans chaque page.
   Pilotage : js/site-ui.js (pose --bm-nav-h = hauteur réelle de la barre). */

:root { --bm-nav-h: 56px; }
html { scroll-padding-top: calc(var(--bm-nav-h) + 8px); }

/* ---- Panneau déroulant : collé sous la barre sticky, visible où qu'on soit dans la page ---- */
.nav-mobile-c,
.mobile-c {
  display: block !important;
  position: fixed;
  top: var(--bm-nav-h);
  left: 0;
  right: 0;
  z-index: 999;
  max-height: calc(100vh - var(--bm-nav-h));
  max-height: calc(100dvh - var(--bm-nav-h));
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 6px 0 16px;
  background: var(--c-cream, #FBF5E9);
  border-bottom: 1.5px solid var(--c-border-nav, var(--c-border, #d9d2c3));
  box-shadow: 0 14px 28px rgba(26, 22, 18, 0.16);
  visibility: hidden;
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0s linear 0.18s;
}
.nav-mobile-c.open,
.mobile-c.open {
  visibility: visible;
  opacity: 1;
  transform: none;
  pointer-events: auto;
  transition-delay: 0s;
}
.nav-mobile-c a,
.mobile-c a {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 10px 24px !important;
  border-bottom: 1px solid rgba(26, 22, 18, 0.08);
}
/* Dernier lien (Contact) = bouton d'action pleine largeur */
.nav-mobile-c a:last-child,
.mobile-c a:last-child {
  justify-content: center;
  margin: 14px 24px 4px;
  padding: 12px 20px !important;
  border: 0;
  border-radius: 999px;
  background: #1A5FE0;
  color: #fff !important;
}

/* Barre du blog : la liste de liens devient le panneau déroulant */
@media (max-width: 960px) {
  .nav-links.open, .nav-menu.open {
    display: flex !important;
    position: absolute; top: 100%; left: 0; right: 0;
    flex-direction: column; align-items: stretch; gap: 0.4rem;
    padding: 1rem 1.5rem;
    background: var(--color-bg, #fff);
    border-bottom: 1px solid var(--color-border, #ddd);
    max-height: calc(100vh - var(--bm-nav-h));
    max-height: calc(100dvh - var(--bm-nav-h));
    overflow-y: auto;
    overscroll-behavior: contain;
    box-shadow: 0 14px 28px rgba(26, 22, 18, 0.16);
  }
  /* Sous-menus en accordéon (fermés par défaut, ouverts au tap) */
  .nav-links .dropdown, .nav-links .nav-dropdown, .nav-menu .nav-dropdown { display: none !important; position: static; box-shadow: none; border: 0; }
  li.dd-open > .dropdown, li.dd-open > .nav-dropdown { display: block !important; }
  .nav .nav-links > li > button { min-height: 44px; width: 100%; justify-content: space-between; }
  .nav .nav-links li.dd-open > button .ph-caret-down { transform: rotate(180deg); }
}

/* ---- Pas de scroll horizontal : le contenu large défile dans son bloc, il n'élargit plus la page ---- */
@media (max-width: 1024px) {
  .article-layout, .article-wrap { grid-template-columns: minmax(0, 1fr); }
  article, .article-main, .article-content, .article { min-width: 0; max-width: 100%; }
  pre, .schema-ascii { max-width: 100%; overflow-x: auto; }
  table { display: block; max-width: 100%; overflow-x: auto; }
  .contact__inner { grid-template-columns: minmax(0, 1fr); }
  .contact__content, .contact__inner > * { min-width: 0; }
}

/* Cible tactile du burger */
.nav-c__burger, .burger { min-width: 44px; min-height: 44px; }

/* ---- Bouton « Retour en haut » ---- */
.bm-btt {
  position: fixed;
  right: 16px;
  bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  z-index: 900;
  width: 48px;
  height: 48px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 50%;
  background: #1A5FE0;
  color: #fff;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(26, 95, 224, 0.4);
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity 0.2s ease, transform 0.2s ease, bottom 0.2s ease, visibility 0s linear 0.2s;
  -webkit-tap-highlight-color: transparent;
}
.bm-btt.is-visible {
  opacity: 1;
  visibility: visible;
  transform: none;
  transition-delay: 0s;
}
.bm-btt:hover { background: #1248c0; }
.bm-btt:focus-visible { outline: 3px solid #C5F432; outline-offset: 2px; }
.bm-btt svg { width: 22px; height: 22px; display: block; }

@media (prefers-reduced-motion: reduce) {
  .nav-mobile-c, .mobile-c, .bm-btt { transition: none; }
}

/* ---- Bloc CTA des articles : texte clair garanti sur fond vert foncé ----
   (css/components.css ne peint plus #contact sur les <div> : section#contact seulement.
   3 articles avaient un titre vert foncé, lisible uniquement parce que le fond était crème.) */
.cta-block h2, .cta-block h3 { color: #f0efe8; }
.cta-block p { color: #d0cec8; }
