/* VERTU Enterprise Systems — feuille de style principale (générée depuis le prototype validé) */
:root{color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}html{scroll-padding-top:env(safe-area-inset-top,0px)}body{margin:0;padding:0;font:14px -apple-system,BlinkMacSystemFont,sans-serif;background:#faf9f5;color:#141413}img{max-width:100%}[hidden]:not([hidden=until-found i]){display:none!important}
/* Carte : départs depuis la Tunisie */
.pv-flow { display:none !important; }
.pv-head-core { fill:#ffffff; }
.pv-head-glow { fill:rgba(127,240,220,.45); filter:blur(2px); }
.pv-pkt-core { fill:#ffffff; }
.pv-pkt-glow { fill:rgba(127,240,220,.5); }
.pv-launch { fill:none; stroke:#ff4d5e; stroke-width:2.4; transform-box:fill-box; transform-origin:center; animation:pvLaunch 2.6s ease-out forwards; }
@keyframes pvLaunch { 0% { transform:scale(1); opacity:.95; } 100% { transform:scale(7); opacity:0; } }

/* Références phares : 2 lignes défilantes (ligne 1 vers la droite, ligne 2 vers la gauche) */
.top10.top10--marquee { display:flex; flex-direction:column; gap:14px; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); }
.top10-row { overflow:hidden; }
.top10-track { display:flex; gap:14px; width:max-content; animation:t10Left 46s linear infinite; }
.top10-row.to-right .top10-track { animation-name:t10Right; }
.top10-row:hover .top10-track { animation-play-state:paused; }
.top10--marquee .ref-logo { flex:0 0 212px; height:96px; }
@keyframes t10Left { from { transform:translateX(0); } to { transform:translateX(calc(-50% - 7px)); } }
@keyframes t10Right { from { transform:translateX(calc(-50% - 7px)); } to { transform:translateX(0); } }
@media (max-width:640px){ .top10--marquee .ref-logo { flex-basis:160px; height:78px; } .top10-track { animation-duration:34s; } }
@media (prefers-reduced-motion: reduce){ .top10-track { animation:none; } .top10-row { overflow-x:auto; } }
.pv-star svg { width:14px; height:14px; color:#0EB69D; fill:currentColor; vertical-align:-2px; }
.pillar-ico { background:var(--c-brand-soft) !important; }
.pillar-ico svg { stroke:#0a8f7b !important; }
[data-theme="dark"] .pillar-ico svg { stroke:#21c5aa !important; }
.top10--marquee .ref-logo { position:relative; overflow:visible; }
.top10--marquee .ref-logo img { transition:transform .35s cubic-bezier(.34,1.56,.64,1), filter .3s, opacity .3s; }
.top10--marquee .ref-logo:hover { transform:none; border-color:rgba(14,182,157,.45); box-shadow:0 10px 26px rgba(14,182,157,.16); z-index:2; }
.top10--marquee .ref-logo:hover img { transform:scale(1.62); filter:none; opacity:1; }
@media (hover:none){ .top10--marquee .ref-logo:active img { transform:scale(1.45); filter:none; opacity:1; } }
.pv-tag.ping .pv-tag-bg { fill:#21c5aa; stroke:#7ff0dc; }
.pv-tag.ping .pv-tag-n { fill:#04201c; }
.pv-dest.ping .halo { fill:rgba(127,240,220,.55); }
.pv-tag.on { animation:pvTagIn .7s cubic-bezier(.34,1.56,.64,1); }
@keyframes pvTagIn { 0% { opacity:0; } 60% { opacity:1; } 100% { opacity:1; } }

/* ============ Cartes métier — animation retenue (aperçu défilant + reflet) ============ */
.dom-grid > .dom-card.reveal { opacity:0; transform:translateY(34px); transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1), box-shadow .35s; }
.dom-grid > .dom-card.reveal.in { opacity:1; transform:none; }
.dom-grid > .dom-card:nth-child(2){ transition-delay:.1s; } .dom-grid > .dom-card:nth-child(3){ transition-delay:.2s; }
.dom-grid > .dom-card:nth-child(4){ transition-delay:.3s; } .dom-grid > .dom-card:nth-child(5){ transition-delay:.4s; } .dom-grid > .dom-card:nth-child(6){ transition-delay:.5s; }
.dom-grid > .dom-card.reveal.in:hover { transition-delay:0s; transform:translateY(-8px); }
.dom-card .sol-banner-body > * { transition:opacity .6s, transform .6s cubic-bezier(.16,1,.3,1); }
.dom-card.reveal:not(.in) .sol-banner-body > * { opacity:0; transform:translateY(14px); }
.dom-card.reveal.in .sol-banner-body > :nth-child(2) { transition-delay:.25s; }
/* au survol : la capture du site défile comme une vraie visite */
.dom-card .sol-banner { transition:height .5s cubic-bezier(.16,1,.3,1); }
.dom-card:hover .sol-banner { height:214px; }
.dom-card img.sol-banner-img:not([alt="Aperçu EDUCATED"]) { transition:object-position 5.5s cubic-bezier(.45,0,.25,1), transform .6s; }
.dom-card:hover img.sol-banner-img:not([alt="Aperçu EDUCATED"]) { animation:none; transform:scale(1.02); object-position:left bottom; }
.dom-card:hover img.sol-banner-img[alt="Aperçu EDUCATED"] { transform:scale(1.06); }
.dom-card .sol-banner-overlay { transition:opacity .5s; }
.dom-card:hover .sol-banner-overlay { opacity:.55; }
.dom-card .sol-banner-name { transition:transform .5s cubic-bezier(.16,1,.3,1), opacity .4s; }
.dom-card:hover .sol-banner-name { transform:translateY(-4px) scale(1.04); transform-origin:left bottom; }
.dom-card::before { content:''; position:absolute; left:0; right:0; top:0; height:3px; z-index:5; background:linear-gradient(90deg,#0EB69D,#7ff0dc); transform:scaleX(0); transform-origin:left; transition:transform .6s cubic-bezier(.16,1,.3,1); }
.dom-card:hover::before { transform:scaleX(1); }
.dom-card:hover { box-shadow:0 24px 50px rgba(17,24,32,.14); border-color:rgba(14,182,157,.35); }
.dom-card .dom-prod:hover { background:#0EB69D; border-color:#0EB69D; color:#fff; } .dom-card .dom-prod:hover span { color:#fff; }
@media (prefers-reduced-motion: reduce){ .dom-card img.sol-banner-img { transition:none; } .dom-grid > .dom-card.reveal, .dom-card.reveal .sol-banner-body > * { opacity:1; transform:none; } }

/* Cartes métier — reflet lumineux au repos (repris de la proposition A) */
.dom-card .sol-banner::after { content:''; position:absolute; inset:0; z-index:3; pointer-events:none;
  background:linear-gradient(105deg, transparent 35%, rgba(255,255,255,.32) 48%, rgba(255,255,255,.08) 54%, transparent 64%);
  transform:translateX(-130%); animation:domShine 8s cubic-bezier(.45,0,.2,1) infinite; }
.dom-grid > .dom-card:nth-child(2) .sol-banner::after { animation-delay:1.3s; } .dom-grid > .dom-card:nth-child(3) .sol-banner::after { animation-delay:2.6s; }
.dom-grid > .dom-card:nth-child(4) .sol-banner::after { animation-delay:3.9s; } .dom-grid > .dom-card:nth-child(5) .sol-banner::after { animation-delay:5.2s; }
.dom-grid > .dom-card:nth-child(6) .sol-banner::after { animation-delay:6.5s; }
@keyframes domShine { 0%,72% { transform:translateX(-130%); } 100% { transform:translateX(130%); } }
.dom-card:hover .sol-banner::after { animation:domShineHover .9s cubic-bezier(.45,0,.2,1) 1; }
@keyframes domShineHover { from { transform:translateX(-130%); } to { transform:translateX(130%); } }
@media (prefers-reduced-motion: reduce){ .dom-card .sol-banner::after { animation:none; display:none; } }

/* ============ Mentions légales ============ */
.legal-upd { margin-top:14px; font-size:12.5px; font-weight:600; color:var(--c-text3); }
.legal-wrap { display:grid; grid-template-columns:250px minmax(0,1fr); gap:44px; align-items:start; }
.legal-toc { position:sticky; top:calc(var(--nav-h) + 24px); background:var(--c-surface); border:1px solid var(--c-border); border-radius:18px; padding:20px 14px; display:flex; flex-direction:column; gap:2px; }
.legal-toc-ttl { font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:#0a8f7b; padding:0 10px 10px; }
.legal-toc a { font-size:13.5px; font-weight:600; color:var(--c-text2); padding:8px 10px; border-radius:10px; transition:background .2s, color .2s; }
.legal-toc a:hover { background:var(--c-brand-soft); color:#0a8f7b; }
.legal-body { display:flex; flex-direction:column; gap:18px; }
.legal-sec { position:relative; background:var(--c-surface); border:1px solid var(--c-border); border-radius:20px; padding:30px 34px 28px 92px; scroll-margin-top:calc(var(--nav-h) + 20px); }
.legal-num { position:absolute; left:30px; top:28px; width:42px; height:42px; border-radius:12px; background:var(--c-brand-soft); color:#0a8f7b; font-weight:800; font-size:14px; display:flex; align-items:center; justify-content:center; }
.legal-h { font-size:20px; font-weight:800; color:var(--c-text); letter-spacing:-.01em; margin:6px 0 12px; }
.legal-sec p { font-size:14.5px; line-height:1.75; color:var(--c-text2); margin:0 0 12px; }
.legal-sec p:last-child { margin-bottom:0; }
.legal-list { margin:4px 0 14px; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px; }
.legal-list li { position:relative; padding-left:22px; font-size:14px; line-height:1.7; color:var(--c-text2); }
.legal-list li::before { content:''; position:absolute; left:4px; top:.65em; width:8px; height:8px; border-radius:50%; background:#0EB69D; }
.legal-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:18px 0 0; }
.legal-kv { background:var(--c-surface2); border:1px solid var(--c-border); border-radius:14px; padding:12px 16px; }
.legal-kv dt { font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--c-text3); margin-bottom:4px; }
.legal-kv dd { margin:0; font-size:14.5px; font-weight:700; color:var(--c-text); word-break:break-word; }
.legal-kv dd a { color:#0a8f7b; }
@media (max-width:900px){ .legal-wrap { grid-template-columns:1fr; gap:22px; } .legal-toc { position:static; flex-direction:row; flex-wrap:wrap; } .legal-toc-ttl { width:100%; } }
@media (max-width:600px){ .legal-sec { padding:22px 20px; } .legal-num { position:static; width:36px; height:36px; font-size:13px; margin-bottom:6px; } .legal-grid { grid-template-columns:1fr; } }



.lang-sw{display:inline-flex;align-items:center;gap:0;padding:3px;border:1px solid var(--c-border);border-radius:999px;background:var(--c-surface);cursor:pointer;font:700 11px/1 var(--font-disp,Montserrat,sans-serif);letter-spacing:.06em}
.lang-sw span{padding:6px 8px;border-radius:999px;color:var(--c-text3);transition:background .2s,color .2s}
.lang-sw[data-lang="fr"] span[data-l="fr"],.lang-sw[data-lang="en"] span[data-l="en"]{background:#0EB69D;color:#fff}
#mobile-menu .lang-sw{margin:4px 0 8px}
.nav-right .btn{white-space:nowrap}
@media(max-width:600px){#navbar .lang-sw{padding:2px;border-color:#0EB69D}#navbar .lang-sw span{padding:6px 7px;font-size:11px;background:none!important;color:#0EB69D!important}#navbar .lang-sw[data-lang=fr] span[data-l=fr],#navbar .lang-sw[data-lang=en] span[data-l=en]{display:none}.nav-right{gap:6px}.nav-right .btn--primary{white-space:normal;max-width:118px;padding:6px 10px;font-size:11px;line-height:1.25;text-align:center}}



/* ============================================================
   VERTU — ULTRA PREMIUM STYLESHEET v3 (restructuration plateforme)
   Base charte conservée à l'identique (tokens, typographie, composants)
   ============================================================ */

/* ---------- TOKENS (identiques à la version 1) ---------- */
:root {
  --c-bg:          #f5f6f9;
  --c-surface:     #ffffff;
  --c-surface2:    #eef0f6;
  --c-border:      rgba(0,0,0,0.07);
  --c-border2:     rgba(0,0,0,0.12);

  --c-text:        #111820;
  --c-text2:       #374060;
  --c-text3:       #6b7a99;

  --c-brand:       #0eb69d;
  --c-brand-h:     #0a9a85;
  --c-brand-soft:  #dcf5f0;
  --c-accent:      #00c896;
  --c-accent-soft: #d0f7ed;
  --c-red:         #e53e3e;
  --c-red-soft:    #fff0f0;

  --radius-sm:  6px;
  --radius-md:  10px;
  --radius-lg:  16px;
  --radius-xl:  24px;

  --shadow-sm:  0 1px 4px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
  --shadow-md:  0 4px 20px rgba(0,0,0,0.08);
  --shadow-lg:  0 16px 48px rgba(0,0,0,0.10), 0 4px 16px rgba(0,0,0,0.06);
  --shadow-xl:  0 32px 80px rgba(0,0,0,0.12);

  --font-disp:  'Unbounded', system-ui, sans-serif;
  --font-sans:  'DM Sans', system-ui, sans-serif;

  --nav-h:  68px;
  --max-w:  1180px;
  --py:     100px;
}
[data-theme="dark"] {
  --c-bg:       #0e1318;
  --c-surface:  #161c22;
  --c-surface2: #1e252d;
  --c-border:   rgba(255,255,255,0.07);
  --c-border2:  rgba(255,255,255,0.13);
  --c-text:     #e8ecf8;
  --c-text2:    #9daac8;
  --c-text3:    #5d6e92;
  --c-brand-soft: rgba(14,182,157,0.18);
  --c-accent-soft: rgba(0,200,150,0.14);
  --shadow-lg:  0 16px 60px rgba(0,0,0,0.5);
}

/* ---------- RESET ---------- */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; }
body { font-family: var(--font-sans); background: var(--c-bg); color: var(--c-text); line-height: 1.65; transition: background .3s, color .3s; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; font-family: inherit; }

/* ---------- LAYOUT ---------- */
.container { max-width: var(--max-w); margin: 0 auto; padding: 0 28px; }
.section { padding: var(--py) 0; }
.section--alt { background: var(--c-surface); }
.section--gray { background: var(--c-surface2); }

/* ---------- TYPOGRAPHY ---------- */
.eyebrow { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-disp); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--c-brand); margin-bottom: 18px; }
.eyebrow::before { content: ''; display: block; width: 20px; height: 2px; background: var(--c-brand); border-radius: 2px; flex-shrink: 0; }
.h1 { font-family: var(--font-disp); font-size: clamp(38px, 4.6vw, 58px); font-weight: 800; line-height: 1.1; letter-spacing: -.03em; color: var(--c-text); }
.h2 { font-family: var(--font-disp); font-size: clamp(28px, 3vw, 42px); font-weight: 800; line-height: 1.15; letter-spacing: -.025em; color: var(--c-text); margin-bottom: 16px; }
.h3 { font-family: var(--font-disp); font-size: clamp(20px, 2vw, 26px); font-weight: 700; line-height: 1.25; letter-spacing: -.02em; color: var(--c-text); margin-bottom: 12px; }
.lead { font-size: 17px; color: var(--c-text3); line-height: 1.8; max-width: 580px; }
.section-header { max-width: 640px; }
.section-header.center { margin-inline: auto; text-align: center; }
.section-header.center .lead { margin-inline: auto; }

/* ---------- BUTTONS ---------- */
.btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 24px; border-radius: var(--radius-md); font-family: var(--font-disp); font-size: 14px; font-weight: 700; transition: all .22s cubic-bezier(.4,0,.2,1); border: none; letter-spacing: -.01em; }
.btn--primary { background: var(--c-brand); color: #fff; box-shadow: 0 2px 12px rgba(14,182,157,.32); }
.btn--primary:hover { background: var(--c-brand-h); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(14,182,157,.4); }
.btn--outline { background: var(--c-surface); color: var(--c-text); border: 1.5px solid var(--c-border2); }
.btn--outline:hover { border-color: var(--c-brand); color: var(--c-brand); background: var(--c-brand-soft); }
.btn--white { background: #fff; color: var(--c-brand); }
.btn--white:hover { background: #e8f8f5; transform: translateY(-1px); }
.btn--ghost { background: rgba(255,255,255,.12); color: #fff; border: 1.5px solid rgba(255,255,255,.22); }
.btn--ghost:hover { background: rgba(255,255,255,.22); }
.btn--lg { padding: 15px 30px; font-size: 15px; border-radius: var(--radius-lg); }
.btn .icon { transition: transform .2s; }
.btn:hover .icon { transform: translateX(4px); }
.btn--sm { padding:8px 16px; font-size:12.5px; }

/* ---------- NAVBAR + MEGA MENU ---------- */
#navbar { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; height: var(--nav-h); display: flex; align-items: center; background: rgba(245,246,249,0.86); backdrop-filter: blur(20px) saturate(200%); -webkit-backdrop-filter: blur(20px) saturate(200%); border-bottom: 1px solid transparent; transition: all .3s; }
[data-theme="dark"] #navbar { background: rgba(14,19,24,0.88); }
#navbar.scrolled { border-color: var(--c-border); box-shadow: var(--shadow-sm); }
.nav-inner { display: flex; align-items: center; width: 100%; gap: 4px; }
.nav-logo { display: flex; align-items: center; gap: 10px; font-family: var(--font-disp); font-size: 19px; font-weight: 800; color: var(--c-text); letter-spacing: -.02em; flex-shrink: 0; margin-right: 20px; }
.nav-logo-mark { width: 32px; height: 32px; background: var(--c-brand); border-radius: 8px; display: flex; align-items: center; justify-content: center; }
.nav-logo-mark svg { width:16px; height:16px; }
.nav-links { display:flex; align-items:center; gap:2px; list-style:none; }
.nav-item { position: relative; }
.nav-item > a, .nav-item > button.nav-trig { display:flex; align-items:center; gap:4px; padding: 7px 11px; border-radius: var(--radius-sm); font-size: 13px; font-weight: 500; color: var(--c-text2); transition: all .15s; white-space: nowrap; background:none; border:none; font-family:var(--font-sans); }
.nav-item > a:hover, .nav-item > button.nav-trig:hover { color: var(--c-text); background: var(--c-surface2); }
.nav-caret { font-size: 9px; opacity: .55; transition: transform .2s; margin-top:1px; }
.nav-item:hover .nav-caret, .nav-item.open .nav-caret { transform: rotate(180deg); }
.mega-panel { position:absolute; top:calc(100% + 12px); left:50%; transform:translateX(-50%) translateY(6px); width:620px; background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-lg); box-shadow:var(--shadow-xl); padding:26px; display:grid; grid-template-columns:repeat(4,1fr); gap:22px; opacity:0; visibility:hidden; transition:opacity .18s, transform .18s, visibility .18s; z-index:1100; }
.mega-panel.small { width:240px; grid-template-columns:1fr; padding:14px; }
.nav-item:hover .mega-panel, .nav-item.open .mega-panel { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.mega-col-ttl { font-family:var(--font-disp); font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--c-text3); margin-bottom:10px; }
.mega-col ul { list-style:none; display:flex; flex-direction:column; gap:8px; }
.mega-col a { font-size:13.5px; color:var(--c-text2); transition:color .15s; }
.mega-col a:hover { color:var(--c-brand); }
.mega-panel.small a { display:block; padding:9px 10px; border-radius:8px; font-size:13.5px; font-weight:500; color:var(--c-text2); }
.mega-panel.small a:hover { background:var(--c-surface2); color:var(--c-brand); }
.nav-right { display:flex; align-items:center; gap:8px; margin-left:auto; }
#dm-toggle { width:34px; height:34px; border-radius:8px; border:1.5px solid var(--c-border2); background:var(--c-surface); color:var(--c-text2); font-size:15px; display:flex; align-items:center; justify-content:center; transition:all .2s; }
#dm-toggle:hover { border-color:var(--c-brand); color:var(--c-brand); }
#burger { display:none; flex-direction:column; gap:5px; padding:8px; background:transparent; border:none; margin-left:auto; }
#burger span { display:block; width:22px; height:2px; background:var(--c-text); border-radius:2px; transition:.3s; }
#mobile-menu { display:none; position:fixed; top:var(--nav-h); left:0; right:0; bottom:0; overflow-y:auto; z-index:999; background:var(--c-surface); border-bottom:1px solid var(--c-border); padding:16px 24px 24px; box-shadow:var(--shadow-lg); }
#mobile-menu.open { display:block; }
#mobile-menu a { display:block; padding:12px 0; font-size:16px; font-weight:500; color:var(--c-text2); border-bottom:1px solid var(--c-border); }
#mobile-menu a:hover { color:var(--c-brand); }
#mobile-menu .mm-group-ttl { font-family:var(--font-disp); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--c-text3); padding-top:16px; }

/* ---------- HERO ---------- */
#hero { min-height: 96vh; display: flex; align-items: center; padding-top: var(--nav-h); background: var(--c-surface); position: relative; overflow: hidden; }
.hero-mesh { position: absolute; inset: 0; pointer-events: none; z-index: 0; background: radial-gradient(ellipse 80% 60% at 70% 40%, rgba(14,182,157,.06) 0%, transparent 70%), radial-gradient(ellipse 50% 50% at 20% 80%, rgba(0,200,150,.04) 0%, transparent 60%); animation: meshDrift 12s ease-in-out infinite alternate; }
@keyframes meshDrift { from { transform: scale(1) translateY(0); } to { transform: scale(1.04) translateY(-16px); } }
.hero-grid-lines { position: absolute; inset: 0; pointer-events: none; z-index: 0; background-image: linear-gradient(var(--c-border) 1px, transparent 1px), linear-gradient(90deg, var(--c-border) 1px, transparent 1px); background-size: 60px 60px; mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 20%, transparent 80%); opacity: .5; }
.hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; padding: 50px 0; }
.hero-badge { display: inline-flex; align-items: center; gap: 8px; padding: 5px 14px 5px 8px; background: var(--c-brand-soft); border: 1px solid rgba(14,182,157,.2); border-radius: 100px; font-family: var(--font-disp); font-size: 12px; font-weight: 700; color: var(--c-brand); margin-bottom: 26px; animation: badgePop .6s cubic-bezier(.34,1.56,.64,1) both; }
@keyframes badgePop { from { opacity:0; transform:scale(.8) translateY(8px); } to { opacity:1; transform:none; } }
.hero-pulse { width:8px; height:8px; border-radius:50%; background:var(--c-brand); animation:pulse 2s ease-in-out infinite; }
@keyframes pulse { 0%,100%{transform:scale(1);opacity:1} 50%{transform:scale(.7);opacity:.5} }
.hero-left { animation: slideRight .8s cubic-bezier(.4,0,.2,1) both; }
@keyframes slideRight { from { opacity:0; transform:translateX(-30px); } to { opacity:1; transform:none; } }
.hero-title { margin-bottom: 22px; }
.hero-title .accent { color: var(--c-brand); }
.hero-sub { font-size: 17px; color: var(--c-text3); line-height: 1.8; margin-bottom: 34px; max-width: 480px; animation: fadeUp .7s .35s ease both; }
.hero-cta { display:flex; align-items:center; gap:12px; flex-wrap:wrap; animation: fadeUp .7s .45s ease both; }
.hero-stats { display:flex; gap:26px; margin-top:42px; padding-top:30px; border-top:1px solid var(--c-border); flex-wrap:wrap; animation: fadeUp .7s .55s ease both; }
.hero-stat-num { font-family: var(--font-disp); font-size:26px; font-weight:800; color:var(--c-text); line-height:1; letter-spacing:-.02em; }
.hero-stat-num sup { color:var(--c-brand); font-size:16px; }
.hero-stat-lbl { font-size:11.5px; color:var(--c-text3); margin-top:4px; font-weight:500; }

/* HERO RIGHT — MULTI-SCREEN VISUAL */
.hero-right { position:relative; animation: slideLeft .8s .15s cubic-bezier(.4,0,.2,1) both; height:460px; }
.platform-eyebrow { text-align:center; font-family:var(--font-disp); font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--c-text3); margin-bottom:8px; }
@keyframes slideLeft { from { opacity:0; transform:translateX(30px); } to { opacity:1; transform:none; } }
.hero-mockup { position:absolute; top:0; left:0; width:100%; background: var(--c-surface); border: 1px solid var(--c-border2); border-radius: 18px; box-shadow: var(--shadow-xl), 0 0 0 1px rgba(255,255,255,.6) inset; overflow: hidden; transform: perspective(1200px) rotateX(2deg) rotateY(-4deg); transition: transform .4s ease; z-index:2; }
.hero-mockup:hover { transform: perspective(1200px) rotateX(0) rotateY(0); }
.mockup-bar { padding: 11px 16px; background: var(--c-surface2); border-bottom: 1px solid var(--c-border); display: flex; align-items: center; gap: 7px; }
.mbar-dot { width:10px; height:10px; border-radius:50%; }
.mbar-dot:nth-child(1){background:#fc5f57} .mbar-dot:nth-child(2){background:#febc2e} .mbar-dot:nth-child(3){background:#28c840}
.mbar-url { flex:1; margin:0 10px; background:var(--c-surface); border:1px solid var(--c-border2); border-radius:6px; padding:5px 12px; font-size:12px; color:var(--c-text3); font-family: var(--font-sans); }
.mockup-body { padding: 20px; }
.kpi-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:16px; }
.kpi { background:var(--c-surface2); border:1px solid var(--c-border); border-radius:12px; padding:14px; transition: transform .2s; }
.kpi:hover { transform:translateY(-2px); }
.kpi-val { font-family:var(--font-disp); font-size:19px; font-weight:800; color:var(--c-text); }
.kpi-lbl { font-size:11px; color:var(--c-text3); margin-top:2px; }
.kpi-chg { font-size:11px; font-weight:700; color:var(--c-accent); margin-top:3px; }
.chart-box { background:var(--c-surface2); border:1px solid var(--c-border); border-radius:12px; padding:16px; }
.chart-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; }
.chart-ttl { font-family:var(--font-disp); font-size:13px; font-weight:700; color:var(--c-text); }
.chart-per { font-size:11px; color:var(--c-text3); }
.bars { display:flex; align-items:flex-end; gap:5px; height:72px; }
.bar { flex:1; border-radius:4px 4px 0 0; background:var(--c-brand); opacity:.18; transition:all .6s cubic-bezier(.4,0,.2,1); }
.bar.hi { opacity:.85; } .bar.acc { background:var(--c-accent); opacity:.9; }
.mock-row { display:flex; gap:10px; margin-top:12px; }
.mock-sm { flex:1; background:var(--c-surface2); border:1px solid var(--c-border); border-radius:10px; padding:12px; }
.ms-lbl { font-size:11px; color:var(--c-text3); }
.ms-val { font-family:var(--font-disp); font-size:15px; font-weight:700; color:var(--c-text); margin-top:3px; }
/* ---------- HERO SHOWCASE — carrousel animé EDUCATED / ACURTIME / ACURGYM ---------- */
.hero-showcase { position:relative; height:460px; }
.showcase-slide { position:absolute; inset:0; background:var(--c-surface); border:1px solid var(--c-border2); border-radius:18px; box-shadow:var(--shadow-xl), 0 0 0 1px rgba(255,255,255,.6) inset; overflow:hidden; opacity:0; transform:perspective(1200px) rotateX(2deg) rotateY(-4deg) translateX(24px) scale(.97); transition:opacity .75s cubic-bezier(.4,0,.2,1), transform .75s cubic-bezier(.4,0,.2,1); pointer-events:none; z-index:1; }
.showcase-slide.active { opacity:1; transform:perspective(1200px) rotateX(2deg) rotateY(-4deg) translateX(0) scale(1); pointer-events:auto; z-index:2; }
.showcase-slide--dark { background:#0d1535; }
.showcase-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:top center; display:block; transform:scale(1.08); transition:transform 6s cubic-bezier(.25,.1,.25,1); }
.showcase-slide.active .showcase-img { transform:scale(1); }
.showcase-badge { position:absolute; top:-16px; right:22px; z-index:6; display:flex; align-items:center; gap:8px; background:var(--c-surface); border:1px solid var(--c-border2); border-radius:12px; padding:8px 14px 8px 9px; box-shadow:var(--shadow-lg); font-family:var(--font-disp); font-size:12.5px; font-weight:800; color:var(--c-text); }
.showcase-badge img { width:22px; height:22px; object-fit:contain; border-radius:5px; }
.showcase-dots { display:flex; gap:8px; justify-content:center; margin-top:22px; }
.showcase-dot { width:8px; height:8px; border-radius:50%; background:var(--c-border2); border:none; padding:0; cursor:pointer; transition:all .3s; }
.showcase-dot.active { width:26px; border-radius:5px; background:var(--c-brand); }
.showcase-dot:hover { background:var(--c-text3); }


/* ---------- PLATFORM DIAGRAM (Découvrez VERTU) ---------- */
#platform { background: var(--c-bg); }
.platform-wrap { display:flex; justify-content:center; margin-top:56px; }
.platform-diagram { position:relative; width:100%; max-width:600px; aspect-ratio:1/1; }
@keyframes circleRotate { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }
.platform-diagram::before { content:''; position:absolute; inset:9%; border:1.5px dashed var(--c-border2); border-radius:50%; animation:circleRotate 60s linear infinite; }
@keyframes diagramPop {
  from { opacity:0; transform:translate(-50%,-50%) scale(.45); }
  to   { opacity:1; transform:translate(-50%,-50%) scale(1); }
}
@keyframes centerPulse {
  0%,100% { box-shadow:0 20px 50px rgba(14,182,157,.32); }
  50%     { box-shadow:0 26px 66px rgba(14,182,157,.48); }
}
@keyframes nodeFloat {
  0%,100% { margin-top:0; }
  50%     { margin-top:-6px; }
}
.platform-center { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:118px; height:118px; border-radius:50%; background:var(--c-brand); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--font-disp); font-weight:800; font-size:17px; z-index:2; text-align:center; opacity:0; animation:diagramPop .6s .15s cubic-bezier(.34,1.56,.64,1) both, centerPulse 3.2s 1s ease-in-out infinite; }
.platform-node { position:absolute; transform:translate(-50%,-50%); background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-md); padding:10px 16px; font-family:var(--font-disp); font-size:12.5px; font-weight:700; color:var(--c-text2); box-shadow:var(--shadow-sm); white-space:nowrap; z-index:2; opacity:0; animation:diagramPop .5s cubic-bezier(.34,1.56,.64,1) both, nodeFloat 4.5s ease-in-out infinite; transition:box-shadow .2s, color .2s; }
.platform-node:hover { box-shadow:var(--shadow-md); color:var(--c-brand); }
.platform-node:nth-child(2){ animation-delay:.30s, .30s; }
.platform-node:nth-child(3){ animation-delay:.36s, .5s; }
.platform-node:nth-child(4){ animation-delay:.42s, .7s; }
.platform-node:nth-child(5){ animation-delay:.48s, .9s; }
.platform-node:nth-child(6){ animation-delay:.54s, 1.1s; }
.platform-node:nth-child(7){ animation-delay:.60s, 1.3s; }
.platform-node:nth-child(8){ animation-delay:.66s, 1.5s; }
.platform-node:nth-child(9){ animation-delay:.72s, 1.7s; }
@media (prefers-reduced-motion: reduce) {
  .platform-diagram::before, .platform-center, .platform-node { animation:none; opacity:1; }
}
@media(max-width:720px){ .platform-diagram{ max-width:100%; aspect-ratio:auto; height:auto; } .platform-diagram::before{ display:none; } .platform-diagram{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px; } .platform-center{ position:static; transform:none; grid-column:1/-1; margin:0 auto 6px; } .platform-node{ position:static; transform:none; text-align:center; } }

/* ---------- PROBLEM / SOLUTION ---------- */
#problem { background: var(--c-surface2); }
.prob-grid { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; }
.prob-flow { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin-top:22px; font-family:var(--font-disp); font-size:12.5px; font-weight:700; color:var(--c-text3); }
.prob-flow span.arrow { color:var(--c-border2); }
.prob-list { display:flex; flex-direction:column; gap:12px; margin-top:26px; }
.prob-item { display:flex; align-items:flex-start; gap:14px; padding:16px 18px; background:var(--c-red-soft); border:1px solid rgba(229,62,62,.1); border-radius:var(--radius-md); transition: transform .2s; }
[data-theme="dark"] .prob-item { background:rgba(229,62,62,.07); }
.prob-item:hover { transform:translateX(4px); }
.prob-ico { font-size:14px; color:var(--c-red); flex-shrink:0; margin-top:2px; }
.prob-txt { font-size:14px; color:var(--c-text2); line-height:1.6; }
.sol-box { background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-xl); padding:36px; box-shadow:var(--shadow-md); }
.sol-flow { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin-top:20px; margin-bottom:22px; font-family:var(--font-disp); font-size:12.5px; font-weight:700; color:var(--c-brand); }
.sol-flow span.arrow { color:var(--c-brand-soft); }
.sol-list { display:flex; flex-direction:column; gap:10px; }
.sol-item { display:flex; align-items:flex-start; gap:14px; padding:14px 16px; background:var(--c-brand-soft); border-radius:var(--radius-md); transition:background .2s; }
.sol-item:hover { background:#c9efe7; }
[data-theme="dark"] .sol-item:hover { background:rgba(14,182,157,.28); }
.sol-chk { color:var(--c-brand); font-weight:800; font-size:16px; flex-shrink:0; margin-top:1px; }
.sol-txt { font-size:14px; color:var(--c-text2); line-height:1.6; }
.sol-txt strong { display:block; color:var(--c-text); font-family:var(--font-disp); font-weight:700; font-size:14px; margin-bottom:2px; }

/* ---------- CATALOGUE / FILTER CHIPS ---------- */
#catalogue { background:var(--c-bg); }
.chip-row { display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin:44px 0 8px; }
.chip { padding:9px 18px; border-radius:100px; border:1.5px solid var(--c-border2); background:var(--c-surface); font-family:var(--font-disp); font-size:12.5px; font-weight:700; color:var(--c-text2); transition:all .18s; }
.chip:hover { border-color:var(--c-brand); color:var(--c-brand); }
.chip.active { background:var(--c-brand); border-color:var(--c-brand); color:#fff; }
.prod-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:40px; }
.prod-card { background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-xl); padding:32px; display:flex; gap:22px; align-items:flex-start; transition:all .3s cubic-bezier(.4,0,.2,1); text-decoration:none; color:inherit; position:relative; overflow:hidden; }
.prod-card::before { content:''; position:absolute; top:0; right:0; width:120px; height:120px; border-radius:50%; background:var(--c-brand-soft); opacity:.5; transform:translate(40px,-40px); transition:transform .4s; }
.prod-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-4px); border-color:rgba(14,182,157,.2); }
.prod-card:hover::before { transform:translate(20px,-20px); }
.prod-card.hidden { display:none; }
.prod-card.compact { padding:24px; }
.prod-ico { width:56px; height:56px; border-radius:14px; display:flex; align-items:center; justify-content:center; font-family:var(--font-disp); font-weight:800; font-size:15px; flex-shrink:0; position:relative; z-index:1; color:#fff; }
.prod-info { flex:1; position:relative; z-index:1; }
.prod-tag { font-family:var(--font-disp); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.09em; color:var(--c-brand); margin-bottom:6px; }
.prod-name { font-family:var(--font-disp); font-size:20px; font-weight:800; letter-spacing:-.02em; color:var(--c-text); margin-bottom:8px; }
.prod-dsc { font-size:14px; color:var(--c-text3); line-height:1.65; margin-bottom:16px; }
.prod-pills { display:flex; gap:7px; flex-wrap:wrap; margin-bottom:18px; }
.pill { padding:4px 11px; border-radius:100px; background:var(--c-surface2); border:1px solid var(--c-border); font-size:12px; font-weight:500; color:var(--c-text2); }
.prod-link { display:inline-flex; align-items:center; gap:6px; font-family:var(--font-disp); font-size:13px; font-weight:700; color:var(--c-brand); transition:gap .2s; }
.prod-link:hover { gap:10px; }
.prod-ext { font-size:11px; }

/* ---------- SECTEURS ---------- */
#secteurs { background:var(--c-surface2); }
.sector-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:16px; margin-top:52px; }
.sector-card { background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-lg); padding:24px 20px; transition:all .25s; }
.sector-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:rgba(14,182,157,.2); }
.sector-ico { width:42px; height:42px; border-radius:11px; background:var(--c-brand-soft); display:flex; align-items:center; justify-content:center; font-size:19px; margin-bottom:16px; }
.sector-ttl { font-family:var(--font-disp); font-size:14.5px; font-weight:700; color:var(--c-text); margin-bottom:8px; }
.sector-dsc { font-size:13px; color:var(--c-text3); line-height:1.6; }

/* ---------- PARTIE "POURQUOI VERTU" ---------- */
#why { background: var(--c-surface); }
.why-grid { display:grid; grid-template-columns:5fr 4fr; gap:80px; align-items:center; }
.why-items { display:flex; flex-direction:column; gap:0; margin-top:32px; border:1px solid var(--c-border); border-radius:var(--radius-lg); overflow:hidden; }
.why-item { display:flex; gap:20px; align-items:flex-start; padding:22px 28px; border-bottom:1px solid var(--c-border); transition:background .2s; cursor:default; }
.why-item:last-child { border-bottom:none; }
.why-item:hover { background:var(--c-surface2); }
.why-num { width:32px; height:32px; border-radius:8px; background:var(--c-brand-soft); color:var(--c-brand); display:flex; align-items:center; justify-content:center; font-family:var(--font-disp); font-size:12px; font-weight:800; flex-shrink:0; margin-top:2px; }
.why-ttl { font-family:var(--font-disp); font-size:14px; font-weight:700; color:var(--c-text); margin-bottom:5px; }
.why-dsc { font-size:13.5px; color:var(--c-text3); line-height:1.65; }
.why-visual { background:linear-gradient(145deg, var(--c-brand-soft), var(--c-accent-soft)); border-radius:var(--radius-xl); padding:32px; border:1px solid var(--c-border); }
.why-stats { display:flex; flex-direction:column; gap:12px; }
.wstat { background:var(--c-surface); border-radius:var(--radius-md); padding:18px 20px; border:1px solid var(--c-border); display:flex; align-items:center; gap:16px; transition:transform .2s; }
.wstat:hover { transform:translateX(4px); }
.wstat-num { font-family:var(--font-disp); font-size:17px; font-weight:800; color:var(--c-brand); letter-spacing:-.01em; }
.wstat-lbl { font-size:13px; color:var(--c-text2); line-height:1.4; }

/* ---------- TESTIMONIALS ---------- */
#testimonials { background:var(--c-surface2); }
.testi-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:56px; }
.testi-card { background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-lg); padding:28px; display:flex; flex-direction:column; gap:20px; transition:all .25s; }
.testi-card:hover { box-shadow:var(--shadow-md); transform:translateY(-3px); }
.testi-stars { color:#f6a733; font-size:14px; letter-spacing:2px; }
.testi-txt { font-size:14px; color:var(--c-text2); line-height:1.8; flex:1; font-style:italic; }
.testi-author { display:flex; align-items:center; gap:12px; }
.testi-av { width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--font-disp); font-size:14px; font-weight:800; color:#fff; flex-shrink:0; }
.testi-name { font-family:var(--font-disp); font-size:14px; font-weight:700; color:var(--c-text); }
.testi-role { font-size:12px; color:var(--c-text3); }

/* ---------- SÉCURITÉ ---------- */
#securite { background:var(--c-surface); }
.sec-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:52px; }
.sec-card { background:var(--c-surface2); border:1px solid var(--c-border); border-radius:var(--radius-lg); padding:22px; transition:all .2s; }
.sec-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-sm); }
.sec-ico { font-size:20px; margin-bottom:12px; }
.sec-ttl { font-family:var(--font-disp); font-size:13.5px; font-weight:700; color:var(--c-text); margin-bottom:6px; }
.sec-dsc { font-size:12.5px; color:var(--c-text3); line-height:1.6; }
.sec-note { margin-top:32px; background:var(--c-brand-soft); border:1px solid rgba(14,182,157,.18); border-radius:var(--radius-lg); padding:26px 30px; }
.sec-note-ttl { font-family:var(--font-disp); font-weight:800; font-size:15px; color:var(--c-text); margin-bottom:8px; }
.sec-note p { font-size:13.5px; color:var(--c-text2); line-height:1.75; }
.sec-note p + p { margin-top:10px; }

