/* ==========================================================================
   NAVIGATION IMPÉRIALE — al-quran.fr (v2, 23/10/2026)
   Barre #gr-langbar et pied de page .footer-imperial. Chargée juste après
   charte.css : n'emploie que les jetons de la charte (--ch-*), ses polices
   (Cinzel, Lora, Amiri) et ses ornements (zellige de Fès, rosace à 16).
   Icônes : SVG inline (inc/header.php, nv_icon), trait 1,5, currentColor.

   Bureau (>= 1024 px) : deux rangs
     ┌ couronne : marque · menus (Lecture, Bibliothèque, À propos) · langue ┐
     └ rail     : sourate · recherche · texte arabe · taille du texte       ┘
   Mobile (<= 1023 px) : couronne seule (burger · marque · langue) ; le reste
   (#gr-collapsible) devient un tiroir latéral, côté début de ligne (RTL ok).
   ========================================================================== */

:root {
  --nv-h: 108px;                 /* hauteur réelle publiée par footer.php */
  --nv-crown: 58px;
  --nv-ease: cubic-bezier(.2, .7, .2, 1);
  --nv-line: color-mix(in srgb, var(--ch-or) 42%, transparent);
  --nv-line-soft: color-mix(in srgb, var(--ch-or) 22%, transparent);
  --nv-field-bg: color-mix(in srgb, var(--ch-encre) 38%, var(--ch-carmin-fonce));
  --nv-shadow: 0 14px 34px color-mix(in srgb, var(--ch-encre) 34%, transparent);
}
html { scroll-padding-top: calc(var(--nv-h) + 24px); }
html.nv-lock { overflow: hidden; }

/* En-têtes de tableaux collants : sous la barre réelle (et sa frise). */
.table tr.info td, .table tr.info th, .table thead tr td, .table thead tr th { top: calc(var(--nv-h) + 10px); }

/* Accessibilité : lien d'évitement, focus visible, texte masqué. */
.nv-skip {
  position: fixed; z-index: 2000; top: 8px; inset-inline-start: 8px;
  padding: 10px 16px; background: var(--ch-ivoire); color: var(--ch-carmin);
  border: 1px solid var(--ch-or); font-family: var(--ch-titre); font-size: 13px; letter-spacing: .06em;
  transform: translateY(-160%); transition: transform .15s;
}
.nv-skip:focus { transform: none; }
.nv-bar :focus-visible, .nv-foot :focus-visible, .gr-top-link:focus-visible {
  outline: 2px solid var(--ch-or-clair); outline-offset: 2px;
}
.nv-dd-menu :focus-visible, .nv-panel .nv-item:focus-visible { outline-color: var(--ch-carmin); outline-offset: -2px; }

/* ---------------------------------------------------------------------------
   Barre
--------------------------------------------------------------------------- */
.gr-langbar.nv-bar {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-areas: "brand nav lang" "rail rail rail";
  align-items: center;
  gap: 0; padding: 0;
  font-family: var(--ch-titre); font-size: 14px; color: var(--ch-or-clair);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--ch-or-clair) 7%, transparent), transparent 40%),
    linear-gradient(180deg, var(--ch-carmin) 0%, color-mix(in srgb, var(--ch-carmin) 55%, var(--ch-carmin-fonce)) 100%);
  border-bottom: 1px solid var(--ch-or);
  box-shadow: 0 1px 0 var(--ch-carmin-fonce), var(--nv-shadow);
  position: sticky; top: 0; z-index: 1000;
}
/* La frise de zellige suspendue sous la barre (héritée de la charte, affinée). */
.gr-langbar.nv-bar::after { bottom: -12px; height: 11px; background-size: auto 11px; opacity: 1; }
.nv-bar a { text-decoration: none; }
.nv-bar .nv-ic { width: 20px; height: 20px; flex: none; }
.nv-bar [hidden] { display: none !important; }

/* Boutons-icônes (burger, fermer, zoom) */
.nv-ibtn {
  appearance: none; -webkit-appearance: none; margin: 0;
  display: inline-grid; place-items: center;
  width: 32px; height: 32px; padding: 0;
  background: transparent; color: var(--ch-or-clair);
  border: 1px solid transparent; border-radius: 0; cursor: pointer;
  transition: background-color .15s, border-color .15s, color .15s;
}
.nv-ibtn:hover { background: color-mix(in srgb, var(--ch-or-clair) 12%, transparent); border-color: var(--nv-line); }
.nv-ibtn .nv-ic { width: 18px; height: 18px; }
.nv-burger { display: none; grid-area: burger; }

