/* 02-header.css — Header Centre des Noyers + barre menu sticky */

/* ===================== Sticky spacer / sentinel ===================== */
#bar-sentinel{ height:1px; }

#bar-spacer{
  height:0;
  transition:none;
}

/* ===================== Variables (defaults) ===================== */
body{
  --logo-y: -10px;

  /* NAV (réglages) */
  --nav-hover-raise: -3px;
  --nav-underline-bottom: 3px;
  --dd-underline-bottom: 3px;
}

/* Le header doit passer AU-DESSUS du contenu */
.site-header{
  position:relative;
  z-index:5000;
}

/* ===================== Bande blanche : LOGO SEUL ===================== */
.head-top{
  background:#fff;
  position:relative;
  z-index:1;
}

.head-top-inner{
  max-width:var(--maxw);
  margin:0 auto;
  padding:22px 16px 16px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.brand-logo{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  transform:translateY(var(--logo-y));
}

.brand-logo img{
  width:auto;
  height:auto;
  max-height:192px;
  max-width:min(360px, 92vw);
  display:block;
  object-fit:contain;
  filter:drop-shadow(0 10px 26px rgba(14,16,48,.10));
}

/* ===================== Barre violette sticky ===================== */
.head-bar{
  position:relative;
  z-index:6000;
  overflow:visible;

  background:radial-gradient(140% 180% at 50% 30%,
    #C6CAF6 0%,
    #8E94D8 34%,
    #555AA3 66%,
    #2E2C62 100%);
  background-color:#2E2C62;

  box-shadow:
    0 12px 30px rgba(75,84,160,.18),
    0 4px 12px rgba(0,0,0,.12),
    0 0 0 1px rgba(230,231,255,.24);

  will-change:transform;
  transform:translateY(-10px) translateZ(0);
}

.head-bar::before{
  content:"";
  position:absolute;
  inset:8px 12px;
  border:1px solid rgba(255,255,255,.34);
  border-radius:12px;
  pointer-events:none;
  opacity:calc(.78 * (1 - var(--shrink,0)));
  transition:opacity .35s cubic-bezier(.22,.61,.36,1);
}

.head-bar.fixed{
  position:fixed;
  top:10px;
  left:0;
  right:0;
  z-index:7000;
}

.head-bar-inner{
  width:100%;
  max-width:none;
  margin:0;
  padding:0 20px;
  padding-top:calc(20px * (1 - var(--shrink,0) * 0.8));
  padding-bottom:calc(20px * (1 - var(--shrink,0) * 0.8));
  min-height:60px;

  display:flex;
  align-items:center;
  justify-content:center;

  position:relative;
  overflow:visible;
  transition:padding .75s cubic-bezier(.22,.61,.36,1);
}

/* ===================== NAV ===================== */
.main-nav{
  display:flex;
  flex-wrap:nowrap;
  gap:60px;
  justify-content:center;
  align-items:center;

  width:max-content;
  margin-inline:auto;

  font-family:Georgia, "Times New Roman", serif;
  font-size:1.22rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:#111;
  white-space:nowrap;
}

.nav-link{
  position:relative;
  padding:12px 0;
  color:inherit;
  text-decoration:none;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  line-height:1.1;
  text-transform:uppercase;
  letter-spacing:inherit;

  transition:transform .35s cubic-bezier(.22,.61,.36,1);
}

button.nav-link{
  background:transparent;
  border:0;
  cursor:pointer;
  font:inherit;
}

.nav-link::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:var(--nav-underline-bottom);
  width:100%;
  height:1.5px;
  border-radius:999px;
  background:rgba(17,17,17,.82);
  opacity:0;
  transform:translateX(-50%) scaleX(0);
  transform-origin:center;
  transition:
    transform .28s cubic-bezier(.22,.61,.36,1),
    opacity .22s ease;
  pointer-events:none;
}

.nav-link:hover{
  transform:translateY(var(--nav-hover-raise));
}

.nav-link:hover::after,
.nav-link:focus-visible::after{
  opacity:1;
  transform:translateX(-50%) scaleX(1);
}

/* ===================== DROPDOWNS ===================== */
.nav-dd{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:10px;
}

.nav-dd > .nav-link.nav-dd__link::after{
  bottom:var(--dd-underline-bottom);
}

.nav-dd__btn{
  background:transparent;
  border:0;
  cursor:pointer;
  padding:12px 0;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition:transform .35s cubic-bezier(.22,.61,.36,1);
}

.nav-dd:hover > .nav-link.nav-dd__link,
.nav-dd:focus-within > .nav-link.nav-dd__link{
  transform:translateY(var(--nav-hover-raise));
}

.nav-dd:hover > .nav-dd__btn,
.nav-dd:focus-within > .nav-dd__btn{
  transform:translateY(var(--nav-hover-raise));
}

.nav-dd:hover > .nav-link.nav-dd__link::after,
.nav-dd:focus-within > .nav-link.nav-dd__link::after{
  opacity:1;
  transform:translateX(-50%) scaleX(1);
}

.nav-dd__chev{
  font-size:14px;
  opacity:.8;
  transform:translateY(-1px);
  transition:transform .18s ease, opacity .18s ease;
}

.nav-dd.is-open .nav-dd__chev{
  transform:translateY(1px) rotate(180deg);
  opacity:1;
}

@media (hover:hover){
  .nav-dd::after{
    content:"";
    position:absolute;
    left:-16px;
    right:-16px;
    top:100%;
    height:10px;
  }

  .nav-dd:hover .nav-dd__chev{
    transform:translateY(1px) rotate(180deg);
    opacity:1;
  }
}

.nav-dd__menu{
  position:absolute;
  top:calc(100% + 10px);
  left:50%;
  transform:translateX(-50%);

  min-width:320px;
  max-width:min(420px, 92vw);

  padding:12px;
  border-radius:16px;

  background:#F2F3FF;
  border:1px solid rgba(46,44,98,.18);
  box-shadow:
    0 18px 46px rgba(14,16,48,.18),
    0 0 0 1px rgba(230,232,255,.70);

  z-index:99999;
  display:none;
  gap:0px;
}

.nav-dd__menu a{
  display:flex;
  width:100%;
  padding:12px 14px;
  border-radius:12px;

  text-decoration:none;
  color:rgba(46,44,98,.92);

  font-family:Georgia, "Times New Roman", serif;
  font-weight:700;
  font-size:.88rem;
  letter-spacing:.045em;
  text-transform:uppercase;
  line-height:1.38;
  white-space:normal;
}

.nav-dd__menu a:hover{ background:rgba(46,44,98,.08); }

.nav-dd.is-open .nav-dd__menu{ display:grid; }

@media (hover:hover){
  .nav-dd:hover .nav-dd__menu{ display:grid; }
}

/* =========================
   Language switch
   ========================= */
.lang-switch{
  position:absolute;
  right:30px;
  top:50%;
  transform:translateY(-50%);
  display:inline-flex;
  align-items:center;
  z-index:20;
}

.lang-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-width:64px;
  padding:8px 12px;
  border:0;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  box-shadow:inset 0 0 0 1px rgba(230,232,255,.28);
  color:inherit;
  cursor:pointer;
  line-height:1;
  -webkit-tap-highlight-color:transparent;
}

