/* ─────────────────────────────  COULEURS  ───────────────────────────── */
:root{
  --navy-1:#040C14; --navy-2:#07111C; --navy-3:#0B1929; --navy-4:#112033;
  --teal:#3BBFC9; --teal-deep:#1F8A94; --teal-soft:#4498A5;

  /* Thème sombre par défaut — couleurs de la marque */
  --bg:#06101A;
  --bg-alt:#0A1724;
  --surface:#0E1D2C;
  --surface-2:#132536;
  --text:#E9F1F4;
  --text-2:#A9BCC7;
  --text-3:#7C93A1;
  --border:rgba(255,255,255,.08);
  --border-strong:rgba(255,255,255,.16);
  --accent:var(--teal);
  --accent-fill:var(--teal);
  --on-accent:#04222A;
  --shadow:0 1px 2px rgba(0,0,0,.2), 0 8px 30px rgba(0,0,0,.25);
  --shadow-hover:0 2px 4px rgba(0,0,0,.25), 0 22px 60px rgba(0,0,0,.45);
  --header-bg:rgba(6,16,26,.82);
  --glow:rgba(59,191,201,.10);
  --dots:rgba(255,255,255,.05);
  --logo-dark:none; --logo-light:block;

  --serif:"Cormorant Garamond", Georgia, serif;
  --sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1);
  --radius:8px;
  --header-h:76px;
  --bar-h:40px;
}
/* Thème clair (bouton lune) : tons bleutés, jamais de blanc pur */
:root[data-theme="light"]{
  --bg:#E3EDF0; --bg-alt:#D6E5E9; --surface:#EFF6F7; --surface-2:#E6F0F2;
  --text:#0B1929; --text-2:#34505F; --text-3:#5F7B8A;
  --border:rgba(11,25,41,.10); --border-strong:rgba(11,25,41,.2);
  --accent:var(--teal-deep);
  --shadow:0 1px 2px rgba(11,25,41,.05), 0 8px 30px rgba(11,25,41,.08);
  --shadow-hover:0 2px 4px rgba(11,25,41,.06), 0 22px 60px rgba(11,25,41,.16);
  --header-bg:rgba(227,237,240,.86);
  --glow:rgba(31,138,148,.14);
  --dots:rgba(11,25,41,.07);
  --logo-dark:block; --logo-light:none;
}

