/* Limpigo Solutions : feuille de style commune (extraite de la page d'accueil validée) */
:root{
  --ink:#0D0B24; --ink2:#161434; --ink3:#1E1B45;
  --text:#F4F3FF; --muted:#B4B2D3; --line:rgba(255,255,255,.10);
  --glass:rgba(255,255,255,.045); --glass2:rgba(255,255,255,.08);
  --red:#E3161C; --redDeep:#CA0000; --blue:#3E63FF; --blueSoft:#8EA4FF;
  --display:'Sora', 'Segoe UI', system-ui, sans-serif;
  --body:'Manrope', 'Segoe UI', system-ui, sans-serif;
  color-scheme: dark;
  box-sizing: border-box;
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --ink:#0D0B24; --text:#F4F3FF; color-scheme: dark; } }
:root[data-theme="dark"]{ --ink:#0D0B24; --text:#F4F3FF; color-scheme: dark; }
html{ scroll-padding-top: calc(env(safe-area-inset-top, 0px) + 80px); scroll-behavior: smooth; }
*,*::before,*::after{ box-sizing: border-box; }
body{ margin:0; background:var(--ink); color:var(--text); font-family:var(--body); font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
img{ max-width:100%; display:block; }
a{ color:inherit; }
:focus-visible{ outline:2px solid var(--blueSoft); outline-offset:3px; border-radius:8px; }
.wrap{ max-width:1200px; margin:0 auto; padding:0 24px; }
h1,h2,h3{ font-family:var(--display); letter-spacing:-0.03em; margin:0; }
h2{ font-size:clamp(2rem, 4vw, 3.2rem); line-height:1.08; font-weight:700; }
.lead{ color:var(--muted); font-size:19px; max-width:60ch; }
.kicker{ color:var(--blueSoft); font-weight:600; font-size:16px; margin:0 0 14px; }


/* COSMIC BACKGROUND */
html{ background:var(--ink); }
body{ background:transparent; }
#cosmos{ position:fixed; inset:0; width:100vw; height:100vh; z-index:-1; pointer-events:none; display:block; }



/* IA BAND */
.ia-band{ margin-top:28px; padding:44px; display:flex; flex-wrap:wrap; gap:36px; align-items:center; justify-content:space-between; background:radial-gradient(120% 140% at 100% 0%, rgba(62,99,255,.28), rgba(255,255,255,.035) 55%), radial-gradient(90% 120% at 0% 100%, rgba(227,22,28,.22), transparent 60%); }
.ia-text{ flex:1 1 480px; min-width:0; display:flex; flex-direction:column; gap:14px; }
.ia-text h3{ font-size:30px; }
.ia-text p{ margin:0; color:var(--muted); max-width:62ch; }
.ia-text ul{ list-style:none; padding:0; margin:4px 0 0; display:grid; gap:10px; }
.ia-text li{ display:flex; gap:10px; align-items:flex-start; font-size:15px; }
.ia-text li svg{ flex-shrink:0; margin-top:3px; color:var(--blueSoft); }
.ia-price{ flex:0 1 280px; display:flex; flex-direction:column; gap:10px; align-items:flex-start; }
.ia-price .btn{ margin-top:10px; }

/* NAV */
body::before{ content:""; position:fixed; inset:0 0 auto; height:env(safe-area-inset-top, 0px); z-index:60; background:rgba(13,11,36,.72); backdrop-filter:blur(18px); }
.nav{ position:sticky; top:env(safe-area-inset-top, 0px); z-index:50; background:rgba(13,11,36,.62); backdrop-filter:blur(18px) saturate(160%); -webkit-backdrop-filter:blur(18px) saturate(160%); border-bottom:1px solid var(--line); }
.nav .wrap{ min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.nav-logo img{ height:46px; width:auto; }
.nav-links{ display:flex; gap:30px; flex-wrap:wrap; font-weight:500; font-size:15px; }
.nav-links a{ text-decoration:none; color:var(--muted); transition:color .2s; }
.nav-links a:hover{ color:var(--text); }
.nav-cta{ display:flex; gap:10px; align-items:center; }

/* BUTTONS */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:12px 24px; border-radius:14px; font-weight:700; font-size:16px; text-decoration:none; border:0; cursor:pointer; font-family:var(--body); transition:transform .2s, box-shadow .2s, background .2s; }
.btn:active{ transform:scale(.98); }
.btn-red{ background:linear-gradient(180deg,#F2262C,#C80F14); color:#fff; box-shadow:0 0 0 1px rgba(255,255,255,.12) inset, 0 10px 30px -8px rgba(227,22,28,.7); }
.btn-red:hover{ box-shadow:0 0 0 1px rgba(255,255,255,.2) inset, 0 14px 44px -6px rgba(227,22,28,.9); }
.btn-ghost{ background:var(--glass2); color:var(--text); box-shadow:0 0 0 1px var(--line) inset; }
.btn-ghost:hover{ background:rgba(255,255,255,.13); }
.btn-sm{ min-height:44px; padding:10px 18px; font-size:15px; border-radius:12px; }

/* HERO */
.hero{ position:relative; overflow:hidden; isolation:isolate; }
.hero::before{ content:""; position:absolute; inset:-20% -10% auto auto; width:70vw; height:70vw; max-width:900px; max-height:900px; background:radial-gradient(closest-side, rgba(62,99,255,.35), transparent 70%); z-index:-1; }
.hero::after{ content:""; position:absolute; left:-15%; bottom:-30%; width:60vw; height:60vw; max-width:760px; max-height:760px; background:radial-gradient(closest-side, rgba(227,22,28,.22), transparent 70%); z-index:-1; }
.hero .wrap{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); align-items:center; gap:24px; padding-top:72px; padding-bottom:96px; }
.hero h1{ font-size:clamp(2.6rem, 5.6vw, 4.8rem); line-height:1.02; font-weight:800; }
.hero h1 .pi{ font-family: Georgia, 'Times New Roman', serif; font-style:italic; color:var(--red); text-shadow:0 0 30px rgba(227,22,28,.6); }
.hero .lead{ margin:26px 0 0; }
.hero-ctas{ margin-top:36px; display:flex; gap:14px; flex-wrap:wrap; }
.stage{ position:relative; aspect-ratio:1/1; width:100%; max-width:600px; justify-self:center; }
#pi3d{ position:absolute; inset:0; width:100%; height:100%; display:block; cursor:grab; touch-action:pan-y; }
.stage-fallback{ position:absolute; inset:0; display:none; align-items:center; justify-content:center; font-family:Georgia, serif; font-style:italic; font-size:min(60vw, 360px); color:var(--red); text-shadow:0 0 60px rgba(227,22,28,.6); }
.no-webgl .stage-fallback{ display:flex; }
.ocard{ position:absolute; z-index:3; display:flex; flex-direction:column; gap:2px; min-width:200px; padding:14px 18px; border-radius:18px; text-decoration:none; color:var(--text); background:rgba(22,20,52,.62); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); box-shadow:0 0 0 1px rgba(255,255,255,.14) inset, 0 24px 50px -24px rgba(0,0,0,.8); opacity:0; transform:scale(.6) translateY(14px); filter:blur(6px); pointer-events:none; transition:opacity .55s ease, transform .65s cubic-bezier(.2,1.4,.3,1), filter .55s ease, box-shadow .3s; }
.ocard.show{ opacity:1; transform:none; filter:none; pointer-events:auto; }
.ocard.active{ box-shadow:0 0 0 1.5px var(--red) inset, 0 0 40px -6px rgba(227,22,28,.75), 0 24px 50px -24px rgba(0,0,0,.8); }
.ocard .ot{ font-family:var(--display); font-weight:700; font-size:15px; }
.ocard .od{ color:var(--muted); font-size:13px; line-height:1.4; }
.ocard .op{ margin-top:6px; font-family:var(--display); font-weight:800; font-size:20px; color:#FF6B6F; }
.ocard .op small{ font-size:12px; font-weight:600; color:var(--muted); }
.o1{ left:-2%; top:6%; } .o2{ right:-4%; top:30%; } .o3{ left:0; bottom:16%; } .o4{ right:2%; bottom:2%; } .o5{ right:6%; top:-4%; }
.hint{ position:absolute; z-index:4; left:50%; bottom:-6px; transform:translateX(-50%); display:inline-flex; align-items:center; gap:10px; min-height:44px; padding:10px 18px; border-radius:999px; border:0; cursor:pointer; font:600 14px var(--body); color:var(--text); background:rgba(227,22,28,.18); box-shadow:0 0 0 1px rgba(255,106,111,.45) inset; white-space:nowrap; animation:pulse 2.4s ease-in-out infinite; }
.hint svg{ color:#FF6B6F; }
@keyframes pulse{ 0%,100%{ box-shadow:0 0 0 1px rgba(255,106,111,.45) inset, 0 0 0 0 rgba(227,22,28,.4) } 50%{ box-shadow:0 0 0 1px rgba(255,106,111,.45) inset, 0 0 0 10px rgba(227,22,28,0) } }
.hint.done{ animation:none; background:var(--glass2); box-shadow:0 0 0 1px var(--line) inset; }

/* PHOTO & VIDEO */
.media{ position:relative; overflow:hidden; border-radius:28px; background:#1A1840; box-shadow:0 0 0 1px var(--line) inset, 0 40px 80px -40px rgba(0,0,0,.8); }
.media img,.media video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.media .ph{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; text-align:center; padding:24px; color:var(--muted); font-size:14px; background:radial-gradient(80% 90% at 20% 10%, rgba(62,99,255,.45), transparent 60%), radial-gradient(70% 80% at 90% 100%, rgba(227,22,28,.40), transparent 60%), #15133A; }
.media .ph b{ color:var(--text); font-family:var(--display); font-size:16px; }
.media .ph::after{ content:"π"; position:absolute; right:6%; bottom:-6%; font:italic 220px/1 Georgia, serif; color:rgba(255,255,255,.06); }
.media .cap{ position:absolute; left:20px; bottom:20px; right:20px; z-index:2; padding:14px 18px; border-radius:16px; background:rgba(13,11,36,.55); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); box-shadow:0 0 0 1px rgba(255,255,255,.12) inset; font-weight:600; }
.video-band{ aspect-ratio:21/9; }
.mosaic{ display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:20px; perspective:1400px; }
.mosaic .media{ aspect-ratio:3/4; transition:transform .5s cubic-bezier(.2,.7,.2,1); transform-style:preserve-3d; }
.play{ width:72px; height:72px; border-radius:50%; display:grid; place-items:center; background:rgba(255,255,255,.12); box-shadow:0 0 0 1px rgba(255,255,255,.3) inset, 0 0 40px rgba(227,22,28,.5); color:#fff; }

.chip{ position:absolute; display:flex; align-items:center; gap:10px; padding:12px 16px; border-radius:16px; background:rgba(22,20,52,.55); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); box-shadow:0 0 0 1px rgba(255,255,255,.12) inset, 0 20px 40px -20px rgba(0,0,0,.6); font-weight:600; font-size:14px; white-space:nowrap; animation:bob 7s ease-in-out infinite; }
.chip i{ width:9px; height:9px; border-radius:50%; background:var(--blue); box-shadow:0 0 12px var(--blue); }
.chip.r i{ background:var(--red); box-shadow:0 0 12px var(--red); }
.chip.c1{ left:0; top:12%; } .chip.c2{ right:0; top:40%; animation-delay:-2s; } .chip.c3{ left:6%; bottom:10%; animation-delay:-4s; }
@keyframes bob{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-10px) } }

/* PROMISES */
.promises{ margin-top:-44px; position:relative; z-index:2; }
.promises .bar{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:8px; padding:10px; border-radius:24px; background:rgba(30,27,69,.6); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); box-shadow:0 0 0 1px var(--line) inset, 0 30px 60px -30px rgba(0,0,0,.7); }
.promise{ padding:18px 18px; border-radius:16px; display:flex; gap:14px; align-items:center; }
.promise svg{ flex-shrink:0; width:42px; height:42px; padding:9px; border-radius:12px; background:rgba(62,99,255,.16); color:var(--blueSoft); }
.promise:nth-child(even) svg{ background:rgba(227,22,28,.16); color:#FF8A8D; }
.promise b{ display:block; font-size:16px; }
.promise span{ color:var(--muted); font-size:14px; line-height:1.4; }

section{ padding:120px 0; position:relative; }
.head{ max-width:760px; margin-bottom:56px; }

/* SPOTLIGHT GLASS CARDS */
.glass{ position:relative; border-radius:24px; background:var(--glass); box-shadow:0 0 0 1px var(--line) inset; overflow:hidden; }
.glass::before{ content:""; position:absolute; inset:0; background:radial-gradient(420px circle at var(--mx,50%) var(--my,-20%), rgba(142,164,255,.16), transparent 45%); opacity:0; transition:opacity .3s; pointer-events:none; }
.glass:hover::before{ opacity:1; }
.families{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:20px; }
.family{ padding:36px; display:flex; flex-direction:column; gap:16px; }
.family .ico{ width:60px; height:60px; border-radius:18px; display:grid; place-items:center; color:#fff; }
.family .ico svg{ width:30px; height:30px; }
.ico.b{ background:linear-gradient(145deg,#5B7BFF,#2541C9); box-shadow:0 12px 30px -10px rgba(62,99,255,.8), 0 0 0 1px rgba(255,255,255,.2) inset; }
.ico.r{ background:linear-gradient(145deg,#FF4A4F,#B80D12); box-shadow:0 12px 30px -10px rgba(227,22,28,.8), 0 0 0 1px rgba(255,255,255,.2) inset; }
.ico.w{ background:linear-gradient(145deg,#3A3770,#1E1B45); box-shadow:0 12px 30px -10px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.2) inset; }
.family h3{ font-size:24px; }
.family p{ margin:0; color:var(--muted); }
.family ul{ list-style:none; margin:8px 0 0; padding:0; }
.family li{ border-top:1px solid var(--line); }
.family li a{ display:flex; justify-content:space-between; align-items:center; min-height:48px; text-decoration:none; font-weight:600; }
.family li a span{ color:var(--muted); transition:transform .2s, color .2s; }
.family li a:hover span{ transform:translateX(4px); color:var(--red); }

/* OFFERS */
.offers-bg{ background:linear-gradient(180deg, rgba(13,11,36,0) 0%, rgba(22,20,52,.55) 50%, rgba(13,11,36,0) 100%); }
.offers{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:20px; align-items:stretch; }
.offer{ padding:40px 34px; display:flex; flex-direction:column; gap:14px; }
.offer h3{ font-size:22px; }
.offer .desc{ color:var(--muted); font-size:15px; margin:0; min-height:48px; }
.price{ font-family:var(--display); font-weight:800; font-size:52px; letter-spacing:-0.04em; line-height:1; margin-top:8px; }
.price small{ font-family:var(--body); font-size:15px; font-weight:600; color:var(--muted); letter-spacing:0; }
.from{ color:var(--muted); font-size:14px; margin-top:6px; }
.offer ul{ list-style:none; padding:0; margin:14px 0 8px; display:grid; gap:10px; flex-grow:1; }
.offer li{ display:flex; gap:10px; align-items:flex-start; font-size:15px; }
.offer li svg{ flex-shrink:0; margin-top:3px; color:var(--blueSoft); }
.badge{ align-self:flex-start; font-size:12px; font-weight:700; padding:6px 12px; border-radius:999px; background:var(--red); color:#fff; box-shadow:0 0 20px rgba(227,22,28,.6); }

/* GLOW EVERYWHERE: animated light running around every frame */
.glass, .media, .promises .bar{ position:relative; }
.glass::after, .media::after, .promises .bar::after{
  content:""; position:absolute; inset:0; border-radius:inherit; padding:1.5px; z-index:3; pointer-events:none;
  background:conic-gradient(from var(--ang), rgba(255,255,255,.10) 0deg, rgba(255,255,255,.10) 40deg, var(--red) 90deg, #FFFFFF 115deg, var(--blue) 150deg, rgba(255,255,255,.10) 210deg, rgba(255,255,255,.10) 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude;
  animation:spin 6s linear infinite;
}
.glass:nth-of-type(2n)::after, .media:nth-child(2n)::after{ animation-duration:7.5s; animation-direction:reverse; }
.glass:nth-of-type(3n)::after, .media:nth-child(3n)::after{ animation-duration:5s; }
.glass, .media, .promises .bar{ animation:aura 6s ease-in-out infinite; }
.glass:nth-of-type(2n), .media:nth-child(2n){ animation-delay:-3s; }
@keyframes aura{
  0%,100%{ box-shadow:0 0 0 1px var(--line) inset, 0 0 34px -8px rgba(62,99,255,.55), 0 30px 60px -30px rgba(0,0,0,.7); }
  50%{ box-shadow:0 0 0 1px var(--line) inset, 0 0 44px -6px rgba(227,22,28,.55), 0 30px 60px -30px rgba(0,0,0,.7); }
}
.glass:hover::after, .media:hover::after{ padding:2.5px; animation-duration:2.2s; }
/* light sweep across the main buttons */
.btn-red, .btn-white{ position:relative; overflow:hidden; }
.btn-red::after, .btn-white::after{ content:""; position:absolute; top:0; bottom:0; left:-60%; width:40%; background:linear-gradient(100deg, transparent, rgba(255,255,255,.55), transparent); transform:skewX(-20deg); animation:sweep 3.2s ease-in-out infinite; pointer-events:none; }
@keyframes sweep{ 0%{ left:-60% } 55%,100%{ left:130% } }
/* glowing line under the nav */
.nav{ border-bottom:0; }
.nav::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:linear-gradient(90deg, transparent, var(--blue), #fff, var(--red), transparent); background-size:200% 100%; animation:line 6s linear infinite; opacity:.8; }
@keyframes line{ to{ background-position:-200% 0 } }

/* animated glowing border */
@property --ang{ syntax:'<angle>'; initial-value:0deg; inherits:false; }
.halo{ background:linear-gradient(180deg, rgba(62,99,255,.18), rgba(30,27,69,.6)); box-shadow:none; }
.halo::after{ content:""; position:absolute; inset:0; border-radius:inherit; padding:3px; z-index:3; background:conic-gradient(from var(--ang), transparent 0deg, var(--red) 60deg, var(--blue) 140deg, transparent 200deg, transparent 360deg); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; animation:spin 5s linear infinite; pointer-events:none; }
@keyframes spin{ to{ --ang:360deg; } }
.halo .offer-inner{ position:relative; z-index:1; }

.table-box{ margin-top:28px; padding:28px; }
.table-scroll{ overflow-x:auto; }
table{ width:100%; min-width:640px; border-collapse:collapse; font-size:15px; }
th{ text-align:left; font-weight:600; color:var(--muted); font-size:14px; padding:12px 10px; }
td{ padding:18px 10px; border-top:1px solid var(--line); }
td:first-child{ font-family:var(--display); font-weight:700; font-size:18px; }
td:last-child, th:last-child{ text-align:right; font-weight:700; white-space:nowrap; }

/* AUDIENCES */
.aud{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:20px; }
.aud-card{ padding:48px; min-height:380px; display:flex; flex-direction:column; justify-content:flex-end; gap:16px; }
.aud-card .art{ position:absolute; right:-40px; top:-40px; width:260px; height:260px; opacity:.9; pointer-events:none; }
.aud-card h3{ font-size:30px; line-height:1.15; max-width:22ch; position:relative; }
.aud-card p{ margin:0; color:var(--muted); max-width:46ch; position:relative; }
.aud-card .btn{ align-self:flex-start; position:relative; }
.aud-b{ background:radial-gradient(120% 120% at 100% 0%, rgba(62,99,255,.35), rgba(255,255,255,.03) 60%); }
.aud-r{ background:radial-gradient(120% 120% at 100% 0%, rgba(227,22,28,.30), rgba(255,255,255,.03) 60%); }

/* STEPS */
.steps{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:20px; counter-reset:s; position:relative; }
.step{ padding:36px; }
.step .n{ font-family:var(--display); font-weight:800; font-size:64px; line-height:1; background:linear-gradient(180deg,#fff,rgba(255,255,255,.15)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.step h3{ font-size:22px; margin:18px 0 10px; }
.step p{ margin:0; color:var(--muted); }

/* QUOTES */
.quotes{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:20px; }
.quote{ margin:0; padding:34px; display:flex; flex-direction:column; gap:18px; }
.quote blockquote{ margin:0; font-size:17px; flex-grow:1; }
.quote figcaption{ color:var(--blueSoft); font-weight:600; font-size:15px; }
.stars{ display:flex; gap:3px; color:#FF5A5F; }

/* CTA */
.cta{ position:relative; overflow:hidden; border-radius:32px; padding:72px 56px; background:radial-gradient(120% 140% at 0% 0%, #F2262C 0%, #A50B10 55%, #5E0609 100%); box-shadow:0 40px 90px -40px rgba(227,22,28,.8), 0 0 0 1px rgba(255,255,255,.15) inset; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:36px; }
.cta .pi-mark{ position:absolute; right:-10px; bottom:-90px; font-family:Georgia, serif; font-style:italic; font-size:380px; line-height:1; color:rgba(255,255,255,.10); pointer-events:none; }
.cta h2{ position:relative; }
.cta p{ margin:14px 0 0; color:#FFE1E2; font-size:19px; max-width:52ch; position:relative; }
.cta .acts{ display:flex; gap:12px; flex-wrap:wrap; position:relative; }
.btn-white{ background:#fff; color:#A50B10; }
.btn-line{ background:transparent; color:#fff; box-shadow:0 0 0 2px #fff inset; }

/* FOOTER */
footer{ border-top:1px solid var(--line); padding:64px 0 32px; color:var(--muted); font-size:15px; }
.foot{ display:grid; grid-template-columns:1.4fr repeat(3, minmax(0,1fr)); gap:40px; }
.foot img{ height:56px; width:auto; }
.foot b{ display:block; color:var(--text); margin-bottom:12px; }
.foot a{ display:block; text-decoration:none; padding:4px 0; }
.foot a:hover{ color:var(--text); }
.legal{ margin-top:48px; padding-top:22px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:13px; }
.legal a{ text-decoration:none; margin-left:18px; }

/* REVEAL */
.rv{ opacity:0; transform:translateY(26px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.rv.in{ opacity:1; transform:none; }

/* RESPONSIVE */
@media (max-width: 980px){
  .hero .wrap{ grid-template-columns:minmax(0,1fr); padding-top:40px; }
  .stage{ max-width:440px; order:-1; }
  .promises .bar{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .families,.offers,.steps,.quotes{ grid-template-columns:minmax(0,1fr); }
  .aud{ grid-template-columns:minmax(0,1fr); }
  .foot{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .nav-links{ display:none; }
  section{ padding:88px 0; }
  .cta{ padding:52px 28px; }
}
@media (max-width: 560px){
  .promises .bar{ grid-template-columns:minmax(0,1fr); }
  .foot{ grid-template-columns:minmax(0,1fr); }
  .nav-cta .btn-ghost{ display:none; }
  .nav-logo img{ height:38px; }
  .ocard{ min-width:0; max-width:46%; padding:10px 12px; }
  .ocard .od{ display:none; }
  .ocard .op{ font-size:16px; }
  .hint{ font-size:12px; }
  .video-band{ aspect-ratio:4/3; }
}
@media (max-width: 980px){
  .mosaic{ grid-template-columns:minmax(0,1fr); }
  .mosaic .media, .mosaic .media:first-child{ aspect-ratio:4/3; }
}
@media (prefers-reduced-motion: reduce){
  .chip,.halo::after,.hint,.glass,.media,.promises .bar,.glass::after,.media::after,.promises .bar::after,.btn-red::after,.btn-white::after,.nav::after{ animation:none; }
  .ocard{ transition:opacity .2s; transform:none; filter:none; }
  .rv{ opacity:1; transform:none; transition:none; }
  html{ scroll-behavior:auto; }
}
/* ===== Pages intérieures (ajouts, mêmes jetons que l'accueil) ===== */
.nav-links a[aria-current="page"]{ color:var(--text); }
.nav-toggle{ display:none; align-items:center; justify-content:center; width:46px; height:46px; border-radius:12px; border:0; cursor:pointer; background:var(--glass2); color:var(--text); box-shadow:0 0 0 1px var(--line) inset; }
.mnav{ display:none; }
.page-hero{ position:relative; overflow:hidden; isolation:isolate; }
.page-hero::before{ content:""; position:absolute; inset:-30% -10% auto auto; width:60vw; height:60vw; max-width:760px; max-height:760px; background:radial-gradient(closest-side, rgba(62,99,255,.30), transparent 70%); z-index:-1; }
.page-hero::after{ content:""; position:absolute; left:-15%; bottom:-50%; width:50vw; height:50vw; max-width:640px; max-height:640px; background:radial-gradient(closest-side, rgba(227,22,28,.18), transparent 70%); z-index:-1; }
.page-hero .wrap{ padding-top:64px; padding-bottom:72px; }
.crumbs{ display:flex; gap:8px; flex-wrap:wrap; font-size:14px; color:var(--muted); margin:0 0 22px; }
.crumbs a{ text-decoration:none; color:var(--muted); }
.crumbs a:hover{ color:var(--text); }
.page-hero h1{ font-size:clamp(2.2rem, 4.8vw, 3.9rem); line-height:1.05; font-weight:800; max-width:22ch; }
.page-hero h1 em{ font-style:normal; color:#FF6B6F; text-shadow:0 0 30px rgba(227,22,28,.5); }
.page-hero .lead{ margin:24px 0 0; }
.page-hero .hero-ctas{ margin-top:32px; display:flex; gap:14px; flex-wrap:wrap; }
.sec{ padding:72px 0; }
.sec-tight{ padding:40px 0; }
.grid2{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:20px; }
.grid3{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:20px; }
.feat{ padding:34px; display:flex; flex-direction:column; gap:12px; }
.feat h3{ font-size:21px; }
.feat p{ margin:0; color:var(--muted); }
.feat .ico{ width:52px; height:52px; border-radius:16px; display:grid; place-items:center; color:#fff; }
.feat .ico svg{ width:26px; height:26px; }
.prose{ padding:40px; }
.prose h2{ font-size:clamp(1.6rem, 3vw, 2.2rem); margin-bottom:14px; }
.prose h3{ font-size:21px; margin:26px 0 8px; }
.prose p{ color:var(--muted); margin:0 0 14px; }
.prose ul{ margin:0 0 14px; padding-left:20px; color:var(--muted); }
.prose li{ margin:6px 0; }
.prose a{ color:var(--blueSoft); }
.prose strong{ color:var(--text); }
.checks{ list-style:none; padding:0; margin:8px 0 0; display:grid; gap:10px; }
.checks li{ display:flex; gap:10px; align-items:flex-start; color:var(--text); }
.checks li::before{ content:""; flex-shrink:0; width:18px; height:18px; margin-top:4px; border-radius:50%; background:radial-gradient(circle at 35% 35%, #fff 0 18%, var(--blue) 20%); box-shadow:0 0 10px rgba(62,99,255,.8); }
.offers.four{ grid-template-columns:repeat(4, minmax(0,1fr)); }
.offers.five{ grid-template-columns:repeat(5, minmax(0,1fr)); }
.offers.four .offer, .offers.five .offer{ padding:32px 24px; }
.offers.four .price, .offers.five .price{ font-size:42px; }
.price.txt{ font-size:30px !important; }
.faq{ display:grid; gap:14px; max-width:900px; }
.faq details{ border-radius:20px; background:var(--glass); box-shadow:0 0 0 1px var(--line) inset; padding:0 26px; position:relative; }
.faq summary{ list-style:none; cursor:pointer; min-height:64px; display:flex; align-items:center; justify-content:space-between; gap:16px; font-family:var(--display); font-weight:600; font-size:17px; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; flex-shrink:0; width:32px; height:32px; border-radius:50%; display:grid; place-items:center; background:rgba(227,22,28,.18); color:#FF8A8D; font-size:20px; transition:transform .25s; }
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq details p{ margin:0 0 20px; color:var(--muted); }
.faq h3{ font-size:20px; margin:22px 0 4px; color:var(--blueSoft); }
.note{ font-size:14px; color:var(--muted); margin-top:18px; }
.tag{ display:inline-block; font-size:12px; font-weight:700; padding:6px 12px; border-radius:999px; background:rgba(62,99,255,.2); color:var(--blueSoft); box-shadow:0 0 0 1px rgba(142,164,255,.35) inset; }
.draft{ margin:0 0 24px; padding:14px 18px; border-radius:14px; background:rgba(227,22,28,.16); box-shadow:0 0 0 1px rgba(255,106,111,.45) inset; font-weight:600; }
.docs{ display:grid; gap:12px; }
.docs a{ display:flex; justify-content:space-between; align-items:center; gap:16px; min-height:60px; padding:14px 22px; border-radius:16px; text-decoration:none; background:var(--glass); box-shadow:0 0 0 1px var(--line) inset; font-weight:600; }
.docs a:hover{ background:var(--glass2); }
.docs a span{ color:var(--muted); font-size:14px; font-weight:500; }
.form{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; }
.form .full{ grid-column:1 / -1; }
.form label{ display:block; font-size:14px; font-weight:600; margin-bottom:6px; }
.form input, .form select, .form textarea{ width:100%; min-height:48px; padding:12px 14px; border-radius:12px; border:0; font:500 16px var(--body); color:var(--text); background:rgba(255,255,255,.06); box-shadow:0 0 0 1px var(--line) inset; }
.form textarea{ min-height:140px; resize:vertical; }
.form select option{ color:#111; }
.form input:focus, .form select:focus, .form textarea:focus{ outline:2px solid var(--blueSoft); outline-offset:1px; }
.form .consent{ display:flex; gap:10px; align-items:flex-start; font-size:14px; color:var(--muted); font-weight:500; }
.form .consent input{ width:20px; min-height:20px; margin-top:2px; }
.contact-list{ display:grid; gap:14px; }
.contact-list a, .contact-list div{ display:flex; gap:14px; align-items:center; text-decoration:none; font-weight:600; font-size:18px; }
.contact-list svg{ flex-shrink:0; width:44px; height:44px; padding:11px; border-radius:12px; background:rgba(62,99,255,.16); color:var(--blueSoft); }
@media (max-width: 1100px){
  .offers.five{ grid-template-columns:repeat(3, minmax(0,1fr)); }
  .offers.four{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (max-width: 980px){
  .nav-toggle{ display:inline-flex; }
  .mnav{ position:absolute; left:0; right:0; top:100%; z-index:55; background:rgba(13,11,36,.96); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border-bottom:1px solid var(--line); max-height:calc(100vh - 80px); overflow:auto; }
  .mnav.open{ display:block; }
  .mnav .wrap{ display:grid; gap:4px; padding-top:12px; padding-bottom:20px; }
  .mnav b{ display:block; margin:14px 0 4px; color:var(--blueSoft); font-size:13px; text-transform:uppercase; letter-spacing:.06em; }
  .mnav a{ display:flex; align-items:center; min-height:44px; text-decoration:none; font-weight:600; }
  .grid2, .grid3{ grid-template-columns:minmax(0,1fr); }
  .prose, .feat{ padding:28px; }
  .sec{ padding:56px 0; }
}
@media (max-width: 640px){
  .offers.four, .offers.five, .form{ grid-template-columns:minmax(0,1fr); }
  .page-hero .wrap{ padding-top:36px; padding-bottom:48px; }
  .faq details{ padding:0 18px; }
  .wrap{ padding:0 16px; }
}
@media (prefers-reduced-motion: reduce){ .faq summary::after{ transition:none; } }

@media (min-width: 981px){ .contact-grid{ grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); align-items:start; } }
.form .consent a{ white-space:nowrap; }

.sva{ font-size:.72em; font-weight:500; opacity:.85; white-space:nowrap; }

.media-grid{ align-items:center; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); }
@media (max-width:980px){ .media-grid{ grid-template-columns:minmax(0,1fr); } .media-grid .media{ max-width:420px; } }

/* Solutions par métier */
a.metier-link{ text-decoration:none; color:inherit; }
a.metier-link p{ color:var(--blueSoft); font-weight:600; }
a.metier-link:hover{ transform:translateY(-2px); }

@media (max-width: 420px){ .nav .wrap{ flex-wrap:nowrap; gap:10px; } .nav-logo img{ height:32px !important; } .nav-cta{ gap:8px; } .nav-cta .btn-red{ min-height:40px; padding:8px 12px; font-size:14px; } .nav-toggle{ width:42px; height:42px; } }
.glass, .faq details, .docs a, .promises .bar{ background-color:rgba(255,255,255,.075); -webkit-backdrop-filter:blur(18px) saturate(130%); backdrop-filter:blur(18px) saturate(130%); }
.glass:hover, .docs a:hover{ background-color:rgba(255,255,255,.1); }
