/* ================================================
   STRATO — Drones cinéma (gabarit VTT Studio / Ferrari)
   Skills: site-web-vitrine-premium + web-production-security
   Structure split PROD-like (voir règle LAB/PROD)
   ================================================ */

/* --- TOKENS (VTT Studio, identiques) --- */
:root {
  --canvas: #181818;
  --surface: #1E1E1E;
  --surface-hover: #252525;
  --border: rgba(255,255,255,0.08);
  --border-strong: rgba(255,255,255,0.16);

  --primary: #DA291C;
  --primary-dark: #B01E0A;
  --primary-glow: rgba(218,41,28,0.35);

  --accent: #FF6B00;
  --accent-glow: rgba(255,107,0,0.25);

  --text: #FFFFFF;
  --text-muted: #9D9D9D;
  --text-dim: #5A5F6B;

  --success: #00B894;
  --error: #FF7675;

  --font-display: "Space Grotesk", "SF Pro Display", -apple-system, sans-serif;
  --font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: "SF Mono", "Fira Code", "Courier New", monospace;

  --sp-4: 16px; --sp-5: 24px; --sp-6: 32px; --sp-7: 48px;
  --sp-8: 64px; --sp-9: 96px; --sp-10: 128px;
  --r-sm: 6px; --r-md: 12px; --r-pill: 999px;

  --container: 1240px;
}

/* --- RESET --- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-anchor:none;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{
  background:var(--canvas);color:var(--text);
  font:400 1rem/1.6 var(--font-body);
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}

/* --- SKIP LINK + FOCUS --- */
.skip{position:absolute;left:-9999px;top:0;background:var(--primary);color:#fff;padding:10px 18px;border-radius:var(--r-sm);z-index:1000}
.skip:focus{left:12px;top:12px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}

/* --- TYPO DE BASE --- */
h1,h2,h3{font-family:var(--font-display);letter-spacing:-0.02em;line-height:1.08;font-weight:700}
.mono{font-family:var(--font-mono)}
.container{max-width:var(--container);margin:0 auto;padding:0 var(--sp-6)}
.container--narrow{max-width:860px}
.eyebrow{display:inline-block;font:500 .72rem/1 var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--sp-5)}
.section-title{font-size:clamp(2rem,4.6vw,3.4rem);margin-bottom:var(--sp-5);max-width:18ch}
.section-sub{color:var(--text-muted);max-width:52ch;margin-bottom:var(--sp-7)}

/* --- BOUTONS --- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:15px 30px;border-radius:var(--r-pill);font-weight:600;font-size:.95rem;border:1px solid transparent;transition:transform .25s ease,box-shadow .25s ease,background .25s ease;will-change:transform}
.btn--primary{background:var(--primary);color:#fff}
.btn--primary:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 12px 32px var(--primary-glow)}
.btn--ghost{border-color:var(--border-strong);color:var(--text)}
.btn--ghost:hover{border-color:var(--text);transform:translateY(-2px)}
.btn--sm{padding:10px 20px;font-size:.85rem}

/* --- HEADER --- */
.header{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);padding:16px var(--sp-6);transition:background .35s ease,backdrop-filter .35s ease,border-color .35s ease;border-bottom:1px solid transparent}
.header.scrolled{background:rgba(24,24,24,.82);backdrop-filter:blur(14px);border-bottom-color:var(--border)}
.logo{display:inline-flex;align-items:center;gap:10px;font:700 1.05rem var(--font-display);letter-spacing:.04em}
.logo__mark{width:14px;height:14px;background:var(--primary);border-radius:3px;transform:rotate(45deg)}
.nav{display:flex;gap:var(--sp-6)}
.nav a{font-size:.9rem;color:var(--text-muted);transition:color .2s}
.nav a:hover{color:var(--text)}
.burger{display:none;font-size:1.5rem;line-height:1;padding:6px 10px;border-radius:var(--r-sm)}
.mobile-menu{display:none;position:fixed;inset:64px 0 auto 0;background:rgba(24,24,24,.97);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);padding:var(--sp-5) var(--sp-6);flex-direction:column;gap:var(--sp-4);z-index:99}
.mobile-menu.open{display:flex}
.mobile-menu a{font-size:1.05rem;padding:10px 0;border-bottom:1px solid var(--border)}
.progress{position:absolute;left:0;right:0;bottom:-1px;height:2px}
.progress i{display:block;height:100%;width:0;background:var(--primary)}