/* — Marque — */
.nv-brand {
  grid-area: brand; align-self: stretch;
  display: flex; align-items: center; gap: 12px;
  min-height: var(--nv-crown); padding-inline: 24px 26px;
  color: var(--ch-or-clair) !important;
  border-inline-end: 1px solid var(--nv-line-soft);
}
.nv-brand-mark {
  width: 38px; height: 38px; flex: none;
  background: var(--ch-rosace-or) center / contain no-repeat;
  filter: drop-shadow(0 1px 2px color-mix(in srgb, var(--ch-encre) 45%, transparent));
  transition: transform .5s var(--nv-ease);
}
.nv-brand:hover .nv-brand-mark { transform: rotate(22.5deg); }
.nv-brand-txt { display: flex; flex-direction: column; align-items: flex-start; line-height: 1; }
.nv-brand-ar { font-family: var(--ch-arabe); font-weight: 700; font-size: 27px; line-height: 1.05; color: var(--ch-or-clair); }
.nv-brand-lat {
  font-family: var(--ch-titre); font-size: 9.5px; letter-spacing: .3em; text-transform: uppercase;
  color: var(--ch-or); margin-top: 3px;
}
[dir="rtl"] .nv-brand-txt { align-items: flex-end; }

/* — Menus (couronne) — */
#gr-collapsible.nv-panel { display: contents; }
.nv-drawer-head, .nv-scrim { display: none; }
.nv-lbl {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.nv-menus { grid-area: nav; display: flex; align-items: stretch; align-self: stretch; padding-inline: 10px; gap: 2px; }
.nv-dd { position: relative; display: flex; }
.nv-dd-btn {
  appearance: none; -webkit-appearance: none; margin: 0;
  position: relative; display: flex; align-items: center; gap: 9px;
  padding: 0 16px; background: transparent; border: 0; border-radius: 0;
  color: var(--ch-or-clair); font-family: var(--ch-titre); font-size: 14px; letter-spacing: .07em;
  cursor: pointer; white-space: nowrap;
  transition: background-color .15s, color .15s;
}
.nv-dd-btn > .nv-ic:first-child { color: var(--ch-or); }
.nv-dd-btn .nv-chev { width: 14px; height: 14px; opacity: .75; transition: transform .2s var(--nv-ease); }
.nv-dd-btn::after {
  content: ""; position: absolute; inset-inline: 14px; bottom: 0; height: 2px;
  background: linear-gradient(90deg, transparent, var(--ch-or) 18%, var(--ch-or-clair) 50%, var(--ch-or) 82%, transparent);
  transform: scaleX(0); transition: transform .22s var(--nv-ease);
}
.nv-dd-btn:hover { background: color-mix(in srgb, var(--ch-or-clair) 7%, transparent); }
.nv-dd-btn:hover::after, .nv-dd.open > .nv-dd-btn::after { transform: scaleX(1); }
.nv-dd.open > .nv-dd-btn { background: color-mix(in srgb, var(--ch-encre) 22%, transparent); color: var(--ch-ivoire); }
.nv-dd.open > .nv-dd-btn .nv-chev { transform: rotate(180deg); }
.nv-dd:has([aria-current="page"]) > .nv-dd-btn > .nv-ic:first-child { color: var(--ch-or-clair); }
[dir="rtl"] .nv-dd-btn { font-family: var(--ch-arabe); font-size: 18px; letter-spacing: 0; font-weight: 700; }

/* — Panneau déroulant : feuillet ivoire à double filet — */
.nv-dd-menu {
  position: absolute; top: 100%; inset-inline-start: 6px; z-index: 1100;
  min-width: 340px; padding: 16px 10px 10px;
  background: var(--ch-ivoire); color: var(--ch-encre);
  border: 1px solid var(--ch-or); border-top: 3px solid var(--ch-carmin);
  box-shadow: inset 0 0 0 3px var(--ch-ivoire), inset 0 0 0 4px var(--ch-filet), var(--nv-shadow);
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity .16s ease, transform .18s var(--nv-ease), visibility 0s linear .18s;
}
.nv-dd-menu::before {          /* joyau : losange carmin cerclé d'or */
  content: ""; position: absolute; top: -8px; inset-inline-start: 26px; width: 11px; height: 11px;
  background: var(--ch-carmin); border: 1px solid var(--ch-or); transform: rotate(45deg);
}
.nv-dd.open > .nv-dd-menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.nv-dd-wide { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 6px; min-width: 660px; }
.nv-dd-grp + .nv-dd-grp { border-inline-start: 1px solid var(--ch-filet); padding-inline-start: 6px; }

.nv-dd-h {
  display: flex; align-items: center; gap: 8px; margin: 0 10px 8px;
  font-family: var(--ch-titre); font-size: 10.5px; letter-spacing: .24em; text-transform: uppercase;
  color: var(--ch-carmin);
}
.nv-dd-h::before { content: ""; width: 14px; height: 14px; flex: none; background: var(--ch-rosace) center / contain no-repeat; }
.nv-dd-h::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, var(--ch-or), transparent); }
[dir="rtl"] .nv-dd-h { font-family: var(--ch-arabe); font-size: 15px; letter-spacing: 0; font-weight: 700; }
[dir="rtl"] .nv-dd-h::after { background: linear-gradient(270deg, var(--ch-or), transparent); }

