/* ==========================================================================
   Micrologiciel - Design system « Nova »
   Bleu dominant #358dcd / #3bb0ff, Rubik (titres), Inter (corps)
   ========================================================================== */

/* @@FONTS-INJECT-START (généré : build_google_fonts.py + build_fa_subset.py) */
/* ===== Google Fonts (subset latin, self-host, généré par outils/build_google_fonts.py) ===== */
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/inter-400.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/inter-500.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/inter-600.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Rubik";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/rubik-500.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Rubik";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/rubik-600.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Rubik";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/rubik-700.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
/* ===== fin Google Fonts ===== */
/* ===== Font Awesome 6.7.2 Free (subset local, généré par outils/build_fa_subset.py) ===== */
@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:swap;src:url(../fonts/fa-solid-900.subset.woff2) format("woff2")}
@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/fa-regular-400.subset.woff2) format("woff2")}
.fa,.fas,.fa-solid,.far,.fa-regular{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto;font-family:"Font Awesome 6 Free"}
.fas,.fa-solid{font-weight:900}
.far,.fa-regular{font-weight:400}
.fa-address-card:before{content:"\f2bb"}
.fa-arrow-left:before{content:"\f060"}
.fa-arrow-right:before{content:"\f061"}
.fa-arrows-rotate:before{content:"\f021"}
.fa-award:before{content:"\f559"}
.fa-bars:before{content:"\f0c9"}
.fa-building:before{content:"\f1ad"}
.fa-bullseye:before{content:"\f140"}
.fa-chart-column:before{content:"\e0e3"}
.fa-chart-line:before{content:"\f201"}
.fa-circle-check:before{content:"\f058"}
.fa-clock:before{content:"\f017"}
.fa-comment-sms:before{content:"\f7cd"}
.fa-comments:before{content:"\f086"}
.fa-envelope:before{content:"\f0e0"}
.fa-envelope-open-text:before{content:"\f658"}
.fa-eye:before{content:"\f06e"}
.fa-face-smile:before{content:"\f118"}
.fa-file-excel:before{content:"\f1c3"}
.fa-globe:before{content:"\f0ac"}
.fa-graduation-cap:before{content:"\f19d"}
.fa-handshake-angle:before{content:"\f4c4"}
.fa-headset:before{content:"\f590"}
.fa-images:before{content:"\f302"}
.fa-link:before{content:"\f0c1"}
.fa-location-dot:before{content:"\f3c5"}
.fa-map-location-dot:before{content:"\f5a0"}
.fa-paper-plane:before{content:"\f1d8"}
.fa-phone:before{content:"\f095"}
.fa-phone-volume:before{content:"\f2a0"}
.fa-qrcode:before{content:"\f029"}
.fa-ranking-star:before{content:"\e561"}
.fa-rocket:before{content:"\f135"}
.fa-scale-balanced:before{content:"\f24e"}
.fa-server:before{content:"\f233"}
.fa-share-nodes:before{content:"\f1e0"}
.fa-shield-halved:before{content:"\f3ed"}
.fa-sitemap:before{content:"\f0e8"}
.fa-star:before{content:"\f005"}
.fa-table-cells-large:before{content:"\f009"}
.fa-tower-broadcast:before{content:"\f519"}
.fa-universal-access:before{content:"\f29a"}
.fa-users-gear:before{content:"\f509"}
.fa-wand-magic-sparkles:before{content:"\e2ca"}
.fa-xmark:before{content:"\f00d"}
/* ===== fin Font Awesome subset ===== */
/* @@FONTS-INJECT-END */

:root{
  /* Couleurs charte */
  --bleu:#358dcd;
  --bleu-vif:#3bb0ff;
  --bleu-fonce:#2a76ae;
  --nuit:#061625;
  --nuit-2:#0B2438;
  --nuit-3:#10334E;
  --encre:#17222C;
  --texte:#333B44;
  --sec:#68737D;
  --fond:#F7FAFD;
  --blanc:#FFFFFF;
  --bord:#E1E9F1;
  --ligne:#CBDEED;
  --succes:#2ECC71;
  --accent:#F5A623;
  --gris-logo:#9D9D9D;
  --glow:rgba(59,176,255,.45);

  --radius:16px;
  --font-titres:'Rubik','Helvetica Neue',Arial,sans-serif;
  --font-corps:'Inter','Helvetica Neue',Arial,sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-corps);color:var(--texte);background:var(--fond);line-height:1.6;font-size:16px;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--font-titres);color:var(--encre);line-height:1.12;text-wrap:balance}
p{max-width:70ch}
a{text-decoration:none;color:var(--bleu-fonce)}
img{max-width:100%;height:auto}
ul[class],ol[class]{list-style:none}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.overflow-x{overflow-x:auto}

.eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--bleu-fonce)}
.on-dark .eyebrow,.dark-section .eyebrow,.page-hero .eyebrow,.cta-box .eyebrow,.eyebrow.light{color:var(--bleu-vif)}