.lang-flag,
.lang-opt-flag{
  font-size:22px !important;
  line-height:1 !important;
  display:inline-block !important;
}

.head-bar .lang-btn .lang-chevron,
.head-bar .lang-btn svg.lang-chevron{
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  min-height:18px !important;
  display:inline-block !important;
  visibility:visible !important;
  opacity:.85 !important;
  overflow:visible !important;
  flex:0 0 auto !important;

  fill:none !important;
  stroke:currentColor !important;

  transform:translateY(1px);
  transition:transform .18s ease, opacity .18s ease;
}

.lang-switch.is-open .lang-chevron{
  transform:translateY(1px) rotate(180deg);
  opacity:1 !important;
}

.lang-btn:hover{
  background:rgba(255,255,255,.16);
  box-shadow:inset 0 0 0 1px rgba(230,232,255,.32);
}
.lang-btn:hover .lang-chevron{ opacity:1 !important; }

.lang-btn:focus-visible{
  outline:2px solid rgba(230,232,255,.85);
  outline-offset:3px;
}

.lang-menu{
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  min-width:220px;
  max-width:min(260px, 92vw);

  padding:12px;
  border-radius:16px;

  background:#F2F3FF;
  border:1px solid rgba(46,44,98,.18);
  box-shadow:
    0 18px 46px rgba(14,16,48,.18),
    0 0 0 1px rgba(230,232,255,.70);

  z-index:99999;
  display:grid;
  gap:0;
}

.lang-menu[hidden]{ display:none; }

.lang-opt{
  width:100%;
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 14px;

  border:0;
  border-radius:12px;
  background:transparent;
  cursor:pointer;
  text-align:left;

  color:rgba(46,44,98,.92);

  font-family:Georgia, "Times New Roman", serif;
  font-weight:700;
  font-size:.88rem;
  letter-spacing:.045em;
  line-height:1.38;
  text-transform:uppercase;
}

.lang-opt:hover{
  background:rgba(46,44,98,.08);
}

.lang-opt[aria-selected="true"]{
  background:rgba(46,44,98,.12);
}

.lang-opt:focus-visible{
  outline:2px solid rgba(46,44,98,.40);
  outline-offset:2px;
}

.lang-name{
  letter-spacing:inherit;
}

/* =========================
   Mobile header elements
   ========================= */
.mobile-nav-toggle,
.mobile-brand,
.mobile-nav-drawer,
.mobile-nav-overlay{
  display:none;
}

/* =========================
   Animations menu mobile
   ========================= */