.nv-dd-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1px; }
.nv-bar .nv-item {
  display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 13px; align-items: center;
  padding: 8px 10px; color: var(--ch-encre);
  border-inline-start: 2px solid transparent;
  transition: background-color .14s, border-color .14s;
}
.nv-item-ic {
  width: 40px; height: 40px; display: grid; place-items: center;
  color: var(--ch-carmin); background: var(--ch-ivoire);
  border: 1px solid var(--ch-filet);
  box-shadow: inset 0 0 0 2px var(--ch-ivoire), inset 0 0 0 3px color-mix(in srgb, var(--ch-or) 30%, transparent);
  transition: background-color .14s, color .14s, border-color .14s;
}
.nv-item-ic .nv-ic { width: 23px; height: 23px; }
.nv-item-t { display: flex; flex-direction: column; min-width: 0; }
.nv-item-t b {
  font-family: var(--ch-titre); font-weight: 600; font-size: 13.5px; letter-spacing: .04em;
  color: var(--ch-carmin); line-height: 1.25;
}
.nv-item-t small { font-family: var(--ch-texte); font-style: italic; font-size: 12.5px; color: var(--ch-sepia); line-height: 1.35; margin-top: 2px; }
[dir="rtl"] .nv-item-t b { font-family: var(--ch-arabe); font-size: 17px; letter-spacing: 0; font-weight: 700; }
[dir="rtl"] .nv-item-t small { font-family: var(--ch-arabe); font-style: normal; font-size: 14.5px; }
.nv-bar .nv-item:hover, .nv-bar .nv-item:focus-visible { background: var(--ch-parchemin); border-inline-start-color: var(--ch-or); color: var(--ch-encre); }
.nv-item:hover .nv-item-ic, .nv-item:focus-visible .nv-item-ic {
  background: var(--ch-carmin); color: var(--ch-or-clair); border-color: var(--ch-or);
  box-shadow: inset 0 0 0 2px var(--ch-carmin), inset 0 0 0 3px color-mix(in srgb, var(--ch-or-clair) 45%, transparent);
}
.nv-bar .nv-item[aria-current="page"] { background: var(--ch-voile); border-inline-start-color: var(--ch-carmin); }
.nv-item[aria-current="page"] .nv-item-t b::after { content: " ◆"; font-size: .6em; color: var(--ch-or); vertical-align: .25em; }

/* — Langue (couronne, fin de ligne) — */
.nv-lang { grid-area: lang; padding-inline: 14px 22px; display: flex; align-items: center; }
.nv-lang form { margin: 0; }

/* — Champs (sourate, recherche, langue) — */
.nv-field {
  position: relative; display: flex; align-items: center; height: 34px;
  background: var(--nv-field-bg); color: var(--ch-or-clair);
  border: 1px solid var(--nv-line);
  transition: border-color .15s, box-shadow .15s;
}
.nv-field:hover { border-color: color-mix(in srgb, var(--ch-or) 75%, transparent); }
.nv-field:focus-within { border-color: var(--ch-or-clair); box-shadow: 0 0 0 2px color-mix(in srgb, var(--ch-or) 30%, transparent); }
.nv-field > .nv-ic:first-child { width: 17px; height: 17px; margin-inline: 10px 2px; color: var(--ch-or); pointer-events: none; }
.nv-field select, .nv-field input {
  appearance: none; -webkit-appearance: none; margin: 0;
  height: 100%; min-width: 0; border: 0 !important; border-radius: 0 !important; outline: none;
  background: transparent; color: var(--ch-or-clair);
  font-family: var(--ch-texte); font-size: 14px;
}
.nv-field select { padding-inline: 6px 30px; cursor: pointer; }
.nv-field select option { background: var(--ch-carmin-fonce); color: var(--ch-or-clair); }
.nv-field .nv-chev { position: absolute; inset-inline-end: 9px; width: 14px; height: 14px; pointer-events: none; color: var(--ch-or); }
[dir="rtl"] .nv-field select, [dir="rtl"] .nv-field input { font-family: var(--ch-arabe); font-size: 17px; }
.nv-lang select { font-family: var(--ch-titre); font-size: 13px; letter-spacing: .05em; }

