/* Lux On — Design system partagé. Les tokens de couleur/thème (--bg, --text, --border, --blue,
   --gradient, --radius, etc.) sont définis dans css/theme.css (DA sombre / DA blanche), chargé
   juste après ce fichier : il n'y a pas de :root de couleurs ici. */
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Montserrat',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;font-weight:350;-webkit-font-smoothing:antialiased;color:var(--text);background:var(--bg-alt);line-height:1.5;}
/* Grands titres (H1/H2/hero) : pile "SF Pro Display" façon Apple — la police des paragraphes,
   boutons, nav, formulaires et petits textes reste Montserrat, définie sur body ci-dessus. */
h1,h2,.hero-title{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",Inter,Arial,sans-serif;}
h3{font-family:'Montserrat',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px;}
section{padding:clamp(2.5rem,5vw,3.5rem) clamp(1rem,4vw,2rem);}
.container{max-width:1280px;margin:0 auto;}
h1,h2,.hero-title{font-weight:600;line-height:0.94;letter-spacing:-0.065em;}
h3{font-weight:570;letter-spacing:-0.067em;}
h1,.hero-title{font-size:clamp(48px,6vw,88px);max-width:1400px;}
h2{font-size:clamp(1.65rem,4.2vw,3.75rem);margin-bottom:0.35rem;}
@media(max-width:640px){
  h1,.hero-title{font-size:clamp(42px,12vw,64px);line-height:0.98;}
}
.label{font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.12em;color:var(--text-secondary);}
.section-sub{color:var(--text-secondary);font-size:0.95rem;margin-bottom:1.75rem;}
.page-header{padding-top:clamp(3.5rem,6vw,5rem);padding-bottom:1rem;}
.page-header .label{display:block;margin-bottom:0.5rem;}

/* Header / nav — direction "verre premium", îlots séparés (logo / liens / actions) */
header{position:sticky;top:0;z-index:100;background:transparent;}
.nav-wrap{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:0.6rem;padding:0.85rem 1.25rem;position:relative;}
.nav-wrap > a{
  flex-shrink:0;display:inline-flex;align-items:center;
  background:var(--glass-nav-bg);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border:1px solid var(--glass-nav-border);border-radius:16px;
  box-shadow:0 12px 30px -22px var(--glass-nav-shadow);
  padding:0.6rem 1rem;
}
.nav-links{
  display:none;gap:1.75rem;font-size:0.85rem;font-weight:600;
  background:var(--glass-nav-bg);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border:1px solid var(--glass-nav-border);border-radius:16px;
  box-shadow:0 12px 30px -22px var(--glass-nav-shadow);
  padding:0.85rem 1.6rem;
}
.nav-links a{color:var(--text-secondary);transition:color .2s;}
.nav-links a:hover,.nav-links a.active{color:var(--text);}
.nav-actions{
  display:flex;align-items:center;gap:0.6rem;flex-shrink:0;
  background:var(--glass-nav-bg);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border:1px solid var(--glass-nav-border);border-radius:16px;
  box-shadow:0 12px 30px -22px var(--glass-nav-shadow);
  padding:0.5rem 0.5rem 0.5rem 0.85rem;
}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:0.7rem 1.35rem;border-radius:8px;font-weight:600;font-size:0.85rem;transition:transform .2s, opacity .2s;cursor:pointer;border:1px solid transparent;}
.btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-text);}
.btn-primary:hover{transform:translateY(-1px);opacity:0.9;}
.btn-secondary{background:var(--btn-secondary-bg);border-color:var(--btn-secondary-border);color:var(--text);backdrop-filter:blur(8px);}
.btn-secondary:hover{border-color:var(--text);}
/* CTA "Demander un devis" de la navbar uniquement : dégradé officiel Lux On (comme le logo) */
.nav-actions .btn-primary,.mobile-menu .btn-primary{
  background:linear-gradient(135deg,#00CFFF 0%,#5239FF 45%,#EA18C8 75%,#FF9A22 100%);
  color:#fff;border-radius:999px;
}
.burger{display:flex;background:none;border:none;font-size:1.5rem;cursor:pointer;width:40px;height:40px;align-items:center;justify-content:center;}
@media(min-width:768px){.nav-links{display:flex;} .burger{display:none;}}
.mobile-menu{display:none;position:absolute;top:calc(100% + 0.5rem);left:1.25rem;right:1.25rem;background:var(--glass-nav-bg);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--glass-nav-border);border-radius:18px;box-shadow:0 20px 50px -28px var(--glass-nav-shadow);flex-direction:column;padding:1rem 1.25rem 1.5rem;gap:1rem;}
.mobile-menu.open{display:flex;}
.mobile-menu a{font-weight:600;font-size:0.95rem;color:var(--text);}
@media(min-width:768px){.mobile-menu{display:none !important;}}
@media(max-width:767px){
  .nav-wrap{padding:0.6rem 0.9rem;gap:0.4rem;}
  .nav-wrap > a{padding:0.4rem 0.7rem;}
  .nav-wrap > a img{height:26px;width:auto;}
  .nav-actions{padding:0.3rem;gap:0.3rem;}
  .nav-actions .btn-primary{display:none;}
  .device-face.back{pointer-events:none;}
  .device-face .video-real{object-fit:contain;}
}

