 /* --- DÉFILEMENT DOUX (Lenis) --- */
 html.lenis, html.lenis body { height: auto; }
 .lenis.lenis-smooth { scroll-behavior: auto !important; }
 .lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
 .lenis.lenis-stopped { overflow: hidden; }

 .ton-logo img {
     transition: filter 0.3s ease;
 }

 @media (prefers-color-scheme: dark) {
     .ton-logo img {
         filter: brightness(0) invert(1) !important;
     }
 }

 body { padding-top: 120px !important; }
 body.home { padding-top: 320px !important; }

 body::before {
     content: '';
     position: fixed;
     top: 0;
     left: 0;
     width: 100%;
     height: 80px;
     background-color: var(--imp-text-main);
     z-index: 99997; 
     opacity: 0;
     visibility: hidden;
     transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.8s ease;
     pointer-events: none;
     backdrop-filter: blur(8px);
     -webkit-backdrop-filter: blur(8px);
 }

 body.is-stuck::before {
     opacity: 0.90;
     visibility: visible;
 }

 body.is-stuck .ton-logo img {
     filter: brightness(0) invert(1) !important;
     transition: filter 0.8s cubic-bezier(0.4, 0, 0.2, 1) !important;
 }

 @media (prefers-color-scheme: dark) {
     body.is-stuck .ton-logo img {
         filter: brightness(0) invert(0) !important;
     }
 }

 body.menu-open::before {
     opacity: 0 !important;
     visibility: hidden !important;
 }

 /* --- STYLES LOGO D'ORIGINE --- */
 .ton-logo {
     position: fixed !important;
     top: 40px !important; 
     left: 50% !important;
     width: 100% !important;
     z-index: 99999 !important;
     transform-origin: top left !important;
     transition: transform 0.4s cubic-bezier(0.2, 1, 0.3, 1), max-width 0.4s cubic-bezier(0.2, 1, 0.3, 1), left 0.4s cubic-bezier(0.2, 1, 0.3, 1), top 0.4s cubic-bezier(0.2, 1, 0.3, 1), opacity 0.3s ease, visibility 0.3s ease !important;
     will-change: transform, left, top;
 }
 .ton-logo img { width: 100% !important; height: auto !important; }

 body.home .ton-logo {
     max-width: min(1060px, 85vw) !important;
     transform: translateX(-50%) translateZ(0) !important;
 }

 /* --- ACCUEIL : logo, menu et bandeau animés au même rythme que la page (0.8s) --- */
 body.home .ton-logo {
     transition: transform 0.8s cubic-bezier(0.65, 0, 0.35, 1), max-width 0.8s cubic-bezier(0.65, 0, 0.35, 1), width 0.8s cubic-bezier(0.65, 0, 0.35, 1), left 0.8s cubic-bezier(0.65, 0, 0.35, 1), top 0.8s cubic-bezier(0.65, 0, 0.35, 1), opacity 0.3s ease, visibility 0.3s ease !important;
 }
 body.home .mon-menu-impolie {
     transition: top 0.8s cubic-bezier(0.65, 0, 0.35, 1), opacity 0.3s ease, visibility 0.3s ease !important;
 }
 body.home::before {
     transition: opacity 0.8s cubic-bezier(0.65, 0, 0.35, 1), visibility 0.8s ease;
 }

 body.home.is-stuck .ton-logo,
 body:not(.home).is-stuck .ton-logo {
     width: 205px !important;
     max-width: 205px !important;
     left: max(20px, calc((100vw - 1200px) / 2 + 15px)) !important;
     top: 10px !important;
     transform: none !important;
 }

 body:not(.home) .ton-logo {
     width: 205px !important;
     max-width: 205px !important;
     left: max(20px, calc((100vw - 1200px) / 2 + 15px)) !important;
     top: 55px !important;
     transform: none !important;
 }

 @media (min-width: 992px) {
     body.is-stuck .ton-logo {
         transform: translateX(-25px) !important;
     }
 }

 .mon-menu-impolie {
     position: fixed !important;
     top: 45px !important; 
     right: max(15px, calc((100vw - 1200px) / 2)) !important;
     z-index: 99999 !important;
     transition: top 0.4s cubic-bezier(0.2, 1, 0.3, 1), opacity 0.3s ease, visibility 0.3s ease !important;
     will-change: top;
 }

 body.home .mon-menu-impolie {
     top: 30px !important;
 }

 body.home.is-stuck .mon-menu-impolie,
 body:not(.home).is-stuck .mon-menu-impolie {
     top: 8px !important;
 }

 body:not(.home) .mon-menu-impolie {
     top: 45px !important;
 }

 button.imp-nav-toggle {
     position: relative; 
     background: transparent !important; 
     border: none !important;
     color: transparent !important; 
     width: 65px; height: 65px; 
     cursor: pointer;
     display: flex; flex-direction: column; justify-content: center; align-items: center; 
     gap: 9px; 
     padding: 0; border-radius: 0 !important;
     transition: transform 0.3s ease !important;
     -webkit-tap-highlight-color: transparent !important;
     outline: none !important;
     box-shadow: none !important;
 }

 button.imp-nav-toggle::before,
 button.imp-nav-toggle::after { display: none !important; }

 button.imp-nav-toggle:active,
 button.imp-nav-toggle:focus,
 button.imp-nav-toggle:hover {
     background-color: transparent !important;
     background: transparent !important;
     outline: none !important;
     box-shadow: none !important;
     border: none !important;
 }

 .imp-bar { 
     width: 44px; 
     height: 5px; 
     background-color: var(--imp-text-main) !important; 
     transition: transform 0.3s ease, background-color 0.3s ease, opacity 0.3s ease, width 0.3s ease, height 0.3s ease; 
     border-radius: 0 !important; 
     display: block !important;
     transform-origin: center center;
 }

 body.is-stuck .imp-bar {
     background-color: var(--imp-bg-main) !important;
 }
 @media (prefers-color-scheme: dark) {
     body.is-stuck .imp-bar {
         background-color: #111111 !important;
     }
 }

 @media (hover: hover) and (pointer: fine) {
     button.imp-nav-toggle:hover .imp-bar:nth-child(1) {
         transform: translateY(14px) rotate(90deg);
         width: 30px;
         height: 6px;
     }
     button.imp-nav-toggle:hover .imp-bar:nth-child(2) {
         opacity: 0;
         transform: scale(0);
     }
     button.imp-nav-toggle:hover .imp-bar:nth-child(3) {
         transform: translateY(-12px);
         width: 6px;
         height: 6px;
     }
 }

 body.menu-open .mon-menu-impolie,
 body.menu-open .ton-logo {
     opacity: 0 !important; visibility: hidden !important; pointer-events: none !important;
 }

 .imp-menu-overlay {
     position: fixed; inset: 0; 
     background-image: linear-gradient(#111111, #111111) !important; 
     background-color: #111111 !important;
     z-index: 100000; display: flex; align-items: center; justify-content: flex-start; 
     padding-left: 10vw; visibility: hidden; opacity: 0; 
     transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1); overflow-y: auto; overscroll-behavior: none; 
 }
 .imp-menu-overlay.active { visibility: visible; opacity: 1; }

 .imp-menu-overlay .imp-close-btn { 
     position: absolute; top: 20px; right: 30px; font-size: 50px;
     background-image: linear-gradient(#ffffff, #ffffff) !important;
     -webkit-background-clip: text !important; background-clip: text !important;
     color: transparent !important; -webkit-text-fill-color: transparent !important;
     background-color: transparent !important; border: none !important; cursor: pointer; 
     transition: -webkit-text-fill-color 0.3s ease, transform 0.3s ease; outline: none; padding: 10px; z-index: 1000001; opacity: 1 !important;
 }
 .imp-menu-overlay .imp-close-btn:hover { -webkit-text-fill-color: #aaaaaa !important; transform: scale(1.1); }

 .imp-menu-links { list-style: none; padding: 0; text-align: left; margin: 0; width: 100%; }
 .imp-menu-links > li { margin-bottom: 5px; background: transparent !important; }

 .imp-menu-links a {
     position: relative; font-size: clamp(35px, 7vw, 90px); font-weight: 900; 
     font-family: 'Canon Grotesque', sans-serif !important;
     background: transparent !important;
     background-image: none !important;
     -webkit-background-clip: initial !important; background-clip: initial !important;
     color: #ffffff !important; -webkit-text-fill-color: #ffffff !important;
     text-decoration: none; text-transform: uppercase; line-height: 0.85; 
     display: inline-block; padding-top: 10px; 
     transition: color 0.3s ease, -webkit-text-stroke 0.3s ease, transform 0.3s ease; letter-spacing: 0px; -webkit-tap-highlight-color: transparent; 
 }

 .imp-submenu-wrapper { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.4s cubic-bezier(0.19, 1, 0.22, 1); margin-left: 30px; background: transparent !important; }
 .imp-submenu { min-height: 0; overflow: hidden; list-style: none; padding: 0; margin: 0; opacity: 0; transform: translateY(-10px); transition: opacity 0.4s ease, transform 0.4s ease; background: transparent !important; }
 .imp-submenu li { margin-bottom: 0px; transition: transform 0.3s ease; background: transparent !important; }

.imp-submenu a { 
     font-size: clamp(20px, 3.5vw, 55px); font-weight: 700; letter-spacing: -1px; 
     font-family: 'Canon Grotesque', sans-serif !important;
     background: transparent !important;
     background-image: none !important;
     -webkit-background-clip: initial !important; background-clip: initial !important;
     color: #ffffff !important; -webkit-text-fill-color: #ffffff !important;
     transition: color 0.3s ease, -webkit-text-stroke 0.3s ease; 
     line-height: 1; padding: 0; display: inline-block;
 }

 @media (hover: hover) and (pointer: fine) {
     .imp-menu-links > li:hover > a { 
         transform: translateX(10px); 
         color: transparent !important; 
         -webkit-text-fill-color: transparent !important;
         -webkit-text-stroke: 1.5px #ffffff !important; 
     }

     .has-submenu:hover .imp-submenu-wrapper { grid-template-rows: 1fr; }
     .has-submenu:hover .imp-submenu { opacity: 1; transform: translateY(0); padding-top: 15px; padding-bottom: 10px; }
     .imp-submenu li:hover { transform: translateX(6px); }

     .imp-submenu li:hover a { 
         background: transparent !important;
         background-image: none !important;
         -webkit-background-clip: initial !important;
         color: transparent !important; 
         -webkit-text-fill-color: transparent !important; 
         -webkit-text-stroke: 1.2px #ffffff !important;
     } 
 }

 /* MOBILE D'ORIGINE */
 @media (max-width: 767px) {
     body { padding-top: 25px !important; }

     body::before { height: 75px; }
     .imp-menu-overlay { padding-left: 20px; }
     .imp-submenu-wrapper { margin-left: 10px !important; }
     .imp-submenu a { letter-spacing: 1px !important; }

     /* Position pré-scroll sur mobile : descendu à top: 110px pour créer un espace en haut */
     body.home .ton-logo { 
         position: fixed !important;
         max-width: 92vw !important; 
         top: 110px !important; 
         left: 0 !important; right: 0 !important;
         margin-left: auto !important; margin-right: auto !important;
         width: 100% !important;
         transform: none !important;
         transform-origin: top center !important;
     }
     body.home .mon-menu-impolie {
         position: fixed !important;
         top: 15px !important;
         right: 15px !important;
         transform: none !important;
     }

     body.home.is-stuck .ton-logo,
     body:not(.home) .ton-logo,
     body:not(.home).is-stuck .ton-logo { 
         position: fixed !important;
         max-width: 110px !important; 
         top: 22px !important; 
         left: 15px !important; 
         right: auto !important; 
         bottom: auto !important;
         margin: 0 !important; 
         width: 100% !important;
         transform: none !important;
     }

     body.home.is-stuck .mon-menu-impolie,
     body:not(.home) .mon-menu-impolie,
     body:not(.home).is-stuck .mon-menu-impolie { 
         position: fixed !important;
         top: 15px !important; 
         right: 15px !important; 
         transform: none !important; 
     }

     body.home.is-stuck .mon-menu-impolie button.imp-nav-toggle,
     body:not(.home) .mon-menu-impolie button.imp-nav-toggle,
     body:not(.home).is-stuck .mon-menu-impolie button.imp-nav-toggle {
         width: 45px !important;
         height: 45px !important;
         gap: 6px !important;
     }

     body.home.is-stuck .mon-menu-impolie .imp-bar,
     body:not(.home) .mon-menu-impolie .imp-bar,
     body:not(.home).is-stuck .mon-menu-impolie .imp-bar {
         width: 32px !important;
         height: 4px !important;
     }

     .imp-menu-links > li > a, .imp-submenu li { transform: none !important; }

     .imp-menu-links > li > a.tap-active,
     .imp-menu-links > li > a:active {
         color: transparent !important;
         -webkit-text-fill-color: transparent !important;
         -webkit-text-stroke: 1.5px #ffffff !important;
     }
     .imp-submenu li > a.tap-active,
     .imp-submenu li > a:active {
         color: transparent !important;
         -webkit-text-fill-color: transparent !important;
         -webkit-text-stroke: 1.2px #ffffff !important;
     }

     .has-submenu.mobile-expanded .imp-submenu-wrapper { grid-template-rows: 1fr; }
     .has-submenu.mobile-expanded .imp-submenu { opacity: 1; transform: translateY(0); padding-top: 15px; padding-bottom: 10px; }
     .has-submenu.mobile-expanded > a { color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; }

     /* TAILLES DU TEXTE DU MENU SUR MOBILE */
     .imp-menu-links > li > a {
         font-size: 48px !important; /* Ajuste à ta convenance (ex: 42px, 48px, 52px) */
         line-height: 0.95 !important;
     }
     .imp-submenu a {
         font-size: 26px !important; /* Taille des éléments de sous-menu */
     }
 }

 body.menu-open { overflow: hidden; }