/* ---------------------------------------------------------------------------
   Rail d'outils
--------------------------------------------------------------------------- */
.nv-rail {
  grid-area: rail;
  display: flex; align-items: center; gap: 14px;
  padding: 7px 22px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--ch-encre) 30%, var(--ch-carmin-fonce)), var(--ch-carmin-fonce));
  border-top: 1px solid var(--nv-line);
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--ch-encre) 40%, transparent);
}
.nv-sura, .nv-search { margin: 0; display: flex; align-items: center; }
.nv-sura .nv-field { width: 236px; }
.nv-sura select { flex: 1; }
.nv-search { flex: 1 1 auto; max-width: 640px; margin-inline: auto; }
.nv-search-f { flex: 1; }
.nv-search-in { flex: 1 1 auto; padding-inline: 6px 10px; }
.nv-search-in::placeholder { color: color-mix(in srgb, var(--ch-or-clair) 62%, transparent); opacity: 1; font-style: italic; }
[dir="rtl"] .nv-search-in::placeholder { font-style: normal; }
.nv-search-type { position: relative; display: flex; align-items: center; height: 100%; border-inline-start: 1px solid var(--nv-line-soft); }
.nv-search-type select { width: 178px; font-size: 12.5px; color: color-mix(in srgb, var(--ch-or-clair) 88%, transparent); }
.nv-search-go {
  appearance: none; -webkit-appearance: none; margin: 0;
  align-self: stretch; display: grid; place-items: center; width: 44px; padding: 0;
  background: linear-gradient(180deg, var(--ch-or-clair), var(--ch-or)); color: var(--ch-carmin-fonce);
  border: 0; border-inline-start: 1px solid var(--ch-or); border-radius: 0; cursor: pointer;
  transition: filter .15s;
}
.nv-search-go:hover { filter: brightness(1.08); }
.nv-search-go .nv-ic { width: 18px; height: 18px; stroke-width: 1.9; }

/* Bascule « texte arabe » : piste rectangulaire, curseur en losange */
.nv-toggle { display: flex; }
.nv-toggle-label {
  display: flex; align-items: center; gap: 9px; cursor: pointer; user-select: none; white-space: nowrap;
  font-family: var(--ch-titre); font-size: 12px; letter-spacing: .08em; color: var(--ch-or-clair);
}
.nv-toggle-label input {
  appearance: none; -webkit-appearance: none; margin: 0; flex: none;
  position: relative; width: 38px; height: 20px; cursor: pointer;
  background: var(--nv-field-bg); border: 1px solid var(--nv-line); border-radius: 0;
  transition: background-color .18s, border-color .18s;
}
.nv-toggle-label input::before {
  content: ""; position: absolute; top: 4px; inset-inline-start: 4px; width: 10px; height: 10px;
  background: color-mix(in srgb, var(--ch-or-clair) 55%, transparent); transform: rotate(45deg);
  transition: inset-inline-start .2s var(--nv-ease), background-color .18s;
}
.nv-toggle-label input:checked { background: var(--ch-carmin); border-color: var(--ch-or); }
.nv-toggle-label input:checked::before { inset-inline-start: 22px; background: var(--ch-or-clair); }
.nv-toggle-glyph { font-family: var(--ch-arabe); font-size: 19px; line-height: 1; color: var(--ch-or); margin-top: -3px; }

/* Taille du texte (zoom) */
.nv-zoom { display: flex; align-items: center; gap: 2px; padding: 0 2px; height: 34px; border: 1px solid var(--nv-line-soft); }
.nv-zoom-val { min-width: 46px; text-align: center; font-family: var(--ch-titre); font-size: 12px; letter-spacing: .04em; color: var(--ch-or-clair); font-variant-numeric: tabular-nums; }