@keyframes cdn-mobile-card-in{
  0%{
    opacity:0;
    transform:translateX(-20px) scale(.988);
  }
  78%{
    opacity:1;
    transform:translateX(4px) scale(1.003);
  }
  100%{
    opacity:1;
    transform:translateX(0) scale(1);
  }
}

@keyframes cdn-mobile-subcard-in{
  0%{
    opacity:0;
    transform:translateX(-16px) scale(.992);
  }
  82%{
    opacity:1;
    transform:translateX(3px) scale(1.002);
  }
  100%{
    opacity:1;
    transform:translateX(0) scale(1);
  }
}

.mobile-nav > *{
  opacity:0;
  transform:translateX(-20px) scale(.988);
  transform-origin:left center;
  will-change:transform, opacity;
}

.site-header.is-mobile-nav-open .mobile-nav > *{
  animation:cdn-mobile-card-in .80s cubic-bezier(.22,.78,.30,1) forwards;
}

.site-header.is-mobile-nav-open .mobile-nav > :nth-child(1){ animation-delay:.04s; }
.site-header.is-mobile-nav-open .mobile-nav > :nth-child(2){ animation-delay:.14s; }
.site-header.is-mobile-nav-open .mobile-nav > :nth-child(3){ animation-delay:.24s; }
.site-header.is-mobile-nav-open .mobile-nav > :nth-child(4){ animation-delay:.34s; }
.site-header.is-mobile-nav-open .mobile-nav > :nth-child(5){ animation-delay:.44s; }
.site-header.is-mobile-nav-open .mobile-nav > :nth-child(6){ animation-delay:.54s; }

.mobile-acc__panel .mobile-nav__sublink{
  opacity:0;
  transform:translateX(-16px) scale(.992);
  transform-origin:left center;
  will-change:transform, opacity;
}

.mobile-acc.is-open .mobile-acc__panel .mobile-nav__sublink{
  animation:cdn-mobile-subcard-in .68s cubic-bezier(.22,.78,.30,1) forwards;
}

.mobile-acc.is-open .mobile-acc__panel .mobile-nav__sublink:nth-child(1){ animation-delay:.04s; }
.mobile-acc.is-open .mobile-acc__panel .mobile-nav__sublink:nth-child(2){ animation-delay:.12s; }
.mobile-acc.is-open .mobile-acc__panel .mobile-nav__sublink:nth-child(3){ animation-delay:.20s; }
.mobile-acc.is-open .mobile-acc__panel .mobile-nav__sublink:nth-child(4){ animation-delay:.28s; }

/* =========================================================
   ACTUALITÉS — lien bloqué / à venir
   ========================================================= */

.nav-link--soon{
  position:relative;
  cursor:not-allowed;
  user-select:none;
  opacity:.52;
  pointer-events:none;
}

/* On enlève le soulignement classique */
.nav-link--soon::after{
  content:none;
}

/* Petit badge propre */
.nav-link--soon::before{
  content:"À venir";
  position:absolute;
  left:50%;
  top:75%;
  transform:translateX(-50%);
  margin-top:0px;

  padding:3px 8px;
  border-radius:999px;

  font-family:Inter, system-ui, sans-serif;
  font-size:.58rem;
  font-weight:800;
  line-height:1;
  letter-spacing:.10em;
  text-transform:uppercase;
  white-space:nowrap;

  color:rgba(14,16,48,.78);
  background:rgba(242,243,255,.72);
  box-shadow:
    inset 0 0 0 1px rgba(46,44,98,.14),
    0 4px 10px rgba(14,16,48,.08);
}

/* Sécurité : aucun hover */
.nav-link--soon:hover,
.nav-link--soon:focus-visible{
  transform:none;
}

/* =========================================================
   MOBILE
   ========================================================= */

.mobile-nav__link--soon{
  position:relative;
  cursor:not-allowed;
  user-select:none;
  pointer-events:none;
  opacity:.58;
}

/* Badge mobile */
.mobile-nav__link--soon::after{
  content:"À venir";
  margin-left:auto;

  padding:5px 10px;
  border-radius:999px;

  font-family:Inter, system-ui, sans-serif;
  font-size:.68rem;
  font-weight:900;
  line-height:1;
  letter-spacing:.10em;
  text-transform:uppercase;
  white-space:nowrap;

  color:rgba(14,16,48,.78);
  background:rgba(242,243,255,.76);
  box-shadow:
    inset 0 0 0 1px rgba(46,44,98,.14),
    0 4px 10px rgba(14,16,48,.08);
}

.mobile-nav__link--soon:hover,
.mobile-nav__link--soon:focus-visible,
.mobile-nav__link--soon:active{
  transform:none;
}

/* Traduction du badge "À venir" */
html:lang(fr) .nav-link--soon::before{
  content:"À venir";
}

html:lang(en) .nav-link--soon::before{
  content:"Coming soon";
}

html:lang(fr) .mobile-nav__link--soon::after{
  content:"À venir";
}

html:lang(en) .mobile-nav__link--soon::after{
  content:"Coming soon";
}

