/* ==========================================================================
   En-tête : fin, collant, presque invisible en haut de page ; noir léger,
   flou discret et filet ultra-fin une fois la page défilée.
   Maquette : logo x 80, menu centré, lien Contact à droite. Menu agrandi
   (demande de Yann, 01/10) : texte 13 px minimum, jamais plus petit.
   Repère « vous êtes ici » (.hdr__here) collé au logo, derrière un trait
   rouge : nom de la page, ou de la section sur l'accueil (header.js).
   ========================================================================== */
.hdr{position:fixed;inset:0 0 auto;z-index:900;height:var(--hdr);transition:background-color .45s var(--ease),border-color .45s var(--ease),backdrop-filter .45s var(--ease)}
.hdr::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line);opacity:0;transition:opacity .45s var(--ease)}
.hdr.is-scrolled,.hdr.is-open{background:rgba(6,6,6,.78);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2)}
.hdr.is-scrolled::after{opacity:1}
.hdr__in{height:100%;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);column-gap:max(calc(var(--mins) * 20px),calc(14 * var(--m)));align-items:center;padding:0 calc(81 * var(--m)) 0 calc(80 * var(--m))}

.hdr__id{justify-self:start;display:flex;align-items:center;min-width:0;max-width:100%}
.hdr__logo{display:block;flex:none;line-height:0}
.hdr__logo img{height:max(calc(var(--mins) * 30px),calc(22.5 * var(--m)));width:auto}

/* vous êtes ici : trait rouge incliné, puis le nom en capitales mono.
   Le texte est écrit en dur par tools/sync-partials.py ; header.js l'enveloppe
   dans .hdr__here-t pour le faire monter quand il change (accueil). */
.hdr__here{position:relative;display:block;flex:0 1 auto;min-width:0;margin-left:max(calc(var(--mins) * 4px),calc(3 * var(--m)));padding:.3em 0 .3em max(calc(var(--mins) * 22px),calc(13 * var(--m)));overflow:hidden;
  font-family:var(--f-mono);font-weight:500;font-size:max(calc(var(--mins) * 12px),calc(6.2 * var(--m)));letter-spacing:.14em;text-transform:uppercase;color:var(--ink);line-height:1.3;white-space:nowrap;text-overflow:ellipsis}
.hdr__here::before{content:"";position:absolute;left:max(calc(var(--mins) * 8px),calc(5 * var(--m)));top:.2em;bottom:.2em;width:1.5px;background:var(--red);transform:skewX(-22deg)}
.hdr__here-t{display:block;overflow:hidden;text-overflow:ellipsis}
.hdr__here:empty{display:none}
html.js .hdr__here{animation:hFade .8s var(--ease-out) .35s both}

.nav{display:flex;align-items:center;gap:max(calc(var(--mins) * 34px),calc(26 * var(--m)))}
.nav a,.nav__toggle{position:relative;font-family:var(--f-mono);font-weight:500;font-size:max(calc(var(--mins) * 13px),calc(7 * var(--m)));letter-spacing:.13em;text-transform:uppercase;color:var(--ink-2);padding:10px 0;transition:color .3s var(--ease)}
.nav > a::after,.nav__group > a::after{content:"";position:absolute;left:50%;bottom:2px;width:16px;height:2px;background:var(--red);transform:translateX(-50%) scaleX(0);transform-origin:center;transition:transform .35s var(--ease)}
.nav a:hover,.nav__toggle:hover{color:var(--ink)}
.nav a[aria-current="page"],.nav a.is-parent{color:var(--ink)}
.nav > a[aria-current="page"]::after,.nav > a.is-parent::after,.nav__group > a[aria-current="page"]::after,.nav__group > a.is-parent::after{transform:translateX(-50%) scaleX(1)}

/* sous-menu Expertises */
.nav__group{position:relative;display:flex;align-items:center;gap:4px}
.nav__toggle{display:grid;place-items:center;width:22px;height:30px;padding:0}
.nav__toggle svg{width:14px;height:14px;transition:transform .35s var(--ease)}
.nav__menu{position:absolute;left:50%;top:calc(100% + 14px);width:max(330px,calc(190 * var(--m)));padding:10px;display:grid;gap:2px;background:rgba(9,9,10,.97);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--line-2);border-top:2px solid var(--red);box-shadow:0 24px 60px rgba(0,0,0,.6),0 0 40px -10px rgba(246,43,62,.25);opacity:0;visibility:hidden;transform:translate(-50%,8px);transition:opacity .3s var(--ease),transform .35s var(--ease),visibility 0s linear .35s}
.nav__menu::before{content:"";position:absolute;left:0;right:0;top:-16px;height:16px}
.nav__group:not(.is-closed):hover .nav__menu,.nav__group:not(.is-closed):focus-within .nav__menu,.nav__group.is-open .nav__menu{opacity:1;visibility:visible;transform:translate(-50%,0);transition:opacity .3s var(--ease),transform .35s var(--ease)}
.nav__group:not(.is-closed):hover .nav__toggle svg,.nav__group.is-open .nav__toggle svg{transform:rotate(180deg)}
.nav__menu a{display:grid;grid-template-columns:34px 1fr;align-items:baseline;gap:0 10px;padding:12px 14px;border-radius:2px;letter-spacing:0;text-transform:none;font-family:var(--f-text);transition:background-color .25s var(--ease)}
.nav__menu a small{grid-row:span 2;font-family:var(--f-mono);font-size:11px;color:var(--red);letter-spacing:.08em}
.nav__menu a b{font-family:var(--f-title);font-weight:700;font-size:19px;line-height:1.1;text-transform:uppercase;color:var(--ink);letter-spacing:.005em}
.nav__menu a span{font-size:13px;color:var(--ink-3);line-height:1.4}
.nav__menu a:hover,.nav__menu a:focus-visible{background:rgba(246,43,62,.09)}
.nav__menu a[aria-current="page"]{background:rgba(246,43,62,.12)}
.nav__menu a[aria-current="page"] b{color:var(--red)}