/* Bureau intermédiaire : panneau Bibliothèque sur une colonne, champs resserrés */
@media (min-width: 1024px) and (max-width: 1279px) {
  .nv-dd-wide { display: block; min-width: 340px; }
  .nv-dd-grp + .nv-dd-grp { border: 0; padding: 0; margin-top: 10px; }
  .nv-brand { padding-inline: 18px 18px; }
  .nv-dd-btn { padding: 0 12px; }
  .nv-sura .nv-field { width: 200px; }
  .nv-search-type select { width: 140px; }
}

/* ---------------------------------------------------------------------------
   Mobile et tablette : tiroir
--------------------------------------------------------------------------- */
@media (max-width: 1023px) {
  :root { --nv-h: 60px; }
  .gr-langbar.nv-bar {
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas: "burger brand lang";
    min-height: 60px;
  }
  .nv-burger { display: inline-grid; width: 44px; height: 44px; margin-inline-start: 8px; border-color: var(--nv-line); }
  .nv-burger .nv-ic { width: 22px; height: 22px; }
  .nv-brand { min-height: 60px; padding-inline: 12px 8px; border: 0; gap: 10px; }
  .nv-brand-mark { width: 32px; height: 32px; }
  .nv-brand-ar { font-size: 24px; }
  .nv-brand-lat { font-size: 8.5px; letter-spacing: .26em; }
  .nv-lang { padding-inline: 4px 10px; }
  .nv-lang .nv-field { height: 40px; }
  .nv-lang select { font-size: 12.5px; max-width: 118px; }

  /* Voile */
  .nv-scrim {
    display: block; position: fixed; inset: 0; z-index: 1150;
    background: color-mix(in srgb, var(--ch-encre) 58%, transparent);
    opacity: 0; visibility: hidden; transition: opacity .22s, visibility 0s linear .22s;
  }
  .nv-bar.gr-mobile-open .nv-scrim { opacity: 1; visibility: visible; transition-delay: 0s; }

  /* Tiroir */
  #gr-collapsible.nv-panel {
    display: flex; flex-direction: column;
    position: fixed; z-index: 1200; top: 0; bottom: 0; inset-inline-start: 0;
    width: min(390px, 90vw); overflow-y: auto; overscroll-behavior: contain;
    background: var(--ch-ivoire) var(--ch-zellige-pale) 0 0 / 260px auto;
    background-blend-mode: soft-light;
    border-inline-end: 1px solid var(--ch-or);
    box-shadow: var(--nv-shadow);
    color: var(--ch-encre); padding-bottom: 28px;
    transform: translateX(-104%); visibility: hidden;
    transition: transform .28s var(--nv-ease), visibility 0s linear .28s;
  }
  .nv-bar[dir="rtl"] #gr-collapsible.nv-panel { transform: translateX(104%); }
  .nv-bar.gr-mobile-open #gr-collapsible.nv-panel { transform: none; visibility: visible; transition-delay: 0s; }

  .nv-drawer-head {
    order: 0; position: sticky; top: 0; z-index: 2;
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    min-height: 60px; padding-inline: 16px 8px; margin-bottom: 14px;
    background: linear-gradient(180deg, var(--ch-carmin), var(--ch-carmin-fonce));
    border-bottom: 1px solid var(--ch-or);
  }
  .nv-drawer-head::after {
    content: ""; position: absolute; inset-inline: 0; bottom: -10px; height: 9px;
    background: var(--ch-frise) repeat-x center / auto 9px; border-bottom: 1px solid var(--ch-or);
  }
  .nv-drawer-title {
    display: flex; align-items: center; gap: 10px;
    font-family: var(--ch-titre); font-size: 13px; letter-spacing: .26em; text-transform: uppercase; color: var(--ch-or-clair);
  }
  [dir="rtl"] .nv-drawer-title { font-family: var(--ch-arabe); font-size: 19px; letter-spacing: 0; font-weight: 700; }
  .nv-drawer-title .nv-brand-mark { width: 28px; height: 28px; }
  .nv-close { width: 44px; height: 44px; }
  .nv-close .nv-ic { width: 22px; height: 22px; }

  /* Rail éclaté dans le tiroir : sourate, recherche, puis menus, puis réglages */
  .nv-rail { display: contents; }
  .nv-sura, .nv-search { order: 1; display: block; margin: 12px 16px 0; max-width: none; }
  .nv-search { order: 2; flex: none; }
  .nv-menus { order: 3; }
  .nv-toggle { order: 4; }
  .nv-zoom { order: 5; }

  .nv-lbl {
    position: static; width: auto; height: auto; margin: 0 0 6px; clip: auto; overflow: visible;
    display: flex; align-items: center; gap: 8px;
    font-family: var(--ch-titre); font-size: 10.5px; letter-spacing: .22em; text-transform: uppercase; color: var(--ch-carmin);
  }
  .nv-lbl::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, var(--ch-or), transparent); }
  [dir="rtl"] .nv-lbl { font-family: var(--ch-arabe); font-size: 15px; letter-spacing: 0; font-weight: 700; }
  [dir="rtl"] .nv-lbl::after { background: linear-gradient(270deg, var(--ch-or), transparent); }

  .nv-panel .nv-field {
    height: 46px; background: var(--ch-ivoire); color: var(--ch-encre);
    border-color: var(--ch-or);
    box-shadow: inset 0 0 0 2px var(--ch-ivoire), inset 0 0 0 3px var(--ch-filet);
  }
  .nv-panel .nv-field:focus-within { border-color: var(--ch-carmin); box-shadow: inset 0 0 0 2px var(--ch-ivoire), inset 0 0 0 3px var(--ch-filet), 0 0 0 2px color-mix(in srgb, var(--ch-carmin) 25%, transparent); }
  .nv-panel .nv-field > .nv-ic:first-child, .nv-panel .nv-field .nv-chev { color: var(--ch-carmin); }
  .nv-panel .nv-field select, .nv-panel .nv-field input { color: var(--ch-encre); font-size: 16px; }
  .nv-panel .nv-field select option { background: var(--ch-ivoire); color: var(--ch-encre); }
  .nv-sura .nv-field { width: auto; }
  .nv-panel .nv-search-in::placeholder { color: var(--ch-sepia); }
  .nv-panel .nv-search-f { flex-wrap: wrap; height: auto; }
  .nv-panel .nv-search-in { height: 46px; flex: 1 1 0; }
  .nv-panel .nv-search-go { order: 2; width: 50px; height: 46px; align-self: auto; }
  .nv-panel .nv-search-type { order: 3; flex: 1 0 100%; height: 42px; border-inline-start: 0; border-top: 1px solid var(--ch-filet); }
  .nv-panel .nv-search-type select { width: 100%; padding-inline-start: 12px; color: var(--ch-sepia); font-size: 15px; }

  .nv-menus { display: block; margin: 20px 16px 0; padding: 0; border-top: 1px solid var(--ch-filet); }
  .nv-dd { display: block; border-bottom: 1px solid var(--ch-filet); }
  .nv-dd-btn {
    width: 100%; min-height: 54px; padding: 0 8px; gap: 12px;
    color: var(--ch-carmin); font-size: 14px; letter-spacing: .1em; text-transform: uppercase;
  }
  [dir="rtl"] .nv-dd-btn { font-size: 19px; text-transform: none; }
  .nv-dd-btn > .nv-ic:first-child { color: var(--ch-carmin); width: 22px; height: 22px; }
  .nv-dd-btn .nv-chev { margin-inline-start: auto; color: var(--ch-or); opacity: 1; }
  .nv-dd-btn::after { display: none; }
  .nv-dd-btn:hover, .nv-dd.open > .nv-dd-btn { background: transparent; color: var(--ch-carmin-fonce); }
  .nv-dd:has([aria-current="page"]) > .nv-dd-btn > .nv-ic:first-child { color: var(--ch-carmin); }

  .nv-dd-menu, .nv-dd-wide {
    position: static; display: none; min-width: 0; padding: 0 0 12px;
    background: transparent; border: 0; box-shadow: none;
    opacity: 1; visibility: visible; transform: none; transition: none;
  }
  .nv-dd-menu::before { display: none; }
  .nv-dd.open > .nv-dd-menu { display: block; }
  .nv-dd-grp + .nv-dd-grp { border: 0; padding: 0; margin-top: 8px; }
  .nv-dd-h { margin: 4px 4px 6px; }
  .nv-dd-menu:not(.nv-dd-wide) > .nv-dd-h { display: none; }   /* redondant avec le bouton */
  .nv-bar .nv-item { min-height: 52px; padding: 6px 8px; }

  .nv-toggle { margin: 18px 16px 0; }
  .nv-toggle-label { width: 100%; min-height: 46px; color: var(--ch-carmin); font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; }
  .nv-toggle-label input { background: var(--ch-parchemin); border-color: var(--ch-or); }
  .nv-toggle-label input::before { background: var(--ch-or); }
  .nv-toggle-label input:checked::before { background: var(--ch-or-clair); }
  .nv-toggle-glyph { color: var(--ch-carmin); }

  .nv-zoom { margin: 14px 16px 0; align-self: flex-start; height: 44px; border-color: var(--ch-or); }
  .nv-zoom .nv-ibtn { width: 42px; height: 42px; color: var(--ch-carmin); }
  .nv-zoom .nv-ibtn:hover { background: var(--ch-parchemin); }
  .nv-zoom-val { color: var(--ch-encre); }
}
/* Zoom masqué en mobile (le script l'ignore sous 900 px) */
@media (max-width: 900px) { .nv-zoom { display: none !important; } }
@media (max-width: 359px) {
  .nv-brand-lat { display: none; }
  .nv-lang select { max-width: 96px; }
}