/* ─────────────────────────────  BASE  ───────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(64px + var(--bar-h));-webkit-text-size-adjust:100%;background:var(--navy-1)}
body{font-family:var(--sans);font-size:16px;line-height:1.65;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background-color .4s,color .4s}
body.locked{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:2px}
::selection{background:var(--teal);color:var(--on-accent)}
.wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 32px}
@media(max-width:640px){.wrap{padding:0 20px}}

h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.1;letter-spacing:-.01em}
h2{font-size:clamp(34px,4.4vw,52px)}
h2 em,h1 em,.display em{font-style:italic;color:var(--accent)}
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-size:11.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:18px}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor}
.eyebrow.center::after{content:"";width:28px;height:1px;background:currentColor}
.lead{font-size:17px;color:var(--text-2);max-width:620px}

/* Sections : fonds sombres avec halos et trame — plus de pages blanches */
.sec{position:relative;padding:120px 0;isolation:isolate;overflow:hidden}
.sec::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(640px 420px at 8% 0%,var(--glow),transparent 70%),radial-gradient(560px 460px at 100% 100%,var(--glow),transparent 70%)}
.sec.alt{background:var(--bg-alt)}
.sec.alt::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:radial-gradient(var(--dots) 1px,transparent 1.2px);background-size:26px 26px;-webkit-mask-image:linear-gradient(180deg,transparent,#000 20%,#000 80%,transparent);mask-image:linear-gradient(180deg,transparent,#000 20%,#000 80%,transparent)}
@media(max-width:768px){.sec{padding:84px 0}}
.sec-head{margin-bottom:56px}
.sec-head.center{text-align:center}
.sec-head.center .eyebrow{justify-content:center}
.sec-head.center .lead{margin:18px auto 0}

/* ─────────────────────────────  BOUTONS + ONDE AU CLIC  ───────────────────────────── */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 28px;border-radius:var(--radius);font-size:14px;font-weight:500;letter-spacing:.02em;overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s var(--ease),background-color .25s,color .25s,border-color .25s;white-space:nowrap}
.btn svg{width:16px;height:16px;transition:transform .35s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--accent-fill);color:var(--on-accent)}
.btn-primary::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);transform:translateX(-120%);transition:transform .8s var(--ease)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(59,191,201,.35)}
.btn-primary:hover::after{transform:translateX(120%)}
.btn-ghost{border:1px solid rgba(255,255,255,.35);color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:rgba(255,255,255,.04)}
.btn-ghost:hover{background:rgba(255,255,255,.1);border-color:#fff}
.btn-line{border:1px solid var(--border-strong);color:var(--text)}
.btn-line:hover{border-color:var(--accent);color:var(--accent)}
.link-arrow{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:500;color:var(--accent)}
.link-arrow svg{width:14px;height:14px;transition:transform .3s var(--ease)}
.link-arrow:hover svg{transform:translateX(4px)}
.rip{position:absolute;border-radius:50%;pointer-events:none;background:currentColor;opacity:.28;transform:scale(0);animation:rip .65s var(--ease) forwards}
@keyframes rip{to{transform:scale(1);opacity:0}}

/* ─────────────────────────────  INTRO LOGO  ───────────────────────────── */
#splash{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:radial-gradient(ellipse at center,#0B1929 0%,#040C14 70%);transition:transform 1s cubic-bezier(.76,0,.24,1);cursor:pointer}
#splash.out{transform:translateY(-100%)}
#splash.out .sp-box{opacity:0;transform:translateY(-40px) scale(.96)}
.sp-box{display:flex;flex-direction:column;align-items:center;gap:22px;transition:opacity .5s,transform .8s var(--ease)}
.sp-logo{width:min(440px,78vw);height:auto;overflow:visible}
.sp-logo path,.sp-logo polygon{fill:#fff}
.sp-logo .tl{fill:var(--teal-soft)}
.sp-ring{fill:none;stroke:#fff;stroke-width:1.1;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.2s cubic-bezier(.65,0,.35,1) .1s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.sp-mark{opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.7) rotate(-8deg);animation:mark .9s var(--ease) .55s forwards}
@keyframes mark{to{opacity:1;transform:none}}
.sp-l{opacity:0;transform-box:fill-box;transform:translateY(14px);animation:mark .6s var(--ease) forwards}
.sp-tag{font-size:11px;letter-spacing:.42em;text-transform:uppercase;color:var(--teal);padding-left:.42em}
.sp-tag .ch{display:inline-block;opacity:0;filter:none;transform:none;animation:tagin .4s ease forwards;animation-delay:calc(1.45s + var(--i) * 22ms)}
@keyframes tagin{to{opacity:1}}
.sp-bar{width:160px;height:1px;background:rgba(255,255,255,.12);overflow:hidden}
.sp-bar i{display:block;height:100%;width:100%;background:var(--teal);transform:scaleX(0);transform-origin:left;animation:bar 2.3s cubic-bezier(.65,0,.35,1) forwards}
@keyframes bar{to{transform:scaleX(1)}}
.no-js #splash{display:none}

/* ─────────────────────────────  EN-TÊTE  ───────────────────────────── */
#progress{position:fixed;top:0;left:0;height:2px;width:100%;background:var(--teal);transform-origin:0 50%;transform:scaleX(0);z-index:200}
.hdr{position:fixed;inset:0 0 auto;z-index:100;height:var(--header-h);display:flex;align-items:center;transition:background-color .35s,box-shadow .35s,height .35s var(--ease),transform .45s var(--ease)}
.hdr .wrap{display:flex;align-items:center;gap:28px;max-width:1320px}
.hdr.solid{background:var(--header-bg);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);box-shadow:0 1px 0 var(--border);--header-h:64px}
.hdr.hide{transform:translateY(-100%)}
.logo{flex-shrink:0;display:flex;align-items:center}
.logo img{height:46px;width:auto;transition:height .35s var(--ease)}
.hdr.solid .logo img{height:38px}
.logo .l-dark{display:none}
.hdr.solid .logo .l-dark{display:var(--logo-dark)}
.hdr.solid .logo .l-light{display:var(--logo-light)}
.nav{display:flex;gap:4px;margin-left:auto}
.nav a{position:relative;padding:8px 12px;font-size:13.5px;font-weight:500;color:rgba(255,255,255,.85);transition:color .25s}
.hdr.solid .nav a{color:var(--text-2)}
.nav a::after{content:"";position:absolute;left:12px;right:12px;bottom:3px;height:1px;background:var(--teal);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.nav a:hover,.nav a.on{color:#fff}
.hdr.solid .nav a:hover,.hdr.solid .nav a.on{color:var(--text)}
.nav a:hover::after,.nav a.on::after{transform:scaleX(1);transform-origin:left}
.tools{display:flex;align-items:center;gap:6px;margin-left:auto}
.nav+.tools{margin-left:0}
.langs{display:flex;gap:2px;padding:3px;border-radius:999px;border:1px solid rgba(255,255,255,.22)}
.hdr.solid .langs{border-color:var(--border-strong)}
.langs button{position:relative;overflow:hidden;display:flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.06em;color:rgba(255,255,255,.75);transition:background-color .25s,color .25s}
.hdr.solid .langs button{color:var(--text-3)}
.langs button img{width:16px;height:11px;border-radius:1px;object-fit:cover}
.langs button[aria-pressed="true"]{background:var(--teal);color:var(--on-accent)!important}
.icon-btn{position:relative;overflow:hidden;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:rgba(255,255,255,.85);transition:background-color .25s,color .25s}
.hdr.solid .icon-btn{color:var(--text-2)}
.icon-btn:hover{background:rgba(127,127,127,.14)}
.icon-btn svg{width:18px;height:18px}
.hdr-cta{padding:11px 20px;font-size:13px}
.burger{display:none}
@media(max-width:1080px){.nav,.hdr-cta{display:none}.burger{display:grid}}
@media(max-width:520px){.langs button span{display:none}.logo img{height:38px}.hdr .wrap{gap:10px}}

/* Menu mobile */
.drawer{position:fixed;inset:0;z-index:150;background:var(--navy-1);color:#fff;display:flex;flex-direction:column;padding:96px 28px 36px;clip-path:circle(0% at calc(100% - 40px) 38px);visibility:hidden;transition:clip-path .7s cubic-bezier(.76,0,.24,1),visibility .7s}
.drawer.open{clip-path:circle(150% at calc(100% - 40px) 38px);visibility:visible}
.drawer a{font-family:var(--serif);font-size:34px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.08);opacity:0;transform:translateX(-20px);transition:opacity .5s var(--ease),transform .5s var(--ease),color .2s}
.drawer.open a{opacity:1;transform:none}
.drawer a:hover{color:var(--teal)}
.drawer .d-foot{margin-top:auto;font-size:14px;color:rgba(255,255,255,.6);line-height:2}
.drawer .d-foot a{font-family:var(--sans);font-size:14px;border:0;padding:0;color:#fff;opacity:1;transform:none}
.drawer-close{position:absolute;top:18px;right:18px;color:#fff}

/* ─────────────────────────────  ACCUEIL (centré)  ───────────────────────────── */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden;background:var(--navy-1);isolation:isolate}
.hero-bg{position:absolute;inset:-10% 0;z-index:-3;will-change:transform}
.hero-bg i{position:absolute;inset:0;background:url("https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?auto=format&fit=crop&w=2000&q=80") center/cover;transform:scale(1.15)}
body.ready .hero-bg i{animation:kenburns 26s var(--ease) forwards}
@keyframes kenburns{to{transform:scale(1)}}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse 70% 60% at 50% 45%,rgba(4,12,20,.62),rgba(4,12,20,.93) 75%),linear-gradient(180deg,rgba(4,12,20,.5),transparent 30%,rgba(4,12,20,.9))}
.hero-grid{position:absolute;inset:0;z-index:-1;pointer-events:none;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:84px 84px;-webkit-mask-image:radial-gradient(ellipse 60% 55% at 50% 50%,#000,transparent);mask-image:radial-gradient(ellipse 60% 55% at 50% 50%,#000,transparent)}
.hero-glow{position:absolute;z-index:-1;left:50%;top:48%;width:900px;height:900px;margin:-450px 0 0 -450px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(59,191,201,.22),rgba(59,191,201,0) 60%);transform:translate(var(--mx,0),var(--my,0));transition:transform 1.2s var(--ease)}
.hero-orbit{position:absolute;z-index:-1;left:50%;top:48%;width:min(980px,150vw);aspect-ratio:1;transform:translate(-50%,-50%) translate(calc(var(--mx,0) * -.6),calc(var(--my,0) * -.6));transition:transform 1.2s var(--ease);pointer-events:none;opacity:0}
body.ready .hero-orbit{animation:opin 2s var(--ease) .3s forwards}
@keyframes opin{to{opacity:1}}
.hero-orbit circle{fill:none;stroke:rgba(59,191,201,.2);stroke-width:1}
.hero-orbit .dash{stroke-dasharray:3 9;stroke:rgba(255,255,255,.14)}
.hero-orbit .spin{transform-origin:400px 400px;animation:spin 60s linear infinite}
.hero-orbit .spin.rev{animation-duration:90s;animation-direction:reverse}
.hero-orbit .dot{fill:var(--teal);stroke:none}
@keyframes spin{to{transform:rotate(360deg)}}
.hero-inner{position:relative;padding-top:120px;padding-bottom:120px;display:flex;flex-direction:column;align-items:center;will-change:transform,opacity}
.hero-pill{display:inline-flex;align-items:center;gap:10px;padding:8px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.05);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:12.5px;color:rgba(255,255,255,.82);margin-bottom:26px}
.hero .eyebrow{color:var(--teal);margin-bottom:22px}
.hero .display{font-family:var(--serif);letter-spacing:-.01em;font-size:clamp(46px,8vw,108px);font-weight:500;max-width:1000px;line-height:1.02}
.hero h1.eyebrow{font-family:var(--sans);font-size:11.5px;font-weight:600;line-height:1.5;letter-spacing:.2em}
.hero .display em{color:var(--teal)}
.hero .lead{color:rgba(255,255,255,.8);margin:30px auto 40px;font-size:clamp(16px,1.6vw,19px);max-width:640px}
.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.hero-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:64px;width:100%;max-width:880px}
.hcard{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:18px 20px;border-radius:var(--radius);text-align:left;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .45s var(--ease),border-color .3s,background-color .3s}
.hcard:hover{transform:translateY(-5px);border-color:rgba(59,191,201,.6);background:rgba(59,191,201,.08)}
.hcard .hc-l{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.hcard .hc-p{font-family:var(--serif);font-size:24px;font-weight:600;color:#fff}
.hcard .hc-p small{font-family:var(--sans);font-size:12px;font-weight:400;color:rgba(255,255,255,.6)}
.hcard svg{position:absolute;right:18px;top:50%;width:18px;height:18px;margin-top:-9px;color:var(--teal);transform:translateX(-6px);opacity:0;transition:transform .35s var(--ease),opacity .35s}
.hcard:hover svg{transform:none;opacity:1}
.dot-live{width:8px;height:8px;border-radius:50%;background:#46d39a;box-shadow:0 0 0 0 rgba(70,211,154,.6);animation:pulse 2.4s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(70,211,154,0)}100%{box-shadow:0 0 0 0 rgba(70,211,154,0)}}
.scroll-cue{opacity:0;position:absolute;z-index:2;left:50%;bottom:26px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.scroll-cue i{width:1px;height:44px;background:linear-gradient(rgba(255,255,255,.6),transparent);position:relative;overflow:hidden}
.scroll-cue i::after{content:"";position:absolute;left:0;top:-40%;width:1px;height:40%;background:var(--teal);animation:cue 2s var(--ease) infinite}
@keyframes cue{to{top:100%}}
body.ready .scroll-cue{animation:opin 1s ease forwards;animation-delay:calc(var(--after,1.2s) + .6s)}
.no-js .scroll-cue{opacity:1}
@media(max-width:760px){
  .hero-cards{grid-template-columns:1fr;gap:10px;margin-top:44px}
  .hcard{flex-direction:row;justify-content:space-between;align-items:center;padding:14px 18px}
  .hcard .hc-p{font-size:20px}
  .hcard svg{display:none}
  .scroll-cue{display:none}
  .hero-inner{padding-top:104px;padding-bottom:64px}
}

/* Texte lettre par lettre */
.w{display:inline-block;white-space:nowrap}
.ch{display:inline-block;opacity:0;transform:translateY(.5em) rotate(6deg);filter:blur(10px)}
body.ready .hero .ch{animation:chin .8s var(--ease) forwards;animation-delay:calc(var(--i) * 42ms + .1s)}
@keyframes chin{to{opacity:1;transform:none;filter:blur(0)}}
.wd{opacity:0;transform:translateY(10px)}
body.ready .hero .wd{animation:chin .7s var(--ease) forwards;animation-delay:calc(var(--base,1s) + var(--i) * 28ms)}
.fade-in{opacity:0;transform:translateY(18px)}
body.ready .fade-in{animation:fadein 1s var(--ease) forwards}
body.ready .fade-in.d2{animation-delay:var(--after,1.2s)}
body.ready .fade-in.d3{animation-delay:calc(var(--after,1.2s) + .25s)}
@keyframes fadein{to{opacity:1;transform:none}}
.no-js .fade-in,.no-js .hero-orbit{opacity:1;transform:none}

/* ─────────────────────────────  CHIFFRES  ───────────────────────────── */
.stats{position:relative;background:var(--navy-2);color:#fff;border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06)}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:40px 24px;text-align:center;border-left:1px solid rgba(255,255,255,.07)}
.stat:first-child{border-left:0}
.stat b{display:block;font-family:var(--serif);font-size:clamp(34px,4vw,48px);font-weight:500;color:var(--teal);line-height:1}
.stat span{display:block;margin-top:10px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6)}
@media(max-width:720px){.stats .wrap{grid-template-columns:1fr 1fr}.stat:nth-child(3){border-left:0}.stat:nth-child(n+3){border-top:1px solid rgba(255,255,255,.07)}}

/* ─────────────────────────────  À PROPOS  ───────────────────────────── */
.about{display:grid;grid-template-columns:1fr 1.05fr;gap:88px;align-items:center}
.about-media{position:relative}
.about-media .ph{aspect-ratio:4/5;border-radius:var(--radius);overflow:hidden;clip-path:inset(0 0 100% 0);transition:clip-path 1.4s cubic-bezier(.76,0,.24,1)}
.about-media.in .ph{clip-path:inset(0 0 0 0)}
.about-media .ph img{width:100%;height:100%;object-fit:cover;transform:scale(1.25);transition:transform 1.8s var(--ease)}
.about-media.in .ph img{transform:scale(1)}
.about-media::before{content:"";position:absolute;inset:24px -24px -24px 24px;border:1px solid var(--teal);border-radius:var(--radius);opacity:.45}
.about-media>*{position:relative}
.badge{position:absolute;left:-28px;bottom:40px;background:var(--navy-1);color:#fff;padding:22px 26px;border-radius:var(--radius);box-shadow:var(--shadow-hover);border:1px solid rgba(59,191,201,.25)}
.badge b{display:block;font-family:var(--serif);font-size:40px;line-height:1;color:var(--teal)}
.badge span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.about p{color:var(--text-2);margin-top:18px}
.checks{list-style:none;margin:28px 0;display:grid;gap:12px}
.checks li{display:flex;gap:14px;align-items:flex-start;font-size:15px}
.checks li::before{content:"";flex-shrink:0;margin-top:6px;width:14px;height:8px;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg)}
.langs-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:16px 0;margin-bottom:32px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-size:14px;color:var(--text-2)}
.langs-row strong{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-3);font-weight:600}
.langs-row span{display:inline-flex;align-items:center;gap:8px}
.langs-row img{width:18px;height:12px;border-radius:1px}
@media(max-width:900px){.about{grid-template-columns:1fr;gap:56px}.about-media{max-width:480px}.badge{left:16px}}

/* ─────────────────────────────  EXPERTISES  ───────────────────────────── */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.svc{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:38px 32px 32px;display:flex;flex-direction:column;transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .35s}
.svc::before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(420px circle at var(--x,50%) var(--y,0%),rgba(59,191,201,.14),transparent 45%);opacity:0;transition:opacity .4s}
.svc:hover::before{opacity:1}
.svc>*{position:relative}
.svc:hover{transform:translateY(-6px);box-shadow:var(--shadow-hover);border-color:rgba(59,191,201,.35)}
.svc-n{position:absolute!important;right:26px;top:22px;font-family:var(--serif);font-size:56px;line-height:1;color:var(--border-strong);transition:color .4s}
.svc:hover .svc-n{color:rgba(59,191,201,.35)}
.svc-ico{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:rgba(59,191,201,.12);color:var(--accent);margin-bottom:22px;transition:transform .5s var(--ease),background-color .3s,color .3s}
.svc:hover .svc-ico{transform:rotate(-10deg) scale(1.08);background:var(--teal);color:var(--on-accent)}
.svc-ico svg{width:24px;height:24px}
.svc h3{font-size:26px;margin-bottom:12px}
.svc p{color:var(--text-2);font-size:15px;flex:1;margin-bottom:24px}
@media(max-width:960px){.svc-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.svc-grid{grid-template-columns:1fr}.svc{padding:32px 26px}}

/* ─────────────────────────────  BANDEAUX PARALLAXE (aussi sur mobile)  ───────────────────────────── */
/* Photo fixe, la page glisse par-dessus (effet « fenêtre ») — le clip-path découpe la photo fixe, ce qui marche aussi sur iPhone/Android */
.band{position:relative;min-height:66vh;display:flex;align-items:center;color:#fff;isolation:isolate;clip-path:inset(0 0 0 0);-webkit-clip-path:inset(0 0 0 0)}
.band-img{position:fixed;top:0;left:0;width:100%;height:100vh;height:100lvh;z-index:-2;background-size:cover;background-position:center;pointer-events:none}
.band::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(4,12,20,.92),rgba(4,12,20,.55))}
.band.center{text-align:center}
.band.center::before{background:radial-gradient(ellipse at center,rgba(4,12,20,.55),rgba(4,12,20,.88))}
.band blockquote{font-family:var(--serif);font-size:clamp(30px,3.8vw,50px);line-height:1.18;max-width:900px;font-weight:500}
.band.center blockquote{margin:0 auto}
.band blockquote em{color:var(--teal)}
.band .band-sub{margin-top:24px;font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.65)}
.band .btn{margin-top:36px}
@media(max-width:760px){.band{min-height:58vh}}

/* ─────────────────────────────  DOMICILIATION  ───────────────────────────── */
.domi{display:grid;grid-template-columns:1fr 1.15fr;gap:80px;align-items:center}
.domi p{color:var(--text-2);margin-top:18px}
.domi .btn{margin-top:32px}
.domi-img{position:relative;margin-top:40px;aspect-ratio:16/10;border-radius:var(--radius);overflow:hidden}
.domi-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.15);transition:transform 1.8s var(--ease)}
.domi-img.in img{transform:scale(1)}
.feat{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.feat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:30px 26px;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s}
.feat-card:nth-child(even){transform:translateY(34px)}
.feat-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-hover);border-color:rgba(59,191,201,.35)}
.feat-card:nth-child(even):hover{transform:translateY(28px)}
.feat-card .svc-ico{width:44px;height:44px;margin-bottom:18px}
.feat-card:hover .svc-ico{background:var(--teal);color:var(--on-accent);transform:rotate(-10deg)}
.feat-card .svc-ico svg{width:20px;height:20px}
.feat-card h3{font-family:var(--sans);font-size:16px;font-weight:600;letter-spacing:0;margin-bottom:8px}
.feat-card p{font-size:14px;color:var(--text-2);margin:0}
@media(max-width:900px){.domi{grid-template-columns:1fr;gap:48px}}
@media(max-width:560px){.feat{grid-template-columns:1fr}.feat-card:nth-child(even){transform:none}.feat-card:nth-child(even):hover{transform:translateY(-6px)}}

