/* Shell commun aligné sur la page d'accueil : header, footer et boutons flottants. */
.site-nav{position:fixed;top:0;inset-inline:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;gap:2rem;min-height:84px;padding:23px 64px;background:transparent;color:#f5f4ef;transition:padding .28s ease,background .28s ease,border-color .28s ease}
.site-nav.is-scrolled{padding-block:15px;background:rgba(7,8,11,.94);border-bottom:1px solid rgba(255,255,255,.12);backdrop-filter:blur(20px) saturate(1.4)}
.site-nav .brand,.site-footer .brand{display:block;width:138px;height:32px;background:url('/assets/logo-dark-source.webp') center/contain no-repeat;text-decoration:none;flex:none}
.site-nav .brand img,.site-footer .brand img{display:none!important}
.shell-desktop-nav{display:flex;align-items:center;justify-content:center;gap:1.65rem;flex:1}
.shell-desktop-nav a{position:relative;color:#a8a9af;font:10px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;text-transform:uppercase;padding:7px 0;text-decoration:none;transition:color .2s ease}
.shell-desktop-nav a::after{content:'';position:absolute;left:0;right:0;bottom:1px;height:1px;width:0;background:#d8bd70;transition:width .22s ease}
.shell-desktop-nav a:hover,.shell-desktop-nav a:focus-visible,.shell-desktop-nav a[href='/blog.html'],.shell-desktop-nav a[href='/press.html']{color:#d8bd70}
.shell-desktop-nav a:hover::after,.shell-desktop-nav a:focus-visible::after,.shell-desktop-nav a[href='/blog.html']::after,.shell-desktop-nav a[href='/press.html']::after{width:100%}
.shell-actions{display:flex;align-items:center;gap:.65rem;flex:none}
.shell-lang{position:relative}
.shell-lang-button,.shell-theme-button{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 11px;border:1px solid rgba(255,255,255,.13);background:transparent;color:#c9c9c5;font:10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;cursor:pointer}
.shell-theme-button{width:34px;justify-content:center;padding:0;font-size:14px}
.shell-lang-menu{position:absolute;right:0;top:42px;min-width:145px;padding:6px;background:#0c0d10;border:1px solid rgba(255,255,255,.16);box-shadow:0 12px 30px #0008;display:none}
.shell-lang.open .shell-lang-menu{display:grid}
.shell-lang-menu button{border:0;background:transparent;color:#bbb;text-align:left;padding:8px;font:10px ui-monospace,SFMono-Regular,Menlo,monospace;cursor:pointer}
.shell-lang-menu button:hover{color:#d8bd70;background:#ffffff0d}
.shell-mobile-toggle{display:none;border:1px solid rgba(255,255,255,.13);background:transparent;color:#d8bd70;width:34px;height:34px;cursor:pointer;font-size:18px}
.shell-mobile-menu{display:none}
.site-footer{margin-top:0;padding:32px 0;background:#07080b;border-top:1px solid rgba(255,255,255,.12);color:#f5f4ef}
.site-footer .section-frame,.site-footer .footer-frame{max-width:1240px;margin:0 auto;padding:0 64px;display:grid;grid-template-columns:153px 1fr auto;align-items:start;column-gap:clamp(1.2rem,3vw,3rem)}
.site-footer .footer-copy{align-self:start;padding-top:.3rem;color:#a8a9af;font:8px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.05em}
.site-footer .footer-link-groups{display:flex;flex-direction:column;align-items:flex-end;gap:.75rem;min-width:0}
.site-footer .footer-site-links,.site-footer .footer-legal-links{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.65rem 1.1rem;width:100%;min-width:0}
.site-footer .footer-legal-links{border-top:1px solid rgba(255,255,255,.12);padding-top:.75rem}
.site-footer nav a,.site-footer .footer-cookie{color:#a8a9af;font:8px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;background:none;border:0;padding:0;cursor:pointer;text-decoration:none;transition:color .2s ease}
.site-footer nav a:hover,.site-footer .footer-cookie:hover{color:#d8bd70}
.site-footer .footer-controls{display:flex;align-items:center;justify-content:flex-end;gap:.65rem;min-width:max-content}
.shell-float-wa,.shell-float-top{position:fixed;right:20px;z-index:9999;width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.25);cursor:pointer;transition:transform .2s ease,opacity .3s ease}
.shell-float-wa{bottom:20px;background:#25D366}.shell-float-wa svg{width:28px;height:28px;fill:#fff}
.shell-float-top{bottom:84px;background:#1a1a1a;border:0;padding:0;opacity:0;pointer-events:none}.shell-float-top.visible{opacity:1;pointer-events:auto}.shell-float-top svg{width:22px;height:22px;fill:#fff}
.shell-float-wa:hover,.shell-float-top:hover{transform:scale(1.08)}
@media(max-width:980px){.site-nav{padding-inline:32px}.shell-desktop-nav{gap:.82rem}.site-footer .section-frame,.site-footer .footer-frame{grid-template-columns:153px 1fr auto;padding-inline:32px}.site-footer .footer-link-groups{grid-column:1/-1;grid-row:2;align-items:flex-start}.site-footer .footer-site-links,.site-footer .footer-legal-links{justify-content:flex-start}}
@media(max-width:760px){.site-nav{min-height:70px;padding:18px 20px}.site-nav .brand{width:112px}.shell-desktop-nav{display:none}.shell-actions{margin-left:auto}.shell-mobile-toggle{display:block}.shell-mobile-menu{position:fixed;top:0;right:0;z-index:1100;display:flex;flex-direction:column;width:min(360px,88vw);height:100vh;padding:88px 32px 34px;background:#0c0d10;border-left:1px solid rgba(255,255,255,.13);transform:translateX(100%);transition:transform .28s cubic-bezier(.23,1,.32,1)}.shell-mobile-menu.open{transform:translateX(0)}.shell-mobile-menu button.close{position:absolute;top:23px;right:28px;width:32px;height:32px;background:none;border:1px solid rgba(255,255,255,.13);color:#d8bd70;font-size:20px}.shell-mobile-menu a{padding:13px 0;border-bottom:1px solid rgba(255,255,255,.13);color:#f5f4ef;font:400 27px/1.1 Georgia,serif;text-decoration:none}.site-footer .section-frame,.site-footer .footer-frame{grid-template-columns:1fr;gap:1rem;padding-inline:20px}.site-footer .footer-copy{grid-row:2}.site-footer .footer-link-groups{grid-row:3;align-items:flex-start;width:100%}.site-footer .footer-controls{grid-row:4;justify-content:flex-start;min-width:0}.site-footer .footer-site-links,.site-footer .footer-legal-links{justify-content:flex-start}}

/* Accessibility: visible keyboard focus and skip navigation. */
.skip-link{position:fixed;left:16px;top:8px;z-index:2000;transform:translateY(-160%);padding:10px 14px;background:#d8bd70;color:#07080b;font:700 12px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;text-decoration:none;transition:transform .18s ease}
.skip-link:focus{transform:translateY(0)}
.site-nav a:focus-visible,.site-nav button:focus-visible,.site-footer a:focus-visible,.site-footer button:focus-visible,.shell-mobile-menu a:focus-visible,.shell-mobile-menu button:focus-visible,.shell-float-wa:focus-visible,.shell-float-top:focus-visible{outline:2px solid #d8bd70;outline-offset:3px}