/* =========================
   Zone desktop large > 1350px
   lang-switch indépendant à droite
   ========================= */
@media (min-width:1640px){
  .head-bar-inner{
    justify-content:center;
  }

  .main-nav{
    gap:60px;
    font-size:1.2rem;
    letter-spacing:.06em;
  }

  .nav-dd{
    gap:10px;
  }

  .lang-switch{
    position:absolute;
    right:30px;
    top:50%;
    transform:translateY(-50%);
  }

  .lang-btn{
    min-width:64px;
    padding:8px 12px;
    gap:10px;
  }

  .lang-flag,
  .lang-opt-flag{
    font-size:22px !important;
  }

  .head-bar .lang-btn .lang-chevron,
  .head-bar .lang-btn svg.lang-chevron{
    width:18px !important;
    height:18px !important;
    min-width:18px !important;
    min-height:18px !important;
  }
}

/* =========================
   Zone intermédiaire 1350px -> 1025px
   On centre TITRES + LANG ensemble
   ========================= */
@media (max-width:1640px) and (min-width:1301px){
  .head-bar-inner{
    justify-content:center;
    gap:18px;
    padding-inline:16px;
  }

  .main-nav{
    margin-inline:0;
    gap:34px;
    font-size:1.08rem;
    letter-spacing:.05em;
  }

  .nav-dd{
    gap:8px;
  }

  .lang-switch{
    position:static;
    right:auto;
    top:auto;
    transform:none;
    margin-left:18px;
  }

  .lang-btn{
    min-width:58px;
    padding:7px 10px;
    gap:8px;
  }

  .lang-flag,
  .lang-opt-flag{
    font-size:20px !important;
  }

  .head-bar .lang-btn .lang-chevron,
  .head-bar .lang-btn svg.lang-chevron{
    width:16px !important;
    height:16px !important;
    min-width:16px !important;
    min-height:16px !important;
  }
}

/* =========================
   Mobile / tablet <= 1024px
   ========================= */
