/* GE2 Service — site vitrine. Système « salle noire » de la famille GE2 (GE2 Train, deck ProFit) :
   fond noir chaud, titres Barlow Condensed en capitales, accent or, vrais téléphones en perspective. */
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:optional;src:url(/fonts/barlow-condensed-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:optional;src:url(/fonts/barlow-condensed-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400;font-display:optional;src:url(/fonts/source-sans-3-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:600;font-display:optional;src:url(/fonts/source-sans-3-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:700;font-display:optional;src:url(/fonts/source-sans-3-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:optional;src:url(/fonts/jetbrains-mono-latin-500-normal.woff2) format('woff2')}

:root{
  color-scheme:dark;
  --fond:#0e0e0c; --fond-2:#141412; --surface:#1a1a17; --surface-2:#26251f; --filet:#3a3932; --contour:#8f8b77;
  --craie:#f3f1e7; --gris:#a8a597; --or:#fab81b; --or-doux:rgba(250,184,27,.14); --sur-or:#0e0e0c;
  --vert:#6fd08c; --orange:#ffa24c; --rose:#e88cbf; --bleu:#8fb0ea; --rouge:#ff6b5e;
  --titre:'Barlow Condensed','Arial Narrow','Roboto Condensed',sans-serif;
  --texte:'Source Sans 3','Segoe UI',system-ui,-apple-system,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;
  --largeur:1200px; --rayon:18px;
  --gouttiere-g:max(20px,env(safe-area-inset-left,0px)); --gouttiere-d:max(20px,env(safe-area-inset-right,0px));
  --t-h1:clamp(2.9rem,1.6rem + 5.4vw,6.4rem); --t-h2:clamp(2.2rem,1.4rem + 3.4vw,4.4rem); --t-h3:clamp(1.35rem,1.1rem + .8vw,1.85rem);
  --t-lede:clamp(1.15rem,1rem + .5vw,1.45rem); --t-corps:1.125rem; --t-petit:.95rem;
  --section:clamp(4.5rem,3rem + 6vw,9rem);
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--fond);color:var(--craie);font:400 var(--t-corps)/1.6 var(--texte);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--fond)}
img,video{max-width:100%;display:block}
a{color:inherit}
p{margin:0}
h1,h2,h3{margin:0;font-family:var(--titre);font-weight:700;text-transform:uppercase;line-height:1;letter-spacing:.005em;text-wrap:balance}
h1{font-size:var(--t-h1);line-height:.93}
h2{font-size:var(--t-h2);line-height:.95}
h3{font-size:var(--t-h3);line-height:1.1}
h1 em,h2 em,h3 em{font-style:normal;color:var(--or)}
ul,ol{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--or);outline-offset:3px;border-radius:6px}
::selection{background:var(--or);color:var(--sur-or)}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:16px;top:-60px;z-index:100;background:var(--or);color:var(--sur-or);padding:10px 16px;border-radius:8px;font-weight:700;text-decoration:none}
.skip:focus{top:calc(12px + env(safe-area-inset-top,0px))}