/* ─────────────────────────────  TARIFS  ───────────────────────────── */
.tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:4px;margin:0 auto 40px;width:max-content;max-width:100%;border:1px solid var(--border);border-radius:999px;background:var(--surface);position:relative}
.tabs::-webkit-scrollbar{display:none}
.tab{position:relative;z-index:1;overflow:hidden;padding:10px 18px;border-radius:999px;font-size:13.5px;font-weight:500;color:var(--text-2);white-space:nowrap;transition:color .3s}
.tab[aria-selected="true"]{color:var(--on-accent)}
.tab-ind{position:absolute;top:4px;bottom:4px;left:0;border-radius:999px;background:var(--teal);box-shadow:0 4px 18px rgba(59,191,201,.35);transition:transform .5s var(--ease),width .5s var(--ease)}
.tab{flex-shrink:0}
@media(max-width:760px){
  .tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:auto;margin:0 0 28px;padding:6px;border-radius:14px;overflow:visible}
  .tab{padding:12px 4px;border-radius:10px;font-size:13px;line-height:1.25;white-space:normal;text-align:center;background:var(--bg-alt);transition:color .3s,background-color .3s,box-shadow .3s,transform .2s}
  .tab:active{transform:scale(.96)}
  .tab[aria-selected="true"]{background:var(--teal);box-shadow:0 4px 16px rgba(59,191,201,.35)}
  .tab-ind{display:none}
}
.panel{display:none;max-width:900px;margin:0 auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.panel.on{display:block;animation:panel .6s var(--ease)}
@keyframes panel{from{opacity:0;transform:translateY(16px) scale(.99)}to{opacity:1;transform:none}}
.panel-hd{display:flex;gap:20px;align-items:center;padding:30px 36px;border-bottom:1px solid var(--border)}
.panel-hd .svc-ico{margin:0;flex-shrink:0}
.panel-hd h3{font-size:28px}
.panel-hd p{font-size:14px;color:var(--text-3);margin-top:4px}
.rows{padding:8px 36px}
.row{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:18px 0;border-bottom:1px dashed var(--border-strong)}
.row:last-child{border-bottom:0}
.panel.on .row{animation:rowin .55s var(--ease) both}
.panel.on .row:nth-child(2){animation-delay:.06s}.panel.on .row:nth-child(3){animation-delay:.12s}.panel.on .row:nth-child(4){animation-delay:.18s}.panel.on .row:nth-child(5){animation-delay:.24s}.panel.on .row:nth-child(6){animation-delay:.3s}.panel.on .row:nth-child(7){animation-delay:.36s}
@keyframes rowin{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}
.row .lbl{font-size:15.5px;font-weight:500}
.row .lbl small{display:block;font-size:12.5px;font-weight:400;color:var(--text-3);margin-top:2px}
.row .val{font-family:var(--serif);font-size:25px;font-weight:600;white-space:nowrap;color:var(--text)}
.row .val small{font-family:var(--sans);font-size:12px;font-weight:400;color:var(--text-3);margin-right:6px}
.row .val.muted{font-family:var(--sans);font-size:14px;font-style:italic;font-weight:400;color:var(--text-3)}
.note{margin:0 36px 28px;padding:18px 20px;border-left:2px solid var(--teal);background:var(--bg-alt);border-radius:0 var(--radius) var(--radius) 0;font-size:14px;color:var(--text-2)}
.note strong{color:var(--text)}
.panel-body{padding:30px 36px 8px;color:var(--text-2);font-size:15.5px}
.panel-body p+p{margin-top:14px}
.panel-ft{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:24px 36px;border-top:1px solid var(--border);background:var(--bg-alt)}
.panel-ft span{font-size:13px;color:var(--text-3)}

/* Comptabilité : sélecteur + cartes qui se retournent */
.seg-wrap{display:flex;justify-content:center;padding:28px 36px 8px}
.seg{position:relative;display:inline-flex;padding:4px;border-radius:999px;background:var(--bg-alt);border:1px solid var(--border)}
.seg button{position:relative;z-index:1;overflow:hidden;display:inline-flex;align-items:center;gap:8px;padding:11px 22px;border-radius:999px;font-size:14px;font-weight:500;color:var(--text-2);transition:color .35s}
.seg button[aria-pressed="true"]{color:var(--on-accent)}
.seg .save{font-style:normal;font-size:11px;font-weight:700;padding:2px 7px;border-radius:999px;background:rgba(59,191,201,.18);color:var(--accent);transition:background-color .35s,color .35s}
.seg button[aria-pressed="true"] .save{background:rgba(4,34,42,.18);color:var(--on-accent)}
.seg-ind{position:absolute;top:4px;bottom:4px;left:4px;border-radius:999px;background:var(--teal);box-shadow:0 6px 20px rgba(59,191,201,.35);transition:transform .55s cubic-bezier(.68,-.35,.27,1.35),width .55s var(--ease)}
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:24px 36px 8px}
.plan{perspective:1100px}
.plan-in{display:grid;transform-style:preserve-3d;transition:transform .9s cubic-bezier(.5,-.2,.2,1.2)}
.plan:nth-child(2) .plan-in{transition-delay:.09s}
.plan:nth-child(3) .plan-in{transition-delay:.18s}
#p2.annual .plan-in{transform:rotateY(180deg)}
.face{grid-area:1/1;-webkit-backface-visibility:hidden;backface-visibility:hidden;position:relative;overflow:hidden;border-radius:var(--radius);padding:24px 22px;border:1px solid var(--border-strong);background:var(--bg-alt);display:flex;flex-direction:column;gap:6px}
.face.back{transform:rotateY(180deg);background:linear-gradient(160deg,#0f3a44 0%,#0B1929 70%);border-color:rgba(59,191,201,.5);color:#fff}
.face.back::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.14) 50%,transparent 65%);transform:translateX(-120%)}
#p2.annual .face.back::after{animation:sheen 1.2s var(--ease) .75s}
@keyframes sheen{to{transform:translateX(120%)}}
.pl-tier{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);font-weight:600}
.back .pl-tier{color:rgba(255,255,255,.65);padding-right:58px}
.pl-price{display:flex;align-items:baseline;gap:6px;margin-top:8px}
.pl-price small{font-size:13px;color:var(--text-3)}
.back .pl-price small,.back .pl-price span{color:rgba(255,255,255,.65)}
.pl-price b{font-family:var(--serif);font-size:42px;font-weight:600;line-height:1}
.pl-price span{font-size:13px;color:var(--text-3)}
.pl-sub{font-size:13px;color:var(--text-2)}
.back .pl-sub{color:rgba(255,255,255,.75)}
.pl-foot{margin-top:auto;padding-top:14px;font-size:12px;color:var(--text-3);border-top:1px solid var(--border)}
.pl-old{font-size:14px;color:rgba(255,255,255,.5);text-decoration:line-through;text-decoration-color:var(--teal);margin-top:6px}
.pl-badge{position:absolute;top:16px;right:16px;padding:4px 10px;border-radius:999px;background:var(--teal);color:var(--on-accent);font-size:11.5px;font-weight:700}
.pl-save{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.14);font-size:12.5px;color:var(--teal)}
.pl-save b{font-weight:700}
.plan-wide{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:8px 36px 24px;padding:18px 22px;border:1px dashed var(--border-strong);border-radius:var(--radius);font-size:15px;font-weight:500}
.plan-wide span:last-child{font-style:italic;color:var(--text-3);font-weight:400;font-size:14px}
@media(max-width:760px){.plans{grid-template-columns:1fr}.pl-price b{font-size:38px}}
@media(max-width:640px){
  .panel-hd,.rows,.panel-body,.panel-ft,.plans,.seg-wrap{padding-left:20px;padding-right:20px}
  .note,.plan-wide{margin-left:20px;margin-right:20px}
  .row .val{font-size:21px}
  .seg button{padding:10px 16px;font-size:13.5px}
}