/* ---------- Boutons ---------- */
.btn{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-titres);font-weight:500;font-size:.98rem;padding:.9rem 1.7rem;border-radius:10px;border:1px solid transparent;cursor:pointer;transition:transform .18s,box-shadow .18s,background .18s,border-color .18s,color .18s}
.btn .fa-arrow-right{transition:transform .18s;font-size:.85em}
.btn:hover .fa-arrow-right{transform:translateX(4px)}
.btn-p{background:linear-gradient(135deg,#3bb0ff,#358dcd 60%,#2a76ae);background-clip:padding-box;border-color:transparent;color:#fff;box-shadow:0 10px 30px -14px var(--glow);transform:translateZ(0)}
.btn-p:hover{transform:translateZ(0) translateY(-2px);box-shadow:0 16px 40px -16px var(--glow);color:#fff}
.btn-glass{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22);color:#fff;backdrop-filter:blur(6px)}
.btn-glass:hover{background:rgba(255,255,255,.15);color:#fff}
.btn-line{border-color:var(--ligne);color:var(--encre);background:#fff}
.btn-line:hover{border-color:var(--bleu);color:var(--bleu-fonce)}
.btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--bleu-vif);outline-offset:3px}

/* ---------- Révélation au scroll ---------- */
.rev{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.rev.in{opacity:1;transform:none}

/* ---------- Header ---------- */
.site-header{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .25s,border-color .25s,box-shadow .25s;border-bottom:1px solid transparent}
.site-header.dark{background:rgba(6,22,37,.85);backdrop-filter:blur(12px);border-color:rgba(255,255,255,.08)}
.site-header.light{background:rgba(255,255,255,.9);backdrop-filter:blur(12px);border-color:var(--bord);box-shadow:0 8px 30px -20px rgba(6,22,37,.25)}
.nav{display:flex;align-items:center;gap:2rem;height:74px}
.nav .logo img{height:50px;display:block}
.nav .logo .lg-l{display:none}
.site-header.light .logo .lg-d{display:none}
.site-header.light .logo .lg-l{display:block}
.drapeau{width:14px;height:16px;display:inline-flex;flex:none;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);vertical-align:-2px}
.drapeau i{flex:1}
.drapeau i:nth-child(1){background:#0055A4}
.drapeau i:nth-child(2){background:#F4F7FA}
.drapeau i:nth-child(3){background:#EF4135}
.nav-links{margin-left:auto;display:flex;gap:1.6rem;align-items:center}
.nav-links a{color:rgba(255,255,255,.85);font-size:.92rem;font-weight:500;padding:.3rem 0}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:#fff}
.site-header.light .nav-links a{color:var(--texte)}
.site-header.light .nav-links a:hover,.site-header.light .nav-links a[aria-current="page"]{color:var(--bleu-fonce)}
.nav-links .btn{padding:.55rem 1.2rem;font-size:.88rem;color:#fff}
.site-header.light .nav-links a.btn{color:#fff}
.site-header.light .nav-links a.btn:hover{color:#fff}
.nav-burger{display:none;margin-left:auto;background:none;border:0;cursor:pointer;font-size:1.35rem;color:#fff;padding:.4rem .6rem}
.site-header.light .nav-burger{color:var(--encre)}
@media(max-width:980px){
  .nav-links{display:none;position:absolute;top:74px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--nuit-2);border-top:1px solid rgba(255,255,255,.08);padding:.6rem 1.4rem 1.2rem}
  .site-header.light .nav-links{background:#fff;border-top:1px solid var(--bord);box-shadow:0 24px 40px -24px rgba(6,22,37,.35)}
  .nav-links.open{display:flex}
  .nav-links a{padding:.75rem .2rem;border-bottom:1px solid rgba(128,148,166,.14)}
  .nav-links .btn{margin-top:.9rem;justify-content:center}
  .nav-burger{display:block}
}

/* ---------- Hero accueil ---------- */
.hero{position:relative;background:var(--nuit);color:#fff;padding:10rem 0 0;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(55% 45% at 78% 12%,rgba(59,176,255,.22),transparent 60%),
  radial-gradient(45% 40% at 12% 85%,rgba(53,141,205,.20),transparent 65%),
  radial-gradient(30% 26% at 50% 50%,rgba(59,176,255,.08),transparent 70%)}
.hero::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(70% 60% at 50% 35%,#000 30%,transparent 100%);mask-image:radial-gradient(70% 60% at 50% 35%,#000 30%,transparent 100%)}
.hero .wrap{position:relative;z-index:2}
.hero-top{text-align:center;max-width:56rem;margin:0 auto}
.badge{display:inline-flex;align-items:center;gap:.6rem;font-size:.82rem;font-weight:500;color:#BFE3FF;background:rgba(59,176,255,.12);border:1px solid rgba(59,176,255,.3);border-radius:99px;padding:.45rem 1.1rem;margin-bottom:1.8rem}
.badge i.dot{width:7px;height:7px;border-radius:50%;background:var(--bleu-vif);box-shadow:0 0 12px 2px var(--glow);animation:pulse 2.4s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.hero h1{font-size:clamp(2.5rem,5.8vw,4.3rem);font-weight:700;letter-spacing:-.02em;color:#fff}
.grad{background:linear-gradient(100deg,#8fd0ff,#3bb0ff 55%,#69c3ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lede{font-size:1.18rem;color:#9FB8CC;max-width:42em;margin:1.5rem auto 2.4rem}
.hero .ctas{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.hero .trust{margin-top:1.6rem;font-size:.88rem;color:#7E97AB;max-width:none}
.hero .trust b{color:#CFE6F8;font-weight:600}
/* ---------- Hero v2 « Aurora » : fond animé, split, mots tournants ---------- */
.hero-v2{padding:8.5rem 0 3.5rem;min-height:88vh;display:flex;flex-direction:column;justify-content:center}
.hero-v2 .blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;pointer-events:none}
.hero-v2 .b1{width:52vw;height:52vw;left:-14vw;top:-18vw;background:radial-gradient(circle,#1B6FB4,transparent 65%);animation:drift1 16s ease-in-out infinite}
.hero-v2 .b2{width:44vw;height:44vw;right:-12vw;top:6vw;background:radial-gradient(circle,#3bb0ff,transparent 62%);opacity:.34;animation:drift2 20s ease-in-out infinite}
.hero-v2 .b3{width:36vw;height:36vw;left:28vw;bottom:-22vw;background:radial-gradient(circle,#7fd4ff,transparent 60%);opacity:.2;animation:drift3 24s ease-in-out infinite}
@keyframes drift1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(6vw,4vw) scale(1.12)}}
@keyframes drift2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-5vw,6vw) scale(.92)}}
@keyframes drift3{0%,100%{transform:translate(0,0)}50%{transform:translate(4vw,-5vw)}}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center;text-align:left}
.hero-v2 h1{font-size:clamp(2.3rem,4.6vw,3.7rem)}
.hero-v2 .lede{margin:1.4rem 0 2.2rem;max-width:32em}
.hero-v2 .ctas{justify-content:flex-start}
.roller{display:block;height:1.18em;overflow:hidden;margin-top:.08em}
.roller ul{list-style:none;animation:roll 31.5s cubic-bezier(.7,0,.3,1) infinite}
.roller li{height:1.18em;background:linear-gradient(100deg,#8fd0ff,#3bb0ff 55%,#69c3ff);-webkit-background-clip:text;background-clip:text;color:transparent}
/* 7 mots : cycle 31,5 s, 14,2857 %/étape (3,6 s de pause + 0,9 s de transition). */
@keyframes roll{
  0%,11.43%{transform:translateY(0)}
  14.29%,25.71%{transform:translateY(-1.18em)}
  28.57%,40%{transform:translateY(-2.36em)}
  42.86%,54.29%{transform:translateY(-3.54em)}
  57.14%,68.57%{transform:translateY(-4.72em)}
  71.43%,82.86%{transform:translateY(-5.9em)}
  85.71%,97.14%{transform:translateY(-7.08em)}
  100%{transform:translateY(-8.26em)}
}
.stagea{position:relative;display:flex;justify-content:center}
.stagea .halo{position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(59,176,255,.28),transparent 60%);top:50%;left:50%;transform:translate(-50%,-50%)}
.stagea .ring{position:absolute;top:50%;left:50%;border:1px solid rgba(120,190,245,.22);border-radius:50%;animation:ringpulse 5s ease-in-out infinite}
.stagea .r1{width:420px;height:420px;margin:-210px 0 0 -210px}
.stagea .r2{width:560px;height:560px;margin:-280px 0 0 -280px;animation-delay:1.2s}
@keyframes ringpulse{0%,100%{transform:scale(1);opacity:.7}50%{transform:scale(1.05);opacity:.3}}
@keyframes floaty{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-16px) rotate(-1deg)}}
/* Visuels téléphones qui défilent en synchro avec les mots du titre (hero défilant, version D).
   Fenêtre invisible masquée en haut et en bas ; mêmes durée et courbe que .roller ul. */
.vghost{position:relative;width:min(480px,90%);height:500px;overflow:hidden;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 36px,#000 calc(100% - 36px),transparent);
  mask-image:linear-gradient(180deg,transparent,#000 36px,#000 calc(100% - 36px),transparent);
  animation:floaty 8s ease-in-out infinite;will-change:transform}
.vghost ul{list-style:none;margin:0;padding:0;animation:vroll 31.5s cubic-bezier(.7,0,.3,1) infinite}
.vghost li{height:500px;display:flex;align-items:center;justify-content:center}
.vghost img{width:100%;height:auto;filter:drop-shadow(0 40px 60px rgba(0,0,0,.55))}
/* 7 visuels : mêmes durée et paliers que .roller ul (synchro mots/visuels). */
@keyframes vroll{
  0%,11.43%{transform:translateY(0)}
  14.29%,25.71%{transform:translateY(-500px)}
  28.57%,40%{transform:translateY(-1000px)}
  42.86%,54.29%{transform:translateY(-1500px)}
  57.14%,68.57%{transform:translateY(-2000px)}
  71.43%,82.86%{transform:translateY(-2500px)}
  85.71%,97.14%{transform:translateY(-3000px)}
  100%{transform:translateY(-3500px)}
}
@media(max-width:920px){
  .hero-grid{grid-template-columns:1fr;text-align:center}
  /* min-width:0 : empêche l'item grid de déborder à cause de la largeur
     intrinsèque du titre à mots tournants (sinon le lede est clippé). */
  .hero-grid>*{min-width:0}
  .hero-v2{min-height:0;padding-top:7.5rem}
  /* Le carrousel de visuels n'apporte rien sous le texte en une colonne : masqué. */
  .stagea{display:none}
  .hero-v2 .lede{margin-left:auto;margin-right:auto}
  .hero-v2 .ctas{justify-content:center}
}

/* ---------- Hero pages intérieures ---------- */
.page-hero{position:relative;background:var(--nuit);color:#fff;padding:9rem 0 4.5rem;overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 70% at 82% 0%,rgba(59,176,255,.2),transparent 60%),radial-gradient(38% 50% at 8% 100%,rgba(53,141,205,.14),transparent 60%)}
.page-hero::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(80% 100% at 50% 0%,#000 20%,transparent 100%);mask-image:radial-gradient(80% 100% at 50% 0%,#000 20%,transparent 100%)}
.page-hero .wrap{position:relative;z-index:2;max-width:56rem;text-align:center}
.page-hero h1{font-size:clamp(2rem,4.6vw,3.2rem);font-weight:700;color:#fff;letter-spacing:-.015em;margin-top:1rem}
.page-hero .lede{font-size:1.12rem;color:#9FB8CC;margin:1.2rem auto 0;max-width:38em}
.page-hero .ctas{margin-top:2rem;display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.page-hero .module-ic{width:64px;height:64px;border-radius:16px;margin:0 auto 1.4rem;background:rgba(59,176,255,.14);border:1px solid rgba(59,176,255,.35);display:flex;align-items:center;justify-content:center;font-size:1.6rem;color:var(--bleu-vif)}

/* ---------- Hero clair « Plein jour » (pages modules) ---------- */
.light-hero{background:linear-gradient(180deg,#EAF4FC 0%,#F7FAFD 78%);color:var(--texte);overflow:visible}
.light-hero::before{background:none}
.light-hero::after{background:none}
.light-hero .sun{position:absolute;left:50%;top:-36vw;width:88vw;height:88vw;transform:translateX(-50%);background:radial-gradient(circle,rgba(59,176,255,.30),rgba(59,176,255,.10) 40%,transparent 65%);animation:breathe 8s ease-in-out infinite;pointer-events:none}
@keyframes breathe{0%,100%{opacity:.9;transform:translateX(-50%) scale(1)}50%{opacity:.6;transform:translateX(-50%) scale(1.06)}}
.light-hero .orbit{position:absolute;left:50%;top:-27vw;width:68vw;height:68vw;transform:translateX(-50%);border:1.5px dashed rgba(53,141,205,.22);border-radius:50%;animation:orbite 10s ease-in-out infinite;pointer-events:none}
.light-hero .orbit2{width:50vw;height:50vw;top:-19vw;animation-duration:14s;animation-delay:-5s}
@keyframes orbite{0%,100%{transform:translateX(-50%) scale(1)}50%{transform:translateX(-50%) scale(1.12)}}
.light-hero+.section{padding-top:1.5rem}
.light-hero+.section .split:first-child{padding-top:0}
.light-hero+.section .wrap{position:relative;z-index:1}
.light-hero h1{color:var(--encre)}
.light-hero .grad{background:linear-gradient(100deg,#2a76ae,#3bb0ff 55%,#358dcd);-webkit-background-clip:text;background-clip:text;color:transparent}
.light-hero .lede{color:var(--sec)}
.light-hero .eyebrow{color:var(--bleu-fonce)}
.light-hero .module-ic{background:#fff;border-color:var(--ligne);color:var(--bleu-fonce);box-shadow:0 12px 30px -16px rgba(42,118,174,.45)}

/* ---------- Mockup dashboard ---------- */
.stage{position:relative;margin-top:4.5rem;perspective:1400px}
.mock{position:relative;margin:0 auto;max-width:920px;background:linear-gradient(180deg,rgba(23,48,71,.9),rgba(13,34,52,.94));border:1px solid rgba(120,190,245,.28);border-radius:18px;padding:1.1rem;transform:rotateX(10deg);transform-origin:center top;box-shadow:0 60px 120px -40px rgba(0,0,0,.7),0 0 80px -20px rgba(59,176,255,.25);transition:transform .6s ease}
.stage:hover .mock{transform:rotateX(4deg)}
.mock-hd{display:flex;align-items:center;gap:.8rem;padding:.2rem .4rem .9rem}
.mock-hd i.pt{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.18)}
.mock-hd span.url{font-size:.78rem;color:#7E97AB;margin-left:.4rem}
.seg{margin-left:auto;display:inline-flex;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:99px;padding:3px;font-size:.72rem;font-weight:500}
.seg span{padding:.25rem .8rem;border-radius:99px;color:#9FB8CC}
.seg .on{background:var(--bleu);color:#fff}
.mock-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:.9rem}
.pane{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.09);border-radius:12px;padding:1rem 1.1rem}
.pane h4,.pane .pane-t{font-family:var(--font-titres);font-size:.8rem;font-weight:500;color:#CFE6F8;margin-bottom:.8rem}
.krow{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin-bottom:1rem}
.k b{display:block;font-family:var(--font-titres);font-size:1.5rem;font-weight:700;color:#fff;font-variant-numeric:tabular-nums}
.k span{font-size:.68rem;color:#7E97AB}
.k .up{color:var(--succes);font-size:.68rem;font-weight:600}
.chart{display:flex;align-items:flex-end;gap:8px;height:88px}
.chart i{flex:1;border-radius:4px 4px 2px 2px;background:linear-gradient(180deg,rgba(59,176,255,.85),rgba(53,141,205,.35));transform-origin:bottom;animation:grow 1s cubic-bezier(.2,.7,.3,1) both}
.chart i:nth-child(odd){background:linear-gradient(180deg,rgba(59,176,255,.4),rgba(53,141,205,.15))}
@keyframes grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.avis-who{display:flex;align-items:center;gap:.6rem;font-size:.8rem;font-weight:600;color:#E7F2FB}
.avis-who i.av{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#3bb0ff,#2a76ae);flex:none}
.stars{color:var(--accent);letter-spacing:2px;font-size:.8rem;margin:.3rem 0}
.pane .avis-txt{font-size:.8rem;color:#9FB8CC}
.ia{margin-top:.7rem;background:rgba(59,176,255,.1);border:1px dashed rgba(59,176,255,.45);border-radius:9px;padding:.7rem .8rem;font-size:.76rem;color:#CFE6F8}
.ia b{color:var(--bleu-vif)}
.ia .act{display:flex;gap:.5rem;margin-top:.55rem;flex-wrap:wrap}
.ia .act span{font-size:.7rem;font-weight:600;padding:.3rem .75rem;border-radius:99px}
.ia .send{background:var(--bleu-vif);color:var(--nuit)}
.ia .redo{border:1px solid rgba(255,255,255,.2);color:#9FB8CC}
.fc{position:absolute;background:rgba(13,34,52,.9);border:1px solid rgba(120,190,245,.3);border-radius:12px;padding:.75rem 1rem;font-size:.78rem;color:#CFE6F8;backdrop-filter:blur(8px);box-shadow:0 20px 50px -20px rgba(0,0,0,.6);animation:float 5s ease-in-out infinite;text-align:left}
.fc b{display:block;font-family:var(--font-titres);font-size:1.05rem;color:#fff}
.fc .g{color:var(--succes);font-weight:600}
.fc1{left:2%;top:18%;animation-delay:.4s}
.fc2{right:1%;top:38%;animation-delay:1.2s}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@media(max-width:880px){.fc{display:none}.mock-grid{grid-template-columns:1fr}.mock{transform:none}.stage:hover .mock{transform:none}}

/* ---------- Marquee logos ---------- */
.marq{padding:3.4rem 0 3rem}
.marq>p{text-align:center;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:var(--bleu-fonce);font-weight:600;margin:0 auto 2.2rem;max-width:none}
.mq{overflow:hidden;position:relative;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.mq-track{display:flex;align-items:center;gap:3.2rem;width:max-content;animation:slide 34s linear infinite}
.mq-track img{height:58px;width:auto}
@keyframes slide{to{transform:translateX(-50%)}}

/* ---------- Stats ---------- */
.stats{padding:4.5rem 0 2rem}
.stats .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;text-align:center}
.stat b{display:block;font-family:var(--font-titres);font-size:clamp(2rem,3.6vw,2.9rem);font-weight:700;font-variant-numeric:tabular-nums;background:linear-gradient(135deg,#2a76ae,#3bb0ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat b span{font:inherit;color:inherit}
.stat > span{font-size:.9rem;color:var(--sec)}
@media(max-width:760px){.stats .wrap{grid-template-columns:1fr}}
/* variante sombre : dans la continuité du hero */
.stats-dark{background:var(--nuit);padding:0 0 4rem;position:relative}
.stats-dark .wrap{border-top:1px solid rgba(255,255,255,.09);padding-top:3rem}
.stats-dark .stat b{background:linear-gradient(135deg,#8fd0ff,#3bb0ff);-webkit-background-clip:text;background-clip:text}
.stats-dark .stat > span{color:#7E97AB}
.stat{position:relative}
.stat+.stat::before{content:"";position:absolute;left:-.75rem;top:50%;transform:translateY(-50%);width:1px;height:64%;background:linear-gradient(180deg,transparent,rgba(42,118,174,.2),transparent)}
.stats-dark .stat+.stat::before{background:linear-gradient(180deg,transparent,rgba(255,255,255,.16),transparent)}
@media(max-width:760px){.stat::before{display:none}}

/* ---------- Sections génériques ---------- */
.section{padding:5.5rem 0}
.section.tight{padding:3.5rem 0}
#modules.section{padding-top:2.5rem}
.head{text-align:center;max-width:46em;margin:0 auto 3.2rem}
.head h2{font-size:clamp(1.8rem,3.6vw,2.6rem);font-weight:700;margin:.9rem 0}
.head p{color:var(--sec);font-size:1.08rem;margin-left:auto;margin-right:auto}
.head.left{text-align:left;margin-left:0}
.head.left p{margin-left:0}

/* ---------- Cartes modules (catalogue) ---------- */
.mods-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.tabs{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin-bottom:2.4rem}
.tab{font-family:var(--font-titres);font-size:.9rem;font-weight:500;color:var(--sec);background:#fff;border:1px solid var(--bord);border-radius:99px;padding:.55rem 1.3rem;cursor:pointer;transition:border-color .18s,color .18s,background .18s,box-shadow .18s}
.tab:hover{border-color:var(--bleu);color:var(--bleu-fonce)}
.tab.on{background:var(--bleu);border-color:var(--bleu);color:#fff;box-shadow:0 10px 24px -12px rgba(53,141,205,.7)}
.mcard{position:relative;background:#fff;border:1px solid var(--bord);border-radius:var(--radius);padding:1.5rem 1.5rem 0;overflow:hidden;display:flex;flex-direction:column;transition:transform .22s,box-shadow .22s,border-color .22s}
.mcard.hide{display:none}
.mcard::after{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,#3bb0ff,#358dcd);opacity:0;transition:opacity .25s}
.mcard:hover::after{opacity:1}
.mcard .cat{font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--bleu-fonce);margin-bottom:.3rem}
.mcard::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,#3bb0ff,#358dcd);opacity:0;transition:opacity .22s}
.mcard:hover{transform:translateY(-5px);border-color:var(--ligne);box-shadow:0 26px 54px -26px rgba(42,118,174,.4)}
.mcard:hover::before{opacity:1}
.mcard .ic{width:42px;height:42px;border-radius:11px;background:linear-gradient(135deg,#E3F1FB,#CFE7F8);display:flex;align-items:center;justify-content:center;color:var(--bleu-fonce);font-size:1.1rem;margin-bottom:.9rem}
.mcard h3{font-size:1.12rem;font-weight:500;margin-bottom:.35rem}
.mcard>p{font-size:.88rem;color:var(--sec);flex:1}
.mcard .go{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;color:var(--bleu-fonce);padding:.8rem 0}
.mcard .go i{transition:transform .18s;font-size:.8em}
.mcard:hover .go i{transform:translateX(4px)}
@media(max-width:980px){.mods-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.mods-grid{grid-template-columns:1fr}}

/* ---------- Mini-visuels des modules (cartes + hero des pages module) ---------- */
.art{position:relative;overflow:hidden;height:172px}
.mcard .art{margin:0 -1.5rem;margin-top:auto;background:none}
.hero-art{max-width:430px;margin:2.6rem auto 0;border:1px solid var(--bord);border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 30px 60px -28px rgba(42,118,174,.45);transform:rotate(-1.5deg);transition:transform .3s ease}
.hero-art:hover{transform:rotate(0)}
/* 01 analyse : widget de synthese IA des avis (smiley clin d'oeil, texte ghoste) */
.a-analyse{background:linear-gradient(180deg,#F2F8FD,#E7F2FA);display:flex;align-items:center;justify-content:center;padding:1rem 1.2rem}
.a-analyse .synth{display:flex;align-items:flex-start;gap:.95rem;max-width:100%;background:#fff;border:1px solid var(--bord);border-radius:14px;padding:.95rem 1.1rem;box-shadow:0 16px 34px -20px rgba(42,118,174,.5);transition:transform .25s}
.mcard:hover .a-analyse .synth,.hero-art:hover .a-analyse .synth{transform:translateY(-3px)}
.a-analyse .face{position:relative;flex:none;width:50px;height:50px;border:3px solid #50CD89;border-radius:50%;margin-top:.15rem}
.a-analyse .eye{position:absolute;top:13px;width:6px;height:8px;border-radius:50%;background:#50CD89;transform-origin:center}
.a-analyse .eye.l{left:11px}
.a-analyse .eye.r{right:11px;animation:clin 3.4s ease-in-out infinite}
.a-analyse .smile{position:absolute;left:9px;right:9px;bottom:7px;height:13px;border:3px solid #50CD89;border-top:0;border-radius:0 0 24px 24px}
@keyframes clin{0%,76%,92%,100%{transform:scaleY(1)}81%,87%{transform:scaleY(.12)}}
.a-analyse .tx{min-width:0}
.a-analyse .tx b{display:block;font-family:var(--font-titres);font-weight:700;font-size:.92rem;color:#1F9D57}
.a-analyse .tx span{display:block;font-size:.68rem;font-weight:600;line-height:1.4;color:#1F9D57;margin:.15rem 0 .55rem}
.a-analyse .gl{display:block;height:5px;border-radius:3px;background:#E2EAF1;margin-bottom:.32rem}
.a-analyse .gl.s{width:62%;margin-bottom:0}
/* 02 réponse IA */
.a-ia{background:linear-gradient(180deg,#F4F1FD,#EAF2FB);padding:1rem 1.2rem;display:flex;flex-direction:column;gap:.55rem}
.a-ia .b1,.a-ia .b2{max-width:85%;border-radius:12px;padding:.5rem .8rem;font-size:.72rem;box-shadow:0 8px 20px -12px rgba(23,34,44,.25)}
.a-ia .b1{background:#fff;border:1px solid var(--bord);align-self:flex-start;color:var(--sec)}
.a-ia .b1 .st{color:var(--accent);letter-spacing:2px;font-size:.72rem}
.a-ia .b2{background:linear-gradient(135deg,#3bb0ff,#2a76ae);color:#fff;align-self:flex-end;border-bottom-right-radius:3px}
.a-ia .b2 b{opacity:.85;font-size:.62rem;display:block}
.a-ia .send{align-self:flex-end;font-size:.66rem;font-weight:600;color:var(--bleu-fonce);background:#fff;border:1px solid var(--ligne);border-radius:99px;padding:.25rem .7rem;transition:transform .2s}
.mcard:hover .a-ia .send,.hero-art:hover .a-ia .send{transform:translateY(-2px)}
/* 03 collecte */
/* 04 QR codes et affiches : selecteur de modeles d'affiche, fidele a l'ecran (selection qui defile) */
.a-affiches{background:linear-gradient(180deg,#F2F8FD,#E7F2FA);display:flex;align-items:center;justify-content:center;padding:.5rem .9rem}
.a-affiches .picker{width:100%;max-width:276px;background:#fff;border:1px solid var(--bord);border-radius:12px;padding:.45rem .55rem;box-shadow:0 16px 34px -20px rgba(42,118,174,.5);transition:transform .25s}
.mcard:hover .a-affiches .picker,.hero-art:hover .a-affiches .picker{transform:translateY(-3px)}
.a-affiches .hd b{font-family:var(--font-titres);font-weight:700;font-size:.7rem;color:var(--encre)}
.a-affiches .row{display:flex;gap:.4rem;margin:.3rem 0 .12rem}
.a-affiches .tpl{flex:1;min-width:0}
/* vignette d'affiche : carte blanche + feuille coloree */
.a-affiches .poster{width:100%;aspect-ratio:1/1.15;border:2px solid #EDF0F3;border-radius:5px;background:#fff;padding:2.5px;overflow:hidden;box-shadow:0 4px 10px -6px rgba(23,34,44,.3);display:flex}
.a-affiches .sheet{flex:1;display:flex;flex-direction:column;border-radius:3px;padding:.22rem;overflow:hidden}
.a-affiches .p1 .sheet{background:linear-gradient(165deg,#63B7EE,#3E9BE0)}
.a-affiches .p2 .sheet{background:linear-gradient(120deg,#EAF6FD 40%,#CDEBFB)}
.a-affiches .p3 .sheet{background:linear-gradient(180deg,#5FB4EC 0%,#2b6a9e 45%,#0C1621 100%)}
.a-affiches .logo{display:block;width:34%;height:5px;border-radius:2px;background:rgba(255,255,255,.6);margin-bottom:.2rem}
.a-affiches .ln{display:block;height:3px;border-radius:2px;background:rgba(255,255,255,.9);margin-bottom:.13rem;width:78%}
.a-affiches .ln.w{width:58%;height:4px}
.a-affiches .ln.s{width:48%}
.a-affiches .p2 .ln{background:rgba(46,86,120,.55)}
.a-affiches .qrb{margin-top:auto;width:44%;background:#fff;border-radius:2px;padding:1.5px;align-self:flex-start}
.a-affiches .qrb.ctr{align-self:center;width:52%}
.a-affiches .qr{display:block;width:100%;height:auto}
.a-affiches .phone{margin-top:auto;align-self:flex-end;width:42%;background:#181C32;border-radius:4px;padding:2px 2px 3px;display:flex;justify-content:center}
.a-affiches .phone .scr{width:100%;background:#fff;border-radius:2px;padding:1.5px}
.a-affiches .opt{display:flex;align-items:center;justify-content:center;gap:.2rem;margin-top:.26rem}
.a-affiches .rdo{width:8px;height:8px;border-radius:50%;border:1.5px solid #C9D3DC;background:#fff;flex:none}
.a-affiches .lbl{font-family:var(--font-titres);font-weight:500;font-size:.5rem;color:var(--sec);white-space:nowrap}
.a-affiches .dl{display:block;text-align:center;font-family:var(--font-titres);font-weight:600;font-size:.62rem;color:#fff;background:#009EF7;border-radius:6px;padding:.3rem;margin-top:.32rem;box-shadow:0 6px 14px -8px rgba(0,158,247,.9)}
.a-affiches .tpl:nth-child(1) .poster{animation:affring 5.4s ease-in-out infinite}
.a-affiches .tpl:nth-child(2) .poster{animation:affring 5.4s ease-in-out infinite 1.8s}
.a-affiches .tpl:nth-child(3) .poster{animation:affring 5.4s ease-in-out infinite 3.6s}
.a-affiches .tpl:nth-child(1) .rdo{animation:affrdo 5.4s ease-in-out infinite}
.a-affiches .tpl:nth-child(2) .rdo{animation:affrdo 5.4s ease-in-out infinite 1.8s}
.a-affiches .tpl:nth-child(3) .rdo{animation:affrdo 5.4s ease-in-out infinite 3.6s}
@keyframes affring{0%,28%{border-color:#F5A623}33%,100%{border-color:#EDF0F3}}
@keyframes affrdo{0%,28%{background:#009EF7;border-color:#009EF7}33%,100%{background:#fff;border-color:#C9D3DC}}
/* 04 cartes de visite */
/* 05 cartes de visite : QR + illustration « main qui scanne » (le reste retire a la demande) */
.a-vcard{background:linear-gradient(180deg,#EDF6FD,#E3F0FA);display:flex;align-items:center;justify-content:center;padding:.5rem .8rem}
.a-vcard .tcard{position:relative;width:100%;max-width:224px;height:150px;background:#fff;border:1px solid var(--bord);border-radius:12px;box-shadow:0 16px 34px -20px rgba(42,118,174,.5);transition:transform .25s;overflow:hidden}
.mcard:hover .a-vcard .tcard,.hero-art:hover .a-vcard .tcard{transform:translateY(-3px)}
.a-vcard .illus{position:absolute;top:8px;right:10px;width:92px;height:auto;display:block}
.a-vcard .qrwrap{position:absolute;left:14px;bottom:12px;width:78px;overflow:hidden;border-radius:3px}
.a-vcard .qrbig .qr{display:block;width:100%;height:auto}
.a-vcard .scan{position:absolute;left:1px;right:1px;top:0;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,#009EF7,transparent);box-shadow:0 0 6px 1px rgba(0,158,247,.55);animation:vscan 2.6s ease-in-out infinite}
@keyframes vscan{0%{top:2%;opacity:0}12%{opacity:1}88%{opacity:1}100%{top:94%;opacity:0}}
/* 05 benchmark */
.a-map{background:#F6F6F3}
.a-map .mapbg{position:absolute;inset:0;width:100%;height:100%;display:block}
.a-map .pin{position:absolute;font-family:var(--font-titres);font-weight:700;font-size:.66rem;color:#fff;background:#9AA7B1;border-radius:99px 99px 99px 2px;padding:.22rem .5rem;box-shadow:0 8px 16px -8px rgba(23,34,44,.4)}
.a-map .pin.me{background:linear-gradient(135deg,#3bb0ff,#2a76ae);font-size:.74rem}
.mcard:hover .a-map .pin.me,.hero-art:hover .a-map .pin.me{animation:bounce .8s ease}
@keyframes bounce{0%,100%{transform:translateY(0)}40%{transform:translateY(-8px)}}
.a-map .rd{position:absolute;border:1.5px dashed rgba(53,141,205,.4);border-radius:50%;width:120px;height:120px;left:50%;top:50%;transform:translate(-50%,-50%)}
/* 06 multi-posts */
/* 06 multi-posts : une publication diffusee sur les fiches Google (logos Google, « Publié » en cascade) */
.a-posts{background:linear-gradient(180deg,#EEF4FF,#E5EEFB);padding:.7rem 1rem;display:flex;flex-direction:column;justify-content:center;gap:.45rem}
.a-posts .src{display:flex;align-items:center;gap:.55rem;background:#fff;border:1px solid var(--bord);border-radius:10px;padding:.42rem .55rem;box-shadow:0 12px 26px -18px rgba(42,118,174,.6)}
.a-posts .src .thumb{width:30px;height:30px;border-radius:7px;background:linear-gradient(135deg,#3bb0ff,#7239EA);flex:none}
.a-posts .src .stx{flex:1;min-width:0;display:flex;flex-direction:column;gap:.28rem}
.a-posts .src .stx i{display:block;height:5px;border-radius:3px;background:#DDE7F1}
.a-posts .src .stx i.s{width:58%}
.a-posts .src .pub{display:flex;align-items:center;gap:.3rem;font-family:var(--font-titres);font-weight:600;font-size:.6rem;color:#fff;background:#009EF7;border-radius:99px;padding:.26rem .6rem;white-space:nowrap;animation:srcpulse 3.6s ease-in-out infinite}
.a-posts .src .pub i{font-size:.9em}
.a-posts .fiches{display:flex;flex-direction:column;gap:.3rem}
.a-posts .fiche{display:flex;align-items:center;gap:.5rem;background:#fff;border:1px solid var(--bord);border-radius:8px;padding:.3rem .55rem}
.a-posts .gsvg{width:15px;height:15px;flex:none;display:block}
.a-posts .fiche .nm{flex:1;min-width:0;height:5px;border-radius:3px;background:#E2EDF6}
.a-posts .fiche .nm.s{max-width:68%}
.a-posts .chk{display:inline-flex;align-items:center;font-family:var(--font-titres);font-weight:700;font-size:.55rem;color:#fff;background:#50CD89;border-radius:99px;padding:.16rem .5rem;white-space:nowrap;opacity:0;transform:scale(.6);transform-origin:right;animation:pub 3.6s ease-in-out infinite}
.a-posts .chk.d1{animation-delay:.35s}
.a-posts .chk.d2{animation-delay:.7s}
@keyframes pub{0%,8%{opacity:0;transform:scale(.6)}18%,84%{opacity:1;transform:scale(1)}94%,100%{opacity:0;transform:scale(.6)}}
@keyframes srcpulse{0%,100%{box-shadow:0 0 0 0 rgba(0,158,247,.5)}55%{box-shadow:0 0 0 5px rgba(0,158,247,0)}}
/* 07 appels */
/* 07 suivi des appels : pastille « Appel entrant » centree + journal (refonte fidele au montage) */
.a-tel{background:linear-gradient(180deg,#F1FBF5,#EAF3FB);display:flex;align-items:center;justify-content:center;padding:.5rem 1rem;line-height:1.15}
.a-tel .grp{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0}
.a-tel .head{margin:0 auto 1.2rem;display:inline-flex;align-items:center;gap:.5rem;background:#fff;border:1px solid #E9ECEE;border-radius:11px;padding:.3rem .6rem .3rem .35rem;box-shadow:0 10px 24px -14px rgba(31,157,87,.45)}
.a-tel .ring{width:26px;height:26px;border-radius:50%;background:linear-gradient(140deg,#34D07E,#1F9D57);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.7rem;flex:none;box-shadow:0 4px 10px -3px rgba(31,157,87,.7);animation:telpulse 2s ease-in-out infinite}
.a-tel .htx{display:flex;flex-direction:column;line-height:1.2;margin-right:.15rem}
.a-tel .htx b{font-family:var(--font-titres);font-weight:700;font-size:.74rem;color:#2A3444}
.a-tel .htx span{font-size:.6rem;color:var(--sec)}
.a-tel .live{display:inline-flex;align-items:center;gap:.3rem;font-size:.58rem;font-weight:700;color:#1F9D57;background:#E9F9F0;border-radius:99px;padding:.2rem .55rem;white-space:nowrap}
.a-tel .live i{width:6px;height:6px;border-radius:50%;background:#2ECC71;animation:pulse 1.4s ease-in-out infinite}
.a-tel .log{width:100%;background:#fff;border:1px solid #E9ECEE;border-radius:11px;padding:.05rem .8rem;box-shadow:0 10px 24px -16px rgba(42,118,174,.4)}
.a-tel .line{display:flex;align-items:center;gap:.55rem;font-size:.68rem;line-height:1.1;padding:.28rem 0;border-bottom:1px solid #EEF1F4}
.a-tel .line:last-child{border-bottom:0}
.a-tel .dot{width:9px;height:9px;border-radius:50%;flex:none}
.a-tel .dot.ok{background:#2ECC71}
.a-tel .dot.ko{background:#F5A623}
.a-tel .tm{color:#6B7280}
.a-tel .dur{margin-left:auto;font-variant-numeric:tabular-nums;color:#2A3444;font-weight:700}
.a-tel .tag{margin-left:auto;font-size:.62rem;font-weight:700;color:#B4750A;background:#FBEFD6;border-radius:99px;padding:.12rem .55rem}
@keyframes telpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
/* 08 solutions */
.a-store{background:#EFF3EC}
.a-store .mapbg{position:absolute;inset:0;width:100%;height:100%;display:block}
.a-store .srch{position:absolute;left:1rem;top:.8rem;background:#fff;border:1px solid var(--bord);border-radius:99px;padding:.3rem .8rem;font-size:.66rem;font-weight:600;color:var(--bleu-fonce);box-shadow:0 8px 18px -12px rgba(23,34,44,.35)}
.a-store .spin{position:absolute;width:12px;height:12px;border-radius:50% 50% 50% 2px;background:#9AA7B1;transform:rotate(45deg);box-shadow:0 6px 12px -6px rgba(23,34,44,.4)}
.a-store .spin.me{width:16px;height:16px;background:linear-gradient(135deg,#3bb0ff,#2a76ae)}
.mcard:hover .a-store .spin.me,.hero-art:hover .a-store .spin.me{animation:bounce .8s ease}
.a-store .res{position:absolute;left:1rem;right:1rem;bottom:.8rem;background:#fff;border:1px solid var(--bord);border-radius:10px;padding:.45rem .8rem;font-size:.66rem;color:var(--sec);box-shadow:0 10px 22px -14px rgba(42,118,174,.5);transition:transform .25s}
.a-store .res b{display:block;color:var(--encre);font-size:.68rem}
.mcard:hover .a-store .res,.hero-art:hover .a-store .res{transform:translateY(-3px)}

.a-web{background:linear-gradient(180deg,#EDF6FD,#E3F0FA);display:flex;justify-content:center;padding-top:1.1rem}
.a-web .win{width:78%;background:#fff;border:1px solid var(--bord);border-radius:12px 12px 0 0;box-shadow:0 -6px 30px -12px rgba(42,118,174,.35);overflow:hidden;transition:transform .3s}
.mcard:hover .a-web .win,.hero-art:hover .a-web .win{transform:translateY(-6px)}
.a-web .bar{display:flex;align-items:center;gap:4px;background:#F0F6FB;border-bottom:1px solid var(--ligne);padding:.4rem .6rem}
.a-web .bar i{width:7px;height:7px;border-radius:50%;background:#D3E2EE}
.a-web .bar .url{margin-left:.4rem;flex:1;background:#fff;border:1px solid var(--ligne);border-radius:99px;padding:.12rem .6rem;font-size:.56rem;color:var(--sec);white-space:nowrap;overflow:hidden}
.a-web .page{padding:.7rem .8rem}
.a-web .hd{height:22px;border-radius:6px;background:linear-gradient(135deg,#BBDDF4,#8FC6EC);margin-bottom:.5rem}
.a-web .ttl{height:8px;width:55%;border-radius:4px;background:#C9DEEE;margin-bottom:.35rem}
.a-web .ln{height:5px;border-radius:3px;background:#E2EDF6;margin-bottom:.3rem}
.a-web .ln.s{width:70%}
.a-web .cta{display:inline-block;margin-top:.35rem;font-size:.6rem;font-weight:600;color:#fff;background:linear-gradient(135deg,#3bb0ff,#2a76ae);border-radius:99px;padding:.22rem .7rem}

.a-ads{background:linear-gradient(180deg,#F2F8FD,#E9F3FB);padding:.85rem 1.2rem;display:flex;flex-direction:column;gap:.5rem;justify-content:center;line-height:1.2;text-align:left}
.a-ads .gads-hd{display:flex;align-items:center;gap:.45rem}
.a-ads .gads{width:19px;height:19px;flex:none;display:block}
.a-ads .gads-hd b{font-family:var(--font-titres);font-weight:700;font-size:.74rem;color:#2A3444}
.a-ads .res{background:#fff;border:1px solid var(--bord);border-radius:10px;padding:.55rem .8rem;box-shadow:0 8px 20px -14px rgba(23,34,44,.3)}
.a-ads .badge{display:inline-block;font-size:.56rem;font-weight:700;color:#1F9D57;background:#E9F7EF;border:1px solid #BFE8CE;border-radius:4px;padding:.05rem .4rem;margin-bottom:.3rem}
.a-ads .tt{height:8px;width:60%;border-radius:4px;background:linear-gradient(90deg,#3bb0ff,#8FC6EC);margin-bottom:.3rem}
.a-ads .ll{height:5px;border-radius:3px;background:#E2EDF6;margin-bottom:.25rem}
.a-ads .ll.s{width:75%;margin-bottom:0}
.a-ads .chips{display:flex;gap:.35rem;flex-wrap:wrap}
.a-ads .chips span{font-size:.58rem;font-weight:600;color:var(--bleu-fonce);background:#fff;border:1px solid var(--ligne);border-radius:99px;padding:.18rem .55rem;transition:transform .2s}
.mcard:hover .a-ads .chips span,.hero-art:hover .a-ads .chips span{transform:translateY(-2px)}
.mcard:hover .a-ads .chips span:nth-child(2),.hero-art:hover .a-ads .chips span:nth-child(2){transition-delay:.05s}
.mcard:hover .a-ads .chips span:nth-child(3),.hero-art:hover .a-ads .chips span:nth-child(3){transition-delay:.1s}
.mcard:hover .a-ads .chips span:nth-child(4),.hero-art:hover .a-ads .chips span:nth-child(4){transition-delay:.15s}

.a-pres{background:linear-gradient(180deg,#F2FBF6,#E9F3FB);padding:1rem 1.2rem;display:flex;flex-direction:column;gap:.5rem;justify-content:center}
.a-pres .line{display:flex;align-items:center;background:#fff;border:1px solid var(--bord);border-radius:9px;padding:.42rem .7rem;font-size:.68rem;color:var(--sec)}
.a-pres .nm{font-weight:600;color:var(--encre)}
.a-pres .st{margin-left:auto;font-weight:700;color:var(--succes);opacity:.25;transition:opacity .3s;white-space:nowrap}
.mcard:hover .a-pres .st,.hero-art:hover .a-pres .st{opacity:1}
.mcard:hover .a-pres .st.d1,.hero-art:hover .a-pres .st.d1{transition-delay:.05s}
.mcard:hover .a-pres .st.d2,.hero-art:hover .a-pres .st.d2{transition-delay:.2s}
.mcard:hover .a-pres .st.d3,.hero-art:hover .a-pres .st.d3{transition-delay:.35s}

/* 03 collecte : composeur « Message » du back-office (apercu SMS + email) ghoste et anime */
.a-collecte{background:linear-gradient(180deg,#F4F1FD,#EAF2FB);display:flex;align-items:center;justify-content:center;padding:.7rem 1rem}
.a-collecte .cmp{width:100%;max-width:300px;background:#fff;border:1px solid var(--bord);border-radius:12px;padding:.6rem .7rem;box-shadow:0 16px 34px -20px rgba(42,118,174,.5);transition:transform .25s}
.mcard:hover .a-collecte .cmp,.hero-art:hover .a-collecte .cmp{transform:translateY(-3px)}
.a-collecte .hd b{font-family:var(--font-titres);font-weight:700;font-size:.72rem;color:var(--encre)}
.a-collecte .fld{display:flex;align-items:center;gap:.4rem;background:#fff;border:1px solid var(--ligne);border-radius:6px;padding:.3rem .5rem;margin:.35rem 0 .5rem;animation:cmpsel 4.4s ease-in-out infinite}
.a-collecte .fld .v{flex:1;height:5px;border-radius:3px;background:#DDE4EC}
.a-collecte .fld .cv{width:0;height:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:4px solid #9AA7B1}
.a-collecte .cols{display:flex;gap:.55rem}
.a-collecte .col{flex:1;min-width:0}
.a-collecte .col:first-child{flex:0 0 38%}
.a-collecte .tag{display:block;height:5px;width:60%;border-radius:3px;background:#F5C06B;margin-bottom:.4rem}
.a-collecte .phone{background:#181C32;border-radius:10px;padding:.4rem;display:flex;flex-direction:column;align-items:center;gap:.3rem}
.a-collecte .phone .av{width:14px;height:14px;border-radius:50%;background:#4FA3E8;flex:none}
.a-collecte .phone .msg{width:100%;background:#F7F9FB;border-radius:6px;padding:.35rem .4rem;display:flex;flex-direction:column;gap:.22rem}
.a-collecte .phone .msg i{height:4px;border-radius:2px;background:#D9DFE5}
.a-collecte .phone .msg i:nth-child(1){width:92%}
.a-collecte .phone .msg i:nth-child(2){width:74%}
.a-collecte .phone .cta{width:58%;height:6px;border-radius:3px;background:#DDE4EC}
.a-collecte .mail{background:#fff;border:1px solid var(--ligne);border-radius:6px;overflow:hidden}
.a-collecte .mbar{display:flex;gap:3px;background:#F5F8FA;padding:.3rem .4rem;border-bottom:1px solid var(--ligne)}
.a-collecte .mbar i{width:5px;height:5px;border-radius:50%}
.a-collecte .mbar i:nth-child(1){background:#F5493D}
.a-collecte .mbar i:nth-child(2){background:#FFC700}
.a-collecte .mbar i:nth-child(3){background:#50CD89}
.a-collecte .mbody{padding:.45rem .5rem;display:flex;flex-direction:column;gap:.28rem}
.a-collecte .mbody i{height:4px;border-radius:2px;background:#E2E8EF}
.a-collecte .mbody i:nth-child(1){width:86%}
.a-collecte .mbody .av2{width:12px!important;height:12px;border-radius:50%;background:#4FA3E8}
.a-collecte .mbody i:nth-child(3){width:95%}
.a-collecte .mbody i:nth-child(4){width:78%}
.a-collecte .phone .msg .a,.a-collecte .mbody .a{transform-origin:left;background:#7FB8E8;animation:cmpfill 4.4s ease-in-out infinite}
.a-collecte .mbody .a{width:62%;height:6px}
.a-collecte .mbody .a{animation-delay:.28s}
@keyframes cmpsel{0%,2%,88%,100%{border-color:var(--ligne);background:#fff}4%,8%{border-color:#7FCBFB;background:#F0F9FF}}
@keyframes cmpfill{0%,12%{transform:scaleX(.15)}42%,82%{transform:scaleX(1)}94%,100%{transform:scaleX(.15)}}
/* Dans le hero de ces modules : pas de cadre ni de fond, seule la « pop-up » flotte, legerement inclinee (la carte du catalogue garde son fond) */
.hero-art[data-module-art="collecte-avis"],
.hero-art[data-module-art="qr-codes-affiches"],
.hero-art[data-module-art="cartes-de-visite-digitales"]{border:0;background:none;box-shadow:none;overflow:visible;transform:rotate(-2.5deg)}
.hero-art[data-module-art="collecte-avis"] .a-collecte,
.hero-art[data-module-art="qr-codes-affiches"] .a-affiches,
.hero-art[data-module-art="cartes-de-visite-digitales"] .a-vcard{background:none;padding:0;overflow:visible;height:auto}

.a-fiche{position:relative;overflow:hidden;background:linear-gradient(180deg,#F0F7FC,#E6F1F9);padding:1rem 1.2rem;display:flex;flex-direction:column;gap:.55rem;justify-content:center;align-items:center}
.a-fiche .bg-g{position:absolute;right:-22px;bottom:-28px;width:150px;opacity:.16;pointer-events:none;z-index:0}
.a-fiche .bg-g .gsvg{width:100%;height:auto;display:block}
.a-fiche .fiche{position:relative;z-index:1;display:flex;gap:.7rem;align-items:center;background:#fff;border:1px solid var(--bord);border-radius:12px;padding:.65rem .9rem;box-shadow:0 12px 26px -16px rgba(42,118,174,.5);transition:transform .25s}
.mcard:hover .a-fiche .fiche,.hero-art:hover .a-fiche .fiche{transform:translateY(-3px)}
.a-fiche .ph{position:relative;width:42px;height:42px;border-radius:9px;background:linear-gradient(135deg,#BBDDF4,#8FC6EC);flex:none}
.a-fiche .gbadge{position:absolute;right:-5px;bottom:-5px;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:0 2px 6px -2px rgba(23,34,44,.45);display:flex;align-items:center;justify-content:center}
.a-fiche .gbadge .gsvg{width:11px;height:11px;display:block}
.a-fiche .tx{display:flex;flex-direction:column;gap:.1rem;font-size:.64rem;color:var(--sec)}
.a-fiche .tx b{font-size:.74rem;color:var(--encre)}
.a-fiche .tx .st{color:var(--accent)}
.a-fiche .tx .ou{color:var(--succes);font-weight:600}
.a-fiche .sync{position:relative;z-index:1;font-size:.64rem;font-weight:600;color:var(--bleu-fonce);background:#fff;border:1px solid var(--ligne);border-radius:99px;padding:.25rem .7rem}
.a-fiche .sync i{display:inline-block;font-style:normal;animation:spin 3.5s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

.a-rapport{background:linear-gradient(180deg,#F2F8FD,#E9F3FB);display:flex;align-items:center;justify-content:center;padding:1rem 1.2rem}
.a-rapport .mail{width:100%;max-width:250px;background:#fff;border:1px solid var(--bord);border-radius:12px;overflow:hidden;box-shadow:0 12px 26px -16px rgba(42,118,174,.5);transition:transform .25s}
.mcard:hover .a-rapport .mail,.hero-art:hover .a-rapport .mail{transform:translateY(-4px)}
.a-rapport .obj{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;padding:.5rem .8rem;border-bottom:1px solid var(--ligne);font-size:.6rem;color:var(--sec)}
.a-rapport .obj b{font-size:.68rem;color:var(--encre)}
.a-rapport .kpi{display:flex;gap:.4rem;padding:.6rem .8rem}
.a-rapport .kpi span{flex:1;text-align:center;background:#F2F8FD;border:1px solid var(--ligne);border-radius:8px;padding:.35rem .2rem;font-size:.56rem;color:var(--sec)}
.a-rapport .kpi b{display:block;font-family:var(--font-titres);font-size:.92rem;color:var(--encre)}
.a-rapport .kpi .stx{font-style:normal;color:var(--accent);font-size:.7rem}

/* Badge « Nouveau » (module estampillé nouveauté : nouveau:true dans modules-data.js) */
.new-badge{position:absolute;top:1rem;right:1rem;z-index:1;background:var(--accent);color:#fff;font-family:var(--font-titres);font-weight:600;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;border-radius:99px;padding:.24rem .65rem;box-shadow:0 8px 18px -10px rgba(245,166,35,.8)}
.fam .mod .new{display:inline-block;vertical-align:middle;margin-left:.35rem;background:var(--accent);color:#fff;font-family:var(--font-titres);font-weight:600;font-size:.56rem;letter-spacing:.08em;text-transform:uppercase;border-radius:99px;padding:.14rem .5rem}
.page-hero .new-pill{display:inline-block;background:var(--accent);color:#fff;font-family:var(--font-titres);font-weight:600;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;border-radius:99px;padding:.28rem .75rem;margin-left:.55rem;vertical-align:middle}
.a-plus .t.more{border-style:dashed;color:var(--bleu-fonce);font-weight:600}

/* Tags (utilisés sur fonds sombres : hero, mock, sections) */
.tag{font-size:.72rem;padding:.24rem .65rem;border-radius:99px;font-weight:500;background:rgba(59,176,255,.15);color:#8fd0ff}
.tag.v{background:rgba(46,204,113,.16);color:#7fe0a8}
.tag.w{background:rgba(245,166,35,.16);color:#ffca70}

/* ---------- Sections sombres (Enseigne, CTA) ---------- */
.dark-section{position:relative;background:var(--nuit);color:#B9CCDC;overflow:hidden;padding:6rem 0}
.dark-section::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 60% at 85% 20%,rgba(59,176,255,.16),transparent 60%),radial-gradient(40% 50% at 10% 90%,rgba(53,141,205,.12),transparent 60%)}
.dark-section>.wrap{position:relative}
.dark-section h2{color:#fff;font-size:clamp(1.8rem,3.6vw,2.6rem);margin:1rem 0 1.2rem}
.dark-section .l{color:#9DB6C9;font-size:1.06rem}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
@media(max-width:920px){.grid-2{grid-template-columns:1fr}}
.efeat{margin:1.8rem 0 2.2rem;display:grid;grid-template-columns:1fr 1fr;gap:.4rem 1.5rem}
.efeat li{font-size:.93rem;color:#D7E4EE;padding:.4rem 0 .4rem 1.4rem;position:relative}
.efeat li::before{content:"";position:absolute;left:0;top:.72rem;width:9px;height:9px;border-radius:3px;background:var(--bleu-vif);box-shadow:0 0 10px var(--glow)}
@media(max-width:920px){.efeat{grid-template-columns:1fr}}

/* Hub réseau */
.hub{position:relative;background:rgba(255,255,255,.04);border:1px solid rgba(120,190,245,.22);border-radius:20px;padding:1.8rem;backdrop-filter:blur(4px)}
.hub h3{color:#fff;font-size:.95rem;font-weight:500;margin-bottom:1.3rem;display:flex;align-items:center;gap:.6rem}
.hub h3 i.dot{width:8px;height:8px;border-radius:50%;background:var(--succes)}
.hubrow{display:flex;align-items:center;gap:.9rem;padding:.6rem 0;border-top:1px solid rgba(255,255,255,.07);font-size:.86rem}
.hubrow:first-of-type{border-top:0}
.hubrow .m{margin-left:auto;width:36%;height:7px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden;flex:none}
.hubrow .m i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#2a76ae,#3bb0ff)}
.hubrow .v{font-variant-numeric:tabular-nums;color:#fff;font-weight:600;width:3.4em;text-align:right;font-size:.84rem}
.hub .foot{margin-top:1.2rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;font-size:.8rem;color:#7E97AB}
.hub .foot b{color:#fff;font-family:var(--font-titres)}

/* ---------- Cartes / features ---------- */
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.cards-2{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.card{position:relative;background:#fff;border:1px solid var(--bord);border-radius:var(--radius);padding:2rem 1.7rem;transition:transform .22s,box-shadow .22s}
.card:hover{transform:translateY(-4px);box-shadow:0 20px 46px -24px rgba(42,118,174,.3)}
.card .ic{width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,#E3F1FB,#CBE5F8);display:flex;align-items:center;justify-content:center;margin-bottom:1rem;color:var(--bleu-fonce);font-size:1.15rem}
.card h3{font-size:1.1rem;font-weight:500;margin-bottom:.5rem}
.card p{font-size:.9rem;color:var(--sec)}
.card ul{margin-top:.7rem;display:grid;gap:.35rem}
.card ul li{font-size:.88rem;color:var(--texte);padding-left:1.35rem;position:relative}
.card ul li::before{content:"\f00c";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;left:0;top:0;font-size:.75rem;color:var(--bleu)}
@media(max-width:820px){.cards-3,.cards-2{grid-template-columns:1fr}}

/* Cartes en éventail (cartes cliquables légèrement inclinées, style hero « Plein jour ») */
.fan{display:flex;justify-content:center;align-items:stretch;gap:1.2rem;padding-top:.6rem}
.fan .fcard{display:block;background:#fff;border:1px solid var(--bord);border-radius:16px;padding:1.6rem 1.5rem;width:300px;text-align:left;color:inherit;box-shadow:0 26px 60px -28px rgba(42,118,174,.4);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.fan .fcard:hover{transform:translateY(-6px);border-color:var(--bleu);box-shadow:0 30px 64px -26px rgba(42,118,174,.55)}
.fan .fic{width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,#E3F1FB,#CBE5F8);display:flex;align-items:center;justify-content:center;margin-bottom:1rem;color:var(--bleu-fonce);font-size:1.15rem}
.fan h3{font-size:1.1rem;font-weight:500;margin-bottom:.5rem}
.fan p{font-size:.9rem;color:var(--sec)}
.fan .fchecks{margin-top:.9rem;display:grid;gap:.35rem}
.fan .fchecks li{font-size:.88rem;color:var(--texte);padding-left:1.35rem;position:relative}
.fan .fchecks li::before{content:"\f00c";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;left:0;top:0;font-size:.75rem;color:var(--bleu)}
.fan .ftel{display:inline-flex;align-items:center;gap:.5rem;margin-top:.9rem;background:#F2F8FD;border:1px solid var(--bord);border-radius:9px;padding:.5rem .8rem;font-size:.88rem;font-weight:600;color:var(--encre)}
.fan .ftel i{color:var(--bleu-fonce);font-size:.8rem}
.fan .fbars{margin-top:1.1rem;display:grid;gap:.45rem}
.fan .fbars i{display:block;height:7px;border-radius:99px;background:linear-gradient(90deg,#2a76ae,#3bb0ff)}
@media(max-width:960px){.fan{flex-direction:column;align-items:center}.fan .fcard{width:min(100%,340px)}.fan .f1{transform:rotate(-2deg) translateY(0)}.fan .f3{transform:rotate(2deg) translateY(0)}}

/* Catalogue par enjeux (3 colonnes thématiques, accueil) */
.fam{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.fam .col{background:#fff;border:1px solid var(--bord);border-radius:16px;padding:1.6rem;display:flex;flex-direction:column;gap:1rem}
.fam .col>h3{font-size:1.15rem;font-weight:700;padding-bottom:.9rem;border-bottom:2px solid var(--bleu);display:flex;align-items:center;gap:.6rem}
.fam .col>h3 i{color:var(--bleu);font-size:1.05rem}
.fam .mod{display:block;border:1px solid transparent;border-radius:10px;padding:.85rem .9rem;transition:border-color .15s,background .15s}
.fam .mod:hover{border-color:var(--bord);background:var(--fond)}
.fam .mod h4{font-size:.98rem;font-weight:500;color:var(--encre);display:flex;justify-content:space-between;align-items:baseline;gap:.6rem}
.fam .mod h4 span:last-child{font-size:.8rem;color:var(--bleu-fonce);white-space:nowrap;transition:transform .15s}
.fam .mod:hover h4 span:last-child{transform:translateX(3px)}
.fam .mod h4 .t{display:inline-flex;align-items:center;gap:.45rem}

/* Logo Google inline, à côté des noms de modules liés à Google */
.glogo{height:.95em;width:auto;display:inline-block;vertical-align:-.1em}
h1 .glogo{height:.68em;vertical-align:-.04em}
.fam .mod p{font-size:.85rem;color:var(--sec);margin-top:.2rem}
@media(max-width:980px){.fam{grid-template-columns:1fr}}

/* Navigation précédent/suivant entre pages de modules (injectée par main.js) :
   deux boutons discrets, dimensionnés sur leur contenu */
.modnav{display:flex;justify-content:space-between;align-items:center;gap:1.2rem;padding:3rem 0 .4rem}
.modnav a{display:flex;flex-direction:column;gap:.15rem;background:#fff;border:1px solid var(--ligne);border-radius:12px;padding:.7rem 1.2rem;transition:border-color .18s,box-shadow .18s,transform .18s}
.modnav a:hover{border-color:var(--bleu);transform:translateY(-2px);box-shadow:0 14px 30px -18px rgba(42,118,174,.4)}
.modnav a.next{text-align:right;align-items:flex-end}
.modnav .dir{font-size:.64rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#9AAAB8}
.modnav .nom{font-size:.92rem;font-weight:500;color:var(--encre);display:flex;align-items:center;gap:.45rem;transition:color .15s}
.modnav .nom i{font-size:.75rem;color:var(--bleu-fonce);transition:transform .18s}
.modnav a:hover .nom{color:var(--bleu-fonce)}
.modnav a:hover .nom i{transform:translateX(3px)}
.modnav a:first-child:hover .nom i{transform:translateX(-3px)}

/* Cartes références (page références) */
.refgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.refcard{position:relative;background:#fff;border:1px solid var(--bord);border-radius:var(--radius);padding:1.4rem 1.4rem 1.5rem;display:flex;flex-direction:column;gap:.55rem;transition:transform .22s,box-shadow .22s}
.refcard:hover{transform:translateY(-4px);box-shadow:0 20px 46px -24px rgba(42,118,174,.3)}
.refcard .rlogo{height:56px;display:flex;align-items:center}
.refcard .rlogo img{max-height:56px;max-width:150px;object-fit:contain}
.refcard .rnum b{font-family:var(--font-titres);font-size:1.9rem;font-weight:700;background:linear-gradient(135deg,#2a76ae,#3bb0ff);-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}
.refcard .rnum b span{font:inherit;color:inherit}
.refcard .rnum>span{display:block;font-size:.85rem;color:var(--sec)}
.refcard p{font-size:.88rem;color:var(--texte)}
.refcard .rplus{margin-top:auto;font-size:.8rem;color:var(--sec);border-top:1px dashed var(--bord);padding-top:.6rem}
.refnote{margin:1.8rem auto 0;text-align:center;font-size:.8rem;color:var(--sec);max-width:46rem}
@media(max-width:980px){.refgrid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.refgrid{grid-template-columns:1fr}}
/* Références mono-établissement : cartes avec vignette du site */
.sitegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.sitecard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--bord);border-radius:var(--radius);overflow:hidden;color:inherit;text-decoration:none;transition:transform .22s,box-shadow .22s,border-color .22s}
.sitecard:hover{transform:translateY(-4px);box-shadow:0 20px 46px -24px rgba(42,118,174,.3);border-color:var(--bleu)}
.sitecard .thumb{display:block;aspect-ratio:600/338;background:#EAF3FA;border-bottom:1px solid var(--bord);overflow:hidden}
.sitecard .thumb img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;transition:transform .4s ease}
.sitecard:hover .thumb img{transform:scale(1.04)}
.sitecard .sbody{display:flex;flex-direction:column;gap:.3rem;padding:1.05rem 1.15rem 1.2rem;flex:1}
.sitecard .sbody>b{font-family:var(--font-titres);font-weight:600;font-size:1.02rem;color:var(--encre)}
.sitecard .sact{font-size:.86rem;color:var(--texte)}
.sitecard .sville{font-size:.8rem;color:var(--sec)}
.sitecard .sville i{color:var(--bleu-fonce);margin-right:.25rem}
.sitecard .slink{margin-top:auto;padding-top:.75rem;font-size:.83rem;font-weight:600;color:var(--bleu-fonce)}
.sitecard .slink i{transition:transform .18s;font-size:.85em}
.sitecard:hover .slink i{transform:translateX(4px)}
@media(max-width:980px){.sitegrid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.sitegrid{grid-template-columns:1fr}}

/* Témoignages (page références) : extraits des avis Google publics */
.temoins{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.temoin{background:#fff;border:1px solid var(--bord);border-radius:var(--radius);padding:1.5rem;display:flex;flex-direction:column;gap:.7rem}
.temoin .stars{margin:0;font-size:1.5rem;letter-spacing:4px;text-shadow:0 1px 0 rgba(180,110,10,.25)}
.temoin p{font-size:.9rem;color:var(--texte);flex:1}
.temoin footer{font-size:.82rem;color:var(--sec);border-top:1px dashed var(--bord);padding-top:.7rem}
.temoin footer b{color:var(--encre);font-weight:600}
@media(max-width:980px){.temoins{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.temoins{grid-template-columns:1fr}}

/* Qui sommes-nous (page société) : 3 colonnes avec chiffre-clé en dégradé */
.histo3{display:grid;grid-template-columns:repeat(3,1fr);gap:2.4rem}
.histo3>div{position:relative;border-top:2px solid var(--bord);padding-top:1.3rem}
.histo3>div::before{content:"";position:absolute;top:-2px;left:0;width:56px;height:2px;background:linear-gradient(90deg,#2a76ae,#3bb0ff)}
.histo3 b{display:block;font-family:var(--font-titres);font-size:1.9rem;font-weight:700;line-height:1.1;background:linear-gradient(135deg,#2a76ae,#3bb0ff);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:.6rem;font-variant-numeric:tabular-nums}
.histo3 p{font-size:.95rem;color:var(--sec)}
@media(max-width:880px){.histo3{grid-template-columns:1fr;gap:1.8rem}}

/* Trombinoscope (page société) : photos N&B qui reprennent des couleurs au survol */
.trombi{display:grid;grid-template-columns:repeat(3,1fr);gap:2.4rem 1.6rem;margin-top:3rem}
.tmate{text-align:center}
.tmate .ph{position:relative;width:150px;height:150px;margin:0 auto 1rem;border-radius:50%;padding:4px;background:linear-gradient(135deg,rgba(120,190,245,.35),rgba(59,176,255,.08));transition:transform .25s ease,background .3s ease}
.tmate .ph img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;filter:grayscale(1);transition:filter .35s ease}
.tmate:hover .ph{background:linear-gradient(135deg,#3bb0ff,#2a76ae);transform:rotate(-3deg) scale(1.07)}
.tmate:nth-child(even):hover .ph{transform:rotate(3deg) scale(1.07)}
.tmate:hover .ph img{filter:grayscale(0)}
.tmate b{display:block;font-family:var(--font-titres);font-weight:500;font-size:1.02rem;color:#fff}
.tmate>span{font-size:.8rem;color:#7E97AB}
.trombi-note{text-align:center;margin-top:2.6rem;font-size:.88rem;color:#7E97AB;max-width:44em;margin-left:auto;margin-right:auto}
.equipe-sec{padding-bottom:4.5rem}
@media(max-width:880px){.trombi{grid-template-columns:repeat(2,1fr)}.tmate .ph{width:130px;height:130px}.trombi .tmate:last-child{grid-column:1/-1}}

/* Frise historique verticale (page société) */
.histoire{position:relative;max-width:46rem;margin:0 auto;display:grid;gap:1.5rem}
.histoire::before{content:"";position:absolute;top:12px;bottom:12px;left:45px;width:2px;background:repeating-linear-gradient(180deg,#A9D2EE 0 8px,transparent 8px 16px)}
.hitem{position:relative;display:grid;grid-template-columns:92px 1fr;gap:1.3rem;align-items:start}
.hyear{position:relative;z-index:1;font-family:var(--font-titres);font-weight:700;font-size:1.05rem;color:#fff;background:linear-gradient(135deg,#2a76ae,#3bb0ff);border-radius:12px;padding:.5rem 0;text-align:center;box-shadow:0 12px 24px -12px rgba(42,118,174,.7)}
.hitem .card{padding:1.3rem 1.4rem}
.hitem .card h3{font-size:1.02rem}
@media(max-width:640px){
  .histoire::before{display:none}
  .hitem{grid-template-columns:1fr}
  .hyear{width:92px}
}

/* Étapes d'accompagnement : cartes numérotées en filigrane, reliées par des flèches */
.etapes{display:grid;grid-template-columns:repeat(3,1fr);gap:2.4rem;counter-reset:etape}
.etape{position:relative;background:#fff;border:1px solid var(--bord);border-radius:var(--radius);padding:1.7rem 1.6rem;transition:transform .22s,box-shadow .22s}
.etape:hover{transform:translateY(-4px);box-shadow:0 20px 46px -24px rgba(42,118,174,.3)}
.etape::before{counter-increment:etape;content:"0" counter(etape);position:absolute;top:.5rem;right:1rem;font-family:var(--font-titres);font-weight:700;font-size:3.4rem;line-height:1;background:linear-gradient(135deg,#D8EBFA,#AFD8F3);-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}
.etape:not(:last-child)::after{content:"\f30b";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;top:50%;right:-1.85rem;transform:translateY(-50%);color:var(--bleu);font-size:1.15rem}
.etape .plabel{display:block;font-size:.72rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--bleu-fonce);margin-bottom:.7rem}
.etape .ic{width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,#E3F1FB,#CBE5F8);display:flex;align-items:center;justify-content:center;margin-bottom:1rem;color:var(--bleu-fonce);font-size:1.15rem}
.etape h3{font-size:1.1rem;font-weight:500;margin-bottom:.5rem}
.etape p{font-size:.9rem;color:var(--sec)}
@media(max-width:820px){
  .etapes{grid-template-columns:1fr;gap:2.4rem}
  .etape:not(:last-child)::after{content:"\f309";top:auto;bottom:-1.9rem;right:50%;transform:translateX(50%)}
}

/* Split feature (texte + visuel alterné) */
.split{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;padding:3.2rem 0}
.split.invert .txt{order:2}
.split h3{font-size:clamp(1.35rem,2.4vw,1.8rem);font-weight:700;margin:.8rem 0 1rem}
.split .txt p{color:var(--sec)}
.split ul{margin-top:1.2rem;display:grid;gap:.55rem;list-style:none;padding-left:0}
.split ul li{padding-left:1.6rem;position:relative;font-size:.95rem}
.split ul li::before{content:"\f00c";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;left:0;top:.15rem;font-size:.8rem;color:var(--bleu)}
.split .visual{background:linear-gradient(160deg,#0B2438,#10334E);border:1px solid rgba(120,190,245,.25);border-radius:20px;padding:1.6rem;box-shadow:0 30px 70px -35px rgba(6,22,37,.55);color:#B9CCDC}
@media(max-width:880px){.split{grid-template-columns:1fr;gap:2rem}.split.invert .txt{order:0}}

/* Captures d'écran réelles */
.shot-frame{background:#fff;border:1px solid var(--bord);border-radius:18px;padding:.9rem;box-shadow:0 30px 70px -35px rgba(42,118,174,.45)}
.shot-frame img{display:block;width:100%;border-radius:10px}
.shot-frame.tall{max-width:390px;margin:0 auto}
.shot-frame.bare{background:none;border:0;padding:0;box-shadow:none}
.shot-frame.bare img{border-radius:0;filter:drop-shadow(0 30px 40px rgba(6,22,37,.28))}
.dark-section .shot-frame{background:rgba(255,255,255,.06);border-color:rgba(120,190,245,.25)}
.dark-section .shot-frame.bare{background:none;filter:none}
.dark-section .shot-frame.bare img{filter:drop-shadow(0 26px 34px rgba(0,0,0,.5))}
.shot-caption{font-size:.8rem;color:var(--sec);text-align:center;margin-top:.7rem}

/* Photos (société) */
.photo-grid{display:grid;grid-template-columns:1fr 1.6fr 1fr;gap:1.1rem;align-items:stretch}
.photo-grid figure{margin:0;border-radius:16px;overflow:hidden;border:1px solid var(--bord);background:#fff}
.photo-grid img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:820px){.photo-grid{grid-template-columns:1fr}}

/* Portrait contact */
.portrait{width:92px;height:92px;border-radius:50%;object-fit:cover;border:3px solid var(--ligne)}

/* Champ anti-spam (pot de miel) : masqué pour les humains */
.hp-field{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* ---------- Logos références (page) ---------- */
.logo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
.logo-grid .lc{background:#fff;border:1px solid var(--bord);border-radius:14px;display:flex;align-items:center;justify-content:center;padding:1.6rem 1.2rem;min-height:110px;transition:transform .2s,box-shadow .2s}
.logo-grid .lc:hover{transform:translateY(-3px);box-shadow:0 18px 40px -22px rgba(42,118,174,.3)}
.logo-grid img{max-height:56px;width:auto;max-width:100%}
@media(max-width:880px){.logo-grid{grid-template-columns:repeat(2,1fr)}}

/* ---------- CTA finale ---------- */
.cta-final{padding:2rem 0 6rem}
.cta-box{position:relative;overflow:hidden;background:linear-gradient(140deg,#0B2438,#10334E 60%,#15446B);border-radius:24px;padding:4.5rem 2rem;text-align:center;color:#fff}
.cta-box::before{content:"";position:absolute;inset:0;background:radial-gradient(45% 70% at 50% 0%,rgba(59,176,255,.25),transparent 65%)}
.cta-box h2{position:relative;color:#fff;font-size:clamp(1.8rem,3.6vw,2.5rem);margin-bottom:.9rem}
.cta-box p{position:relative;color:#9FB8CC;max-width:36em;margin:0 auto 2.2rem}
.cta-box .btn{position:relative}

/* ---------- Formulaire ---------- */
.form-card{background:#fff;border:1px solid var(--bord);border-radius:20px;padding:2.4rem;box-shadow:0 30px 60px -40px rgba(42,118,174,.35)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.form-grid .full{grid-column:1/-1}
label{display:block;font-size:.85rem;font-weight:600;color:var(--encre);margin-bottom:.35rem}
input,select,textarea{width:100%;font-family:var(--font-corps);font-size:.95rem;color:var(--texte);background:var(--fond);border:1px solid var(--bord);border-radius:10px;padding:.75rem .9rem;transition:border-color .15s}
input:hover,select:hover,textarea:hover{border-color:var(--ligne)}
textarea{min-height:130px;resize:vertical}
.form-note{font-size:.8rem;color:var(--sec);margin-top:.9rem}
@media(max-width:680px){.form-grid{grid-template-columns:1fr}}

/* ---------- Tableau comparatif / listes info ---------- */
.info-rows{border-top:1px solid var(--bord)}
.info-row{display:grid;grid-template-columns:220px 1fr;gap:2rem;padding:1.3rem 0;border-bottom:1px solid var(--bord)}
.info-row h3{font-size:1rem;font-weight:500}
.info-row p{font-size:.92rem;color:var(--sec)}
@media(max-width:680px){.info-row{grid-template-columns:1fr;gap:.4rem}}

/* ---------- Footer ---------- */
.site-footer{background:var(--nuit);color:#9DB6C9;padding:3.5rem 0 2rem;font-size:.9rem;border-top:1px solid rgba(255,255,255,.06)}
.site-footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2.5rem}
.site-footer .cols img{height:30px;margin-bottom:1rem}
.site-footer h2{color:#fff;font-weight:500;font-size:.95rem;margin-bottom:.9rem;font-family:var(--font-titres)}
.site-footer a{color:#9DB6C9;display:block;padding:.18rem 0}
.site-footer a:hover{color:var(--bleu-vif)}
.fr-label{display:inline-flex;align-items:center;gap:.8rem;text-align:left}
.site-footer .fr-row{display:flex;justify-content:flex-end;margin:0 0 1.6rem}
@media(max-width:760px){.site-footer .fr-row{justify-content:flex-start;margin-top:1.5rem}}
.fr-label .drapeau{width:30px;height:34px;filter:drop-shadow(0 3px 6px rgba(0,0,0,.4))}
.fr-label .txt{font-size:.72rem;color:#9DB6C9;line-height:1.35}
.fr-label .txt b{display:block;font-family:var(--font-titres);font-weight:500;font-size:.86rem;color:#fff;letter-spacing:.02em}
.site-footer .base{border-top:1px solid rgba(255,255,255,.08);padding-top:1.4rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.82rem;color:#6E8AA0}
@media(max-width:760px){.site-footer .cols{grid-template-columns:1fr 1fr}}

/* ---------- Accessibilité / divers ---------- */
.skip-link{position:absolute;left:-9999px;top:0;background:var(--bleu);color:#fff;padding:.7rem 1.2rem;border-radius:0 0 8px 0;z-index:200}
.skip-link:focus{left:0}
.tabular{font-variant-numeric:tabular-nums}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation:none!important;transition:none!important}
  .rev{opacity:1;transform:none}
  .mq-track{animation:none}
}

/* Photo pleine largeur (accompagnement) */
.photo-hero{margin:0;border-radius:20px;overflow:hidden;border:1px solid var(--bord);box-shadow:0 30px 70px -40px rgba(6,22,37,.4)}
.photo-hero img{display:block;width:100%;height:auto}