.wrap{width:100%;max-width:calc(var(--largeur) + 40px);margin:0 auto;padding-left:var(--gouttiere-g);padding-right:var(--gouttiere-d)}
.eyebrow{font:500 .8rem/1.4 var(--mono);letter-spacing:.28em;text-transform:uppercase;color:var(--or)}
.lede{font-size:var(--t-lede);line-height:1.5;color:var(--gris);max-width:40ch}
.gris{color:var(--gris)}
.tete{display:grid;gap:1.1rem;max-width:62rem;margin-bottom:clamp(2.2rem,1.6rem + 2vw,3.6rem)}
.tete .lede{max-width:56ch}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:52px;padding:.85rem 1.5rem;border-radius:999px;border:1.5px solid transparent;font:700 1rem/1 var(--texte);letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:transform .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease}
.btn-or{background:var(--or);color:var(--sur-or)}
.btn-or:hover{transform:translateY(-2px);background:#ffc63d}
.btn-ligne{border-color:var(--contour);color:var(--craie);background:rgba(14,14,12,.35)}
.btn-ligne:hover{border-color:var(--craie)}
.btn svg{width:18px;height:18px;flex:none}

/* En-tête */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(14,14,12,.94);backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px);border-bottom:1px solid rgba(58,57,50,.7)}
.header-row{display:flex;align-items:center;gap:1.5rem;min-height:72px}
.brand{display:inline-flex;align-items:center;gap:.55rem;text-decoration:none;font:700 1.45rem/1 var(--titre);text-transform:uppercase;letter-spacing:.04em}
.bloc{display:inline-grid;place-items:center;background:var(--or);color:var(--sur-or);border-radius:8px;padding:.32rem .45rem .26rem;font:700 1.15rem/1 var(--titre);letter-spacing:.02em}
.nav{margin-left:auto}
.nav ul{display:flex;gap:1.6rem}
.nav a{text-decoration:none;color:var(--gris);font-weight:600;font-size:.98rem;transition:color .2s}
.nav a:hover{color:var(--craie)}
.langues{display:inline-flex;align-items:center;gap:.4rem;font:500 .8rem/1 var(--mono);letter-spacing:.1em}
.langues a{text-decoration:none;color:var(--gris);padding:.45rem .35rem;border-radius:6px}
.langues a[aria-current="true"]{color:var(--craie)}
.langues a:hover{color:var(--or)}
.langues-sep{color:var(--filet)}
.header-cta{min-height:44px;padding:.6rem 1.15rem;font-size:.95rem}
.menu-bouton{display:none;margin-left:auto;width:46px;height:46px;border-radius:12px;border:1px solid var(--filet);background:transparent;cursor:pointer;align-items:center;justify-content:center}
.menu-barres,.menu-barres::before,.menu-barres::after{display:block;width:20px;height:2px;background:var(--craie);border-radius:2px;position:relative;transition:transform .25s ease}
.menu-barres::before,.menu-barres::after{content:"";position:absolute;left:0}
.menu-barres::before{top:-6px}.menu-barres::after{top:6px}
.menu-bouton[aria-expanded="true"] .menu-barres{background:transparent}
.menu-bouton[aria-expanded="true"] .menu-barres::before{transform:translateY(6px) rotate(45deg)}
.menu-bouton[aria-expanded="true"] .menu-barres::after{transform:translateY(-6px) rotate(-45deg)}
.header-bas{display:contents}
@media (max-width:1040px){
  .menu-bouton{display:inline-flex}
  .header-cta{display:none}
  .header-bas{display:none;position:absolute;left:0;right:0;top:100%;background:var(--fond);border-bottom:1px solid var(--filet);padding:1rem var(--gouttiere-d) 1.6rem var(--gouttiere-g);flex-direction:column;gap:1.2rem}
  .header-bas.ouvert{display:flex}
  .nav{margin:0}
  .nav ul{flex-direction:column;gap:0}
  .nav a{display:block;padding:.85rem 0;border-bottom:1px solid var(--filet);font-size:1.15rem;color:var(--craie)}
  .header-bas .btn{display:inline-flex;align-self:flex-start}
}
@media (min-width:1041px){.header-bas .btn-menu{display:none}}

/* Sections */
.section{position:relative;padding-block:var(--section);isolation:isolate}
.section.serre{padding-block:calc(var(--section) * .7)}
.section.ton2{background:var(--fond-2)}
.fond{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;max-width:none}
.voile{position:absolute;inset:0;z-index:-1}

/* Couverture */
.couverture{min-height:min(920px,100svh);display:flex;align-items:center;padding-block:clamp(3rem,2rem + 5vw,6.5rem) clamp(4rem,3rem + 4vw,7rem)}
.couverture .voile{background:linear-gradient(90deg,rgba(14,14,12,.96) 0%,rgba(14,14,12,.9) 40%,rgba(14,14,12,.35) 100%),linear-gradient(0deg,rgba(14,14,12,1) 0%,rgba(14,14,12,0) 22%)}
.couverture-grille{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(2rem,4vw,4rem);align-items:center}
.couverture-texte{display:grid;gap:1.5rem;min-width:0}
.couverture .lede{color:#cfccbf;max-width:34ch}
.ctas{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:.4rem}
.garanties-ligne{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;font:500 .78rem/1.5 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gris)}
.garanties-ligne span{display:inline-flex;align-items:center;gap:.5rem}
.garanties-ligne span::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--or)}
.couverture-tel{position:relative;justify-self:center;display:grid;justify-items:center}
@media (max-width:900px){
  .couverture{min-height:0}
  .couverture-grille{grid-template-columns:1fr}
  .couverture .voile{background:linear-gradient(180deg,rgba(14,14,12,.94) 0%,rgba(14,14,12,.86) 55%,rgba(14,14,12,.97) 100%)}
}

/* Bandeau de preuves */
.preuves{border-block:1px solid var(--filet);background:var(--fond-2)}
.preuves ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.preuves li{display:grid;gap:.35rem;padding:1.6rem 1.4rem;border-left:1px solid var(--filet);min-width:0}
.preuves li:first-child{border-left:0;padding-left:0}
.preuves strong{font:700 clamp(1.9rem,1.5rem + 1.2vw,2.7rem)/1 var(--titre);text-transform:uppercase;color:var(--or)}
.preuves span{color:var(--gris);font-size:.98rem;line-height:1.4}
@media (max-width:860px){.preuves ul{grid-template-columns:repeat(2,minmax(0,1fr))}.preuves li:nth-child(3){border-left:0;padding-left:0}.preuves li:nth-child(n+3){border-top:1px solid var(--filet)}.preuves li:nth-child(2n){padding-right:0}}
@media (max-width:420px){.preuves li{padding:1.2rem .9rem}.preuves li:nth-child(2n){padding-left:.9rem}}