/* ---------------------------------------------------------------------------
   Bouton « haut de page »
--------------------------------------------------------------------------- */
.gr-top-link {
  display: grid; place-items: center; padding: 0;
  width: 44px; height: 44px; left: 20px; bottom: 22px; z-index: 900;
  background: var(--ch-carmin); color: var(--ch-or-clair);
  border: 1px solid var(--ch-or); border-radius: 0;
  box-shadow: inset 0 0 0 3px var(--ch-carmin), inset 0 0 0 4px color-mix(in srgb, var(--ch-or-clair) 45%, transparent),
              0 6px 16px color-mix(in srgb, var(--ch-encre) 35%, transparent);
  transform: translateY(8px);
  transition: opacity .2s, transform .2s var(--nv-ease), background-color .15s;
}
.gr-top-link .nv-ic { width: 22px; height: 22px; }
.gr-top-link.visible { opacity: 1; transform: none; }
.gr-top-link:hover { background: var(--ch-carmin-fonce); }

/* ---------------------------------------------------------------------------
   Pied de page
--------------------------------------------------------------------------- */
.footer-imperial.nv-foot {
  position: relative; overflow: hidden;
  max-width: none !important; margin: var(--ch-7) 0 0; padding: 0;
  text-align: start; color: var(--ch-or-clair);
  background: linear-gradient(180deg, var(--ch-carmin) 0%, var(--ch-carmin-fonce) 62%);
  border-top: 1px solid var(--ch-or);
}
.nv-foot::before {             /* grande rosace en filigrane */
  content: ""; position: absolute; width: 460px; height: 460px;
  inset-inline-end: -140px; bottom: -170px;
  background: var(--ch-rosace-or) center / contain no-repeat;
  opacity: .07; pointer-events: none;
}
.nv-foot-frise {
  height: 34px; background: var(--ch-frise) repeat-x center / auto 34px;
  border-bottom: 2px solid var(--ch-or);
  box-shadow: 0 3px 0 var(--ch-carmin-fonce), 0 4px 0 var(--nv-line);
}
.nv-foot-inner {
  position: relative; max-width: 1180px; margin: 0 auto;
  display: grid; grid-template-columns: minmax(220px, 1fr) minmax(0, 2.6fr); gap: 56px;
  padding: 48px 32px 34px;
}
.nv-foot-brand { display: flex; flex-direction: column; align-items: center; text-align: center; padding-inline-end: 40px; border-inline-end: 1px solid var(--nv-line-soft); }
.nv-foot-seal { width: 64px; height: 64px; background: var(--ch-rosace-or) center / contain no-repeat; filter: drop-shadow(0 2px 4px color-mix(in srgb, var(--ch-encre) 45%, transparent)); }
.nv-foot-title { margin: 10px 0 0; font-family: var(--ch-arabe); font-weight: 700; font-size: 34px; line-height: 1.25; color: var(--ch-or-clair); }
.nv-foot-url { margin: 2px 0 12px; font-family: var(--ch-titre); font-size: 10.5px; letter-spacing: .34em; text-transform: uppercase; color: var(--ch-or); }
.nv-foot-tag { margin: 0; max-width: 260px; font-family: var(--ch-texte); font-style: italic; font-size: 14px; line-height: 1.6; color: color-mix(in srgb, var(--ch-or-clair) 86%, transparent); }
[dir="rtl"] .nv-foot-tag { font-family: var(--ch-arabe); font-style: normal; font-size: 17px; }

