// Apricus — sticky top navigation (hi-fi) + menu mobile plein écran éditorial function Nav({ onBook }) { const [scrolled, setScrolled] = React.useState(false); const [lang, setLang] = React.useState('FR'); const [menuOpen, setMenuOpen] = React.useState(false); React.useEffect(() => { const onScroll = () => setScrolled(window.scrollY > 30); window.addEventListener('scroll', onScroll); return () => window.removeEventListener('scroll', onScroll); }, []); // Bloque le scroll body quand menu ouvert + class sur body React.useEffect(() => { document.body.style.overflow = menuOpen ? 'hidden' : ''; if (menuOpen) document.body.classList.add('apr-menu-open'); else document.body.classList.remove('apr-menu-open'); return () => { document.body.style.overflow = ''; document.body.classList.remove('apr-menu-open'); }; }, [menuOpen]); const links = [ ['Séjours', '#prochain'], ['Ateliers', '#ateliers'], ['Ménopause', '#menopause'], ['Mon histoire', '#histoire'], ['Équipe', '#equipe'], ['Contact', '#contact'], ]; const toggleLang = () => { const nx = lang === 'FR' ? 'EN' : 'FR'; setLang(nx); if (window.__apricusSetLang) window.__apricusSetLang(nx); }; return ( {/* HEADER */} {/* Logo */} Apricus {/* Liens desktop */} {links.map(([l, href]) => )} {/* Lang desktop */} FR · EN {/* Burger mobile */} setMenuOpen(!menuOpen)} > {menuOpen ? ( ) : ( )} {/* MENU MOBILE PLEIN ÉCRAN */} setMenuOpen(false)} > {links.map(([l, href], i) => ( setMenuOpen(false)} > {String(i + 1).padStart(2, '0')} {l === 'Mon histoire' ? Mon histoire : l === 'Ménopause' ? {l} : l} ))} @aprrricus Langue : FR · EN {/* STICKY CTA RÉSERVER (mobile only, géré via CSS) */} Réserver un séjour ); } function NavLink({ label, href }) { const [h, setH] = React.useState(false); return ( setH(true)} onMouseLeave={() => setH(false)} style={{ fontSize: 15, fontWeight: 600, textDecoration: 'none', color: h ? 'var(--apr-honey)' : 'var(--apr-ink)', transition: 'color .15s var(--ease-out)' }}> {label} ); } window.Nav = Nav;