/* ---------- PRICING (modèle éditeur / intégrateur / projet) ---------- */
#pricing { background:var(--c-bg); }
.pricing-blocks { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:48px; }
.pricing-block { background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-lg); padding:26px 22px; transition:all .2s; }
.pricing-block:hover { transform:translateY(-3px); box-shadow:var(--shadow-sm); }
.pricing-block-ico { width:42px; height:42px; border-radius:11px; background:var(--c-brand-soft); display:flex; align-items:center; justify-content:center; font-size:19px; margin-bottom:16px; }
.pricing-block-ttl { font-family:var(--font-disp); font-size:14.5px; font-weight:700; color:var(--c-text); margin-bottom:8px; }
.pricing-block-dsc { font-size:13px; color:var(--c-text3); line-height:1.65; }
.journey-row { display:flex; align-items:stretch; gap:20px; margin-top:48px; }
.journey-step { flex:1; background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-xl); padding:32px 26px; }
.journey-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:48px; }
.journey-grid .journey-step { flex:none; }

.partners-network-row { display:grid; grid-template-columns:1.3fr 1fr; gap:20px; margin-top:48px; align-items:stretch; }
.partner-slot-card { border:1.5px dashed var(--c-border2); border-radius:var(--radius-xl); padding:32px 28px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; background:var(--c-surface2); }
.partner-slot-ico { width:44px; height:44px; border-radius:50%; border:1.5px dashed var(--c-text3); display:flex; align-items:center; justify-content:center; font-size:20px; color:var(--c-text3); margin-bottom:14px; }
.partner-slot-ttl { font-family:var(--font-disp); font-size:15px; font-weight:700; color:var(--c-text); margin-bottom:8px; }
.partner-slot-dsc { font-size:12.5px; color:var(--c-text3); line-height:1.6; }
@media(max-width:900px){
  .journey-grid{grid-template-columns:1fr 1fr}
  .partners-network-row{grid-template-columns:1fr}
}
@media(max-width:600px){ .journey-grid{grid-template-columns:1fr} }
.journey-num { font-family:var(--font-disp); font-size:12px; font-weight:800; color:var(--c-brand); letter-spacing:.08em; margin-bottom:14px; }
.journey-ttl { font-family:var(--font-disp); font-size:18px; font-weight:800; color:var(--c-text); margin-bottom:4px; }
.journey-sub { font-size:12.5px; font-weight:700; color:var(--c-text3); text-transform:uppercase; letter-spacing:.05em; margin-bottom:14px; }
.journey-dsc { font-size:13.5px; color:var(--c-text2); line-height:1.7; }
.journey-arrow { display:flex; align-items:center; justify-content:center; font-size:20px; color:var(--c-border2); flex-shrink:0; }
.journey-flow { text-align:center; margin-top:32px; font-family:var(--font-disp); font-size:13px; font-weight:700; color:var(--c-text3); }
.journey-flow .arrow { color:var(--c-brand); margin:0 8px; }
.pricing-final { text-align:center; max-width:600px; margin:64px auto 0; background:var(--c-brand-soft); border:1px solid rgba(14,182,157,.18); border-radius:var(--radius-xl); padding:44px 36px; }
.pricing-final-ttl { font-family:var(--font-disp); font-size:22px; font-weight:800; letter-spacing:-.02em; color:var(--c-text); margin-bottom:12px; }
.pricing-final-txt { font-size:14px; color:var(--c-text2); line-height:1.75; margin-bottom:26px; }