/* Cartes chiffrées */
.cartes3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.carte{display:grid;align-content:start;gap:.55rem;background:rgba(26,26,23,.82);border:1px solid var(--filet);border-radius:var(--rayon);padding:clamp(1.4rem,1rem + 1.4vw,2.3rem);min-width:0;backdrop-filter:blur(4px)}
.chiffre{font:700 clamp(3.6rem,2.6rem + 3.6vw,6.2rem)/.9 var(--titre);color:var(--or);text-transform:uppercase}
.carte p{color:var(--gris)}
.carte .note{font:500 .72rem/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--contour);margin-top:.3rem}
.phrase-forte{margin-top:clamp(2rem,1.5rem + 2vw,3.2rem);font:600 clamp(1.3rem,1.05rem + 1vw,1.9rem)/1.35 var(--texte);max-width:46ch}
.phrase-forte em{font-style:normal;color:var(--or)}
@media (max-width:860px){.cartes3{grid-template-columns:1fr}}

/* Flux : canaux → GE2 Service → trois issues */
.flux{display:grid;grid-template-columns:minmax(0,.8fr) auto minmax(0,.9fr) auto minmax(0,1.4fr);gap:1.2rem;align-items:center}
.canaux{display:grid;gap:.8rem}
.canal{display:flex;align-items:center;gap:.7rem;font-weight:700;font-size:1.1rem;border-radius:999px;padding:.85rem 1.2rem}
.canal svg{width:22px;height:22px;flex:none}
.canal.wa{background:#16291e;color:var(--vert)}.canal.ig{background:#33172a;color:var(--rose)}.canal.ml{background:#182235;color:var(--bleu)}
.fleche{color:var(--contour);display:grid;place-items:center}
.fleche svg{width:34px;height:34px}
.coeur{display:grid;justify-items:center;gap:.6rem;background:var(--or);color:var(--sur-or);border-radius:24px;padding:2rem 1.4rem;text-align:center;box-shadow:0 30px 80px -30px rgba(250,184,27,.55)}
.coeur svg{width:54px;height:54px}
.coeur strong{font:700 2.1rem/1 var(--titre);text-transform:uppercase}
.coeur span{font:500 .78rem/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase}
.issues{display:grid;gap:.9rem}
.issue{display:grid;gap:.25rem;background:var(--surface);border:1px solid var(--filet);border-left:5px solid var(--or);border-radius:14px;padding:1.1rem 1.4rem}
.issue.v{border-left-color:var(--vert)}.issue.o{border-left-color:var(--orange)}
.issue h3{font-size:1.45rem}
.issue p{color:var(--gris);font-size:1rem}
@media (max-width:980px){
  .flux{grid-template-columns:1fr;justify-items:stretch}
  .canaux{grid-template-columns:repeat(3,minmax(0,1fr))}
  .canal{justify-content:center;padding:.8rem .6rem;font-size:1rem}
  .fleche svg{transform:rotate(90deg)}
}
@media (max-width:520px){.canal span{font-size:.92rem}.canal svg{display:none}}

/* Blocs texte + téléphone */
.duo{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2rem,4vw,5rem);align-items:center}
.duo.inverse{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.duo.inverse .duo-tel{order:-1}
.duo-texte{display:grid;gap:1.4rem;min-width:0}
.duo-texte .tete{margin-bottom:.4rem}
.duo-tel{display:grid;justify-items:center;min-width:0;padding-bottom:2rem}
@media (max-width:900px){.duo,.duo.inverse{grid-template-columns:1fr}.duo.inverse .duo-tel{order:0}}
.puces{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
.puce{display:flex;align-items:center;gap:.7rem;font-weight:600;font-size:1.08rem;background:rgba(26,26,23,.85);border:1px solid var(--filet);border-radius:12px;padding:.9rem 1.1rem;min-width:0}
.puce::before{content:"";flex:none;width:9px;height:9px;border-radius:50%;background:var(--vert)}
@media (max-width:420px){.puces{grid-template-columns:1fr}}
.liste{display:grid}
.liste li{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .7rem;padding:.95rem 0;border-bottom:1px solid var(--filet);font-size:1.12rem}
.liste li:first-child{border-top:1px solid var(--filet)}
.liste b{font-weight:700}
.liste span{color:var(--gris);font-size:1rem}
.liste li::before{content:"";flex:none;width:9px;height:9px;border-radius:50%;background:var(--or);transform:translateY(-.1em)}
.encart{display:grid;gap:.4rem;border-left:3px solid var(--or);padding:.3rem 0 .3rem 1.2rem;color:var(--gris)}
.encart strong{color:var(--craie);font-weight:700}

/* Vrai téléphone : photo détourée + écran réel en perspective (technique GE2 Train / ge2cr.com) */
.tel{--w:380px;--k:.4691;position:relative;width:var(--w);max-width:100%;aspect-ratio:810/1300;margin:0;cursor:zoom-in;transition:transform .35s ease,filter .35s ease;-webkit-tap-highlight-color:transparent}
.tel:hover,.tel:focus-within{transform:translateY(-8px);filter:drop-shadow(0 0 46px rgba(250,184,27,.22))}
.tel:focus-visible{outline:none}
.tel-photo{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,#000 82%,transparent 99%);mask-image:linear-gradient(180deg,#000 82%,transparent 99%)}
.tel-scene{position:absolute;left:0;top:0;width:810px;height:1300px;transform-origin:0 0;transform:scale(var(--k));pointer-events:none}
.tel-ecran{position:absolute;left:0;top:0;width:393px;height:852px;overflow:hidden;border-radius:54px;transform-origin:0 0;background:#000;
  transform:matrix3d(0.7880818,-0.22453046,0,-0.0001302452,-0.11918836,1.054649,0,-8.8853951e-05,0,0,1,0,257.2,144.6,0,1)}
.tel-capture{position:absolute;left:0;top:0;width:393px;height:852px;object-fit:cover;max-width:none}
.tel-ilot{position:absolute;left:133px;top:15px;width:118px;height:32px;border-radius:16px;background:#000;z-index:2}
.tel-ilot::after{content:"";position:absolute;left:12px;top:10px;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#2b4a6b,#07101c 70%)}
.tel-reflet{position:absolute;inset:0;z-index:3;background:linear-gradient(238deg,rgba(255,255,255,.1) 0%,rgba(255,255,255,.03) 30%,rgba(255,255,255,0) 48%)}
.tel-pastille{position:absolute;left:50%;top:2%;transform:translateX(-50%);font:500 .74rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--sur-or);background:var(--or);border-radius:999px;padding:.55rem .95rem;white-space:nowrap;z-index:4}
.tel-legende{position:absolute;left:0;right:0;top:calc(100% + .4rem);font:500 .74rem/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--contour);text-align:center}
.tel-xl{--w:470px;--k:.5802}
.tel-l{--w:420px;--k:.5185}
.tel-m{--w:340px;--k:.4198}
.paire{min-width:0;display:flex;align-items:flex-end;justify-content:center;gap:0}
.paire .tel:first-child{margin-right:-12%;margin-bottom:-4%}
@media (max-width:1100px){.tel-xl{--w:420px;--k:.5185}}
@media (max-width:900px){.tel-xl,.tel-l{--w:360px;--k:.4444}.tel-m{--w:300px;--k:.3704}}
@media (max-width:420px){.tel-xl,.tel-l{--w:300px;--k:.3704}.tel-m{--w:188px;--k:.2321}.paire .tel:first-child{margin-right:-8%}}
@media (max-width:340px){.tel-xl,.tel-l{--w:260px;--k:.321}.tel-m{--w:150px;--k:.1852}}

/* Démonstration */
.demo-grille{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(2rem,4vw,5rem);align-items:center}
.messages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.message{display:flex;align-items:center;gap:.6rem;font:500 .92rem/1.35 var(--mono);color:var(--craie);background:var(--surface);border:1px solid var(--filet);border-radius:12px;padding:.75rem .9rem;min-width:0}
.message i{flex:none;width:8px;height:8px;border-radius:50%}
.message .v{background:var(--vert)}.message .o{background:var(--orange)}.message .r{background:var(--or)}
.legende-messages{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;margin-top:1rem;font:500 .74rem/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--gris)}
.legende-messages span{display:inline-flex;align-items:center;gap:.45rem}
.legende-messages i{width:8px;height:8px;border-radius:50%}
@media (max-width:900px){.demo-grille{grid-template-columns:1fr;justify-items:center}.demo-grille .duo-texte{justify-self:stretch}}
@media (max-width:460px){.messages{grid-template-columns:1fr}}

/* Bande sécurité, fond or */
.or-bande{background:var(--or);color:var(--sur-or)}
.or-bande .eyebrow{color:var(--sur-or)}
.or-bande h2{font-size:clamp(2.6rem,1.6rem + 4.4vw,5.6rem);max-width:22ch}
.trois{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.4rem,3vw,3rem)}
.trois > div{display:grid;align-content:start;gap:.55rem;border-top:3px solid currentColor;padding-top:1.2rem;min-width:0}
.trois p{font-size:1.06rem;line-height:1.5}
.or-bande .trois p{color:#2b2717}
@media (max-width:860px){.trois{grid-template-columns:1fr}}

/* Pilotage */
.pilotage-grille{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(2rem,4vw,4rem);align-items:center}
.points{display:grid;gap:1.6rem}
.points > div{display:grid;gap:.4rem}
@media (max-width:900px){.pilotage-grille{grid-template-columns:1fr}}

/* Galerie des écrans */
.galerie{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.vignette-ecran{position:relative;display:grid;gap:.7rem;padding:0;border:0;background:none;text-align:left;cursor:zoom-in;min-width:0}
.vignette-ecran .cadre{position:relative;aspect-ratio:390/844;border-radius:26px;overflow:hidden;border:6px solid #050504;box-shadow:0 0 0 1px var(--filet),0 24px 50px -20px rgba(0,0,0,.8);transition:transform .3s ease,box-shadow .3s ease;background:#000}
.vignette-ecran img{width:100%;height:100%;object-fit:cover}
.vignette-ecran:hover .cadre,.vignette-ecran:focus-visible .cadre{transform:translateY(-6px);box-shadow:0 0 0 1px var(--or),0 30px 60px -20px rgba(250,184,27,.25)}
.vignette-ecran strong{font:700 1.2rem/1.1 var(--titre);text-transform:uppercase}
.vignette-ecran span{color:var(--gris);font-size:.95rem;line-height:1.4}
.vignette-ecran .lecture{position:absolute;inset:auto auto 12px 50%;transform:translateX(-50%);font:500 .7rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;background:var(--or);color:var(--sur-or);border-radius:999px;padding:.5rem .8rem;white-space:nowrap}
@media (max-width:1000px){.galerie{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:700px){.galerie{grid-auto-flow:column;grid-auto-columns:62%;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:1rem;margin-right:calc(-1 * var(--gouttiere-d));padding-right:var(--gouttiere-d)}.vignette-ecran{scroll-snap-align:start}}

/* Comparatif */
.tableau-conteneur{overflow-x:auto;border:1px solid var(--filet);border-radius:var(--rayon);background:var(--surface)}
.comparatif{width:100%;min-width:640px;border-collapse:collapse;font-size:1rem}
.comparatif th,.comparatif td{padding:1rem 1.1rem;border-bottom:1px solid var(--filet);text-align:center;vertical-align:middle}
.comparatif thead th{font:700 1.2rem/1.1 var(--titre);text-transform:uppercase;color:var(--gris);background:var(--fond-2)}
.comparatif thead th.nous{color:var(--sur-or);background:var(--or)}
.comparatif tbody th{text-align:left;font-weight:600;color:var(--craie)}
.comparatif td.nous{background:var(--or-doux)}
.comparatif tr:last-child th,.comparatif tr:last-child td{border-bottom:0}
.oui,.non,.partiel{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;font-weight:700}
.oui{background:rgba(111,208,140,.16);color:var(--vert)}
.non{background:rgba(255,107,94,.12);color:var(--rouge)}
.partiel{background:rgba(255,162,76,.14);color:var(--orange)}
.oui svg,.non svg,.partiel svg{width:16px;height:16px}
@media (max-width:640px){
  .tableau-conteneur{overflow:visible}
  .comparatif{min-width:0;font-size:.92rem;table-layout:fixed}
  .comparatif th,.comparatif td{padding:.75rem .35rem}
  .comparatif tbody th{padding-left:.8rem;width:auto}
  .comparatif thead th{font-size:.82rem;line-height:1.05;padding:.7rem .25rem;width:20%}
  .comparatif thead th:first-child{width:40%}
  .oui,.non,.partiel{width:26px;height:26px}
}

/* Pour qui */
.profils{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.profil{display:grid;align-content:start;gap:.8rem;background:var(--surface);border:1px solid var(--filet);border-radius:var(--rayon);padding:clamp(1.4rem,1rem + 1.2vw,2.2rem);min-width:0}
.profil .eyebrow{color:var(--gris)}
.profil ul{display:grid;gap:.55rem;margin-top:.3rem}
.profil li{display:flex;gap:.6rem;color:var(--gris);line-height:1.45}
.profil li::before{content:"";flex:none;width:7px;height:7px;margin-top:.55em;border-radius:50%;background:var(--or)}
.logiciels{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin-top:2rem;color:var(--gris)}
.logiciel{font:500 .82rem/1 var(--mono);letter-spacing:.08em;border:1px solid var(--filet);border-radius:999px;padding:.6rem .9rem;color:var(--craie)}
.logiciel small{color:var(--gris);font-size:.72rem;letter-spacing:.06em}
@media (max-width:900px){.profils{grid-template-columns:1fr}}

/* Pilote */
.etapes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1.2rem,2.4vw,2.4rem);counter-reset:etape}
.etape{display:grid;align-content:start;gap:.6rem;min-width:0}
.etape::before{counter-increment:etape;content:"0" counter(etape);font:700 clamp(4rem,3rem + 3vw,6.4rem)/1 var(--titre);color:transparent;-webkit-text-stroke:2px var(--or)}
.etape p{color:var(--gris)}
@media (max-width:900px){.etapes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.etapes{grid-template-columns:1fr}}
.offre{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:1.2rem;margin-top:clamp(2.4rem,2rem + 2vw,4rem)}
.offre > div{border-radius:var(--rayon);padding:clamp(1.5rem,1rem + 1.5vw,2.5rem);display:grid;align-content:start;gap:.7rem;min-width:0}
.offre .compris{background:rgba(26,26,23,.88);border:1px solid var(--filet)}
.offre .compris ul{display:grid;gap:.6rem;margin-top:.3rem}
.offre .compris li{display:flex;gap:.7rem;line-height:1.45}
.offre .compris li svg{flex:none;width:20px;height:20px;color:var(--vert);margin-top:.15em}
.offre .prix{background:var(--fond);border:2px solid var(--or);text-align:left}
.offre .prix .grand{font:700 clamp(3rem,2.2rem + 2.4vw,4.6rem)/.95 var(--titre);text-transform:uppercase;color:var(--or)}
.offre .prix p{color:var(--gris)}
@media (max-width:860px){.offre{grid-template-columns:1fr}}

/* FAQ */
.faq{display:grid;max-width:60rem;border-top:1px solid var(--filet)}
.faq details{border-bottom:1px solid var(--filet)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1.2rem;padding:1.35rem 0;font:600 clamp(1.1rem,1rem + .4vw,1.3rem)/1.35 var(--texte)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:14px;height:14px;border-right:2px solid var(--or);border-bottom:2px solid var(--or);transform:rotate(45deg) translate(-3px,-3px);transition:transform .25s ease}
.faq details[open] summary::after{transform:rotate(-135deg) translate(-3px,-3px)}
.faq details p{padding:0 0 1.4rem;color:var(--gris);max-width:68ch}

/* Qui sommes-nous */
.auteur{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(1.4rem,3vw,3rem);align-items:center;background:var(--surface);border:1px solid var(--filet);border-radius:var(--rayon);padding:clamp(1.5rem,1rem + 2vw,3rem)}
.auteur img{width:132px;height:132px;border-radius:50%;object-fit:cover;border:3px solid var(--or)}
.auteur .duo-texte{gap:.9rem}
.auteur p{color:var(--gris);max-width:62ch}
.auteur a{color:var(--or)}
@media (max-width:640px){.auteur{grid-template-columns:1fr}.auteur img{width:104px;height:104px}}

/* Contact */
.contact .voile{background:linear-gradient(180deg,rgba(14,14,12,.96) 0%,rgba(14,14,12,.88) 50%,rgba(14,14,12,.95) 100%)}
.contact-grille{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,4vw,4.5rem);align-items:start}
.contact-coord{display:grid;gap:.4rem;margin-top:1.4rem;font:500 .9rem/1.5 var(--mono);color:var(--gris)}
.contact-coord a{color:var(--craie)}
.formulaire{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;background:rgba(26,26,23,.92);border:1px solid var(--filet);border-radius:22px;padding:clamp(1.3rem,1rem + 1.5vw,2.4rem);backdrop-filter:blur(6px)}
.champ{display:grid;gap:.4rem;min-width:0}
.champ.plein{grid-column:1/-1}
.champ label{font-weight:600;font-size:.95rem}
.champ label .req{color:var(--or)}
.champ input,.champ select,.champ textarea{width:100%;font:inherit;font-size:1rem;color:var(--craie);background:var(--fond);border:1.5px solid var(--filet);border-radius:12px;padding:.8rem .9rem;min-height:50px;transition:border-color .2s}
.champ select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--gris) 50%),linear-gradient(135deg,var(--gris) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:2.4rem}
.champ textarea{min-height:120px;resize:vertical}
.champ input:focus,.champ select:focus,.champ textarea:focus{outline:none;border-color:var(--or)}
.champ input[aria-invalid="true"]{border-color:var(--rouge)}
.pot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-pied{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}
.consentement{font-size:.88rem;color:var(--gris);max-width:44ch}
.consentement a{color:var(--craie)}
.statut{grid-column:1/-1;border-radius:12px;padding:.9rem 1.1rem;font-size:1rem}
.statut.ok{background:rgba(111,208,140,.14);border:1px solid rgba(111,208,140,.4)}
.statut.erreur{background:rgba(255,107,94,.12);border:1px solid rgba(255,107,94,.4)}
@media (max-width:900px){.contact-grille{grid-template-columns:1fr}}
@media (max-width:540px){.formulaire{grid-template-columns:1fr}}

/* Pied de page */
.site-footer{border-top:1px solid var(--filet);padding-block:3.2rem 3.6rem;background:var(--fond)}
.footer-grille{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:2rem 3rem}
.footer-marque{display:grid;gap:1rem;align-content:start}
.footer-marque p{color:var(--gris);max-width:42ch}
.site-footer nav ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 2rem}
.site-footer nav a{color:var(--gris);text-decoration:none}
.site-footer nav a:hover{color:var(--craie)}
.credits{grid-column:1/-1;font-size:.85rem;color:var(--contour);border-top:1px solid var(--filet);padding-top:1.4rem;line-height:1.6}
@media (max-width:760px){.footer-grille{grid-template-columns:1fr}}