/* --- HERO --- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;padding:0 0 var(--sp-9);overflow:hidden}
.hero__bg{position:absolute;inset:0;z-index:0}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:center 40%;will-change:transform}
.hero__shade{position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(24,24,24,.94) 0%,rgba(24,24,24,.35) 45%,rgba(24,24,24,.15) 100%)}
.hero__content{position:relative;z-index:2;width:100%}
.hero__title{font-size:clamp(2.8rem,7.5vw,6.2rem);font-weight:700;margin:var(--sp-4) 0 var(--sp-5);max-width:12ch}
.hero__title span{color:var(--primary)}
.hero__sub{color:var(--text-muted);max-width:54ch;font-size:1.06rem;margin-bottom:var(--sp-6)}
.hero__cta{display:flex;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-7)}
.hero__proof{display:flex;gap:var(--sp-6);flex-wrap:wrap;font-size:.85rem;color:var(--text-dim);border-top:1px solid var(--border);padding-top:var(--sp-4)}
.hero__proof b{color:var(--text);font-family:var(--font-display);font-size:1.05rem;margin-right:6px}
.hero__scroll{position:absolute;right:var(--sp-6);bottom:var(--sp-6);z-index:2;display:flex;align-items:center;gap:10px;font:500 .65rem var(--font-mono);letter-spacing:.3em;color:var(--text-dim)}
.hero__scroll span{display:block;width:44px;height:1px;background:var(--text-dim);animation:scrl 2.2s ease-in-out infinite}
@keyframes scrl{0%,100%{transform:scaleX(.4);opacity:.5}50%{transform:scaleX(1);opacity:1}}
@media (prefers-reduced-motion: reduce){.hero__scroll span{animation:none}}

/* --- SECTIONS --- */
.section{padding:var(--sp-10) 0}
.section--tight{padding:var(--sp-9) 0}
.machine__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--sp-8);align-items:start}
.machine__visual{border-radius:var(--r-md);overflow:hidden;border:1px solid var(--border)}
.machine__visual img{aspect-ratio:4/3;object-fit:cover;width:100%;transition:transform .7s ease}
.machine__visual:hover img{transform:scale(1.04)}
.feat{display:flex;gap:var(--sp-5);padding:var(--sp-5) 0;border-bottom:1px solid var(--border)}
.feat:first-child{padding-top:0}
.feat__idx{font:700 .95rem var(--font-mono);color:var(--primary);min-width:34px;padding-top:3px}
.feat h3{font-size:1.15rem;margin-bottom:6px}
.feat p{color:var(--text-muted);font-size:.92rem}
.feat b{color:var(--accent)}

/* --- GALERIE --- */
.gal__filters{display:flex;gap:10px;margin-bottom:var(--sp-6);flex-wrap:wrap}
.gfilter{padding:9px 20px;border-radius:var(--r-pill);border:1px solid var(--border-strong);font-size:.85rem;color:var(--text-muted);transition:all .25s}
.gfilter:hover{color:var(--text);border-color:var(--text-dim)}
.gfilter.active{background:var(--primary);border-color:var(--primary);color:#fff}
.gal__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-5)}
.g-item{position:relative;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--border);cursor:zoom-in}
.g-item--tall{grid-row:span 2}
.g-item img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;transition:transform .7s ease}
.g-item--tall img{aspect-ratio:3/4}
.g-item:hover img{transform:scale(1.05)}
.g-item figcaption{position:absolute;left:0;right:0;bottom:0;padding:40px var(--sp-5) var(--sp-4);background:linear-gradient(to top,rgba(10,10,10,.85),transparent);display:flex;flex-direction:column;gap:2px}
.g-item figcaption b{font-family:var(--font-display)}
.g-item figcaption span{font:500 .7rem var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim)}
.g-item.hide{display:none}