.nv-foot-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; }
.nv-foot .nv-foot-h {
  position: relative; display: flex; align-items: center; gap: 10px;
  margin: 0 0 14px; padding: 0 0 11px; border-bottom: 1px solid var(--nv-line);
  font-family: var(--ch-titre); font-weight: 600; font-size: 12px; letter-spacing: .24em; text-transform: uppercase;
  color: var(--ch-or); line-height: 1.2; text-align: start;
}
.nv-foot-h::after {
  content: ""; position: absolute; bottom: -4px; inset-inline-start: 0; width: 7px; height: 7px;
  background: var(--ch-or); transform: rotate(45deg);
}
.nv-foot-h .nv-ic { width: 20px; height: 20px; flex: none; }
[dir="rtl"] .nv-foot .nv-foot-h { font-family: var(--ch-arabe); font-size: 18px; letter-spacing: 0; font-weight: 700; }
.nv-foot-list { list-style: none; margin: 0; padding: 0; }
.nv-foot-list a {
  display: flex; align-items: center; gap: 11px; padding: 6px 0;
  font-family: var(--ch-texte); font-size: 14.5px; line-height: 1.35;
  color: var(--ch-or-clair); text-decoration: none;
  transition: color .15s;
}
.nv-foot-list a .nv-ic { width: 17px; height: 17px; flex: none; color: var(--ch-or); transition: color .15s, transform .2s var(--nv-ease); }
.nv-foot-list a:hover { color: var(--ch-ivoire); }
.nv-foot-list a:hover span { text-decoration: underline; text-decoration-color: var(--ch-or); text-underline-offset: 4px; }
.nv-foot-list a:hover .nv-ic { color: var(--ch-or-clair); transform: rotate(-6deg); }
.nv-foot-list a[aria-current="page"] { color: var(--ch-ivoire); }
.nv-foot-list a[aria-current="page"] .nv-ic { color: var(--ch-or-clair); }
[dir="rtl"] .nv-foot-list a { font-family: var(--ch-arabe); font-size: 17.5px; }