/* ─────────────────────────────  TÉMOIGNAGES (ruban horizontal)  ───────────────────────────── */
.testi-top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:44px}
.arrows{display:flex;gap:10px}
.arrows button{position:relative;overflow:hidden;width:48px;height:48px;border-radius:50%;border:1px solid var(--border-strong);display:grid;place-items:center;transition:background-color .25s,border-color .25s,color .25s}
.arrows button:hover{background:var(--teal);border-color:var(--teal);color:var(--on-accent)}
.arrows svg{width:18px;height:18px}
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 48px)/3);gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding:6px 2px 30px;cursor:grab}
.rail::-webkit-scrollbar{display:none}
.rail.drag{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}
@media(max-width:960px){.rail{grid-auto-columns:calc((100% - 24px)/2)}}
@media(max-width:620px){.rail{grid-auto-columns:86%}}
.quote{position:relative;scroll-snap-align:start;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:34px 30px;display:flex;flex-direction:column;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s}
.quote::before{content:"\201C";position:absolute;right:24px;top:6px;font-family:var(--serif);font-size:96px;line-height:1;color:rgba(59,191,201,.18)}
.quote:hover{transform:translateY(-6px);box-shadow:var(--shadow-hover);border-color:rgba(59,191,201,.35)}
.stars{display:flex;gap:3px;color:#E0B34A;margin-bottom:18px}
.stars svg{width:15px;height:15px}
.quote p{font-family:var(--serif);font-size:21px;line-height:1.4;flex:1}
.quote footer{margin-top:24px;padding-top:18px;border-top:1px solid var(--border)}
.quote b{display:block;font-size:14.5px;font-weight:600}
.quote small{font-size:12.5px;color:var(--text-3)}
.rail-bar{height:2px;background:var(--border);border-radius:2px;overflow:hidden;margin-top:4px}
.rail-bar i{display:block;height:100%;width:30%;background:var(--teal);transition:transform .2s linear}

/* ─────────────────────────────  FAQ  ───────────────────────────── */
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}
.faq details{border-bottom:1px solid var(--border)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:24px 0;font-size:17px;font-weight:500;transition:color .25s}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--accent)}
.faq summary i{position:relative;flex-shrink:0;width:30px;height:30px;border-radius:50%;border:1px solid var(--border-strong);transition:transform .45s var(--ease),background-color .3s,border-color .3s}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:1.5px;background:currentColor;transform:translate(-50%,-50%)}
.faq summary i::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .45s var(--ease)}
.faq details[open] summary i{background:var(--teal);border-color:var(--teal);color:var(--on-accent);transform:rotate(180deg)}
.faq details[open] summary i::after{transform:translate(-50%,-50%) rotate(0)}
.faq .ans{overflow:hidden;color:var(--text-2);font-size:15.5px}
.faq .ans p{padding:0 48px 26px 0}
@media(max-width:900px){.faq-grid{grid-template-columns:1fr;gap:32px}}