/* --- SPECS --- */
.specs__grid{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--sp-8);align-items:start}
.specs{width:100%;border-collapse:collapse;font-size:.95rem}
.specs td{padding:13px 0;border-bottom:1px solid var(--border);vertical-align:top}
.specs td:first-child{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.12em;color:var(--text-dim);width:38%;padding-right:var(--sp-5)}
.specs td:last-child{color:var(--text-muted)}
.specs tr:hover td{border-bottom-color:var(--border-strong)}
.stats:root{--x:0}
.specs__aside{display:flex;flex-direction:column;gap:var(--sp-5);position:sticky;top:110px}
.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-5)}
.stat__n{font:700 clamp(2.2rem,4vw,3.2rem)/1 var(--font-display);color:var(--text);font-variant-numeric:tabular-nums}
.stat__u{font:500 .85rem var(--font-mono);color:var(--accent);margin-left:8px}
.stat p{color:var(--text-muted);font-size:.85rem;margin-top:6px}

/* --- CONFIGURATEUR --- */
.config__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-8);align-items:start;margin-top:var(--sp-6)}
.config__preview{position:relative;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--border);aspect-ratio:4/3;background:var(--surface)}
.config__preview img{width:100%;height:100%;object-fit:cover;transition:filter .5s ease}
.config__preview-label{position:absolute;left:var(--sp-4);bottom:var(--sp-4);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;background:rgba(0,0,0,.55);backdrop-filter:blur(8px);padding:8px 14px;border-radius:var(--r-pill);border:1px solid var(--border)}
.config__options{display:flex;flex-direction:column;gap:var(--sp-6)}
.config__group h4{font:500 .78rem var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);margin-bottom:var(--sp-4)}
.swatches{display:flex;gap:12px;flex-wrap:wrap}
.swatch{width:44px;height:44px;border-radius:50%;border:2px solid var(--border-strong);transition:transform .2s,border-color .2s,box-shadow .2s}
.swatch:hover{transform:scale(1.1)}
.swatch.active{border-color:var(--text);box-shadow:0 0 0 3px var(--canvas),0 0 0 5px var(--primary)}
.swatch--txt{width:auto;height:48px;padding:0 22px;border-radius:var(--r-pill);font-size:.85rem;color:var(--text-muted);display:inline-flex;align-items:center}
.swatch--txt.active{color:var(--text);border-color:var(--text);box-shadow:none;background:var(--surface-hover)}
.config__price{display:flex;align-items:center;gap:var(--sp-5);flex-wrap:wrap;border-top:1px solid var(--border);padding-top:var(--sp-5);margin-top:var(--sp-2)}
.config__price .mono{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim)}
.config__price strong{font:700 1.9rem var(--font-display);font-variant-numeric:tabular-nums}
#previewGlow{box-shadow:0 0 0 0 var(--primary-glow);transition:box-shadow .5s ease}

/* --- FAQ --- */
.faq details{border-bottom:1px solid var(--border)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-5) 0;font-weight:600;font-size:1.02rem;cursor:pointer;list-style:none;transition:color .2s}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:400 1.4rem/1 var(--font-display);color:var(--primary);transition:transform .3s ease}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq summary:hover{color:var(--accent)}
.faq details p{color:var(--text-muted);padding:0 0 var(--sp-5);max-width:64ch}

