/* Shared navigation: the home and every inner page load this same stylesheet. */
/* Component defaults also isolate it from article, landing-page and legacy styles. */
@font-face{font-family:Jakarta;src:url('../fonts/PlusJakartaSans-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Jakarta;src:url('../fonts/PlusJakartaSans-SemiBold.woff2') format('woff2');font-weight:600 700;font-display:swap}
:where([data-header],#mobile-menu){--heading:44px;--gutter:clamp(32px,3.25vw,60px);--glass-tint:rgb(255 255 255 / 10%);--glass-hover:rgb(255 255 255 / 16%);--glass-sheen:linear-gradient(125deg,rgb(255 255 255 / 10%),transparent 45%,rgb(255 255 255 / 3%));--glass-filter:blur(24px) saturate(145%);--glass-shadow:0 12px 32px rgb(0 0 0 / 14%)}
:where([data-header],#mobile-menu) :focus-visible{outline:2px solid #336eff;outline-offset:5px;border-radius:10px}
:where([data-header],#mobile-menu){font-family:Jakarta,system-ui,sans-serif;font-size:16px;font-weight:400;line-height:1.65;letter-spacing:normal;word-spacing:normal;--ink:#181a16;--white:#fff;--radius:10px;--ease:cubic-bezier(.22,1,.36,1)}
:where([data-header],#mobile-menu) *{box-sizing:border-box}
:where([data-header],#mobile-menu) a{color:inherit;text-decoration:none}
:where([data-header],#mobile-menu) button{font:inherit;color:inherit;cursor:pointer;border:0;padding:0;background:none}
:where([data-header],#mobile-menu) svg{display:block;flex-shrink:0;max-width:100%}
/* Legacy campaign sheets set global !important type rules; keep them outside this component. */
:is([data-header],#mobile-menu) :is(a,button,summary,p,span,h2){font-family:Jakarta,system-ui,sans-serif!important}
.header[data-header] .nav-panel-heading h2{font:400 var(--heading,44px)/1.1 Jakarta,system-ui,sans-serif!important;letter-spacing:-.05em!important;word-spacing:.025em;margin:0;text-transform:none;color:#fff}
.header .header-panel-group>p,#mobile-menu .header-panel-group>p{font-weight:400;line-height:1.5;text-align:left}
html:has(body.nav-open),body.nav-open,body:has(#mobile-menu[open]){overflow:hidden}
body.nav-open :is(.biux-cta-teaser,.biux-project-cta),body:has(#mobile-menu[open]) :is(.biux-cta-teaser,.biux-project-cta){visibility:hidden!important;pointer-events:none!important}
#mobile-menu{background-color:var(--glass-tint,rgb(255 255 255 / 10%));background-image:var(--glass-sheen);backdrop-filter:var(--glass-filter,blur(24px));-webkit-backdrop-filter:var(--glass-filter,blur(24px));border:0}
#mobile-menu .icon-button{display:grid;place-items:center;width:50px;height:50px;border:1px solid rgb(255 255 255 / 25%);border-radius:var(--radius)}
#mobile-menu .icon-button svg{width:24px;height:24px}
#mobile-menu>.button{display:flex;align-items:center;justify-content:center;min-height:60px;padding:17px 27px;border:0;border-radius:var(--radius);background:#fff;color:#181a16;font-size:18px;font-weight:600;line-height:1.4;text-align:center}
@keyframes biux-menu-in{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}
#site-quote-fallback{width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:32px;background:#fff;color:#181a16;border:0;border-radius:10px;font:400 16px/1.65 Jakarta,system-ui,sans-serif}
#site-quote-fallback::backdrop{background:rgb(0 0 0 / 65%)}
#site-quote-fallback:not([open]){display:none}
#site-quote-fallback .devis-form{display:grid;gap:16px;margin:24px 0 0}
#site-quote-fallback .devis-field{display:grid;gap:6px}
#site-quote-fallback :is(input,textarea){width:100%;box-sizing:border-box;padding:12px;border:1px solid #d5d5d5;border-radius:10px;font:inherit;background:#fff;color:#181a16}
#site-quote-fallback button{font:inherit;border-radius:10px;padding:12px 18px;cursor:pointer}
#site-quote-fallback .devis-submit{background:#181a16;color:#fff;border:0}
#site-quote-fallback .devis-hp{display:none}

.header-panel,.menu-toggle{background-color:var(--glass-tint);background-image:var(--glass-sheen);backdrop-filter:var(--glass-filter);-webkit-backdrop-filter:var(--glass-filter);border:0;border-radius:var(--radius);box-shadow:var(--glass-shadow)}
.menu-toggle:hover{background-color:var(--glass-hover)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.header-panel,.menu-toggle{background-color:rgb(35 40 45 / 85%);color:#fff}}

/* Do not retain the opacity animation after entry: a forwards fill would keep
   a backdrop root and stop the glass children from blurring the page behind. */
.header{--nav-enter-offset:12px;position:fixed;z-index:100;top:12px;left:var(--gutter);right:var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:32px;height:66px;padding:0;color:#fff;border:0;border-radius:var(--radius);transition:color .45s var(--ease),text-shadow .45s var(--ease);animation:header-in .8s var(--ease) backwards}
.header-controls{display:flex;align-items:center;gap:32px;margin-left:auto;border-radius:var(--radius)}
.header>.brand,.header>.header-controls{position:relative;height:66px;border-radius:var(--radius);background-color:rgb(255 255 255 / 0%);box-shadow:0 6px 24px rgb(0 0 0 / 0%);transition:background-color .65s var(--ease),box-shadow .65s var(--ease),left .65s var(--ease),right .65s var(--ease)}
.header>.brand{display:grid;place-items:center;padding-inline:18px;left:calc(-1 * var(--nav-enter-offset))}
.header>.header-controls{padding-inline:24px 8px;right:calc(-1 * var(--nav-enter-offset))}
.header.is-scrolled{padding:0;color:#fff;text-shadow:none;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.header.is-scrolled>.brand,.header.is-scrolled>.header-controls{background:none;border-radius:var(--radius);height:66px;box-shadow:none}
/* Match the appointment teaser's charcoal glass, without its decorative border.
   Only the decorative surface is blurred: header-controls must not become a
   containing block for its viewport-fixed dropdowns. */
.header>.brand::before,.header>.header-controls::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  border:0;
  border-radius:inherit;
  background-color:rgb(18 18 18 / 96%);
  background-image:var(--glass-sheen);
  backdrop-filter:var(--glass-filter);
  -webkit-backdrop-filter:var(--glass-filter);
  box-shadow:0 20px 60px rgb(0 0 0 / 24%);
  opacity:0;
  transition:opacity .65s var(--ease);
}
.header.is-scrolled>.brand::before,.header.is-scrolled>.header-controls::before{opacity:1}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .header>.brand::before,.header>.header-controls::before{background-color:#121212}
}
.header.is-scrolled>.brand{left:0}.header.is-scrolled>.header-controls{right:0}
.header.is-scrolled .header-cta{box-shadow:none}
.header .header-cta{box-shadow:inset 0 0 0 1px rgb(0 0 0 / 0%);transition:background-color .2s,box-shadow .65s var(--ease)}
.header.is-scrolled .menu-toggle{background:none;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}.header.is-on-light:not(.is-scrolled){color:var(--ink);text-shadow:none}.header:not(.is-on-light):not(.is-scrolled){text-shadow:0 1px 6px rgb(0 0 0 / 35%)}
.brand{display:block;flex-shrink:0}.brand svg{width:110px;height:39px}.desktop-nav{display:flex;gap:clamp(20px,2.5vw,45px);align-items:center;margin-left:auto}.desktop-nav>a{font-size:18px;white-space:nowrap;transition:opacity .2s}.desktop-nav a:hover{opacity:.7}.header-cta{display:flex;gap:28px;align-items:center;justify-content:center;padding:14px 22px;border-radius:var(--radius);background:#fff;color:#111;font-size:18px;font-weight:600;white-space:nowrap;transition:background .2s}.header-cta{text-shadow:none}.header-cta svg{width:18px;height:18px}.header-cta:hover{background:#e7e8e0}.menu-toggle{display:none}
.brand--draw svg{overflow:visible}.brand--draw :is(path,polygon){stroke:currentColor;stroke-width:1.15px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:0;stroke-opacity:0;fill-opacity:1}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.brand--draw:is(:hover,:focus-visible) :is(path,polygon){animation:logo-draw .38s ease-out var(--logo-draw-delay,0ms) both}}
@keyframes logo-draw{0%{stroke-dashoffset:1;stroke-opacity:1;fill-opacity:0}70%{stroke-dashoffset:0;stroke-opacity:1;fill-opacity:0}100%{stroke-dashoffset:0;stroke-opacity:0;fill-opacity:1}}
.header-menu>summary{display:flex;align-items:center;gap:9px;min-height:44px;cursor:pointer;list-style:none;white-space:nowrap;font-size:18px;transition:opacity .2s}
.header-menu>summary::-webkit-details-marker,.mobile-nav-group>summary::-webkit-details-marker{display:none}
.header-menu>summary:hover{opacity:.7}.menu-chevron{width:13px;height:13px;transition:transform .2s}.header-menu[open]>summary .menu-chevron,.mobile-nav-group[open]>summary .menu-chevron{transform:rotate(180deg)}
.header.has-open-menu{animation:none;transform:none;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}
.header.has-open-menu>.brand{visibility:hidden;pointer-events:none}
.header-panel{background-color:#1e1e1e;backdrop-filter:none;-webkit-backdrop-filter:none}
.header.has-open-menu{color:#fff;text-shadow:none}
/* The fullscreen panel sits behind the two glass surfaces, not inside them. */
.header-panel{position:fixed;inset:0;z-index:-2;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);grid-template-rows:minmax(0,1fr);gap:clamp(44px,5vw,96px);width:100%;height:100dvh;overflow:hidden;overscroll-behavior:contain;padding:148px var(--gutter) 32px;color:#fff;text-shadow:none;border-radius:0}
.nav-panel-watermark{display:flex;align-items:flex-end;align-self:stretch;min-height:0;min-width:0;padding-bottom:4px;pointer-events:none;user-select:none;color:rgb(255 255 255 / 15%)}
.nav-panel-watermark svg{width:100%;height:auto;max-width:none;overflow:visible}
.nav-panel-watermark :is(path,polygon){fill:none;stroke:currentColor;stroke-width:1px;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.nav-panel-viewport{display:grid;grid-template: minmax(0,1fr) / minmax(0,1fr);min-width:0;min-height:0;overflow:hidden}
.nav-panel-content{grid-area:1 / 1;min-width:0;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgb(255 255 255 / 20%) transparent;padding:0 12px 28px 0}
.nav-panel-outgoing{pointer-events:none;user-select:none}
.nav-panel-heading{margin-bottom:32px}.nav-panel-heading h2{line-height:1.1;font-weight:400;letter-spacing:-.05em}
.nav-panel-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 32px}
.nav-panel-links>.header-panel-group:first-child{grid-column:1 / -1}
.header-panel-group>p{margin:0 0 18px;font-size:12px;line-height:1.5;letter-spacing:.06em;text-transform:uppercase;color:inherit;opacity:.5}
/* Every group uses the former "Par objectif" scale, including first groups and Agence. */
.desktop-nav .header-panel-group>a{display:flex;align-items:center;min-height:48px;border-bottom:1px solid rgb(255 255 255 / 13%);padding-block:12px;font-size:clamp(20px,1.5vw,28px);font-weight:400;white-space:normal;line-height:1.3;letter-spacing:-.035em;transition:color .25s,padding-left .4s var(--ease)}
.desktop-nav .header-panel-group>a:hover{opacity:1;color:rgb(255 255 255 / 65%);padding-left:8px}
.nav-panel-close{position:fixed;top:96px;right:var(--gutter);display:grid;place-items:center;width:44px;height:44px;color:#fff;border:0;border-radius:var(--radius);transition:background .25s}.nav-panel-close svg{width:28px;height:28px}.nav-panel-close:hover{background:rgb(255 255 255 / 10%)}
/* One button scale for the navbar and the article sidebar, without sharing nav visibility rules. */
.header-cta,.biux-inner .article-toc-sticky .article-toc-cta{display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:0;min-height:0;padding:14px 22px;font-family:Jakarta,system-ui,sans-serif;font-size:18px;font-weight:600;line-height:1.65;letter-spacing:normal;word-spacing:normal;text-transform:none;border-radius:var(--radius);white-space:nowrap}.mobile-menu{display:none}@keyframes header-in{from{opacity:0}to{opacity:1}}

@media(max-width:1100px){
  :where([data-header],#mobile-menu){--heading:38px;--gutter:30px}
  .desktop-nav{gap:20px}.header{gap:24px}.header-cta{padding:14px 18px;gap:14px;font-size:18px}}
@media(max-width:1100px){
  .header>.brand,.header>.header-controls{height:60px}
  .desktop-nav,.header-cta{display:none}.header{--nav-enter-offset:8px;top:15px;height:60px}.header-controls{gap:24px}.header.is-scrolled>.brand,.header.is-scrolled>.header-controls{height:60px}.header>.header-controls{padding-inline:8px}.header>.brand{padding-inline:14px}.brand svg{width:96px;height:34px}.menu-toggle{display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;width:45px;height:45px;color:inherit}.menu-toggle>span{height:1px;width:18px;background:currentColor}
  .mobile-menu[open]{display:flex;flex-direction:column;position:fixed;inset:0;max-height:100svh;width:100%;max-width:none;height:100svh;margin:0;border-radius:var(--radius);color:#fff;padding:23px 25px;animation:biux-menu-in .25s var(--ease)}.mobile-menu::backdrop{background:rgb(0 0 0 / 65%)}.mobile-menu-top{display:flex;justify-content:space-between;align-items:center}.mobile-menu .brand svg{width:102px;height:36px}.mobile-menu nav{display:flex;flex-direction:column;gap:16px;margin:auto 0}.mobile-menu nav a{font-size:18px;letter-spacing:0;display:flex;gap:20px;align-items:center}.mobile-menu nav a span{font-size:10px;letter-spacing:0;color:#9ba491}.mobile-menu-caption{margin-top:23px;font-size:10px;color:#bcc3b4}}
@media(max-width:600px){
  :where([data-header],#mobile-menu){--heading:32px;--gutter:18px}
  .header{top:13px;left:12px;right:12px}}
@media(max-width:1100px){
  .mobile-menu-top{flex-shrink:0}.mobile-menu>nav{margin:32px 0;flex:1;min-height:0;overflow-y:auto}.mobile-menu>.button{flex-shrink:0;font-size:18px}
  #mobile-menu[open]{padding-bottom:max(23px,env(safe-area-inset-bottom))}
  .mobile-nav-group>summary{display:flex;align-items:center;gap:20px;cursor:pointer;list-style:none;font-size:18px;letter-spacing:0;line-height:1.4;padding-block:4px}
  .mobile-nav-number{font-size:10px;letter-spacing:0;color:#9ba491}.mobile-nav-group .menu-chevron{margin-left:auto;flex-shrink:0}
  .mobile-nav-children{padding:18px 0 12px 31px}.mobile-nav-children .header-panel-group+.header-panel-group{margin-top:24px}.mobile-nav-children .header-panel-group>p{font-size:10px}
  .mobile-menu .mobile-nav-children a{font-size:18px;letter-spacing:-.01em;line-height:1.5;min-height:40px;padding-block:8px}}
@media(min-width:1101px) and (max-width:1350px){
  .header-panel{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:40px;padding-top:144px}
  .nav-panel-links{gap:28px 24px}.desktop-nav .header-panel-group>a{font-size:20px}}
@media(prefers-reduced-motion:reduce){:where([data-header],#mobile-menu),:where([data-header],#mobile-menu) *{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
