/* Tete de page maison, servie sur tout le site par le mu-plugin moove-tete.
   Hors de .mv-page : jetons redeclares. La barre principale est sticky ;
   la top bar defile. Panneaux mega en BLANC sur la barre encre : contraste
   inverse, textes encre, pictos teal texte (5,3 sur blanc). */

/* Le style.css du theme clone pose html,body { overflow-x:hidden } : body
   devient un conteneur de defilement qui ne defile pas, et tout sticky
   descendant meurt. clip protege pareil des debordements lateraux SANS
   creer de conteneur : le sticky revit. Charge apres style.css (prio 20). */
body { overflow-x: clip; }

.mv-tete {
  --mv-or: #D9B24B;
  --mv-teal: #259C99;
  --mv-teal-texte: #1a7573;
  --mv-teal-vif: #58d3cf;
  --mv-encre: #10151c;
  --mv-rayon: 5px;
  --mv-titre: Lato, ui-sans-serif, system-ui, sans-serif;
  --mv-corps: Nunito, ui-sans-serif, system-ui, sans-serif;

  /* Le header ENTIER est sticky avec un top negatif de la hauteur de la
     top bar : elle glisse hors ecran, la barre principale reste collee.
     (Un sticky sur la barre seule resterait prisonnier de son parent.) */
  position: sticky;
  top: calc(-1 * var(--mv-annexe-h, 44px));
  z-index: 80;
  font-family: var(--mv-corps);
}
body.admin-bar .mv-tete { top: calc(32px - var(--mv-annexe-h, 44px)); }
.mv-tete * { box-sizing: border-box; }
/* li inclus : le theme clone pose margin-bottom 0.4em sur tout li. */
.mv-tete :where(ul, li) { margin: 0; padding: 0; list-style: none; }
.mv-tete :where(p) { margin: 0; }

.mv-tete__enveloppe {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: 20px;
}

/* Lien d'evitement : invisible jusqu'au focus clavier. */
.mv-evite.mv-evite {
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 200;
  padding: 12px 18px;
  border-radius: var(--mv-rayon);
  background: #D9B24B;
  color: #10151c;
  font: 700 15px Nunito, ui-sans-serif, system-ui, sans-serif;
  text-decoration: none;
  transform: translateY(-64px);
  opacity: 0;
  pointer-events: none;
}
.mv-evite.mv-evite:focus-visible {
  transform: none;
  opacity: 1;
  pointer-events: auto;
  outline: 2px solid #259C99;
  outline-offset: 2px;
}

/* ---- La top bar, qui defile ---- */

.mv-tete__annexe {
  background: #0d1219;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.mv-tete__annexe-int {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  /* 8px d'air au-dessus et sous les pastilles de 44px : elles collaient
     aux bords de la barre (min-height 42 depassee). */
  padding-block: 8px;
}
.mv-tete__secondaire ul {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 26px;
}
/* li en flex : sans cela, la ligne de base ajoute ~6px fantomes sous les
   contenus inline-block et desaxe l'air vertical (mesure 8/15). */
.mv-tete__secondaire li,
.mv-tete__reseaux li { display: flex; }
.mv-tete__secondaire a {
  display: inline-block;
  font-size: 13.5px;
  line-height: 20px;
  color: #c2cad4;
  text-decoration: none;
  background-image: linear-gradient(90deg, var(--mv-or), var(--mv-or));
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0 1px;
  transition: color 260ms ease, background-size 320ms cubic-bezier(0.22, 0.61, 0.36, 1);
  padding-block: 11px;
}
.mv-tete__secondaire a:hover { color: #ffffff; background-size: 100% 1px; }
.mv-tete__secondaire a:focus-visible { outline: 2px solid var(--mv-teal); outline-offset: 2px; }

.mv-tete__reseaux {
  display: flex;
  gap: 6px;
}
/* Meme design que les pastilles reseaux du pied, sur tout le site. */
.mv-tete__reseaux a {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--mv-rayon);
  transition: border-color 260ms ease, background-color 260ms ease;
}
.mv-tete__reseau {
  display: block;
  width: 18px;
  height: 18px;
  background: #c2cad4;
  -webkit-mask: var(--picto) center / contain no-repeat;
  mask: var(--picto) center / contain no-repeat;
  transition: background-color 260ms ease;
}
.mv-tete__reseaux a:hover { border-color: var(--mv-or); background: rgba(217, 178, 75, 0.08); }
.mv-tete__reseaux a:hover .mv-tete__reseau { background: var(--mv-or); }
.mv-tete__reseaux a:focus-visible { outline: 2px solid var(--mv-teal); outline-offset: 2px; }