/* Bento cells (réutilisés sur toutes les pages) */
.bento{display:grid;grid-template-columns:1fr;gap:0.85rem;}
.cell{background:var(--card-bg);border-radius:var(--radius);border:1px solid var(--border);padding:1.5rem;position:relative;overflow:hidden;transition:border-color .2s, background-color .4s ease;}
.cell:hover{border-color:#D3D6DC;}
.accent-bar{position:absolute;top:0;left:0;right:0;height:3px;}
.accent-bar.blue{background:var(--blue);}
.accent-bar.magenta{background:var(--magenta);}
.accent-bar.orange{background:var(--orange);}
.cell h3{font-size:1rem;margin-bottom:0.4rem;}
.cell p{color:var(--text-secondary);font-size:0.85rem;}
.cell.dark{background:var(--bg-dark);border-color:var(--bg-dark);color:#fff;}
.cell.dark h3{color:#fff;}
.cell.dark p{color:rgba(255,255,255,0.65);}
.sol-num{font-size:0.75rem;font-weight:700;color:var(--text-secondary);font-variant-numeric:tabular-nums;margin-bottom:0.85rem;}
.cell.dark .sol-num{color:rgba(255,255,255,0.5);}
/* Boutons pleins sur fond toujours-sombre (carte logiciel, séquence sombre, CTA final) :
   forcés en blanc/texte foncé pour rester lisibles même quand la DA blanche rendrait
   --btn-primary-bg tout aussi sombre que la carte elle-même. */
.cell.dark .btn-primary,.sol-software-card .btn-primary,.sol-dark-zone .btn-primary{background:#fff;color:#0B1220;}
.cell.dark .btn-primary:hover,.sol-software-card .btn-primary:hover,.sol-dark-zone .btn-primary:hover{opacity:.88;}

/* Hero cinématique à expansion au scroll (accueil) — piloté en JS via js/main.js (pattern position:sticky, sans détournement des événements wheel/touch) */
.scroll-hero{position:relative;height:220vh;background:var(--bg-dark);}
.scroll-hero-sticky{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.scroll-hero-bg{position:absolute;inset:0;background:radial-gradient(circle at 30% 20%,rgba(11,71,250,0.25),transparent 55%),radial-gradient(circle at 75% 75%,rgba(251,198,58,0.18),transparent 50%),var(--bg-dark);transition:opacity .1s linear;}
.scroll-hero-inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.75rem;width:100%;height:100%;}
.scroll-hero-media{position:relative;width:380px;height:420px;border-radius:20px;background:#0f1830;box-shadow:0 40px 100px -20px rgba(0,0,0,0.5);max-width:92vw;max-height:70vh;}
.scroll-hero-title{display:flex;flex-wrap:wrap;justify-content:center;gap:0.6rem;color:#fff;font-weight:700;font-size:clamp(1.7rem,5vw,3.4rem);text-align:center;padding:0 1rem;letter-spacing:-0.01em;}
.scroll-hero-title .word{white-space:nowrap;will-change:transform;transition:transform .05s linear;}
.scroll-hero-hint{position:absolute;bottom:2rem;color:rgba(255,255,255,0.6);font-size:0.8rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;transition:opacity .4s ease;}
@media (prefers-reduced-motion: reduce){
  .scroll-hero{height:auto;}
  .scroll-hero-sticky{position:relative;height:auto;padding:4rem 1rem;}
  .scroll-hero-media{width:min(90vw,700px) !important;height:min(60vh,450px) !important;}
  .scroll-hero-title .word{transform:none !important;transition:none;}
  .scroll-hero-hint{display:none;}
}

/* Hero dashboard composite (accueil) */
.hero-grid{display:grid;grid-template-columns:1fr;gap:0.85rem;}
@media(min-width:900px){
  .hero-grid{grid-template-columns:repeat(6,1fr);grid-template-rows:auto auto;}
  .hero-headline{grid-column:1/4;grid-row:1/3;}
  .hero-mockup{grid-column:4/7;grid-row:1/3;}
}
.hero-headline{display:flex;flex-direction:column;justify-content:center;padding:2.25rem;}
.hero-headline .lead{color:var(--text-secondary);font-size:1rem;margin:1.1rem 0 1.6rem;max-width:420px;}
.hero-ctas{display:flex;flex-wrap:wrap;gap:0.75rem;}
.hero-mockup{padding:1rem;display:flex;flex-direction:column;}

/* Mockup écran 3D — oscillation continue + tour complet périodique déclenché par js/main.js */
.mockup-3d-wrap{flex:1;width:100%;min-height:220px;perspective:1200px;}
.mockup-device{position:relative;width:100%;height:100%;transform-style:preserve-3d;animation:sway 6s ease-in-out infinite alternate;}
.mockup-device.spin{animation:spin360 1.6s cubic-bezier(.45,0,.55,1) 1;}
@keyframes sway{from{transform:rotateY(-4deg) rotateX(1deg);}to{transform:rotateY(4deg) rotateX(-1deg);}}
@keyframes spin360{from{transform:rotateY(0deg);}to{transform:rotateY(360deg);}}
.device-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:8px;overflow:hidden;box-shadow:0 30px 60px -20px rgba(11,18,32,0.35);}
.device-face.front{background:var(--bg-dark);}
.device-face.back{transform:rotateY(180deg);background:var(--bg-dark);display:flex;align-items:center;justify-content:center;}
.device-face-icon{width:30%;max-width:110px;}

/* Mockup écran — REMPLACER le contenu simulé par une vraie vidéo (.mockup-video) quand disponible */
.mockup{position:relative;flex:1;width:100%;min-height:220px;border-radius:8px;background:var(--bg-dark);overflow:hidden;}
.mockup-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none;}
.mockup-video.active{display:block;}
.video-real{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit;}
.media-example-tag{position:absolute;top:0.75rem;right:0.75rem;background:rgba(11,18,32,0.72);color:#fff;font-size:0.65rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;padding:0.3rem 0.65rem;border-radius:999px;z-index:2;}
.video-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:inherit;overflow:hidden;background:linear-gradient(120deg,rgba(11,71,250,0.35),rgba(155,44,204,0.35),rgba(240,45,158,0.35),rgba(251,198,58,0.35)),var(--bg-dark);background-size:220% 220%;animation:videoPlaceholderShift 7s ease-in-out infinite;}
@keyframes videoPlaceholderShift{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}
.video-placeholder-label{color:rgba(255,255,255,0.85);font-size:0.75rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;display:flex;align-items:center;gap:0.6rem;}
.video-placeholder-icon{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,0.18);display:flex;align-items:center;justify-content:center;font-size:0.9rem;}
@media (prefers-reduced-motion: reduce){ .video-placeholder{animation:none;} }
.mockup-screen{position:absolute;inset:6%;border-radius:6px;background:#0f1830;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.mockup-content{width:82%;text-align:left;color:#fff;position:relative;min-height:4.5rem;}
.mockup-slide{position:absolute;inset:0;opacity:0;transform:translateY(8px);transition:opacity .6s ease, transform .6s ease;pointer-events:none;}
.mockup-slide.active{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion: reduce){ .mockup-slide{transition:none;} }
.mockup-tag{display:inline-block;padding:0.28rem 0.7rem;border-radius:4px;font-size:0.62rem;font-weight:700;text-transform:uppercase;margin-bottom:0.55rem;}
.mockup-tag.blue{background:var(--blue);color:#fff;}
.mockup-tag.magenta{background:var(--magenta);color:#fff;}
.mockup-tag.orange{background:var(--orange);color:#0B1220;}
.mockup-title{font-size:1.05rem;font-weight:700;margin-bottom:0.25rem;}
.mockup-price{font-size:1.15rem;font-weight:800;color:#fff;}
.mockup-caption{display:flex;justify-content:space-between;align-items:center;padding:0.7rem 0.25rem 0.1rem;font-size:0.72rem;color:var(--text-secondary);}
.live-dot{width:7px;height:7px;border-radius:50%;background:var(--orange);display:inline-block;margin-right:0.4rem;animation:pulse 1.8s infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.3;}}

/* Solutions grid — bento asymétrique */
.sol-grid{display:grid;grid-template-columns:1fr;gap:0.85rem;}
@media(min-width:700px){.sol-grid{grid-template-columns:repeat(6,1fr);}}
.sol-cell{grid-column:span 1;}
@media(min-width:700px){
  .sol-cell{grid-column:span 3;}
  .sol-cell.wide{grid-column:span 4;}
  .sol-cell.narrow{grid-column:span 2;}
}
.sol-cell a.btn{margin-top:0.9rem;}

.steps-grid{display:grid;grid-template-columns:1fr;gap:0.85rem;}
@media(min-width:700px){.steps-grid{grid-template-columns:repeat(4,1fr);}}
.step-badge{display:inline-flex;align-items:center;justify-content:center;width:1.9rem;height:1.9rem;border-radius:6px;color:#fff;font-weight:700;font-size:0.8rem;margin-bottom:0.75rem;}

.why-grid{display:grid;grid-template-columns:1fr;gap:0.85rem;}
@media(min-width:700px){.why-grid{grid-template-columns:repeat(4,1fr);}}

/* Réalisations */
.real-grid{display:grid;grid-template-columns:1fr;gap:1.1rem;}
@media(min-width:640px){.real-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1024px){.real-grid{grid-template-columns:repeat(4,1fr);}}
.filters{display:flex;flex-wrap:wrap;gap:0.6rem;margin-bottom:1.75rem;}
.filter-btn{padding:0.5rem 1rem;border-radius:999px;border:1px solid var(--border);background:var(--card-bg);font-size:0.8rem;font-weight:600;cursor:pointer;color:var(--text-secondary);transition:background-color .2s,color .2s,border-color .2s;}
.filter-btn.active{background:var(--btn-primary-bg);color:var(--btn-primary-text);border-color:var(--btn-primary-bg);}

/* ---------- Cartes "réalisation" : scènes illustrées (aucune photo réelle disponible côté client :
   ces visuels sont des installations mises en scène en CSS, pas des photos, en attendant les vraies) ---------- */
.real-cell{position:relative;aspect-ratio:4/5;border-radius:18px;overflow:hidden;border:1px solid var(--border);cursor:pointer;padding:0;width:100%;font-family:inherit;background:#0b0e16;box-shadow:0 16px 36px -26px rgba(11,18,32,0.3);transition:transform .25s ease,box-shadow .25s ease;}
.real-cell:hover{transform:translateY(-4px);box-shadow:0 24px 48px -26px rgba(11,18,32,0.4);}
.scene{position:absolute;inset:0;}
.scene-screen{position:absolute;background:#04060b;border-radius:3px;overflow:hidden;box-shadow:0 14px 30px -14px rgba(0,0,0,0.65),inset 0 0 0 1px rgba(255,255,255,0.05);}
.scene-content{position:absolute;inset:0;}
.scene-prop{position:absolute;left:0;right:0;bottom:0;height:16%;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,0.55));}
.real-caption{position:absolute;left:0;right:0;bottom:0;padding:0.9rem 1rem 0.8rem;background:linear-gradient(180deg,transparent,rgba(3,5,10,0.88) 68%);color:#fff;text-align:left;}
.real-caption .sector{display:block;font-size:0.62rem;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;opacity:0.72;}
.real-caption .type{display:block;font-size:0.92rem;font-weight:700;margin-top:0.15rem;}

/* Ambiances par scène */
.scene-menuboard{background:radial-gradient(120% 90% at 30% 0%,#3a1c10 0%,#170a08 75%);}
.scene-menuboard .scene-screen{left:12%;right:12%;top:14%;height:44%;}
.scene-vitrine{background:linear-gradient(160deg,#1a1035 0%,#0a0714 70%);}
.scene-vitrine .scene-screen{left:10%;right:10%;top:10%;height:56%;}
.scene-vitrine .scene-screen::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,0.05) 0 2px,transparent 2px 34%);}
.scene-mural{background:radial-gradient(110% 90% at 70% 0%,#132347 0%,#070a14 75%);}
.scene-mural .scene-screen{left:14%;right:14%;top:18%;height:42%;}
.scene-reunion{background:radial-gradient(110% 90% at 30% 100%,#0c2b33 0%,#060c11 75%);}
.scene-reunion .scene-screen{left:12%;right:12%;top:14%;height:44%;}
.scene-totem{background:linear-gradient(170deg,#2a1140 0%,#0d0714 70%);}
.scene-totem .scene-screen{left:34%;right:34%;top:10%;bottom:24%;border-radius:8px;}
.scene-totem .scene-prop{height:26%;background:radial-gradient(60% 100% at 50% 0%,rgba(0,0,0,0.5),transparent 70%);}
.scene-drive{background:linear-gradient(180deg,#3a1a10 0%,#160a10 60%,#0a0710 100%);}
.scene-drive .scene-screen{left:22%;right:22%;top:14%;height:34%;border-radius:6px;}
.scene-videowall{background:radial-gradient(120% 100% at 50% 0%,#0d1f3a 0%,#05070f 75%);}
.scene-videowall .scene-screen{left:8%;right:8%;top:12%;height:52%;}
.scene-tactile{background:radial-gradient(110% 90% at 30% 100%,#2a1140 0%,#0a0714 75%);}
.scene-tactile .scene-screen{left:20%;right:20%;top:12%;height:50%;}

/* Contenus animés à l'intérieur des écrans (mêmes techniques que la page Solutions) */
.scene-c-sweep{background:linear-gradient(115deg,transparent 15%,rgba(0,207,255,0.55) 40%,rgba(234,24,200,0.55) 58%,transparent 85%);background-size:260% 100%;animation:sceneSweep 5s ease-in-out infinite;}
@keyframes sceneSweep{0%,100%{background-position:130% 0;}50%{background-position:-30% 0;}}
.scene-c-lines{display:flex;gap:8%;padding:14% 10%;height:100%;}
.scene-c-lines .col{flex:1;display:flex;flex-direction:column;gap:16%;}
.scene-c-lines .ln{height:15%;border-radius:2px;background:rgba(255,255,255,0.22);}
.scene-c-lines .col:nth-child(2) .ln:nth-child(2){background:#FF9A22;animation:sceneFlash 2.4s ease-in-out infinite;}
@keyframes sceneFlash{0%,100%{opacity:1;}50%{opacity:0.35;}}
.scene-c-photo{background:linear-gradient(135deg,#00CFFF,#5239FF 45%,#EA18C8 75%,#FF9A22);opacity:0.9;animation:sceneKen 7s ease-in-out infinite alternate;}
@keyframes sceneKen{from{transform:scale(1);}to{transform:scale(1.12) translate(-2%,1%);}}
.scene-c-bars{display:flex;align-items:flex-end;gap:9%;padding:16% 12% 12%;height:100%;}
.scene-c-bars .bar{flex:1;border-radius:2px 2px 0 0;background:linear-gradient(180deg,#00CFFF,#5239FF);animation:sceneBar 2.6s ease-in-out infinite;}
.scene-c-bars .bar:nth-child(1){height:45%;animation-delay:0s;} .scene-c-bars .bar:nth-child(2){height:75%;animation-delay:.25s;}
.scene-c-bars .bar:nth-child(3){height:55%;animation-delay:.5s;} .scene-c-bars .bar:nth-child(4){height:90%;animation-delay:.75s;}
@keyframes sceneBar{0%,100%{transform:scaleY(1);}50%{transform:scaleY(1.15);}}
.scene-c-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:6%;padding:8%;height:100%;}
.scene-c-tiles span{border-radius:2px;background:rgba(255,255,255,0.14);animation:sceneTile 3.4s ease-in-out infinite;}
.scene-c-tiles span:nth-child(1){animation-delay:0s;} .scene-c-tiles span:nth-child(2){animation-delay:.15s;} .scene-c-tiles span:nth-child(3){animation-delay:.3s;}
.scene-c-tiles span:nth-child(4){animation-delay:.45s;} .scene-c-tiles span:nth-child(5){animation-delay:.6s;} .scene-c-tiles span:nth-child(6){animation-delay:.75s;}
@keyframes sceneTile{0%,70%,100%{background:rgba(255,255,255,0.14);}25%{background:#00CFFF;}45%{background:#EA18C8;}}
.scene-c-ripple{display:block;position:relative;width:100%;height:100%;}
.scene-c-ripple .dot{position:absolute;left:50%;top:50%;width:16%;height:16%;border-radius:50%;background:#FF9A22;transform:translate(-50%,-50%);}
.scene-c-ripple .ring{position:absolute;left:50%;top:50%;width:16%;height:16%;border-radius:50%;border:2px solid #EA18C8;animation:sceneRipple 2.4s ease-out infinite;}
.scene-c-ripple .ring.delay{animation-delay:1.2s;}
@keyframes sceneRipple{0%{transform:translate(-50%,-50%) scale(1);opacity:.9;}100%{transform:translate(-50%,-50%) scale(4);opacity:0;}}

/* Filet lumineux évoquant un rebord de comptoir / vitrine / totem */
.scene-menuboard .scene-prop,.scene-reunion .scene-prop{background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(0,0,0,0.55) 100%);}

/* Lightbox */
.lightbox{position:fixed;inset:0;background:rgba(11,18,32,0.9);display:none;align-items:center;justify-content:center;z-index:300;padding:2rem;}
.lightbox.open{display:flex;}
.lightbox-content{max-width:420px;max-height:88vh;width:100%;background:var(--card-bg-solid);border-radius:var(--radius);overflow:auto;}
.lightbox-body{position:relative;aspect-ratio:4/5;overflow:hidden;}
.lightbox-caption{padding:1.25rem;color:var(--text-secondary);font-size:0.9rem;}
.lightbox-close{position:absolute;top:1.5rem;right:1.5rem;background:var(--card-bg-solid);color:var(--text);border:none;border-radius:50%;width:40px;height:40px;font-size:1.2rem;cursor:pointer;z-index:1;}
@media (prefers-reduced-motion: reduce){
  .scene-c-sweep,.scene-c-photo,.scene-c-bars .bar,.scene-c-tiles span,.scene-c-ripple .ring,.scene-c-lines .ln{animation:none !important;}
}

.content-only-cell{background:var(--bg-dark);color:#fff;text-align:left;display:flex;flex-direction:column;gap:1rem;padding:2.25rem;}
@media(min-width:700px){.content-only-cell{flex-direction:row;align-items:center;justify-content:space-between;}}
.content-only-cell h2{color:#fff;}
.content-only-cell p{color:rgba(255,255,255,0.65);max-width:460px;}

.cta-final-cell{position:relative;text-align:center;padding:2.5rem;overflow:hidden;}
.cta-final-cell::before{content:'';position:absolute;top:0;left:10%;right:10%;height:2px;background:linear-gradient(100deg,#00CFFF 0%,#5239FF 35%,#EA18C8 68%,#FF9A22 100%);}
.cta-final-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:0.75rem;margin-top:1.25rem;}

/* ---------- Bande de réassurance compacte : "Un seul interlocuteur, du conseil au SAV." ---------- */
.process-strip{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem 0.75rem;}
.process-step{display:inline-flex;align-items:center;gap:0.5rem 0.75rem;font-weight:700;font-size:0.92rem;color:var(--text);white-space:nowrap;}
.process-step .arrow{color:var(--text-secondary);font-weight:400;}
@media(max-width:640px){
  .process-strip{gap:0.5rem 0.6rem;font-size:0.85rem;}
  .process-step{font-size:0.85rem;}
}

/* Formulaires (contact + devis) */
.form-grid{display:grid;grid-template-columns:1fr;gap:1.25rem;}
@media(min-width:700px){.form-grid.two-col{grid-template-columns:1fr 1fr;}}
.field{display:flex;flex-direction:column;gap:0.4rem;}
.field label{font-size:0.85rem;font-weight:600;}
.field .hint{font-size:0.78rem;color:var(--text-secondary);font-weight:400;}
.field input,.field select,.field textarea{padding:0.75rem 0.9rem;border-radius:8px;border:1px solid var(--border);font-family:inherit;font-size:0.9rem;background:var(--card-bg);color:var(--text);}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);}
.field textarea{resize:vertical;min-height:120px;}
.checkbox-group{display:flex;flex-wrap:wrap;gap:0.6rem;}
.checkbox-pill{display:flex;align-items:center;gap:0.5rem;padding:0.55rem 0.9rem;border:1px solid var(--border);border-radius:999px;font-size:0.82rem;cursor:pointer;background:var(--card-bg);}
.checkbox-pill input{accent-color:var(--blue);}
.radio-group{display:flex;flex-wrap:wrap;gap:1.25rem;}
.radio-group label{display:flex;align-items:center;gap:0.5rem;font-size:0.9rem;}
.form-error{color:var(--magenta);font-size:0.8rem;display:none;}
.form-error.visible{display:block;}
.form-success{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success-text);padding:1rem;border-radius:8px;font-size:0.9rem;display:none;}
.form-success.visible{display:block;}
.form-alert{background:rgba(234,24,200,0.08);border:1px solid var(--magenta);color:var(--text);padding:0.85rem 1rem;border-radius:8px;font-size:0.88rem;display:none;}
.form-alert.visible{display:block;}
.honeypot{position:absolute;left:-9999px;opacity:0;}
.reassurance-note{font-size:0.82rem;color:var(--text-secondary);margin-top:1rem;}
.privacy-note{font-size:0.8rem;color:var(--text-secondary);margin-top:1rem;}
.privacy-note a{color:var(--blue);text-decoration:underline;}

/* ---------- Devis : composition à deux colonnes (réassurance + formulaire) ---------- */
.devis-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:clamp(2rem,4vw,3.5rem);align-items:start;}
@media(max-width:900px){ .devis-grid{grid-template-columns:1fr;} }
.devis-intro{max-width:420px;position:sticky;top:6.5rem;}
@media(max-width:900px){ .devis-intro{position:static;max-width:none;} }
.info-list{display:flex;flex-direction:column;gap:1.5rem;margin-top:1.5rem;}
.info-row{display:flex;align-items:flex-start;gap:0.9rem;}
.info-row-icon{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;}
.info-row-icon svg{width:19px;height:19px;}
.info-row h3{font-size:0.95rem;margin-bottom:0.2rem;color:var(--text);}
.info-row p{font-size:0.88rem;color:var(--text-secondary);}
.info-row a{font-size:0.9rem;color:var(--blue);font-weight:600;}

/* ---------- Contact : parcours rapide WhatsApp (2 questions) + alternative email ---------- */
.contact-quick{padding:clamp(1.5rem,3.5vw,2.25rem);border-radius:24px;background:var(--card-bg-solid);border:1px solid var(--border);}
.contact-quick-q{margin-bottom:1.5rem;}
.contact-quick-q .label{display:block;margin-bottom:0.75rem;}
.contact-pill-group{display:flex;flex-wrap:wrap;gap:0.6rem;}
.contact-pill{display:inline-flex;align-items:center;padding:0.6rem 1.1rem;border:1px solid var(--border);border-radius:999px;font-size:0.85rem;font-weight:600;font-family:inherit;background:var(--card-bg);color:var(--text);cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease;}
.contact-pill:hover{border-color:var(--text);}
.contact-pill[aria-pressed="true"]{background:var(--text);color:var(--bg);border-color:var(--text);}
.contact-whatsapp-btn{display:inline-flex;align-items:center;gap:0.6rem;margin-top:0.5rem;}
.contact-whatsapp-btn svg{width:18px;height:18px;flex-shrink:0;}
.contact-whatsapp-hint{font-size:0.8rem;color:var(--text-secondary);margin-top:0.65rem;}
.contact-email-toggle{display:inline-flex;margin-top:1.5rem;background:none;border:none;padding:0;font-family:inherit;font-size:0.88rem;font-weight:600;color:var(--blue);text-decoration:underline;cursor:pointer;}
.contact-mini-info{display:flex;flex-wrap:wrap;gap:1.5rem 3rem;margin:1.75rem 0;padding:1.25rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.contact-mini-item a,.contact-mini-item p{margin-top:0.3rem;font-size:0.95rem;}
.contact-mini-item a{color:var(--blue);font-weight:600;}
.contact-form-cell > .label{display:block;margin-bottom:1.25rem;}

/* Pages légales */
.legal-content{max-width:760px;margin:0 auto;padding:1rem 0 4rem;}
.legal-content h2{margin-top:2rem;font-size:1.2rem;}
.legal-content p,.legal-content li{color:var(--text-secondary);font-size:0.92rem;margin-bottom:0.75rem;}
.legal-content ul{padding-left:1.25rem;margin-bottom:1rem;}
.legal-placeholder{background:var(--legal-note-bg);border:1px dashed var(--legal-note-border);border-radius:8px;padding:0.9rem;font-size:0.85rem;color:var(--legal-note-text);margin:0.75rem 0;}

footer{background:var(--bg);padding:2.25rem 1.25rem 1.75rem;border-top:1px solid var(--border);margin-top:0.5rem;}
.footer-grid{max-width:1280px;margin:0 auto;display:grid;gap:1.75rem;grid-template-columns:1fr;text-align:center;}
@media(min-width:768px){.footer-grid{grid-template-columns:repeat(3,1fr);text-align:left;}}
.footer-grid a{display:block;color:var(--text-secondary);margin-bottom:0.45rem;font-size:0.85rem;}
.footer-bottom{text-align:center;color:var(--text-secondary);font-size:0.75rem;margin-top:1.75rem;}
@media(max-width:767px){
  footer{padding:1.75rem 1.25rem 1.25rem;}
  .footer-grid{grid-template-columns:1fr 1fr;gap:1.5rem 1rem;text-align:left;}
  .footer-grid > div:first-child{grid-column:1 / -1;}
  .footer-grid a{margin-bottom:0.35rem;}
  .footer-bottom{margin-top:1.25rem;}
}

.whatsapp-float{position:fixed;bottom:1.25rem;right:1.25rem;width:54px;height:54px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(37,211,102,0.4);z-index:200;color:#fff;font-size:1.5rem;}

.reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease, transform .5s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion: reduce){ .reveal{transition:none;opacity:1;transform:none;} *{animation:none !important;} }

/* =====================================================================
   PAGE SOLUTIONS — refonte éditoriale (direction Apple : mise en scène,
   grands titres, séquences immersives). Préfixe "sol-" pour rester isolé
   du reste du design system et facilement supprimable/adaptable.
   ===================================================================== */

/* ---------- Cue de défilement (petit rond sombre, discret, partout pareil) ---------- */
.sol-scroll-cue{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:rgba(11,18,32,0.82);color:#fff;border:none;cursor:pointer;margin:2.75rem auto 0;font-size:1rem;transition:transform .2s ease,opacity .2s ease;}
.sol-scroll-cue:hover{transform:translateY(2px);}

/* ---------- Hero ---------- */
.sol-hero{position:relative;overflow:hidden;padding-top:clamp(2rem,4.5vw,3rem);padding-bottom:0;}
.sol-hero-glow{position:absolute;inset:-15% -10% 35% -10%;z-index:-1;pointer-events:none;
  background:
    radial-gradient(42% 55% at 18% 12%, rgba(0,207,255,0.24), transparent 70%),
    radial-gradient(42% 55% at 82% 8%, rgba(234,24,200,0.18), transparent 70%),
    radial-gradient(55% 60% at 55% 60%, rgba(255,154,34,0.15), transparent 70%);
  animation:solGlowDrift 28s ease-in-out infinite alternate;
}
:root:not([data-theme="light"]) .sol-hero-glow{
  background:
    radial-gradient(42% 55% at 18% 12%, rgba(0,207,255,0.16), transparent 70%),
    radial-gradient(42% 55% at 82% 8%, rgba(82,57,255,0.18), transparent 70%),
    radial-gradient(55% 60% at 55% 60%, rgba(234,24,200,0.12), transparent 70%);
}
@keyframes solGlowDrift{from{transform:scale(1) translate(0,0);}to{transform:scale(1.08) translate(-2%,1.5%);}}
.sol-hero-inner{max-width:840px;margin:0;padding-top:0.25rem;padding-bottom:1.75rem;text-align:left;}
.sol-hero-title{margin-top:0.75rem;font-size:clamp(1.6rem,3.6vw,3.15rem);line-height:1.12;}
.sol-hero-title-ghost{display:block;color:var(--text);opacity:.68;white-space:nowrap;}
:root[data-theme="light"] .sol-hero-title-ghost{opacity:1;}
.sol-hero-title .luxon-gradient-text{display:block;white-space:nowrap;}
@media(max-width:520px){
  .sol-hero-title{font-size:clamp(1.7rem,7.2vw,2.3rem);}
  .sol-hero-title-ghost,.sol-hero-title .luxon-gradient-text{white-space:normal;}
}
.sol-hero-lead{color:var(--text-secondary);font-size:1rem;max-width:460px;margin-top:1rem;}
.sol-hero-ctas{display:flex;flex-wrap:wrap;gap:0.75rem;margin-top:1.5rem;}
.sol-hero-screen-wrap{position:relative;max-width:880px;margin:0 auto;padding:0 clamp(1rem,4vw,2rem);}
.sol-hero-screen{position:relative;width:100%;aspect-ratio:16/9;border-radius:20px;background:#04060c;border:1px solid rgba(255,255,255,0.08);box-shadow:0 40px 80px -36px rgba(11,18,32,0.5);overflow:hidden;transform:perspective(1600px) rotateX(4deg);transform-origin:bottom center;transition:transform .35s ease-out;will-change:transform;}
.sol-hero-screen-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.sol-hero-screen::after{content:'';position:absolute;inset:0;background:linear-gradient(200deg,rgba(255,255,255,0.32),transparent 45%);}
.sol-float-label{position:absolute;background:var(--card-bg-solid);color:var(--text);font-size:0.82rem;font-weight:600;padding:0.6rem 1.1rem;border-radius:999px;box-shadow:0 14px 30px -18px rgba(11,18,32,0.35);z-index:2;white-space:nowrap;}
.sol-float-label-a{left:3%;top:8%;}
.sol-float-label-b{right:4%;bottom:10%;}
@media(max-width:700px){
  .sol-hero-screen{aspect-ratio:4/3;border-radius:16px;transform:none;}
  .sol-float-label{font-size:0.68rem;padding:0.45rem 0.75rem;}
  .sol-float-label-a{top:6%;}
  .sol-float-label-b{display:none;}
}
@media (prefers-reduced-motion: reduce){ .sol-hero-glow{animation:none !important;} }

/* ---------- Choix par environnement ---------- */
.sol-env{background:var(--bg-alt);}
.sol-env-grid{display:grid;grid-template-columns:1fr;gap:1rem;margin-top:2rem;}
@media(min-width:700px){.sol-env-grid{grid-template-columns:1fr 1fr;}}
/* Fond dédié (au lieu de --card-bg-solid, trop proche de --bg-alt en DA sombre pour se distinguer) :
   même couleur pour les 4 cartes, dans les deux DA. */
.sol-env-card{position:relative;display:block;width:100%;text-align:left;font-family:inherit;cursor:pointer;border-radius:20px;padding:1.5rem 1.5rem;min-height:140px;overflow:hidden;background:var(--card-bg-solid);border:1px solid var(--border);transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;}
:root:not([data-theme="light"]) .sol-env-card{background:#131a2e;border-color:rgba(255,255,255,0.12);}
.sol-env-card:hover{transform:translateY(-3px);box-shadow:0 20px 40px -26px rgba(11,18,32,0.25);}
.sol-env-card::before{content:'';position:absolute;top:0;left:8%;right:8%;height:3px;border-radius:0 0 3px 3px;background:linear-gradient(100deg,#00CFFF 0%,#5239FF 35%,#EA18C8 68%,#FF9A22 100%);}
.sol-env-card h3{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",Inter,Arial,sans-serif;font-weight:600;font-size:1.15rem;letter-spacing:-0.02em;color:var(--text);}
.sol-env-card p{color:var(--text-secondary);margin-top:0.4rem;font-size:0.92rem;max-width:320px;}
.sol-env-check{position:absolute;top:1rem;right:1rem;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:0.7rem;color:transparent;transition:all .2s ease;}
:root:not([data-theme="light"]) .sol-env-check{border-color:rgba(255,255,255,0.3);}
.sol-env-card.selected .sol-env-check{background:linear-gradient(100deg,#00CFFF,#5239FF,#EA18C8,#FF9A22);border-color:transparent;color:#fff;}
.sol-env-whatsapp{display:inline-flex;margin-top:1.25rem;}

/* ---------- Séquence sombre (intro + 3 chapitres) — toujours bleu nuit, quelle que soit la DA ---------- */
.sol-discovery{position:relative;}
.sol-dark-zone{background:var(--bg-dark);}
.sol-dark-intro{padding-top:clamp(2rem,5vw,3rem);padding-bottom:clamp(1.1rem,3vw,1.5rem);}
.sol-pill-nav{display:flex;flex-wrap:wrap;align-items:center;gap:0.6rem 0.9rem;font-weight:600;color:rgba(255,255,255,0.85);font-size:0.9rem;margin-bottom:1.75rem;}
.sol-pill-nav .dot{width:5px;height:5px;border-radius:50%;background:linear-gradient(100deg,#00CFFF,#EA18C8);flex:0 0 auto;}
.sol-divider{height:1px;background:rgba(255,255,255,0.12);margin-top:1.5rem;}
.sol-chapter{padding-top:clamp(1.75rem,4vw,2.75rem);padding-bottom:clamp(1.75rem,4vw,2.75rem);}
.sol-chapter h2{color:#fff;}
.sol-tags{display:flex;flex-wrap:wrap;gap:0.6rem;margin-top:1rem;}
.sol-tag{font:inherit;font-size:0.85rem;font-weight:600;color:rgba(255,255,255,0.75);background:transparent;border:1px solid rgba(255,255,255,0.18);border-radius:999px;padding:0.5rem 1rem;cursor:pointer;transition:background-color .3s ease,color .3s ease,border-color .3s ease;}
.sol-tag.highlight,.sol-tag.active{background:rgba(255,255,255,0.14);color:#fff;border-color:rgba(255,255,255,0.4);}
.sol-stage{position:relative;margin-top:1.75rem;border-radius:24px;background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.07);padding:clamp(1.5rem,4vw,2.25rem) clamp(1rem,3vw,2rem);overflow:hidden;}
[data-visual]{transition:opacity .35s ease,transform .35s ease;}
[data-visual].dim{opacity:.25;transform:scale(.95);}
[data-visual].is-hidden{display:none;}

.sol-stage-01{min-height:260px;display:flex;align-items:center;justify-content:center;}

/* 01a — Écrans vitrine : encadré comme dans une devanture, avec reflet de vitre animé */
.sol-vitrine{display:flex;flex-direction:column;align-items:center;}
.sol-vitrine-frame{position:relative;width:186px;max-width:58vw;aspect-ratio:3/4;border-radius:6px;background:#04060c;border:9px solid #10131b;box-shadow:0 26px 56px -26px rgba(0,0,0,0.6);overflow:hidden;}
.sol-vitrine-screen{position:absolute;inset:0;background:linear-gradient(160deg,#00CFFF 0%,#5239FF 45%,#EA18C8 80%,#FF9A22 100%);}
.sol-vitrine-glare{position:absolute;inset:-40% -10%;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,0.24) 48%,rgba(255,255,255,0.06) 55%,transparent 62%);animation:solVitrineGlare 6s ease-in-out infinite;}
@keyframes solVitrineGlare{0%,100%{transform:translateX(-12%);}50%{transform:translateX(12%);}}
.sol-vitrine-sill{width:220px;max-width:64vw;height:9px;margin-top:2px;background:linear-gradient(180deg,#1c212c,#04060a);border-radius:0 0 6px 6px;}

/* 01b — Totems : borne haute, pied large posé au sol */
.sol-totem{display:flex;flex-direction:column;align-items:center;}
.sol-totem-screen{position:relative;width:102px;max-width:28vw;height:225px;border-radius:12px;background:#04060c;border:1px solid rgba(255,255,255,0.09);box-shadow:0 26px 52px -24px rgba(0,0,0,0.6);overflow:hidden;}
.sol-totem-screen::before{content:'';position:absolute;inset:4%;border-radius:9px;background:linear-gradient(200deg,#5239FF 0%,#EA18C8 55%,#FF9A22 100%);animation:solWallKen 9s ease-in-out infinite alternate;}
.sol-totem-pole{width:12px;height:28px;background:linear-gradient(180deg,#2a2e37,#0c0d10);}
.sol-totem-base{width:84px;height:12px;border-radius:50%;background:radial-gradient(closest-side,#20242e,#0a0c11 80%);box-shadow:0 7px 16px -6px rgba(0,0,0,0.6);}

/* 01c — Outdoor : boîtier étanche + halo de soleil (lisibilité plein jour) */
.sol-outdoor{display:flex;flex-direction:column;align-items:center;}
.sol-outdoor-screen{position:relative;width:186px;max-width:54vw;aspect-ratio:16/10;border-radius:11px;background:#04060c;border:4px solid #1b2029;box-shadow:0 26px 52px -24px rgba(0,0,0,0.6),inset 0 0 0 1px rgba(255,255,255,0.05);overflow:hidden;}
.sol-outdoor-screen::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,#00CFFF 0%,#5239FF 40%,#EA18C8 75%,#FF9A22 100%);}
.sol-outdoor-sun{position:absolute;top:-30%;right:-20%;width:70%;height:140%;background:radial-gradient(circle,rgba(255,255,255,0.85) 0%,rgba(255,255,255,0.15) 45%,transparent 70%);animation:solOutdoorGlare 5s ease-in-out infinite;}
@keyframes solOutdoorGlare{0%,100%{opacity:.5;}50%{opacity:1;}}
.sol-outdoor-pole{width:11px;height:44px;margin-top:2px;background:linear-gradient(180deg,#2a2e37,#0c0d10);}
@media (prefers-reduced-motion: reduce){ .sol-vitrine-glare,.sol-outdoor-sun{animation:none !important;} }

.sol-stage-02{min-height:220px;display:flex;align-items:center;justify-content:center;}
.sol-screen-h{position:relative;width:100%;max-width:600px;aspect-ratio:16/9;border-radius:16px;background:#04060c;border:1px solid rgba(255,255,255,0.09);box-shadow:0 26px 58px -26px rgba(0,0,0,0.6);overflow:hidden;display:flex;align-items:center;justify-content:center;}

/* 02a — Menu boards : 5 écrans côte à côte, comme un vrai mur de menu de restauration rapide */
.sol-menuwall{display:flex;gap:clamp(0.35rem,1.4vw,0.6rem);width:100%;max-width:600px;justify-content:center;}
.sol-menuwall-screen{position:relative;flex:1;max-width:100px;aspect-ratio:9/14;border-radius:9px;background:#04060c;border:1px solid rgba(255,255,255,0.09);box-shadow:0 17px 34px -20px rgba(0,0,0,0.55);display:flex;flex-direction:column;justify-content:center;gap:8px;padding:12px 10px;}
.sol-menuwall-screen .ln{display:block;width:100%;height:8%;flex-shrink:0;border-radius:2px;background:rgba(255,255,255,0.22);}
.sol-menuwall-screen .ln.accent{background:linear-gradient(90deg,#00CFFF,#EA18C8);animation:solMenuFlash 2.6s ease-in-out infinite;}
@keyframes solMenuFlash{0%,100%{opacity:1;}50%{opacity:.4;}}

/* 02b — Écrans muraux : mur de bureau (panneau + plinthe) avec patte de fixation visible + respiration lente */
.sol-wall-scene{position:relative;width:100%;max-width:640px;padding:1.25rem clamp(1rem,3vw,1.5rem) 1.75rem;border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,0.03) 0%,rgba(255,255,255,0.06) 100%);}
.sol-wall-scene::after{content:'';position:absolute;left:6%;right:6%;bottom:14px;height:1px;background:rgba(255,255,255,0.14);}
.sol-wall-scene .sol-screen-h{position:relative;z-index:1;}
.sol-wall-screen::before{content:'';position:absolute;inset:3%;border-radius:12px;background:linear-gradient(200deg,#5239FF 0%,#EA18C8 55%,#00CFFF 100%);animation:solWallKen 8s ease-in-out infinite alternate;}
@keyframes solWallKen{from{transform:scale(1) translate(0,0);}to{transform:scale(1.1) translate(-1.5%,1%);}}
.sol-mount{position:absolute;left:50%;bottom:-14px;transform:translateX(-50%);width:32px;height:16px;background:linear-gradient(180deg,#2a2e37,#0c0d10);border-radius:0 0 4px 4px;}

/* 02c — Réunion : écran de visio avec témoin d'enregistrement + tablette de salle */
.sol-meeting-scene{display:flex;flex-direction:column;align-items:center;width:100%;}
.sol-meeting-screen::before{content:'';position:absolute;inset:0;background:#0b0e16;}
.sol-meeting-cam{position:absolute;top:8px;left:50%;transform:translateX(-50%);width:8px;height:8px;border-radius:50%;background:#EF4444;box-shadow:0 0 0 3px rgba(239,68,68,0.25);z-index:2;animation:solMeetingRec 1.6s ease-in-out infinite;}
@keyframes solMeetingRec{0%,100%{opacity:1;}50%{opacity:.35;}}
.sol-meeting-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,1fr);gap:6%;width:70%;height:70%;}
.sol-meeting-grid span{position:relative;border-radius:8px;overflow:hidden;background:linear-gradient(150deg,#00CFFF,#5239FF);animation:solMeetingPulse 3.2s ease-in-out infinite;}
.sol-meeting-grid span:nth-child(2){background:linear-gradient(150deg,#5239FF,#EA18C8);animation-delay:.6s;}
.sol-meeting-grid span:nth-child(3){background:linear-gradient(150deg,#EA18C8,#FF9A22);animation-delay:1.2s;}
.sol-meeting-grid span:nth-child(4){background:linear-gradient(150deg,#FF9A22,#00CFFF);animation-delay:1.8s;}
@keyframes solMeetingPulse{0%,100%{opacity:1;}50%{opacity:.72;}}
.sol-meeting-table{width:78%;max-width:440px;height:12px;margin-top:-2px;background:linear-gradient(180deg,#1a1f29,#04060a);border-radius:0 0 16px 16px;}
@media (prefers-reduced-motion: reduce){ .sol-meeting-cam{animation:none !important;} }

.sol-stage-03{min-height:220px;display:flex;align-items:center;justify-content:center;}

/* 03a — Video wall : mur modulaire encadré, posé sur un socle */
.sol-vw-scene{display:flex;flex-direction:column;align-items:center;width:100%;}
.sol-vw-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.45rem;width:100%;max-width:540px;padding:0.5rem;background:#04060c;border-radius:9px;border:1px solid rgba(255,255,255,0.08);box-shadow:0 26px 58px -26px rgba(0,0,0,0.6);}
.sol-vw-grid span{position:relative;aspect-ratio:16/9;border-radius:5px;overflow:hidden;background:#04060c;border:1px solid rgba(255,255,255,0.08);}
.sol-vw-grid span::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,#00CFFF,#5239FF 45%,#EA18C8 75%,#FF9A22);animation:solVwPulse 4s ease-in-out infinite;}
.sol-vw-grid span:nth-child(even)::before{animation-delay:.7s;}
.sol-vw-plinth{width:56%;max-width:340px;height:9px;margin-top:4px;background:linear-gradient(180deg,#1a1f29,#04060a);border-radius:0 0 7px 7px;}
@keyframes solVwPulse{0%,100%{opacity:.9;}50%{opacity:.55;}}
@media (prefers-reduced-motion: reduce){ .sol-vw-grid span::before,.sol-wall-screen::before,.sol-menuwall-screen .ln.accent{animation:none !important;} }

/* 03b/03c — Bornes (tactile / avis client) : écran monté sur pied, comme un vrai kiosque */
.sol-kiosk{display:flex;flex-direction:column;align-items:center;}
.sol-kiosk-screen{position:relative;width:220px;max-width:70vw;aspect-ratio:4/5;border-radius:14px;background:#04060c;border:1px solid rgba(255,255,255,0.09);box-shadow:0 26px 52px -26px rgba(0,0,0,0.6);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;overflow:hidden;animation:solKioskGlow 3.5s ease-in-out infinite;}
@keyframes solKioskGlow{0%,100%{box-shadow:0 26px 52px -26px rgba(0,0,0,0.6);}50%{box-shadow:0 26px 52px -26px rgba(0,0,0,0.6),0 0 0 4px rgba(255,255,255,0.06);}}
.sol-kiosk-stand{width:12px;height:46px;background:linear-gradient(180deg,#2a2e37,#050608);}
.sol-kiosk-title{color:#fff;font-weight:700;font-size:0.92rem;}
.sol-kiosk-faces{display:flex;gap:0.95rem;}
.sol-kiosk-faces .face{width:34px;height:34px;transition:transform .2s ease;}
.sol-kiosk-faces .face:hover{transform:scale(1.15);}
/* 03b — Tactile : mini-menu d'icônes + doigt qui touche l'écran, pour un rendu de vraie borne interactive */
.sol-tactile-demo{position:relative;width:100%;height:100%;}
.sol-tactile-menu{position:absolute;inset:14%;display:grid;grid-template-columns:repeat(2,1fr);gap:12%;z-index:0;}
.sol-tactile-menu span{border-radius:12px;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.12);}
.sol-ripple-dot{position:absolute;right:26%;bottom:22%;width:14px;height:14px;border-radius:50%;background:#FF9A22;transform:translate(50%,50%);z-index:1;}
.sol-ripple-ring{position:absolute;right:26%;bottom:22%;width:14px;height:14px;border-radius:50%;border:2px solid #EA18C8;transform:translate(50%,50%);animation:solRipple 2.2s ease-out infinite;z-index:1;}
.sol-ripple-ring.delay{animation-delay:1.1s;}
.sol-tactile-finger{position:absolute;right:12%;bottom:2%;width:11px;height:52px;border-radius:7px;background:linear-gradient(180deg,#f2d3ba,#dcae87);transform:rotate(24deg);transform-origin:bottom center;box-shadow:0 7px 14px -7px rgba(0,0,0,0.55);z-index:2;}
.sol-tactile-finger::after{content:'';position:absolute;top:-4px;left:50%;transform:translateX(-50%);width:11px;height:11px;border-radius:50%;background:inherit;}
@keyframes solRipple{0%{transform:translate(50%,50%) scale(1);opacity:.9;}100%{transform:translate(50%,50%) scale(5);opacity:0;}}
@media (prefers-reduced-motion: reduce){ .sol-ripple-ring{animation:none !important;} }

/* ---------- Logiciel de gestion ---------- */
.sol-software-card{background:var(--bg-dark);border-radius:28px;padding:clamp(1.5rem,4vw,2.5rem);display:grid;grid-template-columns:1fr;gap:1.75rem;}
@media(min-width:900px){.sol-software-card{grid-template-columns:0.85fr 1.15fr;align-items:center;}}
.sol-check-list{list-style:none;margin:1.1rem 0 0;padding:0;display:flex;flex-direction:column;gap:0.6rem;}
.sol-check-list li{position:relative;padding-left:1.5rem;color:rgba(255,255,255,0.82);font-size:0.9rem;}
.sol-check-list li::before{content:'✓';position:absolute;left:0;top:0;color:#00CFFF;font-weight:700;}
.sol-dash{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:16px;padding:1rem;display:grid;grid-template-columns:0.5fr 1fr;gap:0.85rem;min-height:180px;}
.sol-dash-side{display:flex;flex-direction:column;gap:0.6rem;}
.sol-dash-side span{height:10px;border-radius:4px;background:rgba(255,255,255,0.12);}
.sol-dash-side span:first-child{width:60%;}
.sol-dash-main{background:rgba(255,255,255,0.03);border-radius:12px;display:flex;align-items:flex-end;padding:1rem;}
.sol-dash-bars{display:flex;align-items:flex-end;gap:10%;width:100%;height:100%;}
.sol-dash-bars span{flex:1;border-radius:3px 3px 0 0;background:linear-gradient(180deg,#00CFFF,#5239FF 55%,#EA18C8);}

/* ---------- Studio créatif : composition asymétrique (visuels réels) ---------- */
.sol-studio-visual{margin-top:2rem;display:grid;grid-template-columns:3fr 2fr;grid-template-rows:auto auto;gap:1rem;align-items:start;}
.sol-studio-landscape,.sol-studio-portrait,.sol-studio-secondary-item{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--border);box-shadow:0 26px 50px -28px rgba(11,18,32,0.3);transition:transform .3s ease,box-shadow .3s ease;}
.sol-studio-landscape:hover,.sol-studio-portrait:hover,.sol-studio-secondary-item:hover{transform:translateY(-3px);box-shadow:0 30px 55px -26px rgba(11,18,32,0.35);}
.sol-studio-landscape img,.sol-studio-portrait img,.sol-studio-secondary-item img{display:block;width:100%;height:100%;object-fit:cover;}
.sol-studio-landscape{grid-column:1;grid-row:1;aspect-ratio:16/9;}
.sol-studio-portrait{grid-column:2;grid-row:1 / span 2;aspect-ratio:9/16;}
.sol-studio-secondary{grid-column:1;grid-row:2;display:grid;grid-template-columns:1fr 1fr;gap:0.65rem;}
.sol-studio-secondary-item{aspect-ratio:16/9;}
.sol-studio-sector{position:absolute;right:0.7rem;bottom:0.7rem;z-index:1;background:var(--card-bg-solid);color:var(--text);font-size:0.7rem;font-weight:600;letter-spacing:0.01em;padding:0.32rem 0.7rem;border-radius:999px;box-shadow:0 10px 22px -14px rgba(11,18,32,0.35);}
.sol-studio-secondary-item .sol-studio-sector{font-size:0.62rem;padding:0.26rem 0.55rem;right:0.5rem;bottom:0.5rem;}
@media(max-width:860px){
  .sol-studio-visual{grid-template-columns:1fr;grid-template-rows:auto;gap:0.85rem;}
  .sol-studio-landscape,.sol-studio-portrait{grid-column:1;grid-row:auto;}
  .sol-studio-secondary{grid-column:1;grid-row:auto;grid-template-columns:1fr;gap:0.85rem;}
}

/* ---------- Studio créatif (page Solutions) : mockup 4 écrans, fond transparent ---------- */
.sol-studio-mockup{margin-top:2.5rem;width:100%;}
.sol-studio-mockup img{display:block;width:100%;height:auto;max-height:600px;margin:0 auto;object-fit:contain;filter:drop-shadow(0 30px 40px rgba(11,18,32,0.2));}
:root:not([data-theme="light"]) .sol-studio-mockup img{filter:drop-shadow(0 0 24px rgba(255,255,255,0.06)) drop-shadow(0 30px 40px rgba(0,0,0,0.45));}
@media(max-width:700px){ .sol-studio-mockup img{max-height:none;} }

/* ---------- Accompagnement compact ---------- */
.sol-process-cell{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.25rem;}
.sol-step-sep{display:inline-block;width:22px;height:2px;border-radius:2px;background:linear-gradient(100deg,#00CFFF,#5239FF,#EA18C8,#FF9A22);vertical-align:middle;}
@media(max-width:640px){ .sol-step-sep{width:14px;} }