.nv-foot-sig {
  position: relative; display: flex; align-items: center; justify-content: center; gap: 18px;
  padding: 16px 24px 26px; margin: 0 auto; max-width: 1180px;
}
.nv-foot-rule { flex: 1 1 0; max-width: 300px; height: 1px; background: linear-gradient(90deg, transparent, var(--ch-or)); position: relative; }
.nv-foot-rule + .nv-foot-sig-txt + .nv-foot-rule { background: linear-gradient(90deg, var(--ch-or), transparent); }
.nv-foot-sig-txt { font-family: var(--ch-titre); font-size: 12px; letter-spacing: .14em; color: var(--ch-or-clair); white-space: nowrap; }
.nv-foot-sig-txt bdi { font-family: var(--ch-arabe); font-size: 16px; letter-spacing: 0; }

@media (max-width: 1023px) {
  .nv-foot-inner { grid-template-columns: 1fr; gap: 34px; padding: 38px 24px 26px; }
  .nv-foot-brand { padding: 0 0 30px; border-inline-end: 0; border-bottom: 1px solid var(--nv-line-soft); }
  .nv-foot-tag { max-width: 420px; }
}
@media (max-width: 640px) {
  .nv-foot-frise { height: 26px; background-size: auto 26px; }
  .nv-foot-inner { padding: 32px 18px 20px; }
  .nv-foot-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
  .nv-foot-col:last-child { grid-column: 1 / -1; }
  .nv-foot-col:last-child .nv-foot-list { columns: 2; column-gap: 20px; }
  .nv-foot-col:last-child .nv-foot-list li { break-inside: avoid; }
  .nv-foot-list a { min-height: 40px; padding: 4px 0; font-size: 14px; }
  .nv-foot-sig { gap: 10px; padding: 12px 16px 24px; }
  .nv-foot-sig-txt { font-size: 10.5px; letter-spacing: .08em; }
  .nv-foot::before { width: 300px; height: 300px; inset-inline-end: -110px; bottom: -110px; }
}

@media (prefers-reduced-motion: reduce) {
  .nv-bar *, .nv-foot *, .gr-top-link { transition: none !important; }
}
@media print {
  .nv-foot-frise, .nv-foot::before, .gr-top-link, .nv-skip { display: none; }
  .footer-imperial.nv-foot { background: none; color: var(--ch-encre); }
}

/* Entrée de menu présente dans la barre mais pas dans le tiroir mobile
   (config/site.php : 'tiroir' => false ; inc/header.php). */
@media (max-width: 1023px) { .nv-hors-tiroir { display: none !important; } }