/* ---- La barre principale, sticky ---- */

.mv-tete__barre {
  background: #10151c;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  transition: box-shadow 260ms ease;
}
.mv-tete__barre.est-colle {
  box-shadow: 0 12px 32px rgba(9, 13, 19, 0.45);
}
.mv-tete__barre-int {
  display: flex;
  align-items: center;
  gap: 28px;
  min-height: 78px;
  transition: min-height 260ms ease;
}
.mv-tete__barre.est-colle .mv-tete__barre-int { min-height: 66px; }

.mv-tete__logo {
  position: relative;
  flex: none;
  display: inline-flex;
  align-items: center;
  padding: 8px 6px;
  margin-left: -6px;
  border-radius: var(--mv-rayon);
}
.mv-tete__logo img {
  display: block;
  width: auto;
  height: 60px;
  transition: height 260ms ease;
  animation: mv-logo-entre 640ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}
@keyframes mv-logo-entre {
  from { opacity: 0; transform: translateY(-6px) scale(0.97); }
  to { opacity: 1; transform: none; }
}
/* Balayage de lumiere MASQUE par le logo lui-meme : le reflet ne brille
   que sur les pixels du PNG (variable --mv-logo posee par le mu-plugin).
   Une fois au chargement, puis a chaque survol ou focus. */
.mv-tete__logo::after {
  content: "";
  position: absolute;
  inset: 8px 6px;
  pointer-events: none;
  opacity: 0;
  background-image: linear-gradient(115deg, rgba(255, 255, 255, 0) 34%, rgba(255, 255, 255, 0.9) 50%, rgba(255, 255, 255, 0) 66%);
  background-size: 240% 100%;
  background-repeat: no-repeat;
  background-position: -140% 0;
  -webkit-mask: var(--mv-logo) center / contain no-repeat;
  mask: var(--mv-logo) center / contain no-repeat;
  animation: mv-logo-brille 1100ms ease 720ms 1;
}
.mv-tete__logo:hover::after,
.mv-tete__logo:focus-visible::after {
  animation: mv-logo-brille 900ms ease both;
}
@keyframes mv-logo-brille {
  from { opacity: 1; background-position: -140% 0; }
  to { opacity: 1; background-position: 240% 0; }
}
.mv-tete__barre.est-colle .mv-tete__logo img { height: 50px; }
.mv-tete__logo:focus-visible { outline: 2px solid var(--mv-teal); outline-offset: 2px; }