/* ---------- FAQ ---------- */
#faq { background:var(--c-surface2); }
.faq-wrap { max-width:720px; margin-inline:auto; }
.faq-list { display:flex; flex-direction:column; gap:0; margin-top:40px; border:1px solid var(--c-border); border-radius:var(--radius-lg); overflow:hidden; background:var(--c-surface); }
.faq-item { border-bottom:1px solid var(--c-border); }
.faq-item:last-child { border-bottom:none; }
.faq-q { width:100%; display:flex; align-items:center; justify-content:space-between; padding:18px 24px; background:transparent; border:none; font-family:var(--font-disp); font-size:15px; font-weight:600; color:var(--c-text); text-align:left; gap:12px; cursor:pointer; transition:background .2s; }
.faq-q:hover { background:var(--c-surface2); }
.faq-q[aria-expanded="true"] { color:var(--c-brand); background:var(--c-brand-soft); }
.faq-ico { font-size:20px; color:var(--c-text3); transition:transform .3s, color .2s; flex-shrink:0; }
.faq-q[aria-expanded="true"] .faq-ico { transform:rotate(45deg); color:var(--c-brand); }
.faq-ans { max-height:0; overflow:hidden; transition:max-height .35s cubic-bezier(.4,0,.2,1), padding .3s; padding:0 24px; }
.faq-ans.open { max-height:300px; padding:0 24px 20px; }
.faq-ans p { font-size:14px; color:var(--c-text3); line-height:1.8; }