/* Loupe (écran agrandi) */
.loupe{position:fixed;inset:0;z-index:80;background:rgba(10,10,9,.96);display:grid;grid-template-columns:auto minmax(280px,520px);gap:clamp(24px,4vw,64px);align-items:center;justify-content:center;padding:clamp(16px,3vw,48px);padding-top:calc(clamp(16px,3vw,48px) + env(safe-area-inset-top,0px))}
.loupe[hidden]{display:none}
.loupe-ecran{position:relative;height:min(84vh,1300px);aspect-ratio:390/844;border:10px solid #050504;border-radius:48px;overflow:hidden;background:#000;box-shadow:0 0 0 2px var(--filet),0 40px 100px rgba(0,0,0,.7),0 0 120px rgba(250,184,27,.14)}
.loupe-ecran img,.loupe-ecran video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.loupe-texte{display:grid;gap:1rem}
.loupe-texte h3{font-size:clamp(1.6rem,1.2rem + 1.4vw,2.6rem)}
.loupe-texte p{color:var(--gris);font-size:clamp(1rem,.95rem + .3vw,1.2rem)}
.loupe-texte p.eyebrow{font-size:.75rem;color:var(--or)}
.loupe-vignettes{display:flex;flex-wrap:wrap;gap:8px;margin-top:.4rem}
.loupe-vignettes button{width:50px;aspect-ratio:390/844;border-radius:8px;overflow:hidden;border:2px solid var(--filet);padding:0;background:#000;opacity:.65;cursor:pointer;transition:.2s}
.loupe-vignettes button img{width:100%;height:100%;object-fit:cover}
.loupe-vignettes button:hover,.loupe-vignettes button[aria-current="true"]{opacity:1;border-color:var(--or)}
.loupe-fermer,.loupe-nav{position:fixed;display:grid;place-items:center;border-radius:50%;border:1px solid var(--contour);background:rgba(14,14,12,.85);cursor:pointer;color:var(--craie);transition:border-color .2s,color .2s}
.loupe-fermer{top:calc(18px + env(safe-area-inset-top,0px));right:calc(18px + env(safe-area-inset-right,0px));width:50px;height:50px}
.loupe-nav{top:50%;transform:translateY(-50%);width:54px;height:54px}
.loupe-prec{left:calc(16px + env(safe-area-inset-left,0px))}.loupe-suiv{right:calc(16px + env(safe-area-inset-right,0px))}
.loupe-fermer:hover,.loupe-nav:hover{border-color:var(--or);color:var(--or)}
.loupe svg{width:22px;height:22px}
.loupe .clavier{font:500 .75rem/1.4 var(--mono);letter-spacing:.08em;color:var(--contour)}
@media (max-width:860px){.loupe{grid-template-columns:1fr;align-content:center;justify-items:center;gap:14px;overflow-y:auto}.loupe-ecran{height:min(60vh,720px)}.loupe-texte{max-width:520px}.loupe-nav,.loupe .clavier{display:none}}

/* Pages de texte (mentions légales) */
.doc{max-width:52rem;padding-block:clamp(3rem,2rem + 4vw,6rem)}
.doc h1{font-size:clamp(2.6rem,2rem + 3vw,4.4rem);margin:1rem 0 2rem}
.doc h2{font-size:clamp(1.5rem,1.3rem + 1vw,2.1rem);margin:2.6rem 0 .8rem;color:var(--or)}
.doc p{color:#d4d1c4;margin-bottom:1rem}
.fil{font:500 .78rem/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--gris)}
.fil a{color:var(--gris)}

/* Apparition douce : l'état de repos reste visible (aucun contenu caché sans JavaScript) */
@media (prefers-reduced-motion:no-preference){
  .js .monte{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
  .js .monte.vu{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Bouton invisible posé sur chaque téléphone : vrai bouton, nom accessible propre */
.tel-bouton{position:absolute;inset:4% 22% 8% 26%;z-index:5;border:0;padding:0;margin:0;background:transparent;border-radius:42px;cursor:zoom-in}
.tel-bouton:focus-visible{outline:3px solid var(--or);outline-offset:6px}
/* Barre « Démonstration » fixe sur mobile */
.cta-mobile{display:none}
@media (max-width:900px){
  .cta-mobile{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;gap:.8rem;align-items:center;justify-content:space-between;
    padding:.7rem max(16px,env(safe-area-inset-right,0px)) calc(.7rem + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));
    background:rgba(14,14,12,.94);border-top:1px solid var(--filet);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    transform:translateY(110%);transition:transform .3s ease}
  .cta-mobile.visible{transform:none}
  .cta-mobile span{font:500 .72rem/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--gris)}
  .cta-mobile .btn{min-height:46px;padding:.6rem 1.1rem;font-size:.95rem;white-space:nowrap}
  .site-footer{padding-bottom:6rem}
}

/* Prise de rendez-vous */
.reservation-zone{display:grid;gap:1rem;min-width:0}
.reservation{grid-template-columns:minmax(0,1fr)}
.reservation h3{font-size:1.7rem}
.etape-rdv{border:0;margin:0;padding:0;display:grid;gap:.7rem;min-width:0}
.etape-rdv legend{padding:0;margin-bottom:.7rem;font:700 1.15rem/1.2 var(--titre);text-transform:uppercase;letter-spacing:.02em}
.aide{font:400 .9rem/1.45 var(--texte);color:var(--gris);text-transform:none;letter-spacing:0}
.puces-rdv{display:flex;flex-wrap:wrap;gap:.5rem}
.puce-cadre{position:relative}
.puce-cadre input,.mode-cadre input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.puce-rdv{display:grid;justify-items:center;gap:.1rem;min-width:4.6rem;min-height:48px;padding:.55rem .75rem;border:1.5px solid var(--filet);border-radius:12px;background:var(--fond);cursor:pointer;transition:border-color .15s,background-color .15s}
.puce-rdv:hover{border-color:var(--contour)}
.puce-haut{font:700 1rem/1.1 var(--titre);text-transform:uppercase;letter-spacing:.03em}
.puce-bas{font-size:.82rem;color:var(--gris)}
.puces-heures .puce-rdv{min-width:4.2rem;justify-content:center}
.puce-cadre input:checked + .puce-rdv{border-color:var(--or);background:var(--or);color:var(--sur-or)}
.puce-cadre input:checked + .puce-rdv .puce-bas{color:var(--sur-or)}
.puce-cadre input:focus-visible + .puce-rdv,.mode-cadre input:focus-visible + label{outline:3px solid var(--or);outline-offset:3px}
.lien-bouton{justify-self:start;background:none;border:0;padding:.3rem 0;color:var(--or);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
.mode-cadre{position:relative;min-width:0}
.mode-cadre label{display:grid;gap:.2rem;height:100%;padding:.9rem 1rem;border:1.5px solid var(--filet);border-radius:14px;background:var(--fond);cursor:pointer}
.mode-cadre label span{font-size:.9rem;color:var(--gris)}
.mode-cadre input:checked + label{border-color:var(--or);box-shadow:inset 0 0 0 1px var(--or)}
.champs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.accord{display:flex;gap:.7rem;align-items:flex-start;font-size:.92rem;color:var(--gris);cursor:pointer}
.accord input{width:20px;height:20px;margin-top:.15rem;accent-color:var(--or);flex:none}
.accord a{color:var(--craie)}
.reservation .form-pied{justify-content:space-between}
.reservation.indisponible .etape-rdv,.reservation.indisponible .accord,.reservation.indisponible .form-pied{display:none}
.reservation.indisponible #rdv-etat{display:block}
.confirmation{display:grid;gap:.8rem;background:rgba(26,26,23,.95);border:2px solid var(--or);border-radius:22px;padding:clamp(1.4rem,1rem + 1.5vw,2.4rem)}
.confirmation h3{font-size:clamp(1.6rem,1.2rem + 1.4vw,2.4rem)}
.confirmation:focus{outline:none}
.lien-visio{font:500 .95rem/1.4 var(--mono);word-break:break-all}
.lien-visio a{color:var(--or)}
.repli{background:rgba(26,26,23,.7);border:1px solid var(--filet);border-radius:16px;padding:0 1.2rem}
.repli summary{cursor:pointer;padding:1rem 0;font-weight:600;color:var(--gris)}
.repli[open] summary{color:var(--craie)}
.repli .formulaire{background:none;border:0;padding:0 0 1.2rem;backdrop-filter:none}
@media (max-width:540px){.champs,.modes{grid-template-columns:1fr}}

.offre .prix .grand .par-mois{display:block;margin-top:.35rem;font:500 .8rem/1.3 var(--mono);letter-spacing:.14em;color:var(--gris)}
.offert-pilote{color:var(--craie)!important;font-weight:600;border-left:3px solid var(--or);padding-left:.8rem}
