/* =========================================================
   AKILITECH — style.css (version 3, inspirée du site d'origine)
   ========================================================= */

:root{
  --navy:#16283f;
  --navy-light:#1f3d5c;
  --navy-dark:#0d1a2b;
  --yellow:#f4c024;
  --yellow-light:#ffe08a;
  --teal:#17a2a0;
  --teal-dark:#0f7f7d;
  --white:#ffffff;
  --off-white:#f6f8fb;
  --grey:#5f6b7d;
  --line:#e3e8ef;
  --shadow:0 20px 45px rgba(15,30,55,.12);
  --shadow-soft:0 10px 30px rgba(15,30,55,.07);
  --radius:18px;
  --ease:cubic-bezier(.4,0,.2,1);
  --transition:all .35s var(--ease);
  --font-head:'Plus Jakarta Sans', system-ui, sans-serif;
  --font-body:'Plus Jakarta Sans', system-ui, sans-serif;
  --head-weight:800;
  --head-spacing:-0.02em;
}
/* Choix de police (aperçu) */
.font-a{ --font-head:'Plus Jakarta Sans', system-ui, sans-serif; --font-body:'Plus Jakarta Sans', system-ui, sans-serif; --head-weight:800; --head-spacing:-0.02em; }

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%;}
section[id]{scroll-margin-top:70px;}
body{ font-family:var(--font-body); color:var(--navy); background:var(--white); overflow-x:clip; line-height:1.65; font-size:1rem; }
img{max-width:100%; display:block; height:auto;}
a{text-decoration:none; color:inherit;}
ul,ol{list-style:none;}
button{cursor:pointer; font-family:inherit; border:none; background:none; color:inherit;}
svg{width:1em; height:1em; flex-shrink:0;}
:focus-visible{ outline:3px solid var(--yellow); outline-offset:3px; border-radius:4px; }
.visually-hidden{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

.container{ width:92%; max-width:1240px; margin:0 auto; }
h1,h2,h3,h4{ font-family:var(--font-head); line-height:1.15; font-weight:var(--head-weight); letter-spacing:var(--head-spacing); }

.eyebrow{ display:inline-flex; align-items:center; gap:10px; color:var(--teal); font-weight:700; letter-spacing:.14em; text-transform:uppercase; font-size:.78rem; margin-bottom:.8rem; }
.eyebrow::before{ content:''; width:26px; height:2px; background:currentColor; }
.eyebrow-yellow{ color:var(--yellow); }

.section{ padding:110px 0; }
.section-head{ max-width:720px; margin-bottom:56px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head.center .eyebrow{ justify-content:center; }
.section-head h2{ font-size:clamp(1.8rem,3.4vw,2.7rem); margin-bottom:16px; }
.section-desc{ color:var(--grey); font-size:1.06rem; }
.section-head.light h2{ color:#fff; }
.section-head.light .section-desc{ color:#c7d2e0; }

.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }

/* Boutons */
.btn{ display:inline-flex; align-items:center; gap:10px; padding:15px 30px; border-radius:50px; font-weight:700; font-size:.95rem; transition:var(--transition); white-space:nowrap; font-family:var(--font-body); }
.btn svg{ width:18px; height:18px; transition:transform .3s var(--ease); }
.btn:hover svg{ transform:translateX(4px); }
.btn-primary{ background:var(--navy); color:#fff; }
.btn-primary:hover{ background:var(--teal); transform:translateY(-3px); box-shadow:var(--shadow); }
.btn-outline{ border:2px solid rgba(255,255,255,.75); color:#fff; }
.btn-outline:hover{ background:#fff; color:var(--navy); transform:translateY(-3px); }
.btn-yellow{ background:var(--yellow); color:var(--navy-dark); }
.btn-yellow:hover{ background:#fff; transform:translateY(-3px); box-shadow:var(--shadow); }
.btn.full{ width:100%; justify-content:center; }
.pulse{ animation:pulse 2.2s infinite; }
@keyframes pulse{ 0%{box-shadow:0 0 0 0 rgba(244,192,36,.55);} 70%{box-shadow:0 0 0 18px rgba(244,192,36,0);} 100%{box-shadow:0 0 0 0 rgba(244,192,36,0);} }

/* Préchargeur */
#preloader{ position:fixed; inset:0; z-index:9999; background:var(--navy-dark); display:flex; flex-direction:column; align-items:center; justify-content:center; transition:opacity .6s ease, visibility .6s ease; }
#preloader.hide{ opacity:0; visibility:hidden; }
.loader-logo{ font-family:var(--font-head); font-size:2.1rem; font-weight:800; color:#fff; letter-spacing:1px; }
.loader-logo span{ color:var(--yellow); }
.loader-bar{ width:180px; height:4px; background:rgba(255,255,255,.15); border-radius:5px; margin-top:20px; overflow:hidden; }
.loader-bar span{ display:block; height:100%; width:40%; background:var(--yellow); animation:loading 1.1s ease-in-out infinite; }
@keyframes loading{ 0%{transform:translateX(-100%);} 50%{transform:translateX(120%);} 100%{transform:translateX(280%);} }

/* En-tête */
#header{ position:fixed; top:0; left:0; width:100%; z-index:1000; padding:18px 0; transition:var(--transition); }
#header.scrolled{ background:rgba(22,40,63,.96); padding:10px 0; backdrop-filter:blur(8px); box-shadow:0 10px 30px rgba(0,0,0,.15); }
.header-inner{ display:flex; align-items:center; justify-content:space-between; gap:20px; }
.logo{ display:flex; align-items:center; gap:10px; font-family:var(--font-head); font-weight:800; font-size:1.35rem; color:#fff; letter-spacing:.02em; }
.logo img{ height:40px; width:auto; background:rgba(255,255,255,.92); border-radius:10px; padding:3px; }
.logo em{ font-style:normal; color:var(--yellow); }
#nav ul{ display:flex; align-items:center; gap:28px; }
#nav a{ color:#fff; font-weight:600; font-size:.93rem; position:relative; padding:4px 0; }
#nav a::after{ content:''; position:absolute; bottom:-4px; left:0; width:0; height:2px; background:var(--yellow); transition:var(--transition); }
#nav a:hover::after, #nav a.active::after{ width:100%; }
#nav a.btn-nav{ background:var(--yellow); color:var(--navy-dark); padding:10px 22px; border-radius:50px; }
#nav a.btn-nav::after{ display:none; }
#nav a.btn-nav:hover{ background:#fff; }
.social-mini{ display:flex; gap:10px; }
.social-mini a{ width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,.35); display:flex; align-items:center; justify-content:center; color:#fff; transition:var(--transition); }
.social-mini a svg{ width:15px; height:15px; }
.social-mini a:hover{ background:var(--yellow); border-color:var(--yellow); color:var(--navy-dark); transform:translateY(-3px); }
#burger{ display:none; flex-direction:column; gap:5px; width:32px; z-index:1200; padding:4px 0; }
#burger span{ height:3px; width:100%; background:#fff; border-radius:3px; transition:var(--transition); }
#burger.open span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
#burger.open span:nth-child(2){ opacity:0; }
#burger.open span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }

/* Accueil */
.hero{ position:relative; min-height:100vh; min-height:100svh; display:flex; align-items:center; color:#fff; overflow:hidden; padding:130px 0 90px; background:var(--navy-dark); }
.hero-slider{ position:absolute; inset:0; z-index:0; }
.hero-slide{ position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; animation:slideFade 18s infinite; }
.slide1{ background-image:linear-gradient(110deg, rgba(13,26,43,.9) 10%, rgba(13,26,43,.55) 60%, rgba(13,26,43,.35)), url('../assets/img/hero-1.webp'); animation-delay:0s; }
.slide2{ background-image:linear-gradient(110deg, rgba(13,26,43,.9) 10%, rgba(13,26,43,.55) 60%, rgba(13,26,43,.35)), url('../assets/img/hero-2.webp'); animation-delay:6s; }
.slide3{ background-image:linear-gradient(110deg, rgba(13,26,43,.9) 10%, rgba(13,26,43,.55) 60%, rgba(13,26,43,.35)), url('../assets/img/hero-3.webp'); animation-delay:12s; }
@keyframes slideFade{ 0%{opacity:0; transform:scale(1.1);} 5%{opacity:1;} 33%{opacity:1; transform:scale(1);} 38%{opacity:0;} 100%{opacity:0;} }
.hero-overlay{ position:absolute; inset:0; z-index:1; background:radial-gradient(circle at 15% 20%, rgba(244,192,36,.16), transparent 45%), radial-gradient(circle at 90% 90%, rgba(23,162,160,.18), transparent 40%); }
.hero-content{ position:relative; z-index:2; max-width:1240px; }
.hero-content > *{ max-width:820px; }
.hero-tag{ display:inline-block; color:var(--yellow); font-weight:700; letter-spacing:.14em; text-transform:uppercase; font-size:.78rem; margin-bottom:22px; border:1px solid rgba(244,192,36,.55); padding:8px 18px; border-radius:50px; background:rgba(13,26,43,.35); animation:fadeDown .9s .2s both; }
.hero h1{ font-size:clamp(2.3rem,5.6vw,4.2rem); margin-bottom:22px; min-height:2.3em; }
.typing{ border-right:3px solid var(--yellow); padding-right:6px; animation:caret 1s step-end infinite; }
@keyframes caret{ 50%{ border-color:transparent; } }
.hero-sub{ font-size:1.12rem; color:#dbe3ee; max-width:660px; margin-bottom:36px; animation:fadeUp .9s .5s both; }
.hero-btns{ display:flex; gap:16px; flex-wrap:wrap; margin-bottom:60px; animation:fadeUp .9s .7s both; }
.hero-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; border-top:1px solid rgba(255,255,255,.2); padding-top:30px; animation:fadeUp .9s .9s both; }
.stat{ display:flex; align-items:baseline; flex-wrap:wrap; }
.stat .counter, .stat .plus{ font-family:var(--font-head); font-size:2.1rem; font-weight:800; color:var(--yellow); line-height:1; }
.stat p{ width:100%; font-size:.84rem; color:#c7d2e0; margin-top:6px; }
.scroll-down{ position:absolute; bottom:28px; left:50%; transform:translateX(-50%); color:#fff; z-index:2; width:44px; height:44px; border:1px solid rgba(255,255,255,.4); border-radius:50%; display:flex; align-items:center; justify-content:center; animation:bounce 2s infinite; }
.scroll-down svg{ width:20px; height:20px; }
@keyframes bounce{ 0%,100%{transform:translate(-50%,0);} 50%{transform:translate(-50%,-10px);} }
@keyframes fadeUp{ from{opacity:0; transform:translateY(30px);} to{opacity:1; transform:none;} }
@keyframes fadeDown{ from{opacity:0; transform:translateY(-20px);} to{opacity:1; transform:none;} }

/* Bande défilante */
.marquee-section{ background:var(--navy); padding:18px 0; overflow:hidden; border-top:1px solid rgba(255,255,255,.08); }
.marquee-track{ display:flex; gap:22px; white-space:nowrap; width:max-content; animation:marquee 38s linear infinite; }
.marquee-track span{ color:#fff; font-weight:600; font-size:.98rem; }
.marquee-track span:nth-child(even){ color:var(--yellow); }
@keyframes marquee{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* Apparitions */
.reveal-left,.reveal-right,.reveal-up{ opacity:0; transition:opacity .8s ease, transform .8s var(--ease); transition-delay:var(--d,0s); }
.reveal-left{ transform:translateX(-50px); }
.reveal-right{ transform:translateX(50px); }
.reveal-up{ transform:translateY(40px); }
.in-view{ opacity:1!important; transform:none!important; }

/* Deux métiers */
.solutions{ background:var(--off-white); }
.pillars{ display:grid; grid-template-columns:1.1fr 1fr; gap:30px; align-items:stretch; }
.pillar{ border-radius:24px; padding:42px 38px; display:flex; flex-direction:column; transition:var(--transition); position:relative; overflow:hidden; }
.pillar:hover{ transform:translateY(-8px); box-shadow:var(--shadow); }
.pillar-admin{ background:var(--navy); color:#fff; }
.pillar-admin::before{ content:''; position:absolute; width:380px; height:380px; border-radius:50%; background:radial-gradient(circle, rgba(244,192,36,.16), transparent 70%); top:-160px; right:-120px; }
.pillar-rh{ background:#fff; border:1px solid var(--line); }
.pillar-head{ display:flex; gap:18px; align-items:flex-start; margin-bottom:26px; position:relative; }
.pillar-icon{ width:58px; height:58px; border-radius:16px; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:var(--transition); }
.pillar-icon svg{ width:28px; height:28px; }
.pillar-admin .pillar-icon{ background:var(--yellow); color:var(--navy-dark); }
.pillar-rh .pillar-icon{ background:var(--navy); color:var(--yellow); }
.pillar:hover .pillar-icon{ transform:rotate(-8deg) scale(1.08); }
.pillar h3{ font-size:1.55rem; margin-bottom:4px; }
.pillar-head p{ font-size:.95rem; opacity:.8; }
.pillar-list{ display:grid; gap:16px; margin-bottom:30px; position:relative; flex:1; }
.pillar-list li{ display:flex; gap:14px; align-items:flex-start; padding:14px 16px; border-radius:14px; transition:var(--transition); }
.pillar-admin .pillar-list li{ background:rgba(255,255,255,.05); }
.pillar-admin .pillar-list li:hover{ background:rgba(255,255,255,.1); transform:translateX(6px); }
.pillar-rh .pillar-list li{ background:var(--off-white); }
.pillar-rh .pillar-list li:hover{ background:#eef4f7; transform:translateX(6px); }
.pillar-list li > svg{ width:22px; height:22px; margin-top:2px; color:var(--yellow); }
.pillar-rh .pillar-list li > svg{ color:var(--teal); }
.pillar-list strong{ display:block; font-weight:700; }
.pillar-list span{ display:block; font-size:.9rem; opacity:.78; }
.pillar .btn{ align-self:flex-start; position:relative; }

/* Étapes */
.steps-intro{ margin-bottom:64px; }
.steps-intro h2{ font-size:clamp(1.8rem,3.4vw,2.7rem); margin-bottom:16px; }
.steps-photo{ position:relative; }
.steps-photo img{ border-radius:var(--radius); width:100%; height:340px; object-fit:cover; box-shadow:var(--shadow); }
.steps-photo::after{ content:''; position:absolute; inset:auto -14px -14px auto; width:55%; height:60%; border:3px solid var(--yellow); border-radius:var(--radius); z-index:-1; }
.timeline{ display:grid; grid-template-columns:repeat(5,1fr); gap:22px; position:relative; margin-bottom:70px; counter-reset:step; }
.timeline::before{ content:''; position:absolute; top:28px; left:5%; right:5%; height:3px; background:linear-gradient(90deg, var(--yellow), var(--teal)); border-radius:3px; transform-origin:left; transform:scaleX(0); transition:transform 1.6s var(--ease) .2s; }
.timeline.in-line::before{ transform:scaleX(1); }
.timeline li{ position:relative; text-align:center; padding:0 6px; }
.step-num{ width:58px; height:58px; margin:0 auto 18px; border-radius:50%; background:var(--navy); color:var(--yellow); display:flex; align-items:center; justify-content:center; font-family:var(--font-head); font-weight:800; font-size:1.4rem; position:relative; z-index:1; box-shadow:0 0 0 7px #fff; transition:var(--transition); }
.timeline li:hover .step-num{ background:var(--yellow); color:var(--navy); transform:scale(1.1); }
.timeline h3{ font-size:1.08rem; margin-bottom:8px; }
.timeline p{ color:var(--grey); font-size:.9rem; }

.tarifs{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.tarif{ background:var(--off-white); border-radius:var(--radius); padding:34px 30px; transition:var(--transition); border:1px solid transparent; display:flex; flex-direction:column; }
.tarif:hover{ background:#fff; box-shadow:var(--shadow); transform:translateY(-8px); border-color:rgba(23,162,160,.25); }
.tarif-featured{ background:var(--navy); color:#fff; }
.tarif-featured:hover{ background:var(--navy-light); }
.tarif-icon{ width:52px; height:52px; border-radius:14px; background:var(--navy); color:var(--yellow); display:flex; align-items:center; justify-content:center; margin-bottom:18px; transition:var(--transition); }
.tarif-featured .tarif-icon{ background:var(--yellow); color:var(--navy); }
.tarif:hover .tarif-icon{ transform:rotate(-8deg) scale(1.08); }
.tarif-icon svg{ width:24px; height:24px; }
.tarif-name{ font-weight:700; margin-bottom:6px; }
.tarif-price{ font-family:var(--font-head); font-weight:800; font-size:2.6rem; line-height:1.1; margin-bottom:20px; color:var(--navy); }
.tarif-featured .tarif-price{ color:var(--yellow); }
.tarif-price small{ font-family:var(--font-body); font-size:.85rem; font-weight:600; color:var(--grey); }
.tarif-featured .tarif-price small{ color:#c7d2e0; }
.tarif-go{ margin-top:auto; display:inline-flex; align-items:center; gap:8px; font-weight:700; color:var(--teal-dark); }
.tarif-featured .tarif-go{ color:var(--yellow); }
.tarif-go svg{ transition:transform .3s; }
.tarif-go:hover svg{ transform:translateX(4px); }

/* Immigration */
.immig{ background:var(--off-white); }
.immig h2{ font-size:clamp(1.7rem,3.2vw,2.5rem); margin-bottom:16px; }
.immig-photo{ position:relative; }
.immig-photo img{ border-radius:var(--radius); width:100%; box-shadow:var(--shadow); }
.img-badge{ position:absolute; left:24px; bottom:-26px; background:#fff; border-radius:14px; box-shadow:var(--shadow); padding:14px 18px; display:flex; align-items:center; gap:14px; max-width:320px; animation:floaty 4s ease-in-out infinite; }
.img-badge > svg{ width:44px; height:44px; padding:10px; border-radius:50%; background:var(--navy); color:var(--yellow); }
.img-badge strong{ display:block; font-family:var(--font-head); font-size:.95rem; }
.img-badge span{ font-size:.8rem; color:var(--grey); }
@keyframes floaty{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(-8px);} }
.check-list{ margin:22px 0 30px; display:grid; grid-template-columns:1fr 1fr; gap:12px 20px; }
.check-list li{ display:flex; gap:10px; align-items:flex-start; font-weight:600; font-size:.95rem; }
.check-list svg{ width:20px; height:20px; color:#fff; background:var(--teal); border-radius:50%; padding:3px; margin-top:2px; }

/* Formations */
.training{ background:linear-gradient(135deg, var(--navy-dark), var(--navy)); color:#fff; position:relative; overflow:hidden; }
.training::before{ content:''; position:absolute; width:520px; height:520px; border-radius:50%; background:radial-gradient(circle, rgba(244,192,36,.13), transparent 70%); top:-220px; right:-160px; }
.sessions{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; position:relative; z-index:1; margin-bottom:56px; }
.session{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.13); border-radius:var(--radius); padding:34px 28px; display:flex; flex-direction:column; transition:var(--transition); position:relative; overflow:hidden; }
.session::after{ content:''; position:absolute; left:0; top:0; height:4px; width:0; background:var(--yellow); transition:width .5s var(--ease); }
.session:hover{ transform:translateY(-10px); background:rgba(255,255,255,.1); }
.session:hover::after{ width:100%; }
.session-tag{ align-self:flex-start; font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--navy-dark); background:var(--yellow); padding:5px 12px; border-radius:30px; margin-bottom:22px; }
.session-icon{ width:56px; height:56px; border-radius:50%; background:rgba(244,192,36,.15); color:var(--yellow); display:flex; align-items:center; justify-content:center; margin-bottom:18px; }
.session-icon svg{ width:26px; height:26px; }
.session h3{ font-size:1.3rem; margin-bottom:10px; }
.session p{ color:#c7d2e0; font-size:.95rem; margin-bottom:26px; flex:1; }
.session .btn{ align-self:flex-start; padding:12px 24px; }
.catalog{ position:relative; z-index:1; text-align:center; }
.catalog h3{ font-size:1.25rem; margin-bottom:20px; }
.chips{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-bottom:30px; }
.chips span{ padding:9px 18px; border-radius:50px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); font-size:.9rem; transition:var(--transition); cursor:default; }
.chips span:hover{ background:var(--yellow); color:var(--navy-dark); border-color:var(--yellow); transform:translateY(-3px); }

/* Bandeau création */
.cta-banner{ background:linear-gradient(120deg, var(--teal), #0d8785); color:#fff; position:relative; overflow:hidden; }
.cta-banner::before{ content:''; position:absolute; width:420px; height:420px; border-radius:50%; border:60px solid rgba(255,255,255,.06); left:-140px; bottom:-220px; }
.cta-inner{ display:flex; align-items:center; justify-content:space-between; gap:40px; padding:84px 0; flex-wrap:wrap; position:relative; }
.cta-text h2{ font-size:clamp(1.8rem,4vw,2.8rem); margin:4px 0 14px; }
.price{ color:var(--yellow); font-size:clamp(2.6rem,5.5vw,4rem); }
.cta-text > p{ max-width:480px; margin-bottom:20px; font-style:italic; color:#eafffd; }
.cta-tags{ display:flex; gap:12px; flex-wrap:wrap; margin-bottom:28px; }
.cta-tags span{ background:rgba(255,255,255,.14); padding:9px 16px; border-radius:50px; font-size:.86rem; display:flex; align-items:center; gap:8px; font-weight:600; }
.cta-tags svg{ color:var(--yellow); }
.cta-quote{ background:rgba(0,0,0,.18); border-radius:var(--radius); padding:40px; max-width:300px; font-family:var(--font-head); font-size:1.35rem; font-weight:700; text-align:center; }
.cta-quote svg{ width:34px; height:34px; color:var(--yellow); margin:0 auto 10px; display:block; }

/* Terrain */
.terrain{ padding-bottom:90px; overflow:hidden; }
.terrain .section-head{ max-width:820px; }
.photo-marquee{ overflow:hidden; mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); -webkit-mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.photo-track{ display:flex; gap:20px; width:max-content; animation:marquee 60s linear infinite; padding:10px 0; }
.photo-marquee:hover .photo-track{ animation-play-state:paused; }
.photo-track figure{ width:360px; flex-shrink:0; border-radius:var(--radius); overflow:hidden; position:relative; box-shadow:var(--shadow-soft); }
.photo-track img{ width:100%; height:260px; object-fit:cover; transition:transform .6s var(--ease); }
.photo-track figure:hover img{ transform:scale(1.07); }
.photo-track figcaption{ position:absolute; left:0; right:0; bottom:0; padding:30px 18px 14px; color:#fff; font-weight:600; font-size:.92rem; background:linear-gradient(transparent, rgba(13,26,43,.85)); }

/* Citation */
.quote-section{ background:url('../assets/img/quote-bg.webp') center/cover fixed; background-color:var(--navy-dark); color:#fff; text-align:center; padding:110px 0; position:relative; }
.quote-section::before{ content:''; position:absolute; inset:0; background:rgba(13,26,43,.84); }
.quote-section .container{ position:relative; z-index:1; }
.quote-icon{ width:44px; height:44px; color:var(--yellow); margin:0 auto 18px; display:block; }
.quote-text{ font-family:var(--font-head); font-size:clamp(1.5rem,3.2vw,2.4rem); font-weight:700; max-width:820px; margin:0 auto 16px; line-height:1.3; }
.quote-author{ color:var(--yellow); font-weight:700; letter-spacing:.14em; }
@media (hover:none){ .quote-section{ background-attachment:scroll; } }

/* Équipe */
.equipe{ background:var(--off-white); }
.team-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; max-width:1080px; margin:0 auto; }
.team-card{ background:#fff; border-radius:var(--radius); padding:36px 28px 32px; text-align:center; box-shadow:var(--shadow-soft); transition:var(--transition); position:relative; overflow:hidden; }
.team-card::before{ content:''; position:absolute; left:0; right:0; top:0; height:90px; background:linear-gradient(135deg, var(--navy), var(--navy-light)); }
.team-card:hover{ transform:translateY(-10px); box-shadow:var(--shadow); }
.team-photo{ width:140px; height:140px; border-radius:50%; overflow:hidden; margin:0 auto 20px; border:5px solid var(--yellow); position:relative; box-shadow:0 10px 25px rgba(15,30,55,.18); transition:var(--transition); }
.team-card:hover .team-photo{ transform:scale(1.05); }
.team-photo img{ width:100%; height:100%; object-fit:cover; }
.team-card h3{ font-size:1.15rem; margin-bottom:4px; }
.team-card h3 small{ font-weight:600; color:var(--grey); font-size:.85em; }
.role{ display:inline-block; color:var(--teal-dark); font-weight:700; font-size:.85rem; margin-bottom:12px; background:rgba(23,162,160,.1); padding:4px 12px; border-radius:30px; }
.team-card p{ font-size:.92rem; color:var(--grey); }

/* Partenaires */
.partners-grid{ display:flex; flex-wrap:wrap; justify-content:center; gap:22px; max-width:1100px; margin:0 auto; }
.partners-grid li{ width:200px; background:#fff; border:1px solid var(--line); border-radius:16px; padding:24px 16px 18px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; transition:var(--transition); text-align:center; }
.partners-grid img{ height:64px; width:auto; max-width:150px; object-fit:contain; filter:grayscale(1); opacity:.75; transition:var(--transition); }
.partners-grid span{ font-size:.78rem; font-weight:600; color:var(--grey); line-height:1.3; }
.partners-grid li:hover{ transform:translateY(-6px); box-shadow:var(--shadow); border-color:rgba(23,162,160,.3); }
.partners-grid li:hover img{ filter:none; opacity:1; }

/* Témoignages */
.temoignages{ background:var(--off-white); }
.testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.testi{ background:#fff; border-radius:var(--radius); padding:36px 30px; text-align:center; box-shadow:var(--shadow-soft); transition:var(--transition); position:relative; }
.testi::before{ content:'“'; position:absolute; top:6px; right:22px; font-family:Georgia, serif; font-size:5rem; color:rgba(244,192,36,.35); line-height:1; }
.testi:hover{ transform:translateY(-8px); box-shadow:var(--shadow); }
.testi img{ width:84px; height:84px; border-radius:50%; object-fit:cover; margin:0 auto 14px; border:4px solid var(--yellow); }
.stars{ display:flex; justify-content:center; gap:3px; color:#f1b80d; margin-bottom:14px; }
.stars svg{ width:17px; height:17px; }
.testi blockquote{ font-style:italic; color:#475163; margin-bottom:20px; }
.testi figcaption strong{ display:block; font-family:var(--font-head); }
.testi figcaption span{ font-size:.88rem; color:var(--grey); }

/* Actualités */
.feed-tabs{ display:flex; justify-content:center; gap:10px; flex-wrap:wrap; margin-bottom:34px; }
.feed-tab{ display:inline-flex; align-items:center; gap:8px; padding:11px 22px; border-radius:50px; border:2px solid var(--line); font-weight:700; font-size:.92rem; color:var(--navy); transition:var(--transition); }
.feed-tab svg{ width:18px; height:18px; }
.feed-tab:hover{ border-color:var(--navy); }
.feed-tab.active{ background:var(--navy); color:#fff; border-color:var(--navy); }
.feed-panel{ text-align:center; }
.feed-panel[hidden]{ display:none; }
.feed-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-bottom:30px; text-align:left; align-items:start; }
.feed-grid.feed-fb{ grid-template-columns:1fr; justify-items:center; }
.feed-card{ background:#fff; border:1px solid var(--line); border-radius:16px; overflow:hidden; min-height:200px; box-shadow:var(--shadow-soft); }
.feed-card iframe{ width:100%; border:0; display:block; }
.feed-card .instagram-media{ margin:0!important; min-width:0!important; width:100%!important; border:0!important; }
.feed-skeleton{ height:420px; background:linear-gradient(90deg, #f1f4f8 25%, #e6ebf1 50%, #f1f4f8 75%); background-size:200% 100%; animation:shimmer 1.4s infinite; }
@keyframes shimmer{ to{ background-position:-200% 0; } }
.feed-follow svg{ width:18px; height:18px; }
.feed-follow:hover svg{ transform:none; }

/* Contact */
.contact h2{ font-size:clamp(1.8rem,3.4vw,2.6rem); margin-bottom:14px; }
.contact-grid{ align-items:start; }
.info-list{ margin:30px 0; display:flex; flex-direction:column; gap:22px; }
.info-item{ display:flex; gap:18px; align-items:flex-start; }
.info-icon{ width:50px; height:50px; border-radius:14px; background:var(--navy); color:var(--yellow); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:var(--transition); }
.info-item:hover .info-icon{ background:var(--yellow); color:var(--navy); transform:rotate(-8deg); }
.info-icon svg{ width:22px; height:22px; }
.info-item strong{ display:block; margin-bottom:4px; }
.info-item a, .info-item span{ display:block; color:var(--grey); font-size:.94rem; }
.info-item a:hover{ color:var(--teal); }
.social-full{ display:flex; gap:12px; margin-top:10px; flex-wrap:wrap; }
.social-full a{ width:46px; height:46px; border-radius:50%; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center; transition:var(--transition); }
.social-full a svg{ width:20px; height:20px; }
.social-full a:hover{ transform:translateY(-4px); }
.social-full .s-fb:hover{ background:#1877f2; }
.social-full .s-li:hover{ background:#0a66c2; }
.social-full .s-ig:hover{ background:radial-gradient(circle at 30% 107%, #fdf497 0%, #fd5949 45%, #d6249f 60%, #285AEB 90%); }
.social-full .s-x:hover{ background:#000; }
.social-full .s-wa:hover{ background:#25D366; }
.contact-form{ background:var(--off-white); border-radius:var(--radius); padding:40px; box-shadow:var(--shadow); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-group{ margin-bottom:18px; }
.form-group label{ display:block; font-size:.86rem; font-weight:700; margin-bottom:7px; }
.form-group input, .form-group textarea, .form-group select{ width:100%; padding:13px 16px; border-radius:10px; border:1px solid #d6dde7; font-family:inherit; font-size:.96rem; background:#fff; color:var(--navy); transition:var(--transition); }
.form-group textarea{ resize:vertical; }
.form-group input:focus, .form-group textarea:focus, .form-group select:focus{ outline:none; border-color:var(--teal); box-shadow:0 0 0 3px rgba(23,162,160,.18); }
.form-group.has-error input, .form-group.has-error textarea{ border-color:#c0392b; }
.contact-form .btn[disabled]{ opacity:.65; cursor:progress; }
.form-note{ margin-top:12px; font-size:.92rem; font-weight:600; min-height:20px; }
.form-note.ok{ color:var(--teal-dark); }
.form-note.err{ color:#b42318; }
.form-note a{ text-decoration:underline; }

/* Pied de page */
.footer{ background:var(--navy-dark); color:#c7d2e0; padding-top:72px; }
.footer-inner{ display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:40px; padding-bottom:50px; }
.footer-col p{ font-size:.9rem; margin:16px 0 20px; color:#94a3b8; max-width:340px; }
.footer-col h4{ color:#fff; margin-bottom:18px; font-size:1rem; }
.footer-col ul li{ margin-bottom:10px; font-size:.92rem; }
.footer-col ul a:hover{ color:var(--yellow); }
.footer .social-full a{ background:rgba(255,255,255,.08); }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.08); text-align:center; padding:22px 0 26px; font-size:.86rem; color:#7d8aa0; }

/* Boutons flottants */
.float-whatsapp{ position:fixed; bottom:96px; right:26px; z-index:900; width:56px; height:56px; border-radius:50%; background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 10px 25px rgba(37,211,102,.45); animation:pulseWA 2.4s infinite; transition:transform .3s; }
.float-whatsapp svg{ width:28px; height:28px; }
.float-whatsapp:hover{ transform:scale(1.08); }
@keyframes pulseWA{ 0%{box-shadow:0 0 0 0 rgba(37,211,102,.55);} 70%{box-shadow:0 0 0 16px rgba(37,211,102,0);} 100%{box-shadow:0 0 0 0 rgba(37,211,102,0);} }
#backToTop{ position:fixed; bottom:30px; right:96px; z-index:900; width:46px; height:46px; border-radius:50%; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transform:translateY(10px); transition:var(--transition); }
#backToTop svg{ width:20px; height:20px; }
#backToTop.show{ opacity:1; visibility:visible; transform:none; }
#backToTop:hover{ background:var(--teal); }

/* Assistant Akili */
.akili{ position:fixed; right:26px; bottom:24px; z-index:950; }
.akili-toggle{ width:60px; height:60px; border-radius:50%; background:var(--navy); color:var(--yellow); display:flex; align-items:center; justify-content:center; box-shadow:0 12px 30px rgba(13,26,43,.45); border:3px solid var(--yellow); transition:transform .3s var(--ease); position:relative; }
.akili-toggle:hover{ transform:scale(1.07) rotate(-6deg); }
.akili-toggle svg{ width:28px; height:28px; }
.akili-dot{ position:absolute; top:2px; right:2px; width:14px; height:14px; border-radius:50%; background:#25D366; border:2px solid #fff; }
.akili-toggle[aria-expanded="true"]{ transform:scale(0); }
.akili-teaser{ position:absolute; right:74px; bottom:6px; width:250px; background:#fff; color:var(--navy); border-radius:16px 16px 4px 16px; padding:14px 34px 14px 16px; box-shadow:var(--shadow); font-size:.9rem; animation:fadeUp .5s both; cursor:pointer; }
.akili-teaser[hidden]{ display:none; }
.akili-teaser-close{ position:absolute; top:4px; right:8px; font-size:1.2rem; color:var(--grey); width:24px; height:24px; }
.akili-panel{ position:absolute; right:0; bottom:0; width:390px; height:min(640px, calc(100dvh - 40px)); background:#fff; border-radius:20px; overflow:hidden; display:flex; flex-direction:column; box-shadow:0 30px 80px -20px rgba(13,26,43,.55), 0 0 0 1px rgba(13,26,43,.06); transform-origin:bottom right; animation:popIn .35s var(--ease); }
.akili-panel[hidden]{ display:none; }
@keyframes popIn{ from{ opacity:0; transform:scale(.85) translateY(20px); } to{ opacity:1; transform:none; } }
.akili-head{ display:flex; align-items:center; gap:12px; padding:14px 14px 14px 16px; background:linear-gradient(135deg, var(--navy-dark), var(--navy)); color:#fff; }
.akili-avatar{ width:42px; height:42px; border-radius:50%; background:var(--yellow); color:var(--navy); display:flex; align-items:center; justify-content:center; font-family:var(--font-head); font-weight:800; font-size:1.2rem; flex-shrink:0; }
.akili-id{ flex:1; min-width:0; }
.akili-name{ font-weight:700; font-size:.98rem; }
.akili-status{ font-size:.78rem; color:#b8c5d3; display:flex; align-items:center; gap:6px; }
.akili-status span{ width:8px; height:8px; border-radius:50%; background:#25D366; }
.akili-reset, .akili-close{ width:34px; height:34px; border-radius:8px; color:#fff; font-size:1.3rem; line-height:1; }
.akili-reset{ font-size:1.1rem; }
.akili-reset:hover, .akili-close:hover{ background:rgba(255,255,255,.12); }
.akili-log{ flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:10px; background:#f3f6f9; scroll-behavior:smooth; }
.msg{ max-width:86%; padding:10px 14px; border-radius:16px; font-size:.93rem; line-height:1.5; animation:msgIn .3s var(--ease) both; }
@keyframes msgIn{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
.msg p{ margin:0 0 .45em; } .msg p:last-child{ margin:0; }
.msg ul{ margin:.3em 0 .45em 1.1em; list-style:disc; }
.msg li{ margin:.15em 0; }
.msg a{ color:var(--teal-dark); text-decoration:underline; }
.msg-bot{ background:#fff; color:var(--navy); border-bottom-left-radius:4px; align-self:flex-start; box-shadow:0 2px 6px rgba(13,26,43,.06); }
.msg-me{ background:var(--navy); color:#fff; border-bottom-right-radius:4px; align-self:flex-end; }
.msg-time{ display:block; font-size:.68rem; opacity:.55; margin-top:4px; text-align:right; }
.msg-wa{ display:inline-flex; align-items:center; gap:8px; background:#25D366; color:#fff!important; text-decoration:none!important; font-weight:700; padding:10px 14px; border-radius:12px; margin-top:4px; }
.msg-wa svg{ width:18px; height:18px; }
.msg-wa:hover{ background:#1ebe5b; }
.msg-card{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:12px 14px; align-self:flex-start; max-width:90%; font-size:.9rem; animation:msgIn .3s both; }
.msg-card h4{ font-size:.95rem; margin-bottom:6px; }
.msg-card dl{ display:grid; grid-template-columns:auto 1fr; gap:3px 10px; }
.msg-card dt{ color:var(--grey); }
.msg-card dd{ font-weight:600; }
.typing-dots{ display:inline-flex; gap:4px; padding:12px 14px; background:#fff; border-radius:16px; border-bottom-left-radius:4px; align-self:flex-start; box-shadow:0 2px 6px rgba(13,26,43,.06); }
.typing-dots i{ width:7px; height:7px; border-radius:50%; background:#9aa7b8; animation:blink 1.2s infinite; }
.typing-dots i:nth-child(2){ animation-delay:.15s; } .typing-dots i:nth-child(3){ animation-delay:.3s; }
@keyframes blink{ 0%,80%,100%{ opacity:.3; transform:translateY(0);} 40%{ opacity:1; transform:translateY(-4px);} }
.akili-chips{ display:flex; gap:6px; padding:10px 12px; overflow-x:auto; background:#fff; border-top:1px solid var(--line); scrollbar-width:none; flex-wrap:wrap; max-height:118px; overflow-y:auto; }
.akili-chips:empty{ display:none; }
.chip{ flex-shrink:0; font-size:.84rem; font-weight:600; color:var(--navy); background:#fff6d6; border:1px solid #f3dc8b; border-radius:999px; padding:7px 13px; transition:background .2s, transform .2s; }
.chip:hover{ background:var(--yellow); transform:translateY(-2px); }
.chip-ghost{ background:#fff; border-color:var(--line); color:var(--grey); }
.akili-input{ display:flex; gap:8px; padding:10px 12px 8px; background:#fff; }
.akili-input input{ flex:1; min-width:0; border:1px solid #d6dde7; border-radius:12px; padding:11px 13px; font:inherit; font-size:.94rem; }
.akili-input input:focus{ outline:none; border-color:var(--teal); box-shadow:0 0 0 3px rgba(23,162,160,.15); }
.akili-input button{ width:46px; border-radius:12px; background:var(--navy); color:var(--yellow); display:flex; align-items:center; justify-content:center; }
.akili-input button svg{ width:20px; height:20px; }
.akili-foot{ font-size:.72rem; color:var(--grey); text-align:center; padding:0 12px 10px; background:#fff; }

/* Sélecteur de police (aperçu uniquement) */

/* Responsive */
@media (max-width:1100px){
  .social-mini{ display:none; }
  #nav ul{ gap:20px; }
}
@media (max-width:991px){
  .grid-2{ grid-template-columns:1fr; gap:44px; }
  .pillars{ grid-template-columns:1fr; }
  .timeline{ grid-template-columns:1fr; gap:0; max-width:560px; margin-left:auto; margin-right:auto; }
  .timeline::before{ top:0; bottom:0; left:28px; right:auto; width:3px; height:auto; background:linear-gradient(180deg, var(--yellow), var(--teal)); transform-origin:top; transform:scaleY(0); }
  .timeline.in-line::before{ transform:scaleY(1); }
  .timeline li{ text-align:left; padding:0 0 28px 84px; min-height:70px; }
  .step-num{ position:absolute; left:0; top:0; margin:0; }
  .tarifs, .sessions, .testi-grid, .team-grid{ grid-template-columns:1fr; max-width:520px; margin-left:auto; margin-right:auto; }
  .sessions{ margin-bottom:48px; }
  .feed-grid{ grid-template-columns:1fr; max-width:520px; margin-left:auto; margin-right:auto; }
  .footer-inner{ grid-template-columns:1fr 1fr; }
  .hero-stats{ grid-template-columns:repeat(2,1fr); row-gap:24px; }
}
@media (max-width:900px){
  #nav{ position:fixed; top:0; right:-100%; width:80%; max-width:340px; height:100vh; height:100dvh; background:var(--navy-dark); padding:100px 30px 30px; transition:right .4s ease; z-index:1100; box-shadow:-20px 0 50px rgba(0,0,0,.3); }
  #nav.open{ right:0; }
  #nav ul{ flex-direction:column; align-items:flex-start; gap:22px; }
  #burger{ display:flex; }
}
@media (max-width:640px){
  .section{ padding:80px 0; }
  .hero{ padding-top:110px; }
  .hero h1{ min-height:3.4em; }
  .hero-btns .btn{ width:100%; justify-content:center; }
  .check-list{ grid-template-columns:1fr; }
  .pillar{ padding:30px 22px; }
  .form-row{ grid-template-columns:1fr; }
  .contact-form{ padding:26px 20px; }
  .footer-inner{ grid-template-columns:1fr; }
  .cta-inner{ flex-direction:column; align-items:flex-start; padding:64px 0; }
  .cta-quote{ max-width:none; width:100%; }
  .photo-track figure{ width:270px; }
  .photo-track img{ height:200px; }
  .steps-photo img{ height:240px; }
  .img-badge{ left:12px; right:12px; max-width:none; }
  .float-whatsapp{ right:16px; bottom:86px; width:52px; height:52px; }
  #backToTop{ right:80px; bottom:22px; }
  .akili{ right:16px; bottom:16px; }
  .akili-panel{ position:fixed; inset:0; width:100%; height:100dvh; border-radius:0; }
  .akili-teaser{ width:210px; right:70px; }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
  .hero-slide.slide1{ opacity:1; }
  .reveal-left,.reveal-right,.reveal-up{ opacity:1; transform:none; }
  html{ scroll-behavior:auto; }
}
html{ overflow-x:clip; }