/* ---------- CTA BAND ---------- */
#cta-band { padding: 100px 0; background: linear-gradient(130deg, #111820 0%, #0eb69d 50%, #0eb69d 100%); position:relative; overflow:hidden; }
.cta-orb { position:absolute; border-radius:50%; pointer-events:none; animation:orbFloat 8s ease-in-out infinite alternate; }
.cta-orb-1 { width:400px; height:400px; top:-150px; right:-100px; background:rgba(255,255,255,.06); }
.cta-orb-2 { width:280px; height:280px; bottom:-80px; left:5%; background:rgba(255,255,255,.04); animation-delay:-4s; }
@keyframes orbFloat { from{transform:translateY(0) scale(1);} to{transform:translateY(-20px) scale(1.05);} }
.cta-inner { text-align:center; position:relative; z-index:1; }
.cta-title { font-family:var(--font-disp); font-size:clamp(28px,3.5vw,44px); font-weight:800; letter-spacing:-.03em; color:#fff; margin-bottom:16px; }
.cta-sub { font-size:17px; color:rgba(255,255,255,.75); max-width:520px; margin:0 auto 40px; line-height:1.75; }
.cta-btns { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }

/* ---------- FOOTER ---------- */
footer { background:#111820; color:rgba(255,255,255,.65); padding:60px 0 0; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:40px; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,.07); }
.footer-logo-wrap { display:flex; align-items:center; gap:10px; font-family:var(--font-disp); font-size:18px; font-weight:800; color:#fff; margin-bottom:14px; }
.footer-tagline { font-size:14px; color:rgba(255,255,255,.45); line-height:1.75; max-width:250px; }
.footer-contact { margin-top:20px; }
.footer-contact a { font-size:13px; color:rgba(255,255,255,.45); display:block; margin-bottom:7px; transition:color .2s; }
.footer-contact a:hover { color:#fff; }
.footer-col-ttl { font-family:var(--font-disp); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:rgba(255,255,255,.35); margin-bottom:16px; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:10px; }
.footer-col a { font-size:14px; color:rgba(255,255,255,.5); transition:color .2s; }
.footer-col a:hover { color:#fff; }
.footer-bottom { padding:20px 0; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }
.footer-copy { font-size:13px; color:rgba(255,255,255,.25); }
.footer-legal { display:flex; gap:20px; }
.footer-legal a { font-size:13px; color:rgba(255,255,255,.25); transition:color .2s; }
.footer-legal a:hover { color:rgba(255,255,255,.65); }

/* ---------- SCROLL ANIMATIONS ---------- */
.reveal { opacity:0; transform:translateY(24px) scale(.98); transition:opacity .55s cubic-bezier(.16,1,.3,1), transform .55s cubic-bezier(.16,1,.3,1); will-change:opacity,transform; }
.reveal.in { opacity:1; transform:none; }
.reveal-left { opacity:0; transform:translateX(-24px); transition:opacity .55s cubic-bezier(.16,1,.3,1), transform .55s cubic-bezier(.16,1,.3,1); will-change:opacity,transform; }
.reveal-left.in { opacity:1; transform:none; }
.reveal-right { opacity:0; transform:translateX(24px); transition:opacity .55s cubic-bezier(.16,1,.3,1), transform .55s cubic-bezier(.16,1,.3,1); will-change:opacity,transform; }
.reveal-right.in { opacity:1; transform:none; }
.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}.d4{transition-delay:.32s}.d5{transition-delay:.4s}

/* ---------- MISC ---------- */
@keyframes fadeUp { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:none} }
.sep { height:1px; background:var(--c-border); margin:var(--py) 0 0; }

/* ---------- RESPONSIVE ---------- */
@media(max-width:1024px){
  .hero-inner{grid-template-columns:1fr;gap:40px}
  .hero-right{display:none}
  .prod-grid{grid-template-columns:1fr}
  .pricing-blocks{grid-template-columns:repeat(2,1fr)}
  .journey-row{flex-direction:column}
  .journey-arrow{transform:rotate(90deg)}
  .why-grid{grid-template-columns:1fr}
  .why-visual{display:none}
  .footer-grid{grid-template-columns:1fr 1fr}
  .sector-grid{grid-template-columns:repeat(3,1fr)}
  .sec-grid{grid-template-columns:repeat(2,1fr)}
  .action-row{grid-template-columns:1fr; gap:28px}
  .action-row.rev .action-visual{order:1}
  .action-row.rev .action-text{order:2}
  .mega-panel{width:520px}
}
@media(max-width:1180px){
  .nav-links,.nav-right .btn--outline{display:none}
  #burger{display:flex}
  #dm-toggle{display:none}
}
@media(max-width:768px){
  :root{--py:64px}
  .nav-links,.nav-right .btn--outline{display:none}
  #burger{display:flex}
  #dm-toggle{display:none}
  .prob-grid{grid-template-columns:1fr}
  .testi-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column;align-items:flex-start}
  .sector-grid{grid-template-columns:repeat(2,1fr)}
  .sec-grid{grid-template-columns:1fr}
  .pricing-blocks{grid-template-columns:1fr}
}

/* ---------- MODAL ---------- */
#demo-modal { display:none; position:fixed; inset:0; z-index:2000; background:rgba(14,19,24,0.65); backdrop-filter:blur(6px); align-items:center; justify-content:center; padding:20px; }
#demo-modal.open { display:flex; animation:modalIn .3s cubic-bezier(.4,0,.2,1); }
@keyframes modalIn { from{opacity:0;transform:scale(.96)} to{opacity:1;transform:none} }
.modal-box { background:var(--c-surface); border-radius:var(--radius-xl); padding:40px; max-width:520px; width:100%; position:relative; box-shadow:var(--shadow-xl); border:1px solid var(--c-border2); max-height:90vh; overflow-y:auto; }
.modal-close { position:absolute; top:16px; right:16px; width:32px; height:32px; border-radius:8px; background:var(--c-surface2); border:1px solid var(--c-border); color:var(--c-text3); font-size:18px; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all .2s; }
.modal-close:hover { background:var(--c-red-soft); color:var(--c-red); }
.modal-title { font-family:var(--font-disp); font-size:22px; font-weight:800; color:var(--c-text); margin-bottom:6px; }
.modal-sub { font-size:14px; color:var(--c-text3); margin-bottom:28px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.form-group { display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.form-label { font-family:var(--font-disp); font-size:12px; font-weight:700; color:var(--c-text2); text-transform:uppercase; letter-spacing:.06em; }
.form-input { padding:11px 14px; border-radius:var(--radius-md); border:1.5px solid var(--c-border2); background:var(--c-surface2); font-family:var(--font-sans); font-size:14px; color:var(--c-text); transition:border-color .2s, box-shadow .2s; outline:none; }
.form-input:focus { border-color:var(--c-brand); box-shadow:0 0 0 3px rgba(14,182,157,.12); }
.form-select { appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7a99' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; padding-right:36px; }
.form-success { display:none; text-align:center; padding:20px 0; }
.form-success-ico { font-size:48px; margin-bottom:12px; }
.form-success-ttl { font-family:var(--font-disp); font-size:20px; font-weight:800; color:var(--c-text); margin-bottom:8px; }
.form-success-txt { font-size:14px; color:var(--c-text3); }
@media(max-width:520px){ .form-row{grid-template-columns:1fr;} .modal-box{padding:28px;} }

/* ============================================================
   COMPOSANTS COMMUNS — pages internes (produits, secteurs, etc.)
   ============================================================ */
.breadcrumb { padding:calc(var(--nav-h) + 28px) 0 0; font-size:13px; color:var(--c-text3); }
.breadcrumb a { color:var(--c-text3); transition:color .15s; }
.breadcrumb a:hover { color:var(--c-brand); }
.breadcrumb .sep { display:inline-block; margin:0 8px; color:var(--c-border2); height:auto; background:none; width:auto; }
.breadcrumb .current { color:var(--c-text2); font-weight:600; }

.page-hero { padding:36px 0 var(--py); background:var(--c-surface); }
.page-hero-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center; }
.page-hero-logo { width:76px; height:76px; border-radius:18px; background:var(--c-surface2); border:1px solid var(--c-border); display:flex; align-items:center; justify-content:center; padding:14px; margin-bottom:24px; box-shadow:var(--shadow-sm); }
.page-hero-logo img { width:100%; height:100%; object-fit:contain; }
.page-hero-visual { }

.detail-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:48px; }
.detail-card { background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-lg); padding:26px; transition:all .2s; }
.detail-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-sm); }
.detail-ico { width:42px; height:42px; border-radius:11px; background:var(--c-brand-soft); display:flex; align-items:center; justify-content:center; font-size:19px; margin-bottom:16px; }
.detail-ttl { font-family:var(--font-disp); font-size:14.5px; font-weight:700; color:var(--c-text); margin-bottom:8px; }
.detail-dsc { font-size:13px; color:var(--c-text3); line-height:1.65; }

.forwhom-row { display:flex; gap:12px; flex-wrap:wrap; margin-top:28px; }
.forwhom-pill { display:flex; align-items:center; gap:8px; background:var(--c-surface2); border:1px solid var(--c-border); border-radius:100px; padding:10px 18px; font-size:13.5px; font-weight:600; color:var(--c-text2); }

.mock-note { text-align:center; font-size:12px; color:var(--c-text3); margin-top:10px; font-style:italic; }

.cross-links { display:flex; gap:12px; flex-wrap:wrap; margin-top:20px; }
.cross-link { display:flex; align-items:center; gap:10px; background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-md); padding:10px 16px; font-family:var(--font-disp); font-size:13px; font-weight:700; color:var(--c-text2); transition:all .2s; }
.cross-link:hover { border-color:var(--c-brand); color:var(--c-brand); transform:translateY(-2px); }
.cross-link .dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }

.simple-page-hero { padding:calc(var(--nav-h) + 60px) 0 70px; background:var(--c-surface); text-align:center; }
.simple-page-hero .lead { margin-inline:auto; }

.about-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:48px; }
.about-stat { text-align:center; background:var(--c-surface2); border:1px solid var(--c-border); border-radius:var(--radius-lg); padding:28px 16px; }
.about-stat-num { font-family:var(--font-disp); font-size:30px; font-weight:800; color:var(--c-brand); letter-spacing:-.02em; }
.about-stat-lbl { font-size:12.5px; color:var(--c-text3); margin-top:6px; }

.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
.contact-card { background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-xl); padding:36px; box-shadow:var(--shadow-md); }
.contact-row { display:flex; align-items:center; gap:16px; padding:16px 0; border-bottom:1px solid var(--c-border); }
.contact-row:last-child { border-bottom:none; }
.contact-ico { width:40px; height:40px; border-radius:10px; background:var(--c-brand-soft); display:flex; align-items:center; justify-content:center; font-size:17px; flex-shrink:0; }
.contact-lbl { font-size:11.5px; color:var(--c-text3); text-transform:uppercase; letter-spacing:.06em; font-weight:700; }
.contact-val { font-size:14.5px; color:var(--c-text); font-weight:600; margin-top:2px; }

@media(max-width:900px){
  .page-hero-grid{grid-template-columns:1fr}
  .page-hero-visual{display:none}
  .detail-grid{grid-template-columns:repeat(2,1fr)}
  .about-stats{grid-template-columns:repeat(2,1fr)}
  .contact-grid{grid-template-columns:1fr}
}
@media(max-width:600px){ .detail-grid{grid-template-columns:1fr} }

/* ============================================================
   NOUVELLES PAGES — Solutions / Secteurs / Pourquoi / Partenaires / Ressources
   ============================================================ */
.pillar-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:48px; }
.pillar-card { background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-lg); padding:30px 26px; transition:all .2s; }
.pillar-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-sm); }
.pillar-ico { width:48px; height:48px; border-radius:13px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; }
.pillar-ico svg { width:24px; height:24px; }
.pillar-ttl { font-family:var(--font-disp); font-size:16px; font-weight:800; color:var(--c-text); margin-bottom:8px; }
.pillar-dsc { font-size:13.5px; color:var(--c-text3); line-height:1.7; }
.pillar-dsc a { color:var(--c-brand); font-weight:600; }

.solutions-category { margin-top:64px; }
.solutions-category:first-child { margin-top:0; }
.solutions-cat-head { display:flex; align-items:baseline; gap:12px; margin-bottom:24px; padding-bottom:14px; border-bottom:1px solid var(--c-border); }
.solutions-cat-ttl { font-family:var(--font-disp); font-size:20px; font-weight:800; color:var(--c-text); }
.solutions-cat-sub { font-size:13px; color:var(--c-text3); }

.suite-rh-card { background:var(--c-surface2); border:1.5px dashed var(--c-border2); border-radius:var(--radius-lg); padding:26px 28px; margin-top:16px; }
.suite-rh-badge { display:inline-block; font-family:var(--font-disp); font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--c-text3); background:var(--c-surface); border:1px solid var(--c-border2); border-radius:100px; padding:4px 12px; margin-bottom:12px; }
.suite-rh-ttl { font-family:var(--font-disp); font-size:17px; font-weight:800; color:var(--c-text); margin-bottom:8px; }
.suite-rh-dsc { font-size:13.5px; color:var(--c-text3); line-height:1.7; max-width:600px; }

.partner-hero-card { background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-xl); padding:44px; box-shadow:var(--shadow-md); display:grid; grid-template-columns:auto 1fr; gap:32px; align-items:center; }
.partner-mark-lg { width:88px; height:88px; border-radius:18px; background:var(--c-brand); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--font-disp); font-weight:800; font-size:22px; flex-shrink:0; }
.partner-logo-box { width:170px; height:92px; border-radius:16px; background:#fff; border:1px solid var(--c-border); display:flex; align-items:center; justify-content:center; padding:18px; flex-shrink:0; box-shadow:var(--shadow-sm); }
.partner-logo-box img { max-width:100%; max-height:100%; object-fit:contain; }
.partner-badge-line { display:inline-block; font-family:var(--font-disp); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--c-brand); margin-bottom:6px; }
.become-partner-box { text-align:center; background:var(--c-surface2); border:1px solid var(--c-border); border-radius:var(--radius-xl); padding:44px 32px; margin-top:24px; }

.res-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:48px; }
.res-card { background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-lg); padding:26px 22px; text-align:center; }
.res-ico { font-size:26px; margin-bottom:14px; }
.res-ttl { font-family:var(--font-disp); font-size:14.5px; font-weight:700; color:var(--c-text); margin-bottom:8px; }
.res-status { font-size:12px; color:var(--c-text3); font-style:italic; }

.solutions-teaser-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:40px; }

@media(max-width:900px){
  .pillar-grid{grid-template-columns:1fr 1fr}
  .res-grid{grid-template-columns:1fr 1fr}
  .partner-hero-card{grid-template-columns:1fr;text-align:center}
  .partner-mark-lg{margin-inline:auto}
  .solutions-teaser-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .pillar-grid{grid-template-columns:1fr}
  .res-grid{grid-template-columns:1fr}
}

/* ============================================================
   CARTES SOLUTIONS — rendu "bannière" captif par famille
   ============================================================ */