/* Contact : un lien sobre à contour fin (plus de gros bouton rouge) */
.hdr__contact{justify-self:end;display:inline-flex;align-items:center;gap:10px;height:max(calc(var(--mins) * 40px),calc(23 * var(--m)));padding:0 max(calc(var(--mins) * 18px),calc(11 * var(--m)));border:1px solid var(--line-2);border-radius:1px;
  font-family:var(--f-mono);font-weight:500;font-size:max(calc(var(--mins) * 13px),calc(7 * var(--m)));letter-spacing:.13em;text-transform:uppercase;color:var(--ink);white-space:nowrap;transition:border-color .3s var(--ease),background-color .3s var(--ease),color .3s var(--ease)}
.hdr__contact svg{width:1.25em;height:1.25em;color:var(--red);flex:none}
.hdr__contact:hover,.hdr__contact:focus-visible{border-color:rgba(246,43,62,.75);background:rgba(246,43,62,.08)}
.hdr__contact[aria-current="page"]{border-color:var(--red);background:rgba(246,43,62,.14)}

.burger{display:none;justify-self:end;width:44px;height:44px;position:relative}
.burger span{position:absolute;left:11px;right:11px;height:1.5px;background:var(--ink);transition:transform .35s var(--ease),opacity .2s}
.burger span:nth-child(1){top:17px}
.burger span:nth-child(2){top:26px;left:19px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(4.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){transform:translateY(-4.5px) rotate(-45deg);left:11px}

/* Menu plein écran (tablette, mobile) */
.mnav{position:fixed;inset:0;z-index:890;background:rgba(6,6,6,.97);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;flex-direction:column;justify-content:flex-start;padding:96px 28px 40px;overflow-y:auto;opacity:0;visibility:hidden;transition:opacity .4s var(--ease),visibility 0s linear .4s}
.mnav.is-open{opacity:1;visibility:visible;transition:opacity .4s var(--ease)}
.mnav > ol > li{border-top:1px solid var(--line)}
.mnav > ol > li:last-child{border-bottom:1px solid var(--line)}
.mnav > ol > li > a{display:flex;align-items:baseline;gap:16px;padding:14px 0;font-family:var(--f-title);font-weight:700;font-size:clamp(28px,7.4vw,44px);line-height:1;text-transform:uppercase}
/* plus de numéros dans le menu : la seule numérotation est celle des sections de l'accueil
   (la règle couvre une page pas encore resynchronisée par tools/sync-partials.py) */
.mnav a small{display:none}
.mnav a[aria-current="page"]{color:var(--red)}
.mnav > ol > li > a[aria-current="page"]::after,.mnav > ol > li > a.is-parent::after{content:"";align-self:center;width:22px;height:2px;margin-left:auto;background:var(--red)}
.mnav__sub{display:grid;gap:2px;padding:0 0 14px 20px}
.mnav__sub a{display:flex;align-items:center;gap:10px;font-family:var(--f-mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);padding:7px 0}
.mnav__sub a::before{content:"";width:10px;height:1px;background:var(--line-2);flex:none}
.mnav__sub a[aria-current="page"]::before{background:var(--red);width:18px}
/* centré par les marges automatiques (et non justify-content:center) : quand le menu
   dépasse l'écran (téléphone en paysage), il part du haut et tout reste atteignable */
.mnav > ol{margin-top:auto}
.mnav__mail{margin-top:26px;margin-bottom:auto;font-family:var(--f-mono);font-size:13px;letter-spacing:.1em;color:var(--ink-2)}

/* petits écrans d'ordinateur : on resserre le menu (jamais sous 12,5 px) pour
   laisser au repère la place d'un nom entier */
@media (min-width:1200px) and (max-width:1365px){
  .nav{gap:28px}
  .nav a,.nav__toggle{font-size:12.5px}
  .hdr__here{font-size:11px;letter-spacing:.12em}
}
@media (min-width:1200px) and (max-width:1439px){
  .hdr__here{font-size:11px;letter-spacing:.04em;padding-left:18px}
  .hdr__here::before{left:6px}
}
@media (min-width:1200px) and (max-width:1299px){
  .nav{gap:22px}
  .hdr__in{padding:0 calc(60 * var(--m)) 0 calc(62 * var(--m))}
}
@media (min-width:1200px) and (max-width:1239px){
  .nav{gap:18px}
}
@media (max-width:1199px){
  .hdr__in{grid-template-columns:minmax(0,1fr) auto auto;gap:14px;padding:0 20px}
  .nav{display:none}
  .burger{display:block}
  .hdr__here{font-size:12px}
}
@media (max-width:640px){
  .hdr__contact{display:none}
  .hdr__in{grid-template-columns:minmax(0,1fr) auto}
  .hdr__logo img{height:27px}
  .hdr__here{margin-left:2px;padding-left:20px;font-size:11px;letter-spacing:.12em}
  .hdr__here::before{left:8px}
}
@media (max-width:420px){
  .hdr__in{gap:6px}
  .hdr__here{font-size:10px;letter-spacing:.04em;padding-left:15px}
  .hdr__here::before{left:5px}
}
@media (max-width:359px){
  .hdr__in{padding:0 14px;gap:6px}
  .hdr__logo img{height:24px}
}
html.calage .nav{display:flex!important}html.calage .burger{display:none!important}html.calage .hdr__in{grid-template-columns:1fr auto 1fr!important;padding:0 calc(81 * var(--m)) 0 calc(80 * var(--m))!important}
html.calage .hdr__here{display:none!important}