/* --- CTA --- */
.cta{padding:var(--sp-10) 0;text-align:center;background:radial-gradient(ellipse 60% 70% at 50% 100%,var(--primary-glow),transparent 70%),var(--canvas)}
.cta h2{font-size:clamp(2.2rem,5vw,4rem);margin-bottom:var(--sp-4)}
.cta p{color:var(--text-muted);margin-bottom:var(--sp-7)}
.cta__form{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;max-width:680px;margin:0 auto;position:relative}
.cta__form input[type="text"],.cta__form input[type="email"]{flex:1;min-width:220px;padding:15px 20px;border-radius:var(--r-pill);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-size:.95rem}
.cta__form input::placeholder{color:var(--text-dim)}
.cta__form input:focus{outline:2px solid var(--accent);outline-offset:2px}
.trap{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.cta__status{width:100%;font-size:.9rem;color:var(--success);min-height:1.4em}
.cta__status.err{color:var(--error)}
.cta__note{font:400 .78rem var(--font-mono);color:var(--text-dim);margin-top:var(--sp-4)}

/* --- FOOTER --- */
.footer{border-top:1px solid var(--border);padding:var(--sp-8) 0 var(--sp-6)}
.footer__top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--sp-7);margin-bottom:var(--sp-7)}
.footer__brand p{color:var(--text-muted);font-size:.9rem;margin:var(--sp-4) 0}
.footer__socials{display:flex;gap:10px}
.footer__socials a{width:40px;height:40px;border:1px solid var(--border-strong);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font:600 .72rem var(--font-mono);color:var(--text-muted);transition:all .25s}
.footer__socials a:hover{border-color:var(--primary);color:var(--text)}
.footer__col h4{font:500 .72rem var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);margin-bottom:var(--sp-4)}
.footer__col li{margin-bottom:10px}
.footer__col a{color:var(--text-muted);font-size:.92rem;transition:color .2s}
.footer__col a:hover{color:var(--text)}
.footer__bottom{display:flex;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;border-top:1px solid var(--border);padding-top:var(--sp-5);font-size:.82rem;color:var(--text-dim)}
.footer__bottom a{color:var(--text-dim)}
.footer__bottom a:hover{color:var(--text)}

/* --- REVEAL (IO) --- */
.reveal{opacity:1;transform:none}
.reveal--js{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}
.reveal--js.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  .reveal--js{opacity:1;transform:none;transition:none}
  .btn:hover{transform:none}
  .g-item:hover img,.machine__visual:hover img{transform:none}
}

/* --- RESPONSIVE --- */
@media (max-width:900px){
  .nav,.header>.btn--sm{display:none}
  .burger{display:block}
  .machine__grid,.specs__grid,.config__grid{grid-template-columns:1fr}
  .specs__aside{position:static}
  .footer__top{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .gal__grid{grid-template-columns:1fr}
  .g-item--tall{grid-row:auto}
  .hero__proof{gap:var(--sp-4)}
  .footer__top{grid-template-columns:1fr}
  .section{padding:var(--sp-9) 0}
}

/* --- LIGHTBOX (standard skill) --- */
.lb{position:fixed;inset:0;z-index:300;display:none;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.lb.open{display:flex}
.lb-back{position:absolute;inset:0;background:rgba(16,16,16,.94);backdrop-filter:blur(10px);cursor:zoom-out}
.lb-stage{position:relative;z-index:1;width:95vw;height:95vh;display:flex;align-items:center;justify-content:center;pointer-events:none}
.lb-img{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--r-md);transform:scale(.965);opacity:0;transition:transform .35s ease,opacity .35s ease;pointer-events:auto}
.lb.open .lb-img{transform:scale(1);opacity:1}
.lb-cap{position:relative;z-index:1;color:var(--text-muted);font-size:.85rem;text-align:center;max-width:70ch;padding:0 var(--sp-4)}
.lb-x{position:absolute;top:calc(18px + env(safe-area-inset-top));right:calc(18px + env(safe-area-inset-right));z-index:2;width:48px;height:48px;border-radius:50%;background:var(--surface);border:1px solid var(--border-strong);font-size:1.2rem;display:flex;align-items:center;justify-content:center;transition:border-color .2s}
.lb-x:hover{border-color:var(--text)}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:52px;height:52px;border-radius:50%;background:rgba(24,24,24,.7);border:1px solid var(--border-strong);font-size:1.6rem;color:var(--text-muted);display:flex;align-items:center;justify-content:center;transition:color .2s,border-color .2s}
.lb-nav:hover{color:var(--text);border-color:var(--text)}
.lb-prev{left:calc(14px + env(safe-area-inset-left))}
.lb-next{right:calc(14px + env(safe-area-inset-right))}
@media (max-width:700px){
  .lb-nav{top:auto;bottom:calc(16px + env(safe-area-inset-bottom));transform:none}
  .lb-prev{left:20%}.lb-next{right:20%}
  .lb-stage{height:82vh}
}