.sol-banner-card { display:flex; flex-direction:column; background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-xl); overflow:hidden; text-decoration:none; color:inherit; transition:all .3s cubic-bezier(.4,0,.2,1); }
.sol-banner-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:rgba(14,182,157,.22); }
.sol-banner-card.hidden { display:none; }
.sol-banner { position:relative; height:190px; overflow:hidden; background:#0d1535; flex-shrink:0; }
.sol-banner-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:top center; transition:transform .6s cubic-bezier(.25,.1,.25,1); }
.sol-banner-card:hover .sol-banner-img { transform:scale(1.07); }
.sol-banner-overlay { position:absolute; inset:0; background:linear-gradient(to top, rgba(6,10,26,.92) 0%, rgba(6,10,26,.32) 55%, rgba(6,10,26,.05) 100%); }
.sol-banner-badge { position:absolute; top:14px; left:14px; z-index:2; background:rgba(255,255,255,.94); color:var(--c-text); font-family:var(--font-disp); font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; padding:5px 12px; border-radius:100px; box-shadow:0 2px 8px rgba(0,0,0,.15); }
.sol-banner-name { position:absolute; bottom:16px; left:20px; right:20px; z-index:2; font-family:var(--font-disp); font-size:23px; font-weight:800; color:#fff; letter-spacing:-.02em; text-shadow:0 2px 14px rgba(0,0,0,.35); }
.sol-banner-body { padding:22px 22px 24px; display:flex; flex-direction:column; flex:1; }
.sol-banner-dsc { font-size:13.5px; color:var(--c-text3); line-height:1.65; margin-bottom:16px; }
.sol-banner-body .prod-pills { margin-bottom:18px; }
.sol-banner-body .prod-link { margin-top:auto; }
.sol-banner-card.compact .sol-banner { height:130px; }
.sol-banner-card.compact .sol-banner-name { font-size:20px; }

/* Pied de carte : label famille (gauche) + CTA (droite), séparés par un filet */
.sol-banner-foot { display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:16px; border-top:1px solid var(--c-border); }
.sol-banner-foot-lbl { font-size:11.5px; font-weight:500; color:var(--c-text3); }

/* Badges de catégorie colorés par famille (repris du gabarit de référence) */
.sol-banner-badge.badge-light { background:rgba(255,255,255,.92); color:#0f172a; }
.sol-banner-badge.badge-amber { background:#fbbf24; color:#0f172a; }
.sol-banner-badge.badge-cyan  { background:#06b6d4; color:#fff; }
.sol-banner-badge.badge-emerald { background:#10b981; color:#fff; }
.sol-banner-badge.badge-purple { background:#9333ea; color:#fff; }
.sol-banner-badge.badge-blue { background:#2563eb; color:#fff; }
.sol-banner-badge.badge-red { background:#dc2626; color:#fff; }

/* Petit badge "p" décoratif pour AcurPOS, comme sur la référence */
.sol-banner-mini-badge { width:26px; height:26px; border-radius:7px; background:linear-gradient(135deg,#3b82f6,#1d4ed8); color:#fff; font-style:italic; font-weight:800; font-family:Georgia,serif; display:flex; align-items:center; justify-content:center; font-size:13px; box-shadow:0 2px 8px rgba(0,0,0,.25); border:1px solid rgba(255,255,255,.2); flex-shrink:0; }
.sol-banner-name-row { display:flex; align-items:center; justify-content:space-between; gap:10px; }

/* ---------- Illustration AcurPOS : tablette + badges flottants ---------- */
.sol-banner--pos-illus { background:radial-gradient(ellipse 90% 90% at 30% 20%, #2a1b6b 0%, #150c33 55%, #0c0720 100%); display:flex; align-items:center; justify-content:center; }
.pos-tablet { position:relative; width:64%; aspect-ratio:16/11; background:#0d1128; border-radius:14px; border:3px solid #1e2545; box-shadow:0 24px 50px rgba(0,0,0,.5); transform:perspective(700px) rotateY(-10deg) rotateX(4deg); overflow:hidden; z-index:2; }
.pos-tablet::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg, rgba(255,255,255,.06), transparent 50%); }
.pos-tablet-bar { padding:7px 10px; font-family:var(--font-disp); font-size:11px; font-weight:800; color:#fff; letter-spacing:-.02em; background:rgba(255,255,255,.04); border-bottom:1px solid rgba(255,255,255,.08); }
.pos-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:5px; padding:8px; }
.pg { aspect-ratio:1; border-radius:6px; }
.pg-c1{background:#ec4899;} .pg-c2{background:#f59e0b;} .pg-c3{background:#14b8a6;}
.pg-c4{background:#a855f7;} .pg-c5{background:#3b82f6;} .pg-c6{background:#10b981;}
.pos-float-badge { position:absolute; z-index:3; display:flex; align-items:center; gap:6px; background:rgba(13,17,40,.85); backdrop-filter:blur(6px); border-radius:100px; padding:6px 12px; font-family:var(--font-disp); font-size:10.5px; font-weight:700; color:#fff; box-shadow:0 6px 18px rgba(0,0,0,.35); white-space:nowrap; animation:nodeFloat 5s ease-in-out infinite; }
.pos-float-badge .fdot { width:6px; height:6px; border-radius:50%; flex-shrink:0; }
.pf-1 { top:14%; right:6%; border:1px solid rgba(45,212,191,.4); animation-delay:.3s; }
.pf-1 .fdot { background:#2dd4bf; }
.pf-2 { top:42%; left:4%; border:1px solid rgba(45,212,191,.4); animation-delay:.9s; }
.pf-2 .fdot { background:#2dd4bf; }
.pf-3 { bottom:16%; right:2%; border:1px solid rgba(244,114,182,.4); animation-delay:1.5s; }
.pf-3 .fdot { background:#f472b6; }
@media(max-width:640px){ .pf-1,.pf-2,.pf-3 { font-size:9.5px; padding:5px 9px; } }

.solutions-teaser-grid.prod-grid, #prod-grid.prod-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media(max-width:1024px){ #prod-grid.prod-grid, .prod-grid--banners { grid-template-columns:repeat(2,1fr); } }
@media(max-width:640px){ #prod-grid.prod-grid, .prod-grid--banners { grid-template-columns:1fr; } }

/* ---------- Carte "Suite RH VERTU" intégrée dans la grille (écosystème en évolution) ---------- */
.prod-grid--three { grid-template-columns:repeat(3,1fr); }
@media(max-width:1024px){ .prod-grid--three{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:640px){ .prod-grid--three{ grid-template-columns:1fr; } }

.sol-banner-card--suite { border-color:rgba(139,109,240,.28); color:#fff; }
.sol-banner-card--suite:hover { border-color:rgba(139,109,240,.5); }
.sol-banner-card--suite .sol-banner { background:#1a1035; }
.sol-banner-card--suite { box-shadow:0 0 0 1px rgba(139,109,240,.15); }
.sol-banner-card--suite .sol-banner-img { filter:saturate(.55) brightness(.4); }
.sol-banner-overlay--suite { background:linear-gradient(160deg, rgba(20,12,45,.75) 0%, rgba(26,16,53,.88) 55%, rgba(13,8,30,.95) 100%); }
.suite-badge-pulse { position:absolute; top:14px; left:14px; display:flex; align-items:center; gap:6px; background:rgba(26,16,53,.75); backdrop-filter:blur(4px); border:1px solid rgba(139,109,240,.4); color:#c9bdfa; font-family:var(--font-disp); font-size:10.5px; font-weight:700; padding:5px 11px; border-radius:100px; z-index:2; }
.suite-badge-pulse .dot { width:6px; height:6px; border-radius:50%; background:#a78bfa; animation:pulse 2s ease-in-out infinite; }
.sol-banner-card--suite .sol-banner-name { position:absolute; bottom:34px; left:20px; right:20px; z-index:2; color:#fff; text-shadow:0 2px 14px rgba(0,0,0,.4); font-size:19px; }
.suite-subttl { position:absolute; bottom:16px; left:20px; right:20px; z-index:2; font-size:11.5px; font-weight:600; color:#c9bdfa; text-shadow:0 1px 6px rgba(0,0,0,.4); }
.sol-banner-card--suite .sol-banner-body { border-top:none; background:#150c33; }
.sol-banner-card--suite .sol-banner-dsc { color:rgba(255,255,255,.6); }
.sol-banner-card--suite .prod-link { color:#c9bdfa; }
.sol-banner-card--suite .suite-foot { display:flex; align-items:center; justify-content:space-between; margin-top:auto; }
.sol-banner-card--suite .suite-foot-lbl { font-size:11px; color:rgba(255,255,255,.4); }

/* ============================================================
   CARTES SOLUTIONS — mise en valeur animée de l'activité
   ============================================================ */
/* Zoom lent continu sur les vraies captures produit (Ken Burns) */
@keyframes bannerKenBurns {
  0%   { transform: scale(1) translate(0,0); }
  50%  { transform: scale(1.09) translate(-1.2%,-1%); }
  100% { transform: scale(1) translate(0,0); }
}
img.sol-banner-img { animation: bannerKenBurns 16s ease-in-out infinite; }
.sol-banner-card:hover img.sol-banner-img { animation-play-state: paused; transform: scale(1.1); transition: transform .6s cubic-bezier(.25,.1,.25,1); }

/* Dégradé "vivant" pour les cartes sans capture (Payroll / Business / POS) */
@keyframes bannerGradientDrift {
  0%   { background-position: 0% 30%; }
  50%  { background-position: 100% 70%; }
  100% { background-position: 0% 30%; }
}
.sol-banner-img.sol-banner-gradient { background-size: 220% 220%; animation: bannerGradientDrift 9s ease-in-out infinite; }
.sol-banner-card:hover .sol-banner-img.sol-banner-gradient { animation-play-state: paused; }

/* Halo décoratif flottant, superposé aux cartes en dégradé, pour suggérer de l'activité */
.sol-banner-orb { position:absolute; border-radius:50%; background:rgba(255,255,255,.16); filter:blur(2px); pointer-events:none; animation: orbFloat 7s ease-in-out infinite alternate; }
.sol-banner-orb.o1 { width:90px; height:90px; top:-20px; right:10%; }
.sol-banner-orb.o2 { width:60px; height:60px; bottom:10px; left:14%; animation-delay:-3s; background:rgba(255,255,255,.1); }

/* Pastille "activité" pulsée sur le badge de catégorie, sur toutes les cartes */
.sol-banner-badge { display:inline-flex; align-items:center; gap:6px; }
.sol-banner-badge .live-dot { width:6px; height:6px; border-radius:50%; background:var(--c-accent); flex-shrink:0; animation: pulse 2s ease-in-out infinite; }





:root{--c-brand:#0eb69d;--c-brand-h:#0a9a85;}
.h1,.h2,.h3,.nav-logo,.feat-ttl,.prod-name,.price-name,.cta-title,.faq-q,.eyebrow,.modal-title{font-family:'Montserrat',system-ui,sans-serif!important;}
.btn--primary{background:var(--c-brand)!important;}.btn--primary:hover{background:var(--c-brand-h)!important;}
.nav-logo-mark{background:linear-gradient(135deg,#0eb69d,#21c5aa)!important;border-radius:10px!important;}
#cta-band{background:linear-gradient(130deg,#111820,#0eb69d 50%,#21c5aa)!important;}
.feat-card::after{background:linear-gradient(90deg,#0eb69d,#81e8e4)!important;}
.price-card.feat{background:linear-gradient(135deg,#0eb69d,#0a9a85)!important;}
footer{background:#111820!important;}

/* ============================================================
   CHARTE VERTU ENTERPRISE SYSTEMS — logo, typographie, navbar
   ============================================================ */
:root { --font-disp:'Montserrat', system-ui, sans-serif; --font-sans:'Montserrat', system-ui, sans-serif; }
body { font-family:'Montserrat', system-ui, sans-serif; }
.nav-logo { margin-right:28px; }
.nav-logo img { height:40px; width:auto; display:block; }
.logo-on-dark { display:none !important; }
[data-theme="dark"] .logo-on-light { display:none !important; }
[data-theme="dark"] .logo-on-dark { display:block !important; }
#navbar { background:rgba(255,255,255,.94); }
.nav-item > button.nav-trig, .nav-links > li > a { font-family:'Montserrat',sans-serif; font-size:13.5px; font-weight:600; color:#111820; }
[data-theme="dark"] .nav-item > button.nav-trig, [data-theme="dark"] .nav-links > li > a { color:var(--c-text); }
.nav-caret { opacity:.75; margin-top:0; }
.nav-links > li > a.nav-eco { color:var(--c-brand); }
.footer-logo { height:46px; width:auto; display:block; }
.footer-contact a { color:#81e8e4; }
.footer-contact a:hover { color:#fff; }
/* ============================================================
   PAGES INTERNES — ajouts (sous-menus, fiches produits, ressources)
   ============================================================ */
[id] { scroll-margin-top: calc(var(--nav-h) + 70px); }
.nav-item.active > .nav-trig, .nav-links > li > a.active { color: var(--c-brand); font-weight: 600; }
.mega-panel.small a.current, .mega-col a.current { color: var(--c-brand); font-weight: 700; }
.nav-links > li > a { display:flex; align-items:center; padding:7px 11px; border-radius:var(--radius-sm); font-size:13px; font-weight:500; color:var(--c-text2); white-space:nowrap; transition:all .15s; }
.nav-links > li > a:hover { color:var(--c-text); background:var(--c-surface2); }

.page-subnav { position: sticky; top: var(--nav-h); z-index: 900; background: rgba(255,255,255,.92); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid var(--c-border); }
[data-theme="dark"] .page-subnav { background: rgba(15,22,40,.92); }
.page-subnav .container { display:flex; gap:6px; overflow-x:auto; padding-top:10px; padding-bottom:10px; scrollbar-width:none; }
.page-subnav .container::-webkit-scrollbar { display:none; }
.page-subnav a { white-space:nowrap; padding:7px 15px; border-radius:100px; font-size:13px; font-weight:600; color:var(--c-text2); border:1px solid transparent; transition:all .18s; }
.page-subnav a:hover { color:var(--c-brand); }
.page-subnav a.on { background:var(--c-brand-soft); color:var(--c-brand); border-color:rgba(14,182,157,.2); }

.page-hero .h1 { font-size: clamp(34px, 4vw, 52px); margin-bottom: 20px; }
.page-hero .lead { margin-bottom: 8px; }
.page-hero .hero-cta { margin-top: 30px; }
.page-hero-name { font-family:'Montserrat',sans-serif; font-size:15px; font-weight:800; letter-spacing:-.01em; color:var(--c-text2); margin-bottom:14px; }
.shot-frame { border-radius:18px; overflow:hidden; border:1px solid var(--c-border2); box-shadow:var(--shadow-xl); background:var(--c-surface); transform: perspective(1200px) rotateY(-4deg) rotateX(2deg); transition: transform .5s ease; }
.shot-frame:hover { transform:none; }
.shot-frame img { display:block; width:100%; height:auto; }
.shot-frame .sol-banner { height:360px; }
.shot-frame .sol-banner-name { font-size:28px; }

.split-row { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.split-row + .split-row { margin-top:88px; }
.split-row.rev > .split-visual { order:-1; }
.split-visual { background:linear-gradient(145deg, var(--c-brand-soft), var(--c-accent-soft)); border:1px solid var(--c-border); border-radius:var(--radius-xl); padding:30px; }
.split-num { font-family:'Montserrat',sans-serif; font-size:12px; font-weight:800; letter-spacing:.1em; color:var(--c-brand); margin-bottom:10px; }
.check-list { list-style:none; display:flex; flex-direction:column; gap:10px; margin-top:22px; }
.check-list li { display:flex; gap:12px; font-size:14.5px; color:var(--c-text2); line-height:1.6; }
.check-list li::before { content:'✓'; color:var(--c-accent); font-weight:800; flex-shrink:0; }

.article-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:48px; }
.article-card { display:flex; flex-direction:column; background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-lg); overflow:hidden; transition:all .25s; color:inherit; }
.article-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); border-color:rgba(14,182,157,.2); }
.article-thumb { height:150px; position:relative; display:flex; align-items:flex-end; padding:16px; font-size:34px; }
.article-cat { position:absolute; top:14px; left:14px; background:rgba(255,255,255,.94); color:#0f172a; font-family:'Montserrat',sans-serif; font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; padding:5px 11px; border-radius:100px; }
.article-body { padding:22px; display:flex; flex-direction:column; flex:1; }
.article-ttl { font-family:'Montserrat',sans-serif; font-size:16px; font-weight:800; color:var(--c-text); line-height:1.35; margin-bottom:10px; }
.article-dsc { font-size:13.5px; color:var(--c-text3); line-height:1.65; margin-bottom:16px; }
.article-meta { margin-top:auto; display:flex; justify-content:space-between; align-items:center; font-size:12px; color:var(--c-text3); padding-top:14px; border-top:1px solid var(--c-border); }
.article-meta .prod-link { font-size:12.5px; }
.news-list { display:flex; flex-direction:column; gap:14px; margin-top:48px; }
.news-item { display:grid; grid-template-columns:120px 1fr auto; gap:24px; align-items:center; background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-lg); padding:22px 26px; transition:all .2s; }
.news-item:hover { box-shadow:var(--shadow-md); transform:translateX(4px); }
.news-tag { font-family:'Montserrat',sans-serif; font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; padding:6px 10px; border-radius:8px; text-align:center; }
.news-ttl { font-family:'Montserrat',sans-serif; font-size:15.5px; font-weight:800; color:var(--c-text); margin-bottom:4px; }
.news-dsc { font-size:13.5px; color:var(--c-text3); line-height:1.6; }
.news-date { font-size:12px; color:var(--c-text3); white-space:nowrap; }

.case-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:48px; }
.case-card { background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-xl); overflow:hidden; display:flex; flex-direction:column; transition:all .25s; }
.case-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.case-head { padding:26px 26px 22px; color:#fff; }
.case-sol { font-family:'Montserrat',sans-serif; font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; opacity:.85; margin-bottom:8px; }
.case-client { font-family:'Montserrat',sans-serif; font-size:20px; font-weight:800; letter-spacing:-.02em; }
.case-meta { font-size:12.5px; opacity:.8; margin-top:4px; }
.case-body { padding:24px 26px 26px; display:flex; flex-direction:column; gap:16px; flex:1; }
.case-lbl { font-family:'Montserrat',sans-serif; font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; color:var(--c-text3); margin-bottom:4px; }
.case-txt { font-size:13.5px; color:var(--c-text2); line-height:1.65; }
.case-result { margin-top:auto; background:var(--c-accent-soft); border-radius:var(--radius-md); padding:14px 16px; font-size:13.5px; font-weight:600; color:var(--c-text); }

.country-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:40px; }
.country-card { background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-lg); padding:20px; display:flex; gap:14px; align-items:flex-start; }
.country-flag { font-size:26px; line-height:1; }
.country-name { font-family:'Montserrat',sans-serif; font-size:14.5px; font-weight:800; color:var(--c-text); }
.country-sols { font-size:12.5px; color:var(--c-text3); margin-top:3px; line-height:1.5; }

.model-flow { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; gap:14px; align-items:stretch; margin-top:48px; }
.model-step { background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-xl); padding:28px 24px; text-align:center; }
.model-step.hl { background:var(--c-brand); color:#fff; border-color:var(--c-brand); }
.model-step.hl .model-ttl, .model-step.hl .model-dsc { color:#fff; }
.model-ico { font-size:28px; margin-bottom:12px; }
.model-ttl { font-family:'Montserrat',sans-serif; font-size:16px; font-weight:800; color:var(--c-text); margin-bottom:8px; }
.model-dsc { font-size:13px; color:var(--c-text3); line-height:1.65; }
.model-arrow { display:flex; align-items:center; font-size:22px; color:var(--c-brand); }

.form-card { background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-xl); padding:36px; box-shadow:var(--shadow-md); }
.form-card .form-success { padding:40px 0; }
.pillar-grid--4 { grid-template-columns:repeat(4,1fr); }
@media(max-width:1024px){ .pillar-grid--4 { grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){ .pillar-grid--4 { grid-template-columns:1fr; } }
.value-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:48px; }

@media(max-width:1024px){
  .article-grid, .case-grid { grid-template-columns:repeat(2,1fr); }
  .country-grid, .value-grid { grid-template-columns:repeat(2,1fr); }
  .model-flow { grid-template-columns:1fr; }
  .model-arrow { justify-content:center; transform:rotate(90deg); }
}
@media(max-width:900px){
  .split-row { grid-template-columns:1fr; gap:32px; }
  .split-row.rev > .split-visual { order:0; }
  .news-item { grid-template-columns:1fr; gap:10px; }
  .news-tag { justify-self:start; }
}
@media(max-width:640px){
  .article-grid, .case-grid, .country-grid, .value-grid { grid-template-columns:1fr; }
  .shot-frame .sol-banner { height:240px; }
  .form-card { padding:26px; }
}

/* ============================================================
   CHARTE VERTU — vert d'eau #0EB69D + anthracite #111820
   ============================================================ */
:root { --c-brand:#0eb69d !important; --c-brand-h:#0a9a85 !important; --c-brand-soft:#dcf5f0; --c-ink:#111820; }
[data-theme="dark"] { --c-brand-soft: rgba(14,182,157,.16); }
.btn--primary { background:#0a9a85 !important; color:#fff; box-shadow:0 2px 12px rgba(14,182,157,.35); }
.btn--primary:hover { background:#087f6e !important; box-shadow:0 8px 24px rgba(14,182,157,.42); }
.btn--white { color:#111820; }
#cta-band { background: linear-gradient(125deg, #111820 0%, #0d5c52 48%, #0eb69d 100%) !important; }
footer { background:#111820 !important; }
.hero-title .accent, .accent { color:#0eb69d; }
.platform-center { background:#111820; box-shadow:0 20px 50px rgba(17,24,32,.35); }
.platform-node:hover { color:#0eb69d; }
.chip.active { background:#111820; border-color:#111820; }
.page-subnav a.on { color:#0a9a85; }
.model-step.hl { background:#111820; border-color:#111820; }
.sec-note { border-color:rgba(14,182,157,.28); }
.eam-map img, #vmap-wrap > img { filter: hue-rotate(-42deg) saturate(.85); }
.eam-tt-btn, .vtt-btn { background:linear-gradient(90deg,#0a9a85,#21c5aa) !important; }
/* textes en vert : teinte plus soutenue pour la lisibilité */
.eyebrow, .prod-link, .partner-badge-line, .journey-num, .split-num, .why-num, .detail-ico, .res-status, .btn--outline:hover, .mega-col a:hover, .mega-panel.small a:hover, .nav-links > li > a.nav-eco, .nav-item.active > .nav-trig, .page-subnav a.on, .faq-q[aria-expanded="true"], .wstat-num, .about-stat-num { color:#0a8f7b; }
.eyebrow::before { background:#0eb69d; }
[data-theme="dark"] .eyebrow, [data-theme="dark"] .prod-link, [data-theme="dark"] .wstat-num, [data-theme="dark"] .nav-links > li > a.nav-eco { color:#21c5aa; }
[data-theme="dark"] .platform-center { background:#0eb69d; }

/* ============ HERO — V1 : révélation éditoriale ============ */
#hero .hero-left { animation: none; }
#hero .hero-title .w { display:inline-block; overflow:hidden; vertical-align:top; padding-bottom:.08em; }
#hero .hero-title .w > span { display:inline-block; transform:translateY(105%);
  animation: wordUp .9s cubic-bezier(.16,1,.3,1) forwards;
  animation-delay: calc(.15s + var(--i) * 45ms); }
@keyframes wordUp { to { transform:none; } }
#hero .hero-title .accent { background:linear-gradient(#0eb69d,#0eb69d) 0 100% / 0 3px no-repeat;
  -webkit-box-decoration-break:clone; box-decoration-break:clone;
  animation: accentLine .8s 1.1s cubic-bezier(.4,0,.2,1) forwards; }
@keyframes accentLine { to { background-size:100% 3px; } }
#hero .hero-sub, #hero .hero-cta, #hero .hero-stats { animation-name: fadeUpBlur; }
@keyframes fadeUpBlur { from { opacity:0; transform:translateY(16px); filter:blur(6px); } to { opacity:1; transform:none; filter:none; } }

/* ============ HERO — V2 : écosystème vivant ============ */
.eco-links { position:absolute; inset:0; width:100%; height:100%; z-index:1; pointer-events:none; overflow:visible; }
.eco-links path { fill:none; stroke:var(--c-border2); stroke-width:.35; stroke-dasharray:1; stroke-dashoffset:1;
  animation: linkDraw .9s cubic-bezier(.4,0,.2,1) forwards; animation-delay: calc(.4s + var(--i) * 70ms);
  transition: stroke .2s, stroke-width .2s; }
.eco-links path.flow { stroke:#0eb69d; stroke-width:.7; stroke-linecap:round; stroke-dasharray:.06 .94; opacity:0;
  animation: flow 2.8s linear infinite, fadeIn .4s forwards;
  animation-delay: calc(1.4s + var(--i) * 350ms), calc(1.4s + var(--i) * 70ms); }
.eco-links path.on { stroke:#0eb69d; stroke-width:.5; }
@keyframes linkDraw { to { stroke-dashoffset:0; } }
@keyframes flow { from { stroke-dashoffset:1; } to { stroke-dashoffset:0; } }
@keyframes fadeIn { to { opacity:1; } }

/* Correctifs perf : flottement sans recalcul de mise en page, halo à la place du box-shadow animé */
@keyframes nodeFloatT { 0%,100% { translate:0 0; } 50% { translate:0 -6px; } }
#hero .platform-node { animation-name: diagramPop, nodeFloatT; }
#hero .platform-center { animation: diagramPop .6s .15s cubic-bezier(.34,1.56,.64,1) both; }
#hero .platform-center::after { content:''; position:absolute; inset:0; border-radius:50%; border:2px solid #0eb69d; opacity:0;
  animation: halo 2.8s 1s ease-out infinite; }
@keyframes halo { from { transform:scale(1); opacity:.55; } to { transform:scale(1.75); opacity:0; } }
#hero .hero-right.paused *, #hero .hero-right.paused *::before, #hero .hero-right.paused *::after { animation-play-state:paused !important; }

@media (max-width:720px) { .eco-links { display:none; } }
@media (prefers-reduced-motion: reduce) {
  #hero *, #hero *::before, #hero *::after { animation:none !important; opacity:1 !important; }
  #hero .hero-title .w > span { transform:none; }
  .eco-links path { stroke-dashoffset:0; }
  .eco-links path.flow, #hero .platform-center::after { display:none; }
}

/* ============ EDUCATED — capture affichée en entier dans les cartes (logo visible) ============ */
.sol-banner:has(> img[alt="Aperçu EDUCATED"]) { background:#ffffff; }
img.sol-banner-img[alt="Aperçu EDUCATED"] { object-fit:contain; object-position:center top; animation:none; transform:none; }
.sol-banner-card:hover img.sol-banner-img[alt="Aperçu EDUCATED"] { transform:scale(1.02); }
.sol-banner:has(> img[alt="Aperçu EDUCATED"]) .sol-banner-overlay { background:linear-gradient(to top, rgba(6,10,26,.85) 0%, rgba(6,10,26,.2) 38%, transparent 60%); }
.sol-banner:has(> img[alt="Aperçu EDUCATED"]) .sol-banner-badge { left:auto; right:14px; }
/* EDUCATED v6 — capture du tableau de bord v6 (actualité + article) */
.mag-card[data-open="educated-v6"] .mag-media { background:#f6f7fb; }
.mag-card[data-open="educated-v6"] .mag-media img { object-fit:cover; object-position:center top; }
.mag-card[data-open="educated-v6"]:hover .mag-media img { transform:scale(1.03); }
.mag-card[data-open="educated-v6"] .mag-pill { left:auto; right:16px; }
.mag-cover.mag-cover img[src="assets/educated-v6.jpg"] { object-position:center top; }

/* ============ HERO — noyau : V du logo VERTU en 3D ============ */
#hero .platform-center { width:136px; height:136px; flex-direction:column; gap:6px; perspective:520px; }
#hero .pc-name { font-size:12.5px; font-weight:800; letter-spacing:.14em; line-height:1; }
#hero .v3d { position:relative; width:40px; height:56px; transform-style:preserve-3d;
  animation: vIntro 1.3s .25s cubic-bezier(.16,1,.3,1) both, vTurn 7s 3s cubic-bezier(.65,0,.35,1) infinite; }
#hero .v3d i { position:absolute; inset:0; background:#0eb69d; backface-visibility:visible;
  -webkit-mask:url(../vertu-v.png) center/contain no-repeat; mask:url(../vertu-v.png) center/contain no-repeat; }
#hero .v3d i.face { background:linear-gradient(140deg,#ffffff 0%,#ffffff 45%,#d6fbf3 70%,#9eeedd 100%); }
#hero .v3d i.mid { background:#0a7f6e; }
[data-theme="dark"] #hero .v3d i { background:#0a6f61; }
[data-theme="dark"] #hero .v3d i.mid { background:#08574c; }
[data-theme="dark"] #hero .v3d i.face { background:linear-gradient(140deg,#ffffff 0%,#ffffff 45%,#d6fbf3 70%,#9eeedd 100%); }
@keyframes vIntro { from { opacity:0; transform:rotateY(-540deg) scale(.35); } to { opacity:1; transform:rotateY(0) scale(1); } }
@keyframes vTurn { 0% { transform:rotateY(0); } 32% { transform:rotateY(360deg); } 100% { transform:rotateY(360deg); } }

/* ============ ACCUEIL — bandeau 110+ (constellation du logo) + CTA ============ */
#cta-band.impact-band { padding:0; }
.impact-inner { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; padding:84px 0; position:relative; z-index:1; }
.impact-inner > * { min-width:0; }
.impact-kicker { font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:#7ff0dc; margin-bottom:10px; }
.impact-num { font-size:clamp(72px,11vw,132px); font-weight:800; line-height:.95; letter-spacing:-.045em; color:#fff; font-variant-numeric:tabular-nums; }
.impact-num sup { font-size:.45em; color:#7ff0dc; vertical-align:.9em; margin-left:.04em; }
.impact-lbl { font-size:16px; color:rgba(255,255,255,.75); max-width:36ch; margin-top:10px; }
.impact-cta { margin-top:34px; transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); }
.impact-cta.wait { opacity:0; transform:translateY(16px); }
.impact-cta .cta-title { text-align:left; margin-bottom:8px; font-size:clamp(24px,2.8vw,34px); }
.impact-cta .cta-sub { text-align:left; margin:0 0 24px; max-width:46ch; font-size:15px; }
.impact-cta .cta-btns { justify-content:flex-start; }
.constel { width:100%; max-width:480px; aspect-ratio:1/1; margin-inline:auto; display:block; }
@media (max-width:900px) { .impact-inner { grid-template-columns:1fr; padding:64px 0; } .constel { max-width:340px; } }
@media (prefers-reduced-motion: reduce) { .impact-cta { transition:none; } }

/* ============ EDUCATED — capture complète cliquable vers educated.tn ============ */
.shot-link { display:block; text-decoration:none; color:inherit; }
.shot-link .shot-frame { background:#ffffff; }
.shot-link:hover .shot-frame { transform:none; box-shadow:var(--shadow-xl), 0 0 0 2px rgba(14,182,157,.45); }
.shot-visit { display:inline-flex; align-items:center; gap:6px; margin-top:14px; font-size:13px; font-weight:700; color:#0a8f7b; transition:gap .2s; }
[data-theme="dark"] .shot-visit { color:#21c5aa; }
.shot-link:hover .shot-visit { gap:10px; }
.shot-link:focus-visible { outline:2px solid #0eb69d; outline-offset:6px; border-radius:18px; }
.shot-link--dark .shot-frame { background:#0b0f1e; }
/* AcurGym — capture complète dans les cartes : logo et titre visibles */
img.sol-banner-img[alt="Aperçu ACURGYM"] { object-position:left top; }
/* AcurTime — capture complète dans les cartes (hors carte « Suite RH ») */
img.sol-banner-img[src="assets/acurtime-full.jpg"] { object-position:left top; }

/* ============ CARTES PRODUITS — dimensions homogènes (bannières « compact » alignées sur les autres) ============ */
.sol-banner-card.compact .sol-banner { height:190px; }
.sol-banner-card.compact .sol-banner-name { font-size:23px; }
.prod-grid { align-items:stretch; }
.prod-grid > .sol-banner-card { height:100%; }

/* ============ VALEURS (accueil, section internationale) — icônes VERTU à la place des emojis ============ */
.val-ico { width:44px; height:44px; margin:0 auto 10px; border-radius:12px; display:grid; place-items:center; color:#7ff0dc;
  background:linear-gradient(145deg, rgba(14,182,157,.20), rgba(14,182,157,.04)); border:1px solid rgba(127,240,220,.22);
  transition:border-color .3s, box-shadow .3s, transform .35s cubic-bezier(.16,1,.3,1); }
.val-ico svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; overflow:visible; }
.val-ico .acc { stroke:#ffffff; }
div:hover > .val-ico { border-color:rgba(127,240,220,.6); box-shadow:0 0 0 4px rgba(14,182,157,.12), 0 10px 24px rgba(14,182,157,.18); transform:translateY(-2px); }
div:hover > .val-ico .draw { stroke-dasharray:1; animation:valDraw .7s cubic-bezier(.16,1,.3,1); }
@keyframes valDraw { from { stroke-dashoffset:1; } to { stroke-dashoffset:0; } }
@media (prefers-reduced-motion: reduce) { div:hover > .val-ico .draw { animation:none; } .val-ico { transition:none; } }

/* ============ ICÔNES VERTU — remplacent les emojis sur tout le site ============ */
.detail-ico svg, .sector-ico svg, .contact-ico svg, .sec-ico svg, .res-ico svg, .model-ico svg { width:22px; height:22px; color:#0a8f7b; }
[data-theme="dark"] .detail-ico svg, [data-theme="dark"] .sector-ico svg, [data-theme="dark"] .contact-ico svg,
[data-theme="dark"] .sec-ico svg, [data-theme="dark"] .res-ico svg, [data-theme="dark"] .model-ico svg { color:#21c5aa; }
.sec-ico.v-ico, .res-ico.v-ico, .model-ico.v-ico { width:42px; height:42px; border-radius:11px; background:var(--c-brand-soft); display:flex; align-items:center; justify-content:center; font-size:0; }
.res-ico.v-ico, .model-ico.v-ico { margin-left:auto; margin-right:auto; }
.model-step.hl .model-ico.v-ico { background:rgba(255,255,255,.1); }
.model-step.hl .model-ico svg { color:#7ff0dc; }
.form-success-ico svg { width:52px; height:52px; color:#0eb69d; stroke-width:1.5; }
.forwhom-pill svg { width:17px; height:17px; color:#0a8f7b; flex-shrink:0; }
[data-theme="dark"] .forwhom-pill svg { color:#21c5aa; }
.pv-prod svg { width:15px; height:15px; flex-shrink:0; opacity:.9; }
#dm-toggle svg { width:16px; height:16px; }

/* ============ TÉMOIGNAGE VIDÉO (Facebook) — pages produits ============ */
.vtesti { display:grid; grid-template-columns:minmax(0,340px) minmax(0,1fr); gap:44px; align-items:center; max-width:980px; margin:44px auto 0;
  background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-xl); padding:28px; box-shadow:var(--shadow-md); }
.vtesti-media { position:relative; display:block; aspect-ratio:4/5; border-radius:18px; overflow:hidden; background:#111820; }
.vtesti-media img { width:100%; height:100%; object-fit:cover; object-position:60% 45%; display:block; transition:transform .6s cubic-bezier(.16,1,.3,1); }
.vtesti-media::after { content:''; position:absolute; inset:0; background:linear-gradient(to top, rgba(17,24,32,.55), transparent 45%); }
.vtesti-media:hover img { transform:scale(1.04); }
.vtesti-play { position:absolute; left:50%; top:50%; z-index:2; width:68px; height:68px; margin:-34px 0 0 -34px; border-radius:50%; display:grid; place-items:center;
  background:rgba(255,255,255,.92); box-shadow:0 10px 30px rgba(0,0,0,.3); transition:transform .35s cubic-bezier(.16,1,.3,1), background .2s; }
.vtesti-play svg { width:26px; height:26px; fill:#0a9a85; margin-left:3px; }
.vtesti-media:hover .vtesti-play { transform:scale(1.08); background:#fff; }
.vtesti-tag { position:absolute; left:14px; bottom:14px; z-index:2; display:inline-flex; align-items:center; gap:6px; padding:6px 11px; border-radius:100px;
  background:rgba(17,24,32,.72); color:#fff; font-size:11px; font-weight:700; letter-spacing:.04em; backdrop-filter:blur(6px); }
.vtesti-tag::before { content:''; width:7px; height:7px; border-radius:50%; background:#1877f2; }
.vtesti-kicker { font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:#0a8f7b; margin-bottom:8px; }
[data-theme="dark"] .vtesti-kicker { color:#21c5aa; }
.vtesti-name { font-size:24px; font-weight:800; letter-spacing:-.02em; color:var(--c-text); line-height:1.2; }
.vtesti-role { font-size:13.5px; color:var(--c-text3); margin-top:4px; }
.vtesti-sum { font-size:15px; color:var(--c-text2); line-height:1.75; margin:18px 0 16px; max-width:58ch; }
.vtesti-points { list-style:none; display:grid; gap:9px; margin-bottom:24px; }
.vtesti-points li { position:relative; padding-left:26px; font-size:14px; color:var(--c-text2); line-height:1.55; }
.vtesti-points li::before { content:''; position:absolute; left:0; top:.2em; width:16px; height:16px; border-radius:50%; background:var(--c-brand-soft);
  box-shadow:inset 0 0 0 1px rgba(14,182,157,.35); }
.vtesti-points li::after { content:''; position:absolute; left:5px; top:calc(.2em + 4px); width:5px; height:8px; border:solid #0a9a85; border-width:0 2px 2px 0; transform:rotate(45deg); }
.vtesti-foot { display:flex; align-items:center; flex-wrap:wrap; gap:14px 18px; }
.vtesti-src { font-size:12px; color:var(--c-text3); }
@media (max-width:820px) { .vtesti { grid-template-columns:1fr; gap:26px; padding:20px; } .vtesti-media { max-width:360px; width:100%; margin-inline:auto; } }
/* ============ RÉSEAUX — liens Facebook par produit + Google Play ============ */
.social-follow { display:inline-flex; align-items:center; gap:10px; margin-top:18px; font-size:13.5px; font-weight:700; color:var(--c-text2); transition:color .2s; }
.social-follow .sf-ico { width:30px; height:30px; border-radius:50%; background:var(--c-brand-soft); color:#0a8f7b; display:grid; place-items:center; transition:background .2s, color .2s; }
.social-follow .sf-ico svg { width:16px; height:16px; fill:currentColor; }
.social-follow:hover { color:var(--c-text); }
.social-follow:hover .sf-ico { background:#1877f2; color:#fff; }
[data-theme="dark"] .social-follow .sf-ico { color:#21c5aa; }
.vtesti-more { text-align:center; margin-top:18px; }
.footer-grid { grid-template-columns:2fr 1fr 1fr 1.1fr; }
@media (max-width:1024px) { .footer-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:768px) { .footer-grid { grid-template-columns:1fr; } }
.ft-social { display:inline-flex; align-items:center; gap:10px; }
.ft-ico { width:26px; height:26px; border-radius:50%; background:rgba(255,255,255,.08); display:grid; place-items:center; color:#81e8e4; transition:background .2s, color .2s; flex-shrink:0; }
.ft-ico svg { width:14px; height:14px; fill:currentColor; }
.ft-ico--play svg { fill:none; stroke:currentColor; stroke-width:2; stroke-linejoin:round; width:13px; height:13px; }
.ft-social:hover .ft-ico { background:#0eb69d; color:#fff; }
.contact-ico svg.ci-fb { fill:currentColor; stroke:none; }
.contact-ico svg.ci-play { fill:none; stroke:currentColor; stroke-width:1.75; stroke-linejoin:round; }
.contact-links { display:flex; flex-wrap:wrap; gap:4px 14px; }
.contact-val a { color:inherit; text-decoration:underline; text-decoration-color:rgba(14,182,157,.45); text-underline-offset:3px; }
.contact-val a:hover { color:#0a8f7b; }

/* Variante paysage (vidéo d'événement, format 16:9) */
.vtesti--wide { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:36px; }
.vtesti--wide .vtesti-media { aspect-ratio:712/316; border-radius:14px; }
.vtesti--wide .vtesti-media img { object-position:center; }
@media (max-width:820px) { .vtesti--wide { grid-template-columns:1fr; } .vtesti--wide .vtesti-media { max-width:none; } }
/* Carrousel de témoignages : défilement natif (glisser au doigt), flèches et points */
.vtesti-slider { max-width:980px; margin:44px auto 0; }
.vtesti-track { display:grid; grid-auto-flow:column; grid-auto-columns:100%; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; padding:4px 2px 30px; }
.vtesti-track::-webkit-scrollbar { display:none; }
.vtesti-track > .vtesti { margin:0; scroll-snap-align:center; }
.vtesti-nav { display:flex; align-items:center; justify-content:center; gap:16px; }
.vtesti-nav[hidden] { display:none; }
.vtesti-arrow { width:42px; height:42px; border-radius:50%; border:1.5px solid var(--c-border2); background:var(--c-surface); color:var(--c-text); display:grid; place-items:center; transition:border-color .2s, color .2s, transform .2s; }
.vtesti-arrow:hover { border-color:#0eb69d; color:#0a8f7b; }
.vtesti-arrow:active { transform:scale(.95); }
.vtesti-arrow:disabled { opacity:.35; pointer-events:none; }
.vtesti-arrow svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.vtesti-dots { display:flex; gap:8px; }
.vtesti-dot { width:8px; height:8px; border-radius:5px; border:none; padding:0; background:var(--c-border2); transition:width .3s, background .3s; }
.vtesti-dot.on { width:26px; background:#0eb69d; }
@media (prefers-reduced-motion: reduce) { .vtesti-track { scroll-behavior:auto; } }

/* ============ RÉFÉRENCES — clients phares (accueil, pages produits) + liste complète (page Références) ============ */
.trust-grid.trust-grid--flag { display:grid; grid-template-columns:repeat(6,1fr); border-top:1px solid var(--c-border); border-left:1px solid var(--c-border); margin-top:6px; }
.trust-grid.trust-grid--four { grid-template-columns:repeat(4,1fr); }
.trust-grid--flag .ref-logo { border-right:1px solid var(--c-border); border-bottom:1px solid var(--c-border); height:104px; display:flex; align-items:center; justify-content:center; padding:18px; background:#fff; }
.trust-grid--flag .ref-logo img { max-width:100%; max-height:56px; object-fit:contain; filter:grayscale(1); opacity:.7; transition:filter .3s, opacity .3s, transform .3s; }
.trust-grid--flag .ref-logo:hover img { filter:none; opacity:1; transform:scale(1.06); }
@media (max-width:1024px) { .trust-grid.trust-grid--flag { grid-template-columns:repeat(4,1fr); } }
@media (max-width:560px) { .trust-grid.trust-grid--flag, .trust-grid.trust-grid--four { grid-template-columns:repeat(2,1fr); } }
/* Défilement des références rétabli : là où des bandeaux défilants suivent, ils remplacent la grille fixe */
.trust-grid--flag:has(~ .marquee) { display:none; }
.trust-more { display:flex; justify-content:center; margin-top:22px; }
/* La liste complète vit désormais sur la page Références */
#nos-references, .page-subnav a[href="#nos-references"] { display:none; }
.ref-list { margin-top:52px; }
.ref-list-head { text-align:center; margin-bottom:22px; }
.ref-list-head p { color:var(--c-text3); font-size:15px; }
.ref-list .ss-chips { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin:0 0 26px; }
.ref-list .ss-chip { padding:8px 15px; border-radius:100px; border:1.5px solid var(--c-border2); background:var(--c-surface); font-family:inherit; font-size:12.5px; font-weight:700; color:var(--c-text2); cursor:pointer; transition:all .18s; }
.ref-list .ss-chip:hover { border-color:#0eb69d; color:#0a8f7b; }
.ref-list .ss-chip.on { background:#111820; border-color:#111820; color:#fff; }
[data-theme="dark"] .ref-list .ss-chip.on { background:#0eb69d; border-color:#0eb69d; color:#04201c; }
.ref-list .ss-chip small { opacity:.6; margin-left:4px; }
.ref-list .ss-wall { display:grid; grid-template-columns:repeat(6,1fr); gap:12px; }
.ref-list .ref-logo { background:#fff; border:1px solid var(--c-border); border-radius:14px; height:92px; display:flex; align-items:center; justify-content:center; padding:14px; transition:transform .25s, box-shadow .25s; }
.ref-list .ref-logo:hover { transform:translateY(-3px); box-shadow:0 10px 26px rgba(17,24,32,.1); }
.ref-list .ref-logo img { max-width:100%; max-height:62px; object-fit:contain; }
.ref-list .ref-logo.is-hidden, .ref-list .ss-wall:not(.expanded) .ref-logo.is-extra { display:none; }
.ref-list .ss-more { display:flex; justify-content:center; margin-top:24px; }
@media (max-width:1024px) { .ref-list .ss-wall { grid-template-columns:repeat(4,1fr); } }
@media (max-width:640px) { .ref-list .ss-wall { grid-template-columns:repeat(2,1fr); } }

/* ============ HERO — V 3D sans libellé, face avant en réseau vivant ============ */
#hero .platform-center .v3d { width:58px; height:80px; }
#hero .v3d .v3d-net { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
@media (max-width:520px) { #hero .platform-center .v3d { width:46px; height:64px; } }

/* ============ ACCUEIL (refonte) — solutions par domaine, pourquoi, preuves, partner network, CTA final ============ */
#solutions { background:var(--c-bg); }
.prod-grid.dom-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin-top:48px; }
.dom-card .sol-banner { display:block; height:190px; text-decoration:none; color:inherit; }
.dom-card .sol-banner-dsc { min-height:3.3em; }
.dom-prods { display:flex; flex-wrap:wrap; gap:8px; margin-top:auto; padding-top:16px; border-top:1px solid var(--c-border); position:relative; z-index:5; }
.dom-prod { display:inline-flex; align-items:center; gap:6px; padding:7px 13px; border-radius:100px; border:1.5px solid var(--c-border2); font-size:13px; font-weight:800; color:var(--c-text); transition:border-color .2s, color .2s, background .2s, gap .2s; }
.dom-prod span { color:#0a8f7b; }
.dom-prod:hover { border-color:#0eb69d; color:#0a8f7b; background:var(--c-brand-soft); gap:9px; }
[data-theme="dark"] .dom-prod:hover, [data-theme="dark"] .dom-prod span { color:#21c5aa; }
.dom-prod.dom-prod--primary { background:#0a9a85; border-color:#0a9a85; color:#fff; }
.dom-prod.dom-prod--primary span, .dom-prod.dom-prod--primary:hover { color:#fff; }
.dom-prod.dom-prod--primary:hover { background:#087f6e; border-color:#087f6e; }
.dom-card--cta .sol-banner { background:linear-gradient(135deg,#111820 0%,#0d5c52 60%,#0eb69d 100%); }
.dom-card--cta .sol-banner-name { font-size:24px; }
.dom-cta-v { position:absolute; right:-10px; top:-14px; width:150px; height:210px; opacity:.18; background:#fff;
  -webkit-mask:url(../vertu-v.png) center/contain no-repeat; mask:url(../vertu-v.png) center/contain no-repeat; }
@media (max-width:1024px) { .prod-grid.dom-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px) { .prod-grid.dom-grid { grid-template-columns:1fr; } }

.why4 { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin-top:44px; }
.why4 .detail-card { padding:28px 24px; }
@media (max-width:1024px) { .why4 { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .why4 { grid-template-columns:1fr; } }

#references-clients.trust { background:var(--c-bg); padding:var(--py) 0; border:none; }
.proof-panel { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:32px; align-items:center; margin:44px 0 34px; padding:44px 48px; border-radius:28px; color:#fff;
  background:linear-gradient(125deg,#111820 0%,#0d3f3a 55%,#0b6e60 100%); box-shadow:0 30px 70px rgba(10,26,47,.18); overflow:hidden; }
.proof-figs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 28px; align-content:center; }
.proof-fig:first-child { grid-column:1 / -1; }
.proof-fig b { display:block; font-size:clamp(34px,4vw,48px); font-weight:800; line-height:1; letter-spacing:-.03em; color:#fff; font-variant-numeric:tabular-nums; }
.proof-fig b.impact-num { font-size:clamp(64px,9vw,112px); }
.proof-fig > span { display:block; margin-top:6px; font-size:12.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:#7ff0dc; }
.proof-txt { grid-column:1 / -1; font-size:14.5px; line-height:1.7; color:rgba(255,255,255,.72); max-width:52ch; transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); }
.proof-txt.wait { opacity:0; transform:translateY(12px); }
.proof-panel .constel { max-width:380px; }
#references-clients .trust-more { gap:28px; flex-wrap:wrap; margin-top:30px; }
@media (max-width:900px) { .proof-panel { grid-template-columns:1fr; padding:32px 26px; } .proof-panel .constel { max-width:300px; } }

#partners { padding:96px 0 104px !important; }
.pn-head { text-align:center; padding:0 20px; margin-bottom:40px; }
.pn-eyebrow { font-size:11px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; color:#81e8e4; margin-bottom:12px; }
.pn-title { font-size:clamp(30px,4.2vw,52px); font-weight:800; color:#fff; letter-spacing:-.025em; line-height:1.1; margin-bottom:12px; }
.pn-sub { font-size:17px; color:rgba(255,255,255,.65); }
.pn-model { max-width:960px; margin:0 auto; padding:0 24px; display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:18px; align-items:stretch; }
.pn-col { border-radius:22px; padding:26px 28px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); color:#fff; }
.pn-col--partner { background:linear-gradient(160deg,rgba(14,182,157,.2),rgba(14,182,157,.05)); border-color:rgba(127,240,220,.3); }
.pn-k { font-size:21px; font-weight:800; letter-spacing:-.01em; }
.pn-role { margin:4px 0 16px; font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:#7ff0dc; }
.pn-col ul { list-style:none; display:grid; gap:10px; }
.pn-col li { position:relative; padding-left:24px; font-size:14.5px; color:rgba(255,255,255,.8); }
.pn-col li::before { content:''; position:absolute; left:0; top:.42em; width:12px; height:12px; border-radius:50%; border:2px solid #21c5aa; }
.pn-ex { display:flex; align-items:center; gap:10px; margin-top:18px; padding-top:14px; border-top:1px solid rgba(255,255,255,.1); font-size:12.5px; color:rgba(255,255,255,.6); }
.pn-ex img { height:30px; width:auto; background:#fff; border-radius:7px; padding:4px 8px; }
.pn-link { display:grid; place-items:center; color:#7ff0dc; }
.pn-link svg { width:34px; height:34px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.pn-ctas { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin:30px 0 12px; padding:0 20px; }
@media (max-width:760px) { .pn-model { grid-template-columns:1fr; } .pn-link svg { transform:rotate(90deg); } }

#cta-band .cta-title { margin-bottom:30px; }

/* Partner Network — modèle éditeur / intégrateur détaillé */
.pn-msg { max-width:62ch; margin:14px auto 0; font-size:15px; line-height:1.75; color:rgba(255,255,255,.6); }
.pn-model { max-width:1040px; }
.pn-top { display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:16px; padding-bottom:14px; border-bottom:1px solid rgba(255,255,255,.1); }
.pn-top .pn-role { margin:0; }
.pn-col ul { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 16px; }
.pn-own { margin-top:18px; font-size:13px; font-weight:700; color:#fff; padding:10px 14px; border-radius:12px; background:rgba(255,255,255,.06); border-left:3px solid #21c5aa; }
.pn-link { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; }
.pn-link-lbl { font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.5); writing-mode:vertical-rl; transform:rotate(180deg); }
@media (max-width:760px) { .pn-link-lbl { writing-mode:horizontal-tb; transform:none; } }
@media (max-width:420px) { .pn-col ul { grid-template-columns:1fr; } }

/* Références — chiffres du panneau toujours lisibles (passent devant les styles de l'ancienne section) */
#references-clients .proof-panel .proof-fig b { color:#ffffff; font-size:clamp(34px,4vw,48px); }
#references-clients .proof-panel .proof-fig b.impact-num { font-size:clamp(64px,9vw,112px); }
#references-clients .proof-panel .proof-fig > span { color:#7ff0dc; font-size:12.5px; font-weight:800; letter-spacing:.1em; }

/* Partner Network — affichage clair (le mode sombre garde la version sombre) */
#partners { background:#111820; }
:root:not([data-theme="dark"]) #partners { background:var(--c-surface2); border-top:1px solid var(--c-border); }
:root:not([data-theme="dark"]) .pn-eyebrow { color:#0a8f7b; }
:root:not([data-theme="dark"]) .pn-title { color:var(--c-text); }
:root:not([data-theme="dark"]) .pn-sub { color:var(--c-text2); }
:root:not([data-theme="dark"]) .pn-msg { color:var(--c-text3); }
:root:not([data-theme="dark"]) .pn-col { background:var(--c-surface); border-color:var(--c-border); color:var(--c-text); box-shadow:0 10px 30px rgba(17,24,32,.06); }
:root:not([data-theme="dark"]) .pn-col--partner { background:linear-gradient(160deg,#e6f8f4,#ffffff 70%); border-color:rgba(14,182,157,.35); }
:root:not([data-theme="dark"]) .pn-top { border-bottom-color:var(--c-border); }
:root:not([data-theme="dark"]) .pn-role { color:#0a8f7b; }
:root:not([data-theme="dark"]) .pn-col li { color:var(--c-text2); }
:root:not([data-theme="dark"]) .pn-col li::before { border-color:#0eb69d; }
:root:not([data-theme="dark"]) .pn-own { color:var(--c-text); background:var(--c-brand-soft); border-left-color:#0eb69d; }
:root:not([data-theme="dark"]) .pn-ex { color:var(--c-text3); border-top-color:var(--c-border); }
:root:not([data-theme="dark"]) .pn-ex img { border:1px solid var(--c-border); }
:root:not([data-theme="dark"]) .pn-link { color:#0eb69d; }
:root:not([data-theme="dark"]) .pn-link-lbl { color:var(--c-text3); }
:root:not([data-theme="dark"]) #partners .btn--ghost { background:var(--c-surface); color:var(--c-text); border:1.5px solid var(--c-border2); }
:root:not([data-theme="dark"]) #partners .btn--ghost:hover { border-color:#0eb69d; color:#0a8f7b; background:var(--c-brand-soft); }

/* Menu : Connexion */
.nav-login .nav-trig { gap:6px; }
.nav-login-ico { opacity:.75; }
.login-panel.mega-panel.small { width:290px; left:auto; right:0; transform:translateY(6px); }
.nav-item.nav-login:hover .login-panel, .nav-item.nav-login.open .login-panel { transform:translateY(0); }
.login-panel a { display:flex; flex-direction:column; gap:2px; }
.login-panel a b { font-size:13.5px; font-weight:700; color:var(--c-text); }
.login-panel a span { font-size:12px; color:var(--c-text3); font-weight:500; }
#login-modal { display:none; position:fixed; inset:0; z-index:2000; background:rgba(14,19,24,.65); backdrop-filter:blur(6px); align-items:center; justify-content:center; padding:20px; }
#login-modal.open { display:flex; animation:modalIn .3s cubic-bezier(.4,0,.2,1); }
.login-box { max-width:460px; }
.login-mark { width:46px; height:46px; border-radius:12px; margin-bottom:16px; background:#0a9a85 linear-gradient(135deg,#0a9a85,#21c5aa); position:relative; }
.login-mark::after { content:''; position:absolute; inset:9px; background:#fff; -webkit-mask:url(../vertu-v.png) center/contain no-repeat; mask:url(../vertu-v.png) center/contain no-repeat; }
.login-txt { font-size:14px; line-height:1.7; color:var(--c-text2); margin-bottom:14px; }
.login-mail { font-size:13.5px; color:var(--c-text3); margin-bottom:22px; }
.login-mail b { color:var(--c-text); user-select:all; }
.login-btns { display:flex; flex-wrap:wrap; gap:10px; }

.dom-card .sol-banner.sol-banner--pos-illus { display:flex; }
/* ============ ANIMATIONS RECOMMANDÉES ============ */
/* Logo constellation : inclinaison douce vers le curseur */
.constel { transition:transform .5s cubic-bezier(.16,1,.3,1); will-change:transform; }
/* Cartes produits : inclinaison 3D + reflet qui suit la souris */
.sol-banner-card { position:relative; }
.prod-grid .sol-banner-card.tilting { transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-6px); }
.sol-banner-card::after { content:''; position:absolute; inset:0; z-index:4; pointer-events:none; border-radius:inherit; opacity:0; transition:opacity .3s;
  background:radial-gradient(420px circle at var(--gx,50%) var(--gy,0%), rgba(255,255,255,.2), transparent 45%); }
.sol-banner-card.tilting::after { opacity:1; }
.sol-banner-name { transition:transform .45s cubic-bezier(.16,1,.3,1); }
.sol-banner-card:hover .sol-banner-name { transform:translateY(-4px); }
/* Cartes produits : le bandeau se déplie à l'entrée en cascade */
.sol-banner-card.reveal .sol-banner { clip-path:inset(100% 0 0 0); transition:clip-path .9s cubic-bezier(.16,1,.3,1); transition-delay:inherit; }
.sol-banner-card.reveal.in .sol-banner { clip-path:inset(0 0 0 0); }
/* Titres de section révélés mot par mot */
.h2.wsplit .w { display:inline-block; overflow:hidden; vertical-align:top; padding-bottom:.08em; margin-bottom:-.08em; }
.h2.wsplit .w > span { display:inline-block; transform:translateY(105%); }
.h2.wsplit.wplay .w > span { transform:none; transition:transform .9s cubic-bezier(.16,1,.3,1); transition-delay:calc(var(--i) * 45ms); }
/* Bouton principal : reflet au survol (l'aimantation passe par la propriété translate) */
.btn--primary { position:relative; overflow:hidden; }
.btn--primary::after { content:''; position:absolute; top:0; bottom:0; left:-60%; width:40%; transform:skewX(-20deg); pointer-events:none;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.4), transparent); }
.btn--primary:hover::after { left:130%; transition:left .75s cubic-bezier(.16,1,.3,1); }
/* Barre de progression de lecture */
.read-progress { position:fixed; top:0; left:0; right:0; height:3px; z-index:1100; pointer-events:none; transform-origin:0 50%; transform:scaleX(0);
  background:linear-gradient(90deg, #0a9a85, #21c5aa); }
@media (prefers-reduced-motion: reduce) {
  .sol-banner-card.reveal .sol-banner { clip-path:none; transition:none; }
  .btn--primary::after { display:none; }
}

/* ============ SUCCESS STORIES — pages des sites affichées en entier, sans libellé ============ */
.story-shot.full { padding:28px; align-items:center; justify-content:center; }
.story-shot.full img { width:100%; height:auto; max-height:none; object-fit:contain; border-radius:12px; box-shadow:0 18px 40px rgba(0,0,0,.35); }
@media (max-width:1024px) { .story-shot.full { padding:20px; } }



/* ============ Accueil : bulles de l'écosystème cliquables ============ */
a.platform-node--link { cursor:pointer; text-decoration:none; transition:box-shadow .2s, color .2s, border-color .2s, background .2s; }
a.platform-node--link:hover, a.platform-node--link:focus-visible { color:#ffffff; background:#0EB69D; border-color:#0EB69D; box-shadow:0 10px 24px rgba(14,182,157,.35); outline:none; }

/* ============ WordPress : contenus éditoriaux (index.php, page.php) ============ */
.vertu-entry { max-width:780px; }
.vertu-entry p, .vertu-entry li { font-size:16px; line-height:1.8; color:var(--c-text2); margin-bottom:14px; }
.vertu-entry h2 { font-size:26px; font-weight:800; margin:32px 0 12px; color:var(--c-text); }
.vertu-entry h3 { font-size:20px; font-weight:800; margin:24px 0 10px; color:var(--c-text); }
.vertu-entry a { color:#0a8f7b; text-decoration:underline; }
.vertu-entry img { max-width:100%; height:auto; border-radius:14px; }
.vertu-excerpt { padding:22px 0; border-bottom:1px solid var(--c-border); }
.admin-bar #navbar { top:32px; }
@media (max-width:782px){ .admin-bar #navbar { top:46px; } }