@media (max-width:1300px){
  html.mobile-nav-open,
  body.mobile-nav-open{
    overflow:auto !important;
    overscroll-behavior:auto !important;
  }

  body{
    --logo-y: 0px;
  }

  .head-top{
    display:none;
  }

  .head-bar{
    transform:none;
    box-shadow:
      0 12px 34px rgba(46,44,98,.22),
      0 0 0 1px rgba(230,231,255,.18);
  }

  .head-bar::before{
    display:none;
  }

  .head-bar.fixed{
    top:0;
    left:0;
    right:0;
  }

  .head-bar-inner{
    max-width:none;
    display:grid;
    grid-template-columns:64px 1fr 64px;
    align-items:center;
    gap:12px;
    min-height:92px;
    padding:calc(10px + env(safe-area-inset-top)) 16px 12px;
    justify-content:unset;
  }

  .main-nav{
    display:none;
  }

  .mobile-nav-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:64px;
    height:64px;
    padding:0;
    border:0;
    border-radius:999px;
    background:rgba(255,255,255,.12);
    box-shadow:inset 0 0 0 1px rgba(230,232,255,.28);
    cursor:pointer;
    justify-self:start;
    -webkit-tap-highlight-color:transparent;
  }

  .mobile-nav-toggle:hover{
    background:rgba(255,255,255,.18);
    box-shadow:inset 0 0 0 1px rgba(230,232,255,.32);
  }

  .mobile-nav-toggle:focus-visible{
    outline:2px solid rgba(230,232,255,.90);
    outline-offset:2px;
  }

  .mobile-nav-toggle__box{
    position:relative;
    width:24px;
    height:18px;
    display:block;
  }

  .mobile-nav-toggle__line{
    position:absolute;
    left:0;
    right:0;
    height:2.5px;
    border-radius:999px;
    background:#F7F7FF;
    transition:
      transform .28s cubic-bezier(.22,.61,.36,1),
      opacity .22s ease,
      top .28s cubic-bezier(.22,.61,.36,1);
  }

  .mobile-nav-toggle__line:nth-child(1){ top:0; }
  .mobile-nav-toggle__line:nth-child(2){ top:7.5px; }
  .mobile-nav-toggle__line:nth-child(3){ top:15px; }

  .site-header.is-mobile-nav-open .mobile-nav-toggle__line:nth-child(1){
    top:7.5px;
    transform:rotate(45deg);
  }

  .site-header.is-mobile-nav-open .mobile-nav-toggle__line:nth-child(2){
    opacity:0;
  }

  .site-header.is-mobile-nav-open .mobile-nav-toggle__line:nth-child(3){
    top:7.5px;
    transform:rotate(-45deg);
  }

  .mobile-brand{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    justify-self:center;
  }

  .mobile-brand img{
    display:block;
    width:auto;
    height:78px;
    max-width:min(220px, 54vw);
    object-fit:contain;
    filter:drop-shadow(0 8px 18px rgba(14,16,48,.18));
  }

  .lang-switch{
    position:relative;
    right:auto;
    top:auto;
    transform:none;
    width:64px;
    justify-self:end;
    margin-left:0;
    z-index:7100;
  }

  .lang-btn{
    width:64px;
    min-width:64px;
    justify-content:center;
    gap:6px;
    padding:9px 9px;
    border-radius:999px;
    background:rgba(255,255,255,.12);
    box-shadow:inset 0 0 0 1px rgba(230,232,255,.28);
  }

  .lang-btn:hover{
    background:rgba(255,255,255,.18);
    box-shadow:inset 0 0 0 1px rgba(230,232,255,.32);
  }

  .lang-flag,
  .lang-opt-flag{
    font-size:20px !important;
  }

  .head-bar .lang-btn .lang-chevron,
  .head-bar .lang-btn svg.lang-chevron{
    width:14px !important;
    height:14px !important;
    min-width:14px !important;
    min-height:14px !important;
  }

  .lang-menu{
    top:calc(100% + 10px);
    right:0;
    min-width:186px;
    max-width:min(78vw, 220px);
    padding:10px;
    border-radius:18px;
  }

  .mobile-nav-drawer{
    display:block;
    position:fixed;
    inset:0 auto 0 0;
    width:min(88vw, 360px);
    z-index:6800;

    background:rgba(255,255,255,.01);
    background-image:none;
    border:0;
    box-shadow:none;

    transform:translateX(-104%);
    transition:transform .32s cubic-bezier(.22,.61,.36,1);
    pointer-events:none;
  }

  .site-header.is-mobile-nav-open .mobile-nav-drawer{
    transform:translateX(0);
    pointer-events:none;
  }

  .mobile-nav-drawer__inner{
    height:auto;
    min-height:100%;
    overflow:visible;
    padding:
      calc(118px + env(safe-area-inset-top))
      18px
      calc(24px + env(safe-area-inset-bottom));
    overscroll-behavior:contain;
    pointer-events:none;
  }

  .mobile-nav-overlay{
    display:block;
    position:fixed;
    inset:0;
    z-index:6700;
    border:0;
    padding:0;
    margin:0;
    background:rgba(255,255,255,.015);
    -webkit-backdrop-filter:blur(5px);
    backdrop-filter:blur(5px);
    opacity:0;
    pointer-events:none;
    transition:opacity .24s ease;
    -webkit-tap-highlight-color:transparent;
  }

  .site-header.is-mobile-nav-open .mobile-nav-overlay{
    opacity:1;
    pointer-events:none;
  }

  .mobile-nav{
    display:flex;
    flex-direction:column;
    gap:14px;
    pointer-events:auto;
  }

  .mobile-nav__link,
  .mobile-acc__link,
  .mobile-acc__btn,
  .mobile-acc__panel,
  .mobile-nav__sublink{
    pointer-events:auto;
  }

  .mobile-nav__link{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:14px;
    padding:17px 18px;
    border-radius:18px;
    border:1px solid rgba(230,231,255,.36);
    background:radial-gradient(160% 200% at 50% 40%,
      #BFC3F3 0%, #8E94D8 38%, #595EA8 68%, #2E2C62 100%);
    box-shadow:
      0 8px 18px rgba(14,16,48,.10),
      inset 0 1px 0 rgba(255,255,255,.12);

    color:#111;
    text-decoration:none;
    text-align:left;

    font-family:Georgia, "Times New Roman", serif;
    font-size:1.12rem;
    font-weight:700;
    letter-spacing:.05em;
    text-transform:uppercase;
  }

  .mobile-nav__link:hover{
    transform:translateY(-2px);
  }

  .mobile-nav__link:active{
    transform:translateY(1px);
  }

  .mobile-acc{
    display:grid;
    gap:10px;
  }

  .mobile-acc__row{
    display:grid;
    grid-template-columns:minmax(0, 1fr) 64px;
    gap:10px;
  }

  .mobile-acc__link{
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    padding:17px 18px;
    border-radius:18px;
    border:1px solid rgba(230,231,255,.36);
    background:radial-gradient(160% 200% at 50% 40%,
        #BFC3F3 0%, #8E94D8 38%, #595EA8 68%, #2E2C62 100%);
    box-shadow:
        0 8px 18px rgba(14,16,48,.10),
        inset 0 1px 0 rgba(255,255,255,.12);

    color:#111;
    text-decoration:none;
    text-align:left;

    font-family:Georgia, "Times New Roman", serif;
    font-size:1.12rem;
    font-weight:700;
    letter-spacing:.05em;
    text-transform:uppercase;
    line-height:1.15;
  }

  .mobile-acc__link:hover{
    transform:translateY(-2px);
  }

  .mobile-acc__btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:64px;
    min-width:64px;
    padding:0;
    border:1px solid rgba(230,231,255,.36);
    border-radius:18px;
    background:radial-gradient(160% 200% at 50% 40%,
      #BFC3F3 0%, #8E94D8 38%, #595EA8 68%, #2E2C62 100%);
    box-shadow:
      0 8px 18px rgba(14,16,48,.10),
      inset 0 1px 0 rgba(255,255,255,.12);
    color:#111;
    cursor:pointer;
  }

  .mobile-acc__btn:hover{
    transform:translateY(-2px);
  }

  .mobile-acc__btn:active,
  .mobile-acc__link:active{
    transform:translateY(1px);
  }

  .mobile-acc__chev{
    flex:0 0 auto;
    font-size:18px;
    opacity:.9;
    transition:transform .2s ease, opacity .2s ease;
  }

  .mobile-acc.is-open .mobile-acc__chev{
    transform:rotate(180deg);
    opacity:1;
  }

  .mobile-acc__panel{
    display:grid;
    gap:8px;
    padding:8px 0 0;
    background:transparent;
    border:0;
    box-shadow:none;
  }

  .mobile-acc__panel[hidden]{
    display:none;
  }

  .mobile-nav__sublink{
    display:flex;
    align-items:center;
    width:100%;
    padding:10px 12px;
    border-radius:12px;
    background:rgba(242,243,255,.94);
    border:1px solid rgba(46,44,98,.10);
    box-shadow:
        0 8px 18px rgba(14,16,48,.08),
        inset 0 1px 0 rgba(255,255,255,.22);
    color:rgba(46,44,98,.92);
    text-decoration:none;
    text-align:left;

    font-family:Georgia, "Times New Roman", serif;
    font-weight:700;
    font-size:.96rem;
    letter-spacing:.06em;
    text-transform:uppercase;
    line-height:1.35;
    white-space:normal;

    transition:background .18s ease, transform .18s ease;
  }

  .mobile-nav__sublink:hover,
  .mobile-nav__sublink:focus-visible{
    background:rgba(233,235,252,.98);
  }

  .mobile-nav__sublink:active{
    transform:translateY(1px);
  }
}

/* =========================
   Override FR : 1351px -> 1400px
   En français, on garde encore la zone intermédiaire
   ========================= */
@media (min-width:1351px) and (max-width:1400px){
  html:lang(fr) .head-bar-inner{
    justify-content:center;
    gap:18px;
    padding-inline:16px;
  }

  html:lang(fr) .main-nav{
    margin-inline:0;
    gap:34px;
    font-size:1.08rem;
    letter-spacing:.05em;
  }

  html:lang(fr) .nav-dd{
    gap:8px;
  }

  html:lang(fr) .lang-switch{
    position:static;
    right:auto;
    top:auto;
    transform:none;
    margin-left:18px;
  }

  html:lang(fr) .lang-btn{
    min-width:58px;
    padding:7px 10px;
    gap:8px;
  }

  html:lang(fr) .lang-flag,
  html:lang(fr) .lang-opt-flag{
    font-size:20px !important;
  }

  html:lang(fr) .head-bar .lang-btn .lang-chevron,
  html:lang(fr) .head-bar .lang-btn svg.lang-chevron{
    width:16px !important;
    height:16px !important;
    min-width:16px !important;
    min-height:16px !important;
  }
}

/* =========================
   Override FR : 1025px -> 1100px
   En français, on passe déjà en mobile
   ========================= */
@media (min-width:1025px) and (max-width:1100px){
  html:lang(fr).mobile-nav-open,
  html:lang(fr) body.mobile-nav-open{
    overflow:auto !important;
    overscroll-behavior:auto !important;
  }

  html:lang(fr) body{
    --logo-y: 0px;
  }

  html:lang(fr) .head-top{
    display:none;
  }

  html:lang(fr) .head-bar{
    transform:none;
    box-shadow:
      0 12px 34px rgba(46,44,98,.22),
      0 0 0 1px rgba(230,231,255,.18);
  }

  html:lang(fr) .head-bar::before{
    display:none;
  }

  html:lang(fr) .head-bar.fixed{
    top:0;
    left:0;
    right:0;
  }

  html:lang(fr) .head-bar-inner{
    max-width:none;
    display:grid;
    grid-template-columns:64px 1fr 64px;
    align-items:center;
    gap:12px;
    min-height:92px;
    padding:calc(10px + env(safe-area-inset-top)) 16px 12px;
    justify-content:unset;
  }

  html:lang(fr) .main-nav{
    display:none;
  }

  html:lang(fr) .mobile-nav-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:64px;
    height:64px;
    padding:0;
    border:0;
    border-radius:999px;
    background:rgba(255,255,255,.12);
    box-shadow:inset 0 0 0 1px rgba(230,232,255,.28);
    cursor:pointer;
    justify-self:start;
    -webkit-tap-highlight-color:transparent;
  }

  html:lang(fr) .mobile-nav-toggle:hover{
    background:rgba(255,255,255,.18);
    box-shadow:inset 0 0 0 1px rgba(230,232,255,.32);
  }

  html:lang(fr) .mobile-nav-toggle:focus-visible{
    outline:2px solid rgba(230,232,255,.90);
    outline-offset:2px;
  }

  html:lang(fr) .mobile-nav-toggle__box{
    position:relative;
    width:24px;
    height:18px;
    display:block;
  }

  html:lang(fr) .mobile-nav-toggle__line{
    position:absolute;
    left:0;
    right:0;
    height:2.5px;
    border-radius:999px;
    background:#F7F7FF;
    transition:
      transform .28s cubic-bezier(.22,.61,.36,1),
      opacity .22s ease,
      top .28s cubic-bezier(.22,.61,.36,1);
  }

  html:lang(fr) .mobile-nav-toggle__line:nth-child(1){ top:0; }
  html:lang(fr) .mobile-nav-toggle__line:nth-child(2){ top:7.5px; }
  html:lang(fr) .mobile-nav-toggle__line:nth-child(3){ top:15px; }

  html:lang(fr) .site-header.is-mobile-nav-open .mobile-nav-toggle__line:nth-child(1){
    top:7.5px;
    transform:rotate(45deg);
  }

  html:lang(fr) .site-header.is-mobile-nav-open .mobile-nav-toggle__line:nth-child(2){
    opacity:0;
  }

  html:lang(fr) .site-header.is-mobile-nav-open .mobile-nav-toggle__line:nth-child(3){
    top:7.5px;
    transform:rotate(-45deg);
  }

  html:lang(fr) .mobile-brand{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    justify-self:center;
  }

  html:lang(fr) .mobile-brand img{
    display:block;
    width:auto;
    height:78px;
    max-width:min(220px, 54vw);
    object-fit:contain;
    filter:drop-shadow(0 8px 18px rgba(14,16,48,.18));
  }

  html:lang(fr) .lang-switch{
    position:relative;
    right:auto;
    top:auto;
    transform:none;
    width:64px;
    justify-self:end;
    margin-left:0;
    z-index:7100;
  }

  html:lang(fr) .lang-btn{
    width:64px;
    min-width:64px;
    justify-content:center;
    gap:6px;
    padding:9px 9px;
    border-radius:999px;
    background:rgba(255,255,255,.12);
    box-shadow:inset 0 0 0 1px rgba(230,232,255,.28);
  }

  html:lang(fr) .lang-btn:hover{
    background:rgba(255,255,255,.18);
    box-shadow:inset 0 0 0 1px rgba(230,232,255,.32);
  }

  html:lang(fr) .lang-flag,
  html:lang(fr) .lang-opt-flag{
    font-size:20px !important;
  }

  html:lang(fr) .head-bar .lang-btn .lang-chevron,
  html:lang(fr) .head-bar .lang-btn svg.lang-chevron{
    width:14px !important;
    height:14px !important;
    min-width:14px !important;
    min-height:14px !important;
  }

  html:lang(fr) .lang-menu{
    top:calc(100% + 10px);
    right:0;
    min-width:186px;
    max-width:min(78vw, 220px);
    padding:10px;
    border-radius:18px;
  }

  html:lang(fr) .mobile-nav-drawer{
    display:block;
    position:fixed;
    inset:0 auto 0 0;
    width:min(88vw, 360px);
    z-index:6800;

    background:rgba(255,255,255,.01);
    background-image:none;
    border:0;
    box-shadow:none;

    transform:translateX(-104%);
    transition:transform .32s cubic-bezier(.22,.61,.36,1);
    pointer-events:none;
  }

  html:lang(fr) .site-header.is-mobile-nav-open .mobile-nav-drawer{
    transform:translateX(0);
    pointer-events:none;
  }

  html:lang(fr) .mobile-nav-drawer__inner{
    height:auto;
    min-height:100%;
    overflow:visible;
    padding:
      calc(118px + env(safe-area-inset-top))
      18px
      calc(24px + env(safe-area-inset-bottom));
    overscroll-behavior:contain;
    pointer-events:none;
  }

  html:lang(fr) .mobile-nav-overlay{
    display:block;
    position:fixed;
    inset:0;
    z-index:6700;
    border:0;
    padding:0;
    margin:0;
    background:rgba(255,255,255,.015);
    -webkit-backdrop-filter:blur(5px);
    backdrop-filter:blur(5px);
    opacity:0;
    pointer-events:none;
    transition:opacity .24s ease;
    -webkit-tap-highlight-color:transparent;
  }

  html:lang(fr) .site-header.is-mobile-nav-open .mobile-nav-overlay{
    opacity:1;
    pointer-events:none;
  }

  html:lang(fr) .mobile-nav{
    display:flex;
    flex-direction:column;
    gap:14px;
    pointer-events:auto;
  }

  html:lang(fr) .mobile-nav__link,
  html:lang(fr) .mobile-acc__link,
  html:lang(fr) .mobile-acc__btn,
  html:lang(fr) .mobile-acc__panel,
  html:lang(fr) .mobile-nav__sublink{
    pointer-events:auto;
  }

  html:lang(fr) .mobile-nav__link{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:14px;
    padding:17px 18px;
    border-radius:18px;
    border:1px solid rgba(230,231,255,.36);
    background:radial-gradient(160% 200% at 50% 40%,
      #BFC3F3 0%, #8E94D8 38%, #595EA8 68%, #2E2C62 100%);
    box-shadow:
      0 8px 18px rgba(14,16,48,.10),
      inset 0 1px 0 rgba(255,255,255,.12);

    color:#111;
    text-decoration:none;
    text-align:left;

    font-family:'Bodoni Moda', serif;
    font-size:1.03rem;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
  }

  html:lang(fr) .mobile-nav__link:hover{
    transform:translateY(-2px);
  }

  html:lang(fr) .mobile-nav__link:active{
    transform:translateY(1px);
  }

  html:lang(fr) .mobile-acc{
    display:grid;
    gap:10px;
  }

  html:lang(fr) .mobile-acc__row{
    display:grid;
    grid-template-columns:minmax(0, 1fr) 64px;
    gap:10px;
  }

  html:lang(fr) .mobile-acc__link{
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    padding:17px 18px;
    border-radius:18px;
    border:1px solid rgba(230,231,255,.36);
    background:radial-gradient(160% 200% at 50% 40%,
      #BFC3F3 0%, #8E94D8 38%, #595EA8 68%, #2E2C62 100%);
    box-shadow:
      0 8px 18px rgba(14,16,48,.10),
      inset 0 1px 0 rgba(255,255,255,.12);

    color:#111;
    text-decoration:none;
    text-align:left;

    font-family:'Bodoni Moda', serif;
    font-size:1.03rem;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
    line-height:1.15;
  }

  html:lang(fr) .mobile-acc__link:hover{
    transform:translateY(-2px);
  }

  html:lang(fr) .mobile-acc__btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:64px;
    min-width:64px;
    padding:0;
    border:1px solid rgba(230,231,255,.36);
    border-radius:18px;
    background:radial-gradient(160% 200% at 50% 40%,
      #BFC3F3 0%, #8E94D8 38%, #595EA8 68%, #2E2C62 100%);
    box-shadow:
      0 8px 18px rgba(14,16,48,.10),
      inset 0 1px 0 rgba(255,255,255,.12);
    color:#111;
    cursor:pointer;
  }

  html:lang(fr) .mobile-acc__btn:hover{
    transform:translateY(-2px);
  }

  html:lang(fr) .mobile-acc__btn:active,
  html:lang(fr) .mobile-acc__link:active{
    transform:translateY(1px);
  }

  html:lang(fr) .mobile-acc__chev{
    flex:0 0 auto;
    font-size:18px;
    opacity:.9;
    transition:transform .2s ease, opacity .2s ease;
  }

  html:lang(fr) .mobile-acc.is-open .mobile-acc__chev{
    transform:rotate(180deg);
    opacity:1;
  }

  html:lang(fr) .mobile-acc__panel{
    display:grid;
    gap:8px;
    padding:8px 0 0;
    background:transparent;
    border:0;
    box-shadow:none;
  }

  html:lang(fr) .mobile-acc__panel[hidden]{
    display:none;
  }

  html:lang(fr) .mobile-nav__sublink{
    display:flex;
    align-items:center;
    width:100%;
    padding:10px 12px;
    border-radius:12px;
    background:rgba(242,243,255,.94);
    border:1px solid rgba(46,44,98,.10);
    box-shadow:
      0 8px 18px rgba(14,16,48,.08),
      inset 0 1px 0 rgba(255,255,255,.22);
    color:rgba(46,44,98,.92);
    text-decoration:none;
    text-align:left;

    font-family:"Big Caslon","Bodoni Moda",var(--ff-serif),Georgia,serif;
    font-weight:800;
    font-size:.92rem;
    letter-spacing:.08em;
    text-transform:uppercase;
    line-height:1.35;
    white-space:normal;

    transition:background .18s ease, transform .18s ease;
  }

  html:lang(fr) .mobile-nav__sublink:hover,
  html:lang(fr) .mobile-nav__sublink:focus-visible{
    background:rgba(233,235,252,.98);
  }

  html:lang(fr) .mobile-nav__sublink:active{
    transform:translateY(1px);
  }
}

@media (prefers-reduced-motion:reduce){
  #bar-spacer,
  .head-bar-inner,
  .head-bar::before,
  .mobile-nav-drawer,
  .mobile-nav-overlay,
  .mobile-nav-toggle__line,
  .mobile-nav__sublink{
    transition:none!important;
  }

  .mobile-nav > *,
  .mobile-acc__panel .mobile-nav__sublink{
    animation:none!important;
  }

  .site-header.is-mobile-nav-open .mobile-nav > *,
  .mobile-acc.is-open .mobile-acc__panel .mobile-nav__sublink{
    opacity:1!important;
    transform:none!important;
  }
}