.genools-landing,.genools-landing *,.genools-landing *::before,.genools-landing *::after,
.gn-nav,.gn-nav *,.gn-footer,.gn-footer *{box-sizing:border-box}

/* === Variables (scope au body si front-page) === */
.gn-front-page{--gn-bg-primary:#fff;--gn-bg-secondary:#fafafa;--gn-bg-tertiary:#f5f5f7;--gn-text-primary:#1d1d1f;--gn-text-secondary:#6e6e73;--gn-text-tertiary:#86868b;--gn-border:#d2d2d7;--gn-border-soft:#e5e5ea;--gn-accent:#007aff;--gn-accent-hover:#0066d6;--gn-success:#34c759;--gn-warning:#ff9500;background:#fff;font-family:'Inter',-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',sans-serif;color:#1d1d1f;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

.genools-landing{font-family:inherit;color:inherit;line-height:1.5}
.genools-landing h1,.genools-landing h2,.genools-landing h3{font-family:inherit;letter-spacing:-.025em;line-height:1.1;color:var(--gn-text-primary);margin:0}
.genools-landing p{margin:0}
.genools-landing a{color:inherit;text-decoration:none}

/* === Scroll progress bar === */
.gn-scroll-progress{position:fixed;top:0;left:0;height:2px;background:var(--gn-accent,#007aff);z-index:999;width:0;transition:width .1s ease-out;pointer-events:none}

/* ===========================================
   NAV — Apple-style fixed, frosted glass
   =========================================== */
.gn-nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(255,255,255,.72);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--gn-border-soft,#e5e5ea);transition:background .3s ease,box-shadow .3s ease;font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif}
.gn-nav.is-scrolled{background:rgba(255,255,255,.92);box-shadow:0 1px 0 rgba(0,0,0,.04)}
.gn-nav-inner{max-width:1120px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.gn-nav-brand{display:flex;align-items:center;gap:10px;color:var(--gn-text-primary,#1d1d1f);transition:opacity .2s ease}
.gn-nav-brand:hover{opacity:.7}
.gn-nav-logo{font-weight:700;font-size:19px;letter-spacing:-.02em;color:var(--gn-text-primary,#1d1d1f)}
.gn-nav-links{display:flex;gap:32px;font-size:14px;font-weight:500}
.gn-nav-links a{color:var(--gn-text-secondary,#6e6e73);transition:color .2s ease;position:relative}
.gn-nav-links a:hover{color:var(--gn-text-primary,#1d1d1f)}
.gn-nav-toggle{display:none;flex-direction:column;gap:4px;background:transparent;border:none;cursor:pointer;padding:10px;border-radius:8px;transition:background .2s ease}
.gn-nav-toggle:hover{background:var(--gn-bg-tertiary,#f5f5f7)}
.gn-nav-toggle span{width:22px;height:2px;background:var(--gn-text-primary,#1d1d1f);border-radius:2px;transition:transform .3s ease,opacity .3s ease}
.gn-nav-toggle.is-open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.gn-nav-toggle.is-open span:nth-child(2){opacity:0}
.gn-nav-toggle.is-open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media (max-width:760px){
  .gn-nav-toggle{display:flex}
  .gn-nav-links{position:fixed;top:64px;left:0;right:0;background:rgba(255,255,255,.95);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);flex-direction:column;gap:0;padding:24px;border-bottom:1px solid var(--gn-border-soft,#e5e5ea);transform:translateY(-120%);opacity:0;transition:transform .3s ease,opacity .3s ease;pointer-events:none}
  .gn-nav-links.is-open{transform:translateY(0);opacity:1;pointer-events:auto}
  .gn-nav-links a{padding:14px 0;font-size:18px;border-bottom:1px solid var(--gn-border-soft,#e5e5ea)}
  .gn-nav-links a:last-child{border-bottom:none}
}

/* === Badge 222 === */
.gn-badge{background:var(--gn-accent,#007aff);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;border-radius:14px;letter-spacing:-.02em;line-height:1;box-shadow:0 4px 12px rgba(0,122,255,.2)}
.gn-badge--sm{width:32px;height:32px;font-size:13px;border-radius:8px;box-shadow:0 2px 6px rgba(0,122,255,.2)}
.gn-badge--md{width:56px;height:56px;font-size:18px}
.gn-badge--lg{width:80px;height:80px;font-size:24px;border-radius:20px;box-shadow:0 8px 24px rgba(0,122,255,.25)}
@keyframes gn-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.gn-hero-badge{animation:gn-float 4s ease-in-out infinite;will-change:transform}

/* === Hero === */
.gn-hero{padding:140px 24px 120px;text-align:center;background:var(--gn-bg-primary);position:relative;overflow:hidden}
.gn-hero-inner{max-width:880px;margin:0 auto;position:relative;z-index:2}
.gn-hero-badge{margin:0 auto 32px}
.gn-hero-title{font-size:clamp(56px,9vw,96px);font-weight:800;margin-bottom:24px;opacity:0;transform:translateY(20px);animation:gn-rise .9s cubic-bezier(.22,1,.36,1) .1s forwards}
.gn-hero-tagline{font-size:clamp(28px,4vw,44px);font-weight:600;color:var(--gn-text-primary);margin:0 0 8px;letter-spacing:-.02em;line-height:1.15;opacity:0;transform:translateY(20px);animation:gn-rise .9s cubic-bezier(.22,1,.36,1) .25s forwards}
.gn-hero-tagline:nth-of-type(2){animation-delay:.35s}
.gn-accent{color:var(--gn-accent)}
@keyframes gn-rise{to{opacity:1;transform:translateY(0)}}
.gn-hero-sub{font-size:19px;color:var(--gn-text-secondary);max-width:640px;margin:32px auto 40px;line-height:1.6;opacity:0;transform:translateY(20px);animation:gn-rise .9s cubic-bezier(.22,1,.36,1) .5s forwards}

/* SCAN tag pulse */
.gn-scan-tag{display:inline-flex;align-items:center;gap:6px;font-family:'JetBrains Mono','Menlo',monospace;font-size:13px;color:var(--gn-success);font-weight:500}
.gn-scan-tag::before{content:'';width:7px;height:7px;background:var(--gn-success);border-radius:50%;display:inline-block;box-shadow:0 0 0 0 rgba(52,199,89,.6);animation:gn-pulse 2s ease-out infinite}
@keyframes gn-pulse{0%{box-shadow:0 0 0 0 rgba(52,199,89,.5)}70%{box-shadow:0 0 0 10px rgba(52,199,89,0)}100%{box-shadow:0 0 0 0 rgba(52,199,89,0)}}

/* === Buttons === */
.gn-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:14px 28px;border-radius:980px;font-size:16px;font-weight:500;transition:transform .3s cubic-bezier(.22,1,.36,1),background .2s ease,box-shadow .3s ease;cursor:pointer;border:none;line-height:1;opacity:0;transform:translateY(20px);animation:gn-rise .9s cubic-bezier(.22,1,.36,1) .65s forwards}
.gn-btn--primary{background:var(--gn-accent);color:#fff;box-shadow:0 4px 14px rgba(0,122,255,.25)}
.gn-btn--primary:hover{background:var(--gn-accent-hover);box-shadow:0 8px 24px rgba(0,122,255,.35);color:#fff}
.gn-btn--ghost{background:transparent;color:var(--gn-accent);border:1px solid var(--gn-accent);animation:none;opacity:1;transform:none}
.gn-btn--ghost:hover{background:var(--gn-accent);color:#fff}

/* === Stats === */
.gn-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;max-width:720px;margin:96px auto 0;opacity:0;transform:translateY(20px);animation:gn-rise .9s cubic-bezier(.22,1,.36,1) .8s forwards}
.gn-stat-num{font-size:clamp(40px,6vw,64px);font-weight:800;color:var(--gn-accent);letter-spacing:-.03em;line-height:1;display:inline-block}
.gn-stat-label{font-size:13px;color:var(--gn-text-tertiary);text-transform:uppercase;letter-spacing:.08em;margin-top:12px;font-weight:500}
@media (max-width:640px){.gn-stats{grid-template-columns:1fr;gap:40px}}

/* === Sections === */
.gn-section{padding:120px 24px;background:var(--gn-bg-secondary)}
.gn-section--alt{background:var(--gn-bg-primary)}
.gn-section-inner{max-width:1120px;margin:0 auto}
.gn-section-head{text-align:center;margin-bottom:80px}
.gn-eyebrow{font-family:'JetBrains Mono','Menlo',monospace;font-size:13px;color:var(--gn-accent);text-transform:uppercase;letter-spacing:.1em;margin-bottom:16px;font-weight:500}
.gn-section-title{font-size:clamp(36px,5vw,56px);font-weight:800;margin-bottom:20px}
.gn-section-sub{font-size:19px;color:var(--gn-text-secondary);max-width:600px;margin:0 auto;line-height:1.6}
.gn-reveal{opacity:0;transform:translateY(30px);transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1)}
.gn-reveal.is-visible{opacity:1;transform:translateY(0)}

/* === Cards === */
.gn-agents-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media (max-width:900px){.gn-agents-grid{grid-template-columns:1fr}}
.gn-card{background:var(--gn-bg-primary);border:1px solid var(--gn-border-soft);border-radius:20px;padding:40px 32px;transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s ease,border-color .3s ease;opacity:0;transform:translateY(40px)}
.gn-card.is-visible{opacity:1;transform:translateY(0)}
.gn-card:nth-child(1){transition-delay:0s}
.gn-card:nth-child(2){transition-delay:.15s}
.gn-card:nth-child(3){transition-delay:.3s}
.gn-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(0,0,0,.08);border-color:var(--gn-border)}
.gn-card-icon{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:24px;background:rgba(0,122,255,.08);color:var(--gn-accent);transition:transform .4s cubic-bezier(.22,1,.36,1)}
.gn-card:hover .gn-card-icon{transform:scale(1.08) rotate(-3deg)}
.gn-card-icon--green{background:rgba(52,199,89,.1);color:var(--gn-success)}
.gn-card-icon--orange{background:rgba(255,149,0,.1);color:var(--gn-warning)}
.gn-card-icon svg{width:28px;height:28px}
.gn-card-title{font-size:22px;font-weight:700;margin-bottom:12px;letter-spacing:-.015em}
.gn-card-desc{font-size:15px;color:var(--gn-text-secondary);line-height:1.6;margin-bottom:24px}
.gn-pills{display:flex;flex-wrap:wrap;gap:8px}
.gn-pill{padding:6px 12px;background:var(--gn-bg-tertiary);border-radius:980px;font-family:'JetBrains Mono','Menlo',monospace;font-size:12px;color:var(--gn-text-secondary);font-weight:500;transition:background .2s ease,color .2s ease}
.gn-card:hover .gn-pill{background:rgba(0,122,255,.08);color:var(--gn-accent)}

/* === Tech card === */
.gn-tech-card{background:var(--gn-bg-primary);border:1px solid var(--gn-border-soft);border-radius:24px;padding:64px 48px;max-width:960px;margin:0 auto;transition:transform .4s ease,box-shadow .4s ease}
.gn-tech-card:hover{transform:translateY(-2px);box-shadow:0 16px 48px rgba(0,0,0,.06)}
.gn-tech-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:48px 0}
@media (max-width:720px){.gn-tech-grid{grid-template-columns:1fr}.gn-tech-card{padding:40px 24px}}
.gn-tech-block{background:var(--gn-bg-tertiary);border-radius:16px;padding:28px;transition:background .3s ease}
.gn-tech-block:hover{background:#eeeef0}
.gn-tech-block h4{font-size:17px;font-weight:600;margin:0 0 16px;color:var(--gn-text-primary)}
.gn-tech-block ul{list-style:none;padding:0;margin:0;font-family:'JetBrains Mono','Menlo',monospace;font-size:13px;color:var(--gn-text-secondary)}
.gn-tech-block li{padding:6px 0;display:flex;gap:10px;transition:transform .3s ease}
.gn-tech-block li:hover{transform:translateX(4px)}
.gn-tech-block li::before{content:'\2192';color:var(--gn-accent)}

/* ===========================================
   FOOTER — Light Mode Apple-style
   =========================================== */
.gn-footer{background:var(--gn-bg-primary,#fff);border-top:1px solid var(--gn-border-soft,#e5e5ea);padding:80px 24px 40px;font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif}
.gn-footer-inner{max-width:1120px;margin:0 auto}
.gn-footer-top{display:grid;grid-template-columns:1fr 1.5fr;gap:64px;margin-bottom:64px;align-items:start}
.gn-footer-brand{display:flex;align-items:center;gap:16px}
.gn-footer-title{font-weight:700;font-size:22px;color:var(--gn-text-primary,#1d1d1f);letter-spacing:-.02em;line-height:1.1}
.gn-footer-subtitle{font-size:13px;color:var(--gn-text-tertiary,#86868b);margin-top:4px;font-weight:500}
.gn-footer-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.gn-footer-col h5{font-size:12px;font-weight:600;color:var(--gn-text-primary,#1d1d1f);margin:0 0 16px;text-transform:uppercase;letter-spacing:.08em}
.gn-footer-col a{display:block;font-size:14px;color:var(--gn-text-secondary,#6e6e73);padding:5px 0;transition:color .2s ease;font-weight:500}
.gn-footer-col a:hover{color:var(--gn-accent,#007aff)}
.gn-footer-bottom{border-top:1px solid var(--gn-border-soft,#e5e5ea);padding-top:32px;display:flex;flex-direction:column;align-items:center;gap:8px}
.gn-footer-bottom p{font-size:13px;color:var(--gn-text-tertiary,#86868b);margin:0;text-align:center}
.gn-footer-tag{font-family:'JetBrains Mono','Menlo',monospace;font-size:12px}
@media (max-width:760px){
  .gn-footer{padding:64px 24px 32px}
  .gn-footer-top{grid-template-columns:1fr;gap:40px;margin-bottom:48px}
  .gn-footer-cols{grid-template-columns:repeat(2,1fr);gap:24px}
}

/* === Reduced motion === */
@media (prefers-reduced-motion:reduce){
  .gn-hero-badge,.gn-scan-tag::before,.gn-card,.gn-hero-title,.gn-hero-tagline,.gn-hero-sub,.gn-stats,.gn-btn,.gn-reveal{animation:none;transition:none;opacity:1;transform:none}
}