/* ─────────────────────────────  CONTACT  ───────────────────────────── */
.contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:72px}
.ci-list{margin-top:36px;display:grid;gap:4px}
.ci{display:flex;gap:18px;align-items:flex-start;padding:18px 0;border-bottom:1px solid var(--border)}
.ci .svc-ico{width:44px;height:44px;margin:0;flex-shrink:0}
.ci:hover .svc-ico{background:var(--teal);color:var(--on-accent);transform:rotate(-10deg)}
.ci .svc-ico svg{width:19px;height:19px}
.ci strong{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-3);font-weight:600;margin-bottom:3px}
.ci a:hover{color:var(--accent)}
.map-link{margin-top:22px}
.form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:40px;box-shadow:var(--shadow)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.fg{display:flex;flex-direction:column;gap:7px}
.fg.full{grid-column:1/-1}
.fg label{font-size:12.5px;font-weight:500;color:var(--text-2);transition:color .25s}
.fg:focus-within label{color:var(--accent)}
.fg input,.fg select,.fg textarea{width:100%;font:inherit;font-size:15px;color:var(--text);background:var(--bg-alt);border:1px solid var(--border-strong);border-radius:var(--radius);padding:13px 14px;transition:border-color .25s,box-shadow .25s;appearance:none}
.fg select{background-image:linear-gradient(45deg,transparent 50%,var(--text-3) 50%),linear-gradient(135deg,var(--text-3) 50%,transparent 50%);background-position:calc(100% - 20px) 55%,calc(100% - 15px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:40px}
.fg select option{background:var(--surface);color:var(--text)}
.fg textarea{min-height:140px;resize:vertical}
.fg input:focus,.fg select:focus,.fg textarea:focus{outline:0;border-color:var(--teal);box-shadow:0 0 0 4px rgba(59,191,201,.15)}
.fg input:user-invalid,.fg textarea:user-invalid{border-color:#e06c68}
.privacy{grid-column:1/-1;font-size:12.5px;color:var(--text-3)}
.form .btn{grid-column:1/-1;width:100%}
.form .btn[disabled]{opacity:.7;pointer-events:none}
.msg{grid-column:1/-1;display:none;padding:14px 16px;border-radius:var(--radius);font-size:14px}
.msg.ok{background:rgba(70,211,154,.12);color:#46d39a;border:1px solid rgba(70,211,154,.35)}
.msg.err{background:rgba(217,83,79,.1);color:#e06c68;border:1px solid rgba(217,83,79,.3)}
.msg.show{display:block;animation:panel .5s var(--ease)}
.hp{position:absolute;left:-9999px}
@media(max-width:900px){.contact{grid-template-columns:1fr;gap:48px}}
@media(max-width:560px){.form{padding:26px 20px}.form-grid{grid-template-columns:1fr}}

/* ─────────────────────────────  PIED DE PAGE  ───────────────────────────── */
.ftr{background:var(--navy-1);color:rgba(255,255,255,.62);padding:80px 0 32px;font-size:14px;border-top:1px solid rgba(255,255,255,.06)}
.ftr-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:48px}
.ftr img{height:52px;width:auto;margin-bottom:18px}
.ftr h4{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#fff;font-weight:600;margin-bottom:18px}
.ftr ul{list-style:none;display:grid;gap:10px}
.ftr a{transition:color .25s}
.ftr a:hover{color:var(--teal)}
.ftr-btm{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:64px;padding-top:24px;border-top:1px solid rgba(255,255,255,.08);font-size:12.5px}
@media(max-width:900px){.ftr-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.ftr-grid{grid-template-columns:1fr}.ftr{padding-bottom:96px}}

/* Boutons flottants */
.to-top{position:fixed;right:22px;bottom:22px;z-index:90;width:48px;height:48px;border-radius:50%;background:var(--teal);color:var(--on-accent);display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.35);opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .35s,transform .35s var(--ease)}
.to-top.show{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{transform:translateY(-3px)}
.to-top svg{width:18px;height:18px;position:relative;z-index:1}
.to-top .ring{position:absolute;inset:-4px;width:56px;height:56px;transform:rotate(-90deg)}
.to-top .ring circle{fill:none;stroke:var(--teal);stroke-width:2;stroke-dasharray:163;stroke-dashoffset:163;opacity:.5}
.call-fab{display:none}
@media(max-width:760px){
  .call-fab{position:fixed;left:16px;right:84px;bottom:16px;z-index:90;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px;border-radius:999px;background:var(--navy-1);border:1px solid rgba(59,191,201,.5);color:#fff;font-weight:600;font-size:14px;box-shadow:0 10px 30px rgba(0,0,0,.4);opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .35s,transform .35s var(--ease)}
  .call-fab.show{opacity:1;transform:none;pointer-events:auto}
  .call-fab svg{width:17px;height:17px;color:var(--teal)}
  .to-top{bottom:16px;right:16px}
}

/* ─────────────────────────────  APPARITIONS AU SCROLL  ───────────────────────────── */
:where(.reveal):not(.in){opacity:0}
.reveal.in{animation:revealup 1s var(--ease) var(--d,0s) backwards}
@keyframes revealup{from{opacity:0;transform:translateY(44px)}}
.no-js .reveal{opacity:1}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .reveal,.ch,.wd,.fade-in,.hero-orbit{opacity:1;filter:none}
  .ch,.wd,.fade-in{transform:none}
  #splash{display:none}
}
.svc-links{display:flex;flex-wrap:wrap;gap:10px 22px}
.link-arrow.sub{color:var(--text-3)}
.link-arrow.sub:hover{color:var(--accent)}
.privacy a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}

/* ─────────────────────────────  PAGES DÉDIÉES (services, mentions)  ───────────────────────────── */
.page-hero{position:relative;min-height:64vh;display:flex;align-items:flex-end;color:#fff;isolation:isolate;clip-path:inset(0 0 0 0);-webkit-clip-path:inset(0 0 0 0);background:var(--navy-1)}
.page-hero.short{min-height:42vh}
.page-hero .band-img{opacity:.9}
.page-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(4,12,20,.55),rgba(4,12,20,.95)),radial-gradient(ellipse at 20% 80%,rgba(59,191,201,.18),transparent 60%)}
.page-hero .wrap{padding-top:140px;padding-bottom:72px}
.page-hero h1{font-size:clamp(38px,5.6vw,72px);font-weight:500;max-width:900px}
.page-hero h1 em{color:var(--teal)}
.page-hero .lead{color:rgba(255,255,255,.82);margin:22px 0 34px;max-width:680px}
.page-hero .hero-actions{justify-content:flex-start}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:12.5px;color:rgba(255,255,255,.6);margin-bottom:22px;list-style:none}
.crumbs li+li::before{content:"/";margin-right:8px;opacity:.5}
.crumbs a:hover{color:var(--teal)}
.page-hero .fade-in{opacity:1;transform:none;animation:fadein .9s var(--ease) both}
.page-hero .fade-in.d2{animation-delay:.15s}.page-hero .fade-in.d3{animation-delay:.3s}
.split{display:grid;grid-template-columns:1.15fr .85fr;gap:72px;align-items:start}
@media(max-width:900px){.split{grid-template-columns:1fr;gap:44px}}
.prose h2{margin-bottom:20px}
.prose h3{font-size:26px;margin:36px 0 12px}
.prose p{color:var(--text-2);margin-top:14px}
.prose ul{list-style:none;margin-top:18px;display:grid;gap:10px}
.prose li{display:flex;gap:14px;color:var(--text-2)}
.prose li::before{content:"";flex-shrink:0;margin-top:8px;width:14px;height:8px;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg)}
.prose strong{color:var(--text)}
.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.aside{position:sticky;top:90px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:30px;box-shadow:var(--shadow)}
.aside h3{font-size:24px;margin-bottom:6px}
.aside .row{padding:14px 0}
.aside .row .val{font-size:22px}
.aside .btn{width:100%;margin-top:18px}
.aside small.hint{display:block;margin-top:12px;font-size:12.5px;color:var(--text-3)}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;counter-reset:st}
.step{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:30px 26px;counter-increment:st;transition:transform .45s var(--ease),border-color .3s,box-shadow .45s var(--ease)}
.step:hover{transform:translateY(-6px);border-color:rgba(59,191,201,.35);box-shadow:var(--shadow-hover)}
.step::before{content:"0" counter(st);display:block;font-family:var(--serif);font-size:44px;line-height:1;color:var(--teal);margin-bottom:16px}
.step h3{font-family:var(--sans);font-size:16px;font-weight:600;letter-spacing:0;margin-bottom:8px}
.step p{font-size:14.5px;color:var(--text-2)}
.cmp{width:100%;border-collapse:collapse;font-size:14.5px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.cmp th,.cmp td{padding:16px 18px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}
.cmp thead th{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);background:var(--bg-alt)}
.cmp tbody th{font-weight:600;color:var(--text);white-space:nowrap}
.cmp td{color:var(--text-2)}
.cmp .price{font-family:var(--serif);font-size:22px;font-weight:600;color:var(--text);white-space:nowrap}
.table-scroll{overflow-x:auto;border-radius:var(--radius)}
.related{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.related a{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:26px;transition:transform .45s var(--ease),border-color .3s}
.related a:hover{transform:translateY(-5px);border-color:rgba(59,191,201,.4)}
.related b{display:block;font-family:var(--serif);font-size:24px;font-weight:600;margin-bottom:6px}
.related span{font-size:14px;color:var(--text-2)}
.legal .prose{max-width:820px}
.todo{background:rgba(224,179,74,.15);color:#E0B34A;padding:1px 6px;border-radius:4px;font-weight:600}

/* ─────────────────────────────  RUBAN DÉFILANT CONTINU  ───────────────────────────── */
.marquee{position:relative;overflow:hidden;background:var(--navy-2);color:#fff;padding:38px 0;border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06)}
.marquee::before,.marquee::after{content:"";position:absolute;top:0;bottom:0;width:12%;z-index:1;pointer-events:none}
.marquee::before{left:0;background:linear-gradient(90deg,var(--navy-2),transparent)}
.marquee::after{right:0;background:linear-gradient(-90deg,var(--navy-2),transparent)}
.mq-track{display:flex;width:max-content;animation:marquee 45s linear infinite}
.marquee:hover .mq-track{animation-play-state:paused}
.mq-group{display:flex;align-items:center;gap:52px;padding-right:52px;flex-shrink:0}
.mq-item{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(34px,4.6vw,62px);line-height:1.1;white-space:nowrap;transition:color .3s}
.mq-item:nth-of-type(even){color:var(--teal)}
.mq-sep{width:36px;height:36px;flex-shrink:0;opacity:.85}
@keyframes marquee{to{transform:translateX(-33.3333%)}}
@media(max-width:760px){.marquee{padding:26px 0}.mq-group{gap:32px;padding-right:32px}.mq-sep{width:28px;height:28px}}

/* ─────────────────────────────  CARROUSEL DES EXPERTISES  ───────────────────────────── */
.svc-rail .svc{scroll-snap-align:start;user-select:none}
.svc-rail .svc a{user-select:none;-webkit-user-drag:none}
.rail-foot{display:flex;align-items:center;gap:28px;margin-top:10px}
.rail-foot .rail-bar{flex:1;margin:0}
@media(max-width:620px){.rail-foot{gap:16px}.rail-foot .arrows button{width:44px;height:44px}}

/* ─────────────────────────────  OFFRE DU MOMENT  ───────────────────────────── */
.promo{position:relative;overflow:hidden;display:flex;align-items:center;gap:16px;margin:24px 36px 0;padding:16px 20px;border-radius:var(--radius);background:linear-gradient(110deg,rgba(59,191,201,.2),rgba(59,191,201,.06));border:1px solid rgba(59,191,201,.45)}
.promo::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.14) 50%,transparent 65%);transform:translateX(-120%);animation:sheen 3.5s var(--ease) 1s infinite}
.promo-badge{flex-shrink:0;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--teal);color:var(--on-accent);font-family:var(--serif);font-size:22px;font-weight:600;animation:pop 2.4s var(--ease) infinite}
.promo strong{display:block;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.promo span{font-size:14.5px;color:var(--text)}
@keyframes pop{0%,100%{transform:scale(1)}10%{transform:scale(1.12) rotate(-6deg)}20%{transform:scale(1)}}
@media(max-width:640px){.promo{margin:20px 20px 0;padding:14px 16px}.promo-badge{width:54px;height:54px;font-size:19px}}

/* Mascotte */
.helper{position:fixed;right:22px;bottom:84px;z-index:95;display:flex;flex-direction:column;align-items:flex-end;gap:12px;pointer-events:none}
.h-avatar{position:relative;width:84px;height:84px;border-radius:50%;pointer-events:auto;transform:translateY(160%);transition:transform .8s cubic-bezier(.34,1.56,.64,1);filter:drop-shadow(0 12px 24px rgba(0,0,0,.45))}
.helper.peek .h-avatar{transform:none;animation:bob 3.2s ease-in-out 1s infinite}
.h-avatar img{width:100%;height:100%;border-radius:50%;box-shadow:0 0 0 3px rgba(59,191,201,.55)}
.h-avatar:hover img{box-shadow:0 0 0 4px var(--teal)}
.h-dot{position:absolute;top:0;right:0;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#e0574f;color:#fff;font-size:12px;font-weight:700;border:2px solid var(--navy-1);transform:scale(0);transition:transform .4s cubic-bezier(.34,1.56,.64,1) .6s}
.helper.peek:not(.open) .h-dot{transform:scale(1)}
@keyframes bob{0%,100%{transform:translateY(0) rotate(0)}25%{transform:translateY(-6px) rotate(-5deg)}50%{transform:translateY(0) rotate(0)}75%{transform:translateY(-3px) rotate(4deg)}}
.h-bubble{position:relative;width:min(300px,calc(100vw - 40px));padding:20px 20px 18px;border-radius:14px 14px 4px 14px;background:var(--surface);border:1px solid rgba(59,191,201,.4);box-shadow:var(--shadow-hover);color:var(--text);pointer-events:none;opacity:0;transform:translateY(14px) scale(.92);transform-origin:bottom right;transition:opacity .4s var(--ease),transform .5s cubic-bezier(.34,1.56,.64,1)}
.helper.open .h-bubble{opacity:1;transform:none;pointer-events:auto}
.h-who{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:8px;padding-right:22px}
.h-close{position:absolute;top:10px;right:10px;width:26px;height:26px;border-radius:50%;font-size:18px;line-height:1;color:var(--text-3);transition:background-color .2s,color .2s}
.h-close:hover{background:rgba(127,127,127,.15);color:var(--text)}
.h-typing{display:flex;gap:5px;padding:6px 0}
.h-typing i{width:7px;height:7px;border-radius:50%;background:var(--text-3);animation:typing 1s infinite}
.h-typing i:nth-child(2){animation-delay:.15s}.h-typing i:nth-child(3){animation-delay:.3s}
@keyframes typing{0%,60%,100%{opacity:.3;transform:none}30%{opacity:1;transform:translateY(-4px)}}
.h-msg,.h-cta{display:none}
.helper.typed .h-typing{display:none}
.helper.typed .h-msg{display:block;font-size:15px;line-height:1.5;animation:fadein .5s var(--ease)}
.helper.typed .h-cta{display:inline-flex;margin-top:14px;padding:11px 18px;font-size:13px;animation:fadein .5s var(--ease) .15s both}
.h-msg strong{color:var(--accent)}
body.menu-open .helper{display:none}
@media(max-width:760px){
  .helper{right:14px;bottom:82px}
  .h-avatar{width:64px;height:64px}
}
@media(prefers-reduced-motion:reduce){.helper.peek .h-avatar{animation:none}.promo::after,.promo-badge{animation:none}}

/* ─────────────────────────────  BANDEAU DU HAUT (offre du moment)  ───────────────────────────── */
.topbar{position:fixed;top:0;left:0;right:0;z-index:110;height:var(--bar-h);display:flex;align-items:center;justify-content:center;gap:10px;padding:0 16px;overflow:hidden;white-space:nowrap;font-size:13px;color:#fff;background:linear-gradient(90deg,#07212B,#0B1929 50%,#07212B);border-bottom:1px solid rgba(59,191,201,.3);transition:background-color .3s}
.topbar::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 40%,rgba(59,191,201,.18) 50%,transparent 60%);transform:translateX(-100%);animation:sheen 5s var(--ease) 2s infinite;pointer-events:none}
.topbar b{color:var(--teal);font-weight:600}
.topbar sup{font-size:.7em}
.top-ico{width:16px;height:16px;flex-shrink:0;color:var(--teal);animation:pop 3s var(--ease) infinite}
.top-extra{color:rgba(255,255,255,.6)}
.top-short{display:none}
.top-cta{display:inline-flex;align-items:center;gap:6px;margin-left:6px;padding:4px 12px;border-radius:999px;background:rgba(59,191,201,.16);color:var(--teal);font-weight:600;font-size:12px;transition:background-color .25s,color .25s}
.top-cta svg{width:13px;height:13px;transition:transform .3s var(--ease)}
.topbar:hover .top-cta{background:var(--teal);color:var(--on-accent)}
.topbar:hover .top-cta svg{transform:translateX(3px)}
.hdr{top:var(--bar-h)}
#progress{top:var(--bar-h)}
.hero-inner{padding-top:calc(120px + var(--bar-h))}
.page-hero .wrap{padding-top:calc(140px + var(--bar-h))}
@media(max-width:900px){.top-extra{display:none}}
@media(max-width:760px){
  :root{--bar-h:36px}
  .topbar{font-size:12px;gap:8px;padding:0 10px}
  .top-msg{display:none}
  .top-short{display:inline}
  .top-cta{padding:3px 9px;font-size:11.5px;margin-left:2px}
  .hero-inner{padding-top:calc(104px + var(--bar-h))}
}
@media(max-width:360px){.top-cta span{display:none}}
@media(prefers-reduced-motion:reduce){.topbar::after,.top-ico{animation:none}}