.mv-tete__nav { flex: 1 1 auto; min-width: 0; }
.mv-tete__liste {
  display: flex;
  justify-content: center;
  gap: 4px;
}
.mv-tete__entree {
  display: flex;
  align-items: center;
  border-radius: var(--mv-rayon);
  transition: background-color 220ms ease;
}
.mv-tete__item.est-ouvert .mv-tete__entree { background: rgba(255, 255, 255, 0.07); }
.mv-tete__nav .mv-tete__lien {
  display: inline-block;
  padding: 14px 6px 14px 12px;
  font-size: 15.5px;
  font-weight: 700;
  line-height: 20px;
  color: #eef2f6;
  text-decoration: none;
  transition: color 220ms ease;
}
.mv-tete__item > .mv-tete__entree .mv-tete__lien:only-child { padding-right: 12px; }
.mv-tete__nav .mv-tete__lien:hover { color: var(--mv-or); }
.mv-tete__nav .mv-tete__lien:focus-visible { outline: 2px solid var(--mv-teal); outline-offset: -2px; }
.mv-tete__nav .mv-tete__plus {
  display: grid;
  place-items: center;
  width: 30px;
  height: 48px;
  padding: 0 10px 0 0;
  border: 0;
  background: none;
  color: #aeb7c2;
  cursor: pointer;
  border-radius: var(--mv-rayon);
  transition: color 220ms ease;
}
.mv-tete__nav .mv-tete__plus svg {
  width: 14px;
  height: 14px;
  transition: transform 260ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
.mv-tete__nav .mv-tete__plus:hover { color: var(--mv-or); }
.mv-tete__nav .mv-tete__plus:focus-visible { outline: 2px solid var(--mv-teal); outline-offset: -2px; }
.mv-tete__item.est-ouvert .mv-tete__plus svg { transform: rotate(180deg); }

.mv-tete__actions {
  flex: none;
  display: flex;
  align-items: center;
  gap: 14px;
}
.mv-tete .mv-btn-or {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 11px 22px;
  border-radius: var(--mv-rayon);
  background: var(--mv-or);
  border: 1px solid var(--mv-or);
  font-family: var(--mv-titre);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: #10151c;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 260ms ease, border-color 260ms ease, transform 260ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
.mv-tete .mv-btn-or:hover { background: #e3c060; border-color: #e3c060; transform: translateY(-2px); }
.mv-tete .mv-btn-or:focus-visible { outline: 2px solid var(--mv-teal); outline-offset: 2px; }

/* ---- Le mega panneau ---- */

.mv-tete__panneau {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  background: #ffffff;
  border-bottom: 1px solid rgba(13, 18, 25, 0.08);
  box-shadow: 0 28px 56px rgba(9, 13, 19, 0.28);
}
.mv-tete__panneau::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--mv-teal), var(--mv-or));
}
.mv-tete__panneau-int {
  display: grid;
  grid-template-columns: 330px minmax(0, 1fr);
  gap: 48px;
  padding-block: 40px 44px;
}
.mv-tete__pilier { border-right: 1px solid rgba(13, 18, 25, 0.1); padding-right: 48px; }
.mv-tete .mv-tete__surtitre {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 13px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--mv-teal-texte);
}
.mv-tete .mv-tete__surtitre::before {
  content: "";
  width: 24px;
  height: 2px;
  flex: none;
  background: linear-gradient(90deg, var(--mv-teal), var(--mv-or));
}
.mv-tete__pilier-texte {
  margin-block-start: 16px;
  font-size: 15px;
  line-height: 24px;
  color: #545b65;
}
.mv-tete__pilier .mv-tete__explorer {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-block-start: 18px;
  font-size: 15px;
  font-weight: 700;
  color: var(--mv-teal-texte);
  text-decoration: none;
  padding-block: 10px;
  margin-block-end: -10px;
  transition: color 260ms ease;
}
.mv-tete__pilier .mv-tete__explorer svg {
  width: 16px;
  height: 16px;
  transition: transform 320ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
.mv-tete__pilier .mv-tete__explorer:hover { color: var(--mv-or); }
.mv-tete__pilier .mv-tete__explorer:hover svg { transform: translateX(4px); }
.mv-tete__pilier .mv-tete__explorer:focus-visible { outline: 2px solid var(--mv-teal); outline-offset: 2px; }

.mv-tete__panneau .mv-tete__enfants {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 28px;
  align-content: start;
}
.mv-tete__panneau .mv-tete__enfant {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 52px;
  padding: 8px 14px;
  border-radius: var(--mv-rayon);
  font-size: 15.5px;
  font-weight: 700;
  line-height: 22px;
  color: var(--mv-encre);
  text-decoration: none;
  transition: background-color 220ms ease, color 220ms ease;
}
.mv-tete__panneau .mv-tete__enfant:hover { background: #f4f7f7; }
.mv-tete__panneau .mv-tete__enfant:focus-visible { outline: 2px solid var(--mv-teal); outline-offset: -2px; }
.mv-tete__picto {
  flex: none;
  width: 24px;
  height: 24px;
  color: var(--mv-teal-texte);
  transition: color 220ms ease;
}
.mv-tete__panneau .mv-tete__enfant:hover .mv-tete__picto { color: var(--mv-or); }
.mv-trace { transition: none; }
.mv-tete__panneau .mv-tete__enfant:hover .mv-trace,
.mv-tiroir__parent:hover .mv-trace {
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  animation: mv-tete-ecrit 640ms cubic-bezier(0.33, 0, 0.2, 1) forwards;
}
@keyframes mv-tete-ecrit { to { stroke-dashoffset: 0; } }

/* ---- Le tiroir mobile ---- */

.mv-tete .mv-tete__burger {
  display: none;
  place-items: center;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--mv-rayon);
  background: none;
  cursor: pointer;
  padding: 0;
}
.mv-tete .mv-tete__burger span {
  display: block;
  width: 20px;
  height: 2px;
  border-radius: 1px;
  background: #eef2f6;
  margin-block: 2.5px;
}
.mv-tete .mv-tete__burger:focus-visible { outline: 2px solid var(--mv-teal); outline-offset: 2px; }

/* display:flex (auteur) neutraliserait le [hidden] (UA) : regle explicite. */
.mv-tiroir[hidden] { display: none; }
.mv-tiroir {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: flex;
  flex-direction: column;
  background: #0d1219;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
.mv-tiroir::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(52% 40% at 10% 0%, rgba(37, 156, 153, 0.13) 0%, rgba(13, 18, 25, 0) 60%),
    radial-gradient(46% 36% at 92% 100%, rgba(217, 178, 75, 0.07) 0%, rgba(13, 18, 25, 0) 58%);
}
html.mv-tiroir-ouvert,
html.mv-tiroir-ouvert body { overflow: hidden; }

.mv-tiroir__haut {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.mv-tiroir__logo { display: inline-flex; border-radius: var(--mv-rayon); }
.mv-tiroir__logo img { display: block; width: auto; height: 44px; }
.mv-tiroir__logo:focus-visible { outline: 2px solid var(--mv-teal); outline-offset: 2px; }
.mv-tiroir .mv-tiroir__fermer {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--mv-rayon);
  background: none;
  color: #eef2f6;
  cursor: pointer;
  padding: 0;
  transition: border-color 260ms ease, color 260ms ease;
}
.mv-tiroir .mv-tiroir__fermer svg { width: 20px; height: 20px; }
.mv-tiroir .mv-tiroir__fermer:hover { border-color: var(--mv-or); color: var(--mv-or); }
.mv-tiroir .mv-tiroir__fermer:focus-visible { outline: 2px solid var(--mv-teal); outline-offset: 2px; }

.mv-tiroir__nav { position: relative; flex: 1 1 auto; padding: 10px 20px 20px; }
.mv-tiroir__groupe { border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
.mv-tiroir .mv-tiroir__parent {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  min-height: 56px;
  padding: 14px 2px;
  border: 0;
  background: none;
  font-family: var(--mv-titre);
  font-size: 17px;
  font-weight: 700;
  color: #ffffff;
  text-align: left;
  cursor: pointer;
}
.mv-tiroir .mv-tiroir__parent .mv-tete__picto { color: var(--mv-teal-vif); }
.mv-tiroir .mv-tiroir__parent span { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.mv-tiroir__chevron {
  flex: none;
  width: 16px;
  height: 16px;
  color: #aeb7c2;
  transition: transform 260ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
.mv-tiroir .mv-tiroir__parent[aria-expanded="true"] .mv-tiroir__chevron { transform: rotate(180deg); }
.mv-tiroir .mv-tiroir__parent:focus-visible { outline: 2px solid var(--mv-teal); outline-offset: 2px; }

.mv-tiroir__sous { overflow: hidden; }
.mv-tiroir__sous ul { padding: 2px 0 14px 38px; }
.mv-tiroir .mv-tiroir__sous-lien {
  display: block;
  padding: 11px 2px;
  font-size: 15.5px;
  line-height: 22px;
  color: #c2cad4;
  text-decoration: none;
  overflow-wrap: anywhere;
  transition: color 220ms ease;
}
.mv-tiroir .mv-tiroir__sous-lien:hover { color: #ffffff; }
.mv-tiroir .mv-tiroir__sous-lien--pilier { color: var(--mv-teal-vif); font-weight: 700; }
.mv-tiroir .mv-tiroir__sous-lien:focus-visible { outline: 2px solid var(--mv-teal); outline-offset: 2px; }

.mv-tiroir__plat { border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
.mv-tiroir .mv-tiroir__lien {
  display: block;
  min-height: 56px;
  padding: 16px 2px;
  font-family: var(--mv-titre);
  font-size: 17px;
  font-weight: 700;
  color: #ffffff;
  text-decoration: none;
  overflow-wrap: anywhere;
  transition: color 220ms ease;
}
.mv-tiroir .mv-tiroir__lien:hover { color: var(--mv-or); }
.mv-tiroir .mv-tiroir__lien:focus-visible { outline: 2px solid var(--mv-teal); outline-offset: 2px; }

.mv-tiroir__pied {
  position: relative;
  padding: 16px 20px 28px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.mv-tiroir .mv-tiroir__tel { flex: 1 1 auto; }
.mv-tiroir__reseaux { flex: none; }

/* ---- Reactivite ---- */

@media (prefers-reduced-motion: reduce) {
  .mv-tete .mv-btn-or, .mv-tete__secondaire a, .mv-tete__reseau, .mv-tete__reseaux a,
  .mv-tete__logo img, .mv-tete__barre-int, .mv-tete__plus svg, .mv-tiroir__chevron,
  .mv-tete__pilier .mv-tete__explorer svg, .mv-tete__barre { transition: none; }
  .mv-tete .mv-btn-or:hover { transform: none; }
  .mv-tete__pilier .mv-tete__explorer:hover svg { transform: none; }
  .mv-tete__panneau .mv-tete__enfant:hover .mv-trace, .mv-tiroir__parent:hover .mv-trace { animation: none; }
  .mv-tete__logo img, .mv-tete__logo::after,
  .mv-tete__logo:hover::after, .mv-tete__logo:focus-visible::after { animation: none; }
}

@media (max-width: 1220px) {
  .mv-tete { top: 0; }
  body.admin-bar .mv-tete { top: 32px; }
  .mv-tete__nav { display: none; }
  .mv-tete__annexe { display: none; }
  .mv-tete .mv-tete__burger { display: grid; }
  .mv-tete__barre-int { min-height: 72px; justify-content: space-between; }
  .mv-tete__logo img { height: 52px; }
}
@media (max-width: 460px) {
  .mv-tete .mv-tete__tel { padding-inline: 14px; font-size: 14px; }
  .mv-tete__barre-int { gap: 12px; }
  .mv-tete__logo img { height: 46px; }
  .mv-tete__barre.est-colle .mv-tete__logo img { height: 44px; }
}

/* ==========================================================================
   Le motif de marque, declare une seule fois
   ==========================================================================
   tete.css est chargee sur TOUTES les pages : c est le seul endroit ou ce
   trace peut vivre sans etre recopie dans chaque feuille. Les autres n en
   portent que le nom.

   C est le meme trace que celui pose derriere la fondatrice, releve sur la
   production plutot que redessine. */
:root {
  --mv-motif: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20505%20587%27%3E%3Cpath%20fill-rule%3D%27evenodd%27%20clip-rule%3D%27evenodd%27%20d%3D%27M176.466%20534.192C113.516%20510.512%2064.3162%20452.782%2036.0962%20393.572C-25.0038%20259.712%209.93621%20111.522%20104.956%204.21236C105.376%203.74236%20110.796%20-2.23763%20107.316%200.912371C-8.12378%20106.462%20-31.3838%20292.092%2042.1662%20426.822C112.116%20548.052%20253.136%20617.072%20389.996%20572.722C432.036%20558.082%20480.616%20529.822%20502.656%20489.122C513.636%20467.462%20478.976%20496.422%20475.506%20498.832C374.506%20568.052%20246.856%20562.922%20152.936%20482.752C103.956%20439.382%2073.0862%20382.742%2060.0862%20319.002C59.8762%20317.972%2055.9762%20294.162%2056.5162%20305.962C60.6162%20392.712%20113.156%20467.612%20177.916%20521.312C181.916%20524.632%20204.136%20541.262%20184.866%20536.832C182.006%20536.092%20179.226%20535.192%20176.456%20534.202L176.466%20534.192Z%27%20fill%3D%27%23ffffff%27%2F%3E%3C%2Fsvg%3E");
}
