:root{
  --navy:#05194a;--navy-2:#0a2562;--navy-3:#031038;--peach:#f0c078;
  --orange:#0f93d4;--orange-d:#0b7cb5;
  --blue:#0b7cb5;--green:#d9993a;
  --text:#1c2b45;--muted:#5d6b82;--line:#e6ebf2;--bg:#f6f9fd;--white:#fff;
  --radius:12px;--shadow:0 4px 18px rgba(11,36,71,.08);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:"Inter","Segoe UI",Roboto,Arial,sans-serif;color:var(--text);background:var(--white);line-height:1.5;font-size:17.8px}
a{color:inherit;text-decoration:none}
ul{list-style:none}
.container{max-width:1440px;margin:0 auto;padding:0 40px}
svg{display:block}

/* Header */
.header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line)}
.header .container{display:flex;align-items:center;justify-content:space-between;height:72px;gap:24px}
.logo{display:flex;align-items:center;gap:10px}
.logo b{display:block;font-size:24.2px;line-height:1;color:var(--navy);letter-spacing:-.3px}
.logo small{display:block;font-size:10.5px;letter-spacing:1.6px;color:var(--muted);margin-top:3px;text-transform:uppercase}
.nav{display:flex;gap:28px;font-size:16.6px;font-weight:500}
.nav a{padding:22px 0;border-bottom:2px solid transparent;color:var(--navy)}
.nav a:hover,.nav a.active{border-color:var(--orange);font-weight:600}
.burger{display:none;background:none;border:0;font-size:28.6px;color:var(--navy);cursor:pointer}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;border-radius:8px;font-weight:600;font-size:16.6px;border:1.5px solid transparent;cursor:pointer;transition:.2s;font-family:inherit}
.btn-orange{background:var(--orange);color:#fff}
.btn-orange:hover{background:var(--orange-d)}
.btn-outline{border-color:#fff;color:#fff;background:transparent}
.btn-outline:hover{background:#fff;color:var(--navy)}
.btn-sm{padding:9px 18px}

/* Eyebrow */
.eyebrow{display:flex;align-items:center;gap:8px;font-size:13.1px;text-transform:uppercase;letter-spacing:1px;font-weight:600;color:var(--navy);margin-bottom:8px}
.eyebrow::before{content:"";width:22px;height:3px;border-radius:2px;background:var(--orange)}
.hero .eyebrow{color:#cfe0f7}

/* Hero */
.hero{position:relative;color:#fff;overflow:hidden;background:
  radial-gradient(circle at 78% 30%,rgba(240,192,120,.75),transparent 45%),
  linear-gradient(180deg,#0a2562 0%,#14407f 45%,#c9a063 88%,#f0c078 100%)}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:38%;opacity:.85;
  background:linear-gradient(to top,#031038 0,transparent 100%),
  repeating-linear-gradient(90deg,#061c4a 0 26px,#0a2760 26px 44px,#051a44 44px 60px,#08225a 60px 96px);
  clip-path:polygon(0 60%,4% 60%,4% 35%,8% 35%,8% 55%,13% 55%,13% 20%,17% 20%,17% 50%,24% 50%,24% 30%,29% 30%,29% 60%,36% 60%,36% 12%,40% 12%,40% 45%,47% 45%,47% 55%,55% 55%,55% 25%,60% 25%,60% 60%,68% 60%,68% 38%,74% 38%,74% 55%,82% 55%,82% 30%,88% 30%,88% 50%,94% 50%,94% 40%,100% 40%,100% 100%,0 100%)}
.hero .container{position:relative;z-index:2}
.hero-inner{padding:64px 0 80px;max-width:760px}
.hero h1{font-size:44.0px;line-height:1.15;font-weight:800;letter-spacing:-.5px;margin-bottom:16px}
.hero h1 em{font-style:normal;color:var(--peach)}
.hero p{font-size:17.8px;color:#e4edf8;margin-bottom:26px;max-width:640px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.hero-tag{position:absolute;right:20px;top:36px;z-index:2;font-size:14.3px;color:#fff;border-right:3px solid var(--orange);padding-right:12px;text-align:left;max-width:150px;line-height:1.4;text-transform:none}
.hero-tag.caps{text-transform:uppercase;font-size:12.5px;letter-spacing:.8px}
.hero.contact{min-height:230px}
.hero.contact .hero-inner{padding:32px 0 40px}
.hero.contact h1{font-size:37.4px;margin-bottom:12px}
.hero.contact .portrait{position:absolute;right:15%;bottom:0;width:230px;height:200px;z-index:1;
  background:radial-gradient(ellipse at 50% 22%,#8a5a3a 0 22%,transparent 23%),
  radial-gradient(ellipse at 50% 100%,#10284d 0 45%,transparent 46%)}
.tower{position:absolute;right:6%;top:0;bottom:0;width:80px;z-index:1;opacity:.85;
  background:linear-gradient(90deg,transparent 45%,#1a2f4d 45% 55%,transparent 55%)}

/* Service strip */
.strip{margin-top:-26px;position:relative;z-index:5}
.strip .grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.svc{padding:16px;position:relative;display:flex;flex-direction:column;gap:10px}
.svc .ico{width:34px;height:34px;color:var(--navy)}
.svc h4{font-size:16.0px;line-height:1.3;color:var(--navy)}
.svc p{font-size:14.3px;color:var(--muted);padding-bottom:14px}
.arrow{position:absolute;right:14px;bottom:10px;color:var(--orange);font-weight:700}

/* Sections */
section{padding:56px 0}
.section-head h2{font-size:30.8px;color:var(--navy);line-height:1.2;letter-spacing:-.4px;margin-bottom:8px;font-weight:800}
.section-head p{color:var(--muted);max-width:760px}
.split-head{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;margin-bottom:26px}
.split-head p{max-width:620px;font-size:16.6px}

/* About */
.about{display:grid;grid-template-columns:1fr 1.25fr;gap:0;align-items:stretch;padding:0}
.about-img{position:relative;min-height:340px;color:#fff;display:flex;align-items:flex-end;padding:30px;background:
  radial-gradient(ellipse at 50% 60%,#f6c23a 0 8%,transparent 9%),
  radial-gradient(ellipse at 50% 30%,#7b4a2e 0 10%,transparent 11%),
  linear-gradient(160deg,#a9c9ea 0%,#d6e6f5 40%,#5b86b3 100%)}
.about-img span{font-size:14.3px;letter-spacing:1px;line-height:1.7;font-weight:500;text-transform:uppercase;position:relative;z-index:1;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.5)}
.about-body{padding:48px 40px 48px 56px;max-width:860px}
.about-body p{color:var(--muted);margin-bottom:22px;font-size:16.6px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.stat{padding:14px}
.stat .ico{width:30px;height:30px;color:var(--orange);margin-bottom:6px}
.stat strong{font-size:28.6px;color:var(--navy);line-height:1}
.stat b{display:block;font-size:14.9px;color:var(--navy);margin:4px 0}
.stat p{font-size:13.7px;color:var(--muted);margin:0}

/* Why */
.why{background:#fff;padding-top:40px}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.why-card{padding:22px;display:flex;gap:16px}
.why-card .ico{flex:0 0 46px;width:46px;height:46px}
.why-card h4{font-size:16.6px;color:var(--navy);margin-bottom:8px}
.why-card p{font-size:14.9px;color:var(--muted)}

/* Projects */
.projects{padding-top:20px}
.projects .split-head{align-items:center}
.link-orange{color:var(--blue);font-size:15.4px;font-weight:500}
.proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.proj{display:flex;gap:16px;padding:12px}
.thumb{flex:0 0 150px;height:160px;border-radius:8px}
.t1{background:linear-gradient(to top,#2f7f6a 0 30%,transparent 30%),linear-gradient(180deg,#7fb6e6,#c9def0)}
.t2{background:linear-gradient(90deg,#3a6b8f,#7fa7c4 50%,#365f80),linear-gradient(180deg,#9ec5e5,#dbe9f5)}
.t3{background:linear-gradient(160deg,#f2b657 0,#3a5f8d 55%,#1f3d66 100%)}
.tag{display:inline-block;font-size:12.0px;font-weight:700;padding:2px 8px;border-radius:4px;text-transform:uppercase;margin-bottom:6px;background:#e3f4fc;color:#0b7cb5}
.tag.b{background:#e8edf8;color:var(--navy)}
.tag.g{background:#fdf1de;color:#a86d12}
.proj h4{font-size:17.2px;line-height:1.3;color:var(--navy);margin-bottom:6px}
.proj p{font-size:14.3px;color:var(--muted);margin-bottom:8px}
.proj a{font-size:14.3px;color:var(--orange);font-weight:600}

/* CTA band */
.cta{background:linear-gradient(90deg,#05194a 0%,#0a2d70 60%,#05194a 100%);color:#fff;padding:26px 0}
.cta .container{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}
.cta h3{font-size:26.4px;letter-spacing:-.3px;margin-bottom:4px}
.cta p{font-size:16.0px;color:#cfe0f7}
.cta .eyebrow{color:#cfe0f7}
.cta-list{font-size:14.3px;color:#dbe7f7;display:grid;gap:8px}
.cta-list li::before{content:"○ ";color:#fff}

/* Footer */
.footer{background:var(--navy-3);color:#cbd7ea;padding:30px 0 0;font-size:14.9px}
.footer-grid{display:grid;grid-template-columns:1.3fr .8fr 1.2fr 1.2fr;gap:30px;padding-bottom:24px}
.footer h5{color:#fff;font-size:15.4px;margin-bottom:12px}
.footer li{margin-bottom:6px}
.footer li::before{content:"· ";color:var(--muted)}
.footer .logo b{color:#fff}
.footer .logo small{color:#9db0cc}
.footer .about-txt{margin:14px 0;max-width:260px}
.socials{display:flex;gap:16px}
.socials span{width:20px;height:20px;background:#fff;border-radius:4px;opacity:.9}
.contact-lines li::before{content:none}
.contact-lines li{display:flex;gap:10px;align-items:flex-start}
.contact-lines i{font-style:normal;color:#fff}
.bar{border-top:1px solid rgba(255,255,255,.12);padding:14px 0;display:flex;justify-content:space-between;font-size:13.7px;flex-wrap:wrap;gap:8px}
.bar div{display:flex;gap:16px}

/* Contact page */
.contact-main{background:var(--bg);padding:26px 0}
.contact-grid{display:grid;grid-template-columns:1.75fr 1fr;gap:20px;align-items:start}
.panel{padding:24px 26px}
.panel h2{font-size:28.6px;color:var(--navy);letter-spacing:-.4px;margin-bottom:6px;font-weight:800}
.panel>p{color:var(--muted);font-size:16.6px;margin-bottom:20px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
.field label{font-size:14.9px;font-weight:600;color:var(--navy)}
.field label i{color:var(--orange);font-style:normal}
.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:6px;padding:10px 12px;font:inherit;font-size:15.4px;background:#fff;color:var(--text);width:100%}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid rgba(15,147,212,.35);border-color:var(--orange)}
.field textarea{min-height:90px;resize:vertical}
.phone{display:flex;gap:0}
.phone select{width:74px;border-radius:6px 0 0 6px;border-right:0}
.phone input{border-radius:0 6px 6px 0}
.form-foot{display:flex;justify-content:space-between;align-items:center;margin-top:16px}
.form-foot small{font-size:13.1px;color:var(--muted)}
.form-foot small i{color:var(--orange);font-style:normal}
.coords{padding:24px 26px;position:relative;overflow:hidden}
.coords::after{content:"";position:absolute;right:-10px;top:100px;width:110px;height:150px;opacity:.5;
  background:radial-gradient(circle at 60% 30%,#e3e8ef 0 40%,transparent 41%),radial-gradient(circle at 55% 65%,#e3e8ef 0 25%,transparent 26%)}
.coord-item{display:flex;gap:14px;margin-top:18px;position:relative;z-index:1}
.coord-item .ico{flex:0 0 42px;height:42px;background:var(--orange);border-radius:10px;display:grid;place-items:center;color:#fff}
.coord-item .ico svg{width:22px;height:22px}
.coord-item b{display:block;font-size:16.6px;color:var(--navy)}
.coord-item a,.coord-item strong{color:var(--blue);font-weight:600;font-size:15.4px}
.coord-item p{font-size:14.3px;color:var(--muted)}

.reasons{padding:36px 0 20px;background:#fff}
.reasons .section-head{margin-bottom:22px}
.reason-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.reason{padding:20px;display:flex;gap:14px;position:relative}
.reason .ico{flex:0 0 44px;width:44px;height:44px}
.reason h4{font-size:16.6px;color:var(--navy);margin-bottom:6px}
.reason p{font-size:14.3px;color:var(--muted);padding-bottom:18px}

.process{padding:24px 0 40px;background:#fff}
.steps{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:12px;align-items:center;margin-top:20px}
.step{padding:18px;display:flex;gap:14px}
.num{flex:0 0 42px;height:42px;border-radius:50%;background:var(--orange);color:#fff;font-weight:700;font-size:19.8px;display:grid;place-items:center}
.step h4{font-size:16.6px;color:var(--navy);margin-bottom:4px}
.step p{font-size:14.3px;color:var(--muted)}
.chev{color:var(--orange);font-size:24.2px;font-weight:700}

/* Responsive */
@media(max-width:1000px){
  .strip .grid{grid-template-columns:repeat(3,1fr)}
  .why-grid,.reason-grid,.footer-grid{grid-template-columns:repeat(2,1fr)}
  .proj-grid{grid-template-columns:1fr}
  .about{grid-template-columns:1fr}
  .about-body{padding:30px 20px;max-width:none}
  .contact-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .chev{transform:rotate(90deg);justify-self:center}
  .hero-tag,.hero.contact .portrait,.tower{display:none}
}
@media(max-width:700px){
  .container{padding:0 20px}
  .nav{display:none;position:absolute;top:72px;left:0;right:0;background:#fff;flex-direction:column;gap:0;padding:8px 20px;border-bottom:1px solid var(--line)}
  .nav.open{display:flex}
  .nav a{padding:12px 0}
  .burger{display:block}
  .header .btn{display:none}
  .hero h1{font-size:33.0px}
  .strip .grid,.stats,.why-grid,.reason-grid,.footer-grid,.form-grid{grid-template-columns:1fr}
  .split-head{flex-direction:column;align-items:flex-start;gap:10px}
  .proj{flex-direction:column}.thumb{flex-basis:auto;height:150px}
  .form-foot{flex-direction:column;gap:12px;align-items:flex-start}
  .bar{flex-direction:column}
}

/* ===== Enhancements ===== */
html{scroll-behavior:smooth;scroll-padding-top:80px}
.progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--orange);z-index:100;transition:width .1s}
.header{transition:box-shadow .3s}
.header.scrolled{box-shadow:0 4px 20px rgba(11,36,71,.12)}
.totop{position:fixed;right:20px;bottom:20px;width:44px;height:44px;border-radius:50%;border:0;background:var(--orange);color:#fff;font-size:22.0px;cursor:pointer;box-shadow:var(--shadow);opacity:0;pointer-events:none;transform:translateY(10px);transition:.3s;z-index:60}
.totop.show{opacity:1;pointer-events:auto;transform:none}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease;transition-delay:var(--d,0s)}
.reveal.in{opacity:1;transform:none}
.svc,.why-card,.proj,.reason,.stat{transition:transform .25s,box-shadow .25s,opacity .6s}
.svc:hover,.why-card:hover,.proj:hover,.reason:hover{transform:translateY(-4px);box-shadow:0 10px 28px rgba(11,36,71,.14)}
.rotator{font-size:18.9px!important;margin-bottom:22px!important}
.rotator b{color:var(--peach);border-right:2px solid var(--peach);padding-right:3px;animation:blink 1s step-end infinite}
@keyframes blink{50%{border-color:transparent}}
.scroll-cue{position:absolute;left:50%;bottom:44px;z-index:3;width:34px;height:34px;border-radius:50%;border:1.5px solid rgba(255,255,255,.6);display:grid;place-items:center;color:#fff;animation:bob 1.8s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(6px)}}
.center{text-align:center}.center p{margin:0 auto}.center .eyebrow{justify-content:center}
.narrow{max-width:940px}

/* Tabs */
.expertises{background:var(--bg)}
.tabs{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:26px 0 20px}
.tab{border:1px solid var(--line);background:#fff;padding:10px 20px;border-radius:999px;font:600 16.0px inherit;font-family:inherit;color:var(--navy);cursor:pointer;transition:.2s}
.tab:hover{border-color:var(--orange)}
.tab.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.panel-tab{display:none;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:30px 34px;max-width:980px;margin:0 auto;animation:fade .4s}
.panel-tab.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(8px)}}
.panel-tab h3{color:var(--navy);font-size:22.0px;margin-bottom:16px}
.checks li{padding:8px 0 8px 30px;position:relative;color:var(--muted);border-bottom:1px dashed var(--line)}
.checks li:last-child{border:0}
.checks li::before{content:"✓";position:absolute;left:0;top:8px;width:20px;height:20px;border-radius:50%;background:var(--orange);color:#fff;font-size:14.3px;display:grid;place-items:center}

/* Vision */
.vmv{background:var(--navy);padding:50px 0}
.vmv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.vmv-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);padding:26px;color:#dbe7f7}
.vmv-card span{color:var(--peach);font-weight:800;font-size:15.4px}
.vmv-card h3{color:#fff;font-size:24.2px;margin:6px 0 10px}
.vmv-card p{font-size:16.0px}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pills i{font-style:normal;font-size:14.9px;padding:6px 12px;border-radius:999px;background:rgba(240,192,120,.18);color:var(--peach)}

/* Method */
.method{background:#fff}
.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:34px;position:relative}
.timeline::before{content:"";position:absolute;top:22px;left:12%;right:12%;height:2px;background:repeating-linear-gradient(90deg,var(--orange) 0 8px,transparent 8px 16px)}
.tl{text-align:center;position:relative}
.tl b{width:46px;height:46px;border-radius:50%;background:var(--orange);color:#fff;display:grid;place-items:center;margin:0 auto 12px;font-size:19.8px;box-shadow:0 0 0 6px #fff}
.tl h4{color:var(--navy);margin-bottom:4px}.tl p{font-size:15.4px;color:var(--muted)}

/* FAQ */
.faq{background:var(--bg)}
.acc{margin-top:26px;display:grid;gap:10px}
.acc-item{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.acc-q{width:100%;display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border:0;background:none;font:600 17.8px inherit;font-family:inherit;color:var(--navy);cursor:pointer;text-align:left}
.acc-q span{color:var(--orange);font-size:24.2px;transition:transform .3s}
.acc-item.open .acc-q span{transform:rotate(45deg)}
.acc-a{max-height:0;overflow:hidden;transition:max-height .35s ease}
.acc-a p{padding:0 20px 18px;color:var(--muted);font-size:16.6px}

/* Filters */
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.chip{border:1px solid var(--line);background:#fff;padding:7px 16px;border-radius:999px;font:600 14.9px inherit;font-family:inherit;color:var(--navy);cursor:pointer}
.chip.active{background:var(--orange);border-color:var(--orange);color:#fff}
.proj.hide{display:none}

@media(max-width:1000px){.vmv-grid,.timeline{grid-template-columns:1fr 1fr}.timeline::before{display:none}}
@media(max-width:700px){.vmv-grid,.timeline{grid-template-columns:1fr}.panel-tab{padding:22px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* ===== Pages internes ===== */
.page-hero .hero-inner{padding:56px 0 70px;max-width:820px}
.page-hero h1{font-size:44px}
.crumb{font-size:14px;color:#cfe0f7;margin-bottom:14px}
.crumb a:hover{text-decoration:underline}
.two-col{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center}
.lead{color:var(--muted);margin-top:16px}
.about-img.rounded{border-radius:var(--radius);min-height:380px;box-shadow:var(--shadow)}
.stats.four{grid-template-columns:repeat(4,1fr)}
.stats.dark .stat{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}
.stats.dark strong,.stats.dark b{color:#fff}.stats.dark p{color:#cbd7ea}
.sticky-nav{position:sticky;top:72px;z-index:40;background:#fff;border-bottom:1px solid var(--line)}
.chips-nav{display:flex;gap:10px;padding:14px 0;overflow-x:auto}
.chips-nav .chip{white-space:nowrap}
.chips-nav .chip:hover{border-color:var(--orange)}
.exp-row{padding:60px 0}.exp-row.alt{background:var(--bg)}
.exp-grid{display:grid;grid-template-columns:220px 1fr;gap:40px;align-items:start}
.exp-side{text-align:center}
.exp-ico{width:130px;height:130px;margin:0 auto;border-radius:24px;background:#fff;box-shadow:var(--shadow);display:grid;place-items:center;border:1px solid var(--line)}
.exp-ico svg{width:64px;height:64px}
.exp-num{display:block;margin-top:12px;font-size:40px;font-weight:800;color:var(--line)}
.exp-row h2{font-size:30px;color:var(--navy);margin-bottom:18px;letter-spacing:-.4px}
.proj-grid.two{grid-template-columns:repeat(2,1fr)}
.note{margin-top:22px;font-size:13px;color:var(--muted);font-style:italic}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.news{overflow:hidden;transition:transform .25s,box-shadow .25s,opacity .6s}
.news:hover{transform:translateY(-4px);box-shadow:0 10px 28px rgba(11,36,71,.14)}
.news.hide{display:none}
.thumb.wide{flex:none;width:100%;height:180px;border-radius:0}
.news-body{padding:18px 20px 20px}
.news h4{font-size:18px;color:var(--navy);margin-bottom:8px;line-height:1.3}
.news p{color:var(--muted);font-size:14.5px}
.meta{display:flex;justify-content:space-between;margin-top:14px;font-size:13px;color:var(--muted)}
.meta a{color:var(--orange);font-weight:600}
.newsletter{background:var(--bg);padding:40px 0}
.nl{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}
.nl h3{color:var(--navy);font-size:24px}.nl p{color:var(--muted)}
.nl form{display:flex;gap:10px;flex-wrap:wrap}
.nl input{border:1px solid var(--line);border-radius:8px;padding:13px 16px;font:inherit;min-width:300px}
@media(max-width:1000px){.two-col,.exp-grid{grid-template-columns:1fr}.stats.four{grid-template-columns:1fr 1fr}.news-grid,.proj-grid.two{grid-template-columns:1fr 1fr}.sticky-nav{top:72px}.exp-side{display:flex;align-items:center;gap:20px;text-align:left}.exp-ico{margin:0;width:90px;height:90px}.exp-ico svg{width:44px;height:44px}}
@media(max-width:700px){.stats.four,.news-grid,.proj-grid.two{grid-template-columns:1fr}.page-hero h1{font-size:32px}.nl input{min-width:0;width:100%}}

/* Logo image */
.logo img{height:56px;width:auto;display:block}
.footer-logo{background:#fff;padding:10px 16px;border-radius:10px;display:inline-flex}
.footer-logo img{height:64px}

/* Accents sable (couleur du logo) */
.eyebrow::before{background:var(--peach)}
.hero-tag{border-right-color:var(--peach)}
.checks li::before{background:var(--navy);color:var(--peach)}
.tl b,.num{background:var(--navy);color:var(--peach)}
.chip.active{background:var(--navy);border-color:var(--navy)}
.timeline::before{background:repeating-linear-gradient(90deg,var(--peach) 0 8px,transparent 8px 16px)}
.scroll-cue{border-color:var(--peach);color:var(--peach)}
.cta .btn-orange,.hero .btn-orange{background:var(--peach);color:var(--navy)}
.cta .btn-orange:hover,.hero .btn-orange:hover{background:#fff}
.cta .eyebrow::before,.hero .eyebrow::before{background:var(--peach)}

/* ===================== Style « Bixol » ===================== */
:root{--sky:#0f93d4;--sky-d:#0b7cb5;--sand:#f0c078;--ink:#05194a;--soft:#f3f7fc;--r:22px;--font-h:"Outfit","Poppins",sans-serif}
body{font-family:"Poppins","Inter","Segoe UI",sans-serif;font-size:16px;color:#4a5878}
h1,h2,h3,h4,.logo b,.btn{font-family:var(--font-h)}
h1,h2,h3,h4{color:var(--ink)}
.container{max-width:1280px}

/* Top bar */
.topbar{background:var(--ink);color:#cfdcf5;font-size:13.5px}
.topbar .container{display:flex;justify-content:space-between;gap:20px;padding-top:9px;padding-bottom:9px;flex-wrap:wrap}
.topbar span,.topbar a{margin-right:22px}.tb-r a:last-child{margin-right:0}
.topbar a:hover{color:var(--sand)}

/* Header */
.header .container{height:84px}
.logo img{height:62px}
.nav{gap:34px;font-family:var(--font-h);font-size:16.5px;font-weight:500}
.nav a{padding:30px 0;position:relative;border:0!important}
.nav a::after{content:"";position:absolute;left:0;bottom:22px;height:2px;width:0;background:var(--sky);transition:.3s}
.nav a:hover::after,.nav a.active::after{width:100%}
.nav a.active{color:var(--sky);font-weight:600}
.sticky-nav{top:84px}
.btn-pill{border-radius:999px;padding:15px 32px;font-weight:600;font-size:15.5px}
.btn-orange{background:var(--sky);box-shadow:0 8px 20px rgba(15,147,212,.3)}
.btn-blue{background:var(--sky);color:#fff;box-shadow:0 8px 20px rgba(15,147,212,.3)}
.btn-blue:hover{background:var(--ink)}
.btn-sand{background:var(--sand);color:var(--ink)}.btn-sand:hover{background:#fff}
.btn-ghost{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-ghost:hover{background:var(--ink);color:#fff}
.pill-tag{display:inline-block;background:rgba(15,147,212,.12);color:var(--sky-d);padding:7px 18px;border-radius:999px;font-weight:600;font-size:13.5px;margin-bottom:14px;font-family:var(--font-h);letter-spacing:.3px}
.pill-tag.light{background:rgba(255,255,255,.14);color:var(--sand)}
.h2{font-size:42px;line-height:1.18;font-weight:700;letter-spacing:-.5px;margin-bottom:16px}
.h2 em{font-style:normal;color:var(--sky)}
.head-c{text-align:center;max-width:760px;margin:0 auto 50px}
.head-c.light .h2{color:#fff}.head-c.light .h2 em{color:var(--sand)}
.note.c{text-align:center}.note.light{color:#9fb2d8}
.more{color:var(--ink);font-weight:600;font-family:var(--font-h);display:inline-flex;gap:8px;align-items:center}
.more b{color:var(--sky);transition:.3s}.more:hover b{transform:translateX(5px)}
section{padding:90px 0}

/* Hero slider */
.hero-slider{position:relative;padding:0;min-height:680px;overflow:hidden;color:#fff;background:var(--ink)}
.slide{position:absolute;inset:0;display:flex;align-items:center;opacity:0;visibility:hidden;transition:opacity .9s,visibility .9s}
.slide.active{opacity:1;visibility:visible}
.slide::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(5,25,74,.93) 0%,rgba(5,25,74,.7) 38%,rgba(5,25,74,.08) 78%)}
.s1{background:radial-gradient(circle at 80% 30%,rgba(240,192,120,.85),transparent 40%),linear-gradient(180deg,#14407f,#c9a063)}
.s2{background:radial-gradient(circle at 75% 40%,rgba(15,147,212,.9),transparent 45%),linear-gradient(160deg,#0a2562,#0f6fb0)}
.s3{background:radial-gradient(circle at 80% 60%,rgba(240,192,120,.9),transparent 40%),linear-gradient(160deg,#0a2562,#b98a45)}
.slide .container{position:relative;z-index:2;width:100%}
.slide-in{max-width:720px}
.kicker{display:inline-block;color:var(--sand);font-family:var(--font-h);font-weight:600;letter-spacing:1.5px;text-transform:uppercase;font-size:14px;margin-bottom:18px;padding-left:46px;position:relative}
.kicker::before{content:"";position:absolute;left:0;top:50%;width:34px;height:2px;background:var(--sand)}
.slide h1{font-size:62px;line-height:1.08;font-weight:700;color:#fff;letter-spacing:-1.2px;margin-bottom:22px}
.slide h1 em{font-style:normal;color:var(--sand)}
.slide p{font-size:18px;color:#dbe6f8;max-width:600px;margin-bottom:34px}
.slide.active .slide-in>*{animation:rise .8s both}
.slide.active .slide-in>*:nth-child(2){animation-delay:.15s}.slide.active .slide-in>*:nth-child(3){animation-delay:.3s}.slide.active .slide-in>*:nth-child(4){animation-delay:.45s}
@keyframes rise{from{opacity:0;transform:translateY(34px)}}
.deco{position:absolute;z-index:1;font-style:normal;pointer-events:none}
.d1{left:6%;top:18%;font-size:34px;color:var(--sand);animation:spin 8s linear infinite}
.d2{right:12%;bottom:22%;font-size:22px;color:#fff;opacity:.7;animation:spin 6s linear infinite reverse}
@keyframes spin{to{transform:rotate(360deg)}}
.ring{border:2px dashed rgba(255,255,255,.28);border-radius:50%}
.r1{width:380px;height:380px;right:-90px;top:-100px;animation:spin 40s linear infinite}
.r2{width:200px;height:200px;left:38%;bottom:-70px;border-color:rgba(240,192,120,.4);animation:spin 30s linear infinite reverse}
.sl-arrow{position:absolute;top:50%;z-index:5;transform:translateY(-50%);width:54px;height:54px;border-radius:50%;border:1.5px solid rgba(255,255,255,.4);background:rgba(255,255,255,.08);color:#fff;font-size:28px;cursor:pointer;backdrop-filter:blur(4px);transition:.25s}
.sl-arrow:hover{background:var(--sand);color:var(--ink);border-color:var(--sand)}
.sl-arrow.prev{left:24px}.sl-arrow.next{right:24px}
.sl-dots{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);display:flex;gap:10px;z-index:5}
.sl-dots button{width:12px;height:12px;border-radius:50%;border:0;background:rgba(255,255,255,.4);cursor:pointer;transition:.3s}
.sl-dots button.on{width:38px;border-radius:8px;background:var(--sand)}

/* Services */
.services2{background:var(--soft)}
.svc2-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.svc2{position:relative;background:#fff;border-radius:var(--r);padding:38px 34px;overflow:hidden;box-shadow:0 8px 30px rgba(5,25,74,.06);transition:.35s;display:block}
.svc2::before{content:"";position:absolute;left:0;top:0;width:100%;height:5px;background:var(--sand);transform:scaleX(0);transform-origin:left;transition:.4s}
.svc2:hover{transform:translateY(-8px);background:var(--ink);box-shadow:0 18px 40px rgba(5,25,74,.25)}
.svc2:hover::before{transform:scaleX(1)}
.svc2:hover h3,.svc2:hover .more{color:#fff}.svc2:hover p{color:#b9c8e6}
.svc2-ico{width:76px;height:76px;border-radius:50%;background:rgba(15,147,212,.12);display:grid;place-items:center;margin-bottom:22px;color:var(--sky);transition:.35s}
.svc2:hover .svc2-ico{background:var(--sand);color:var(--ink);transform:rotateY(180deg)}
.svc2-ico svg{width:38px;height:38px}
.svc2 h3{font-size:23px;margin-bottom:12px;transition:.3s}
.svc2 p{font-size:15px;margin-bottom:20px;transition:.3s}
.svc2-num{position:absolute;right:26px;top:18px;font-style:normal;font-family:var(--font-h);font-size:60px;font-weight:700;color:rgba(5,25,74,.06);line-height:1}
.svc2:hover .svc2-num{color:rgba(255,255,255,.08)}

/* About */
.a2-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:70px;align-items:center}
.a2-media{position:relative}
.a2-img{height:560px;border-radius:260px 260px var(--r) var(--r);background:
 radial-gradient(circle at 50% 28%,#e7b56d 0 7%,transparent 7.5%),
 radial-gradient(ellipse at 50% 62%,#05194a 0 22%,transparent 22.5%),
 linear-gradient(160deg,#bfe0f5,#7fbde6 55%,#0f93d4);box-shadow:0 20px 50px rgba(5,25,74,.2)}
.a2-badge{position:absolute;right:-24px;bottom:40px;background:var(--sand);color:var(--ink);border-radius:var(--r);padding:22px 28px;text-align:center;box-shadow:0 14px 30px rgba(5,25,74,.22);animation:float 4s ease-in-out infinite}
.a2-badge strong{display:block;font-family:var(--font-h);font-size:46px;line-height:1}
.a2-badge>span{font-size:14px;font-weight:500}
@keyframes float{50%{transform:translateY(-12px)}}
.play{position:absolute;left:-18px;top:60px;width:92px;height:92px;border-radius:50%;border:0;background:var(--sky);color:#fff;cursor:pointer;font-size:26px;box-shadow:0 0 0 0 rgba(15,147,212,.6);animation:pulse 2s infinite}
.play span{margin-left:4px}
@keyframes pulse{70%{box-shadow:0 0 0 24px rgba(15,147,212,0)}100%{box-shadow:0 0 0 0 rgba(15,147,212,0)}}
.r3{width:150px;height:150px;left:-60px;bottom:-30px;border-color:rgba(15,147,212,.4);animation:spin 30s linear infinite}
.lead{margin-bottom:22px}
.checks2{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;margin-bottom:34px}
.checks2 li{position:relative;padding-left:32px;font-weight:500;color:var(--ink)}
.checks2 li::before{content:"✓";position:absolute;left:0;top:1px;width:22px;height:22px;border-radius:50%;background:var(--sky);color:#fff;font-size:12px;display:grid;place-items:center}
.a2-actions{display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.call{display:flex;gap:14px;align-items:center}
.call>span{width:52px;height:52px;border-radius:50%;background:var(--ink);color:var(--sand);display:grid;place-items:center;font-size:20px}
.call small{display:block;color:#6a7894}.call b{font-family:var(--font-h);color:var(--ink);font-size:18px}

/* Counters */
.counters{padding:0;background:linear-gradient(120deg,var(--ink),#0a2d70);color:#fff;position:relative;overflow:hidden}
.counters::before{content:"";position:absolute;right:-80px;top:-80px;width:300px;height:300px;border:2px dashed rgba(255,255,255,.15);border-radius:50%}
.c-grid{display:grid;grid-template-columns:repeat(4,1fr);position:relative}
.c-item{padding:54px 20px;text-align:center;border-right:1px solid rgba(255,255,255,.12)}
.c-item:last-child{border:0}
.c-item strong{display:block;font-family:var(--font-h);font-size:56px;color:var(--sand);line-height:1}
.c-item>span{color:#cfdcf5;font-size:15px}

/* Why */
.why2-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.why2{text-align:center;padding:34px 24px;border-radius:var(--r);border:1px solid #e3eaf5;transition:.3s}
.why2:hover{border-color:transparent;box-shadow:0 16px 40px rgba(5,25,74,.12);transform:translateY(-6px)}
.why2-ico{width:84px;height:84px;margin:0 auto 18px;background:var(--soft);display:grid;place-items:center;border-radius:30% 70% 70% 30%/30% 30% 70% 70%;color:var(--sky);transition:.4s}
.why2:hover .why2-ico{background:var(--sky);color:#fff;border-radius:50%}
.why2-ico svg{width:40px;height:40px}
.why2 h4{font-size:19px;margin-bottom:8px}.why2 p{font-size:14.5px}

/* Offers */
.offers{background:var(--soft)}
.offer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;align-items:stretch}
.offer{position:relative;background:#fff;border-radius:var(--r);padding:34px 28px;box-shadow:0 8px 30px rgba(5,25,74,.06);display:flex;flex-direction:column;transition:.3s}
.offer:hover{transform:translateY(-8px)}
.offer.best{background:var(--ink);color:#cfdcf5;transform:scale(1.04);box-shadow:0 20px 50px rgba(5,25,74,.3)}
.offer.best:hover{transform:scale(1.04) translateY(-8px)}
.offer.best h3{color:#fff}.offer.best small{color:var(--sand)}
.ribbon{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--sand);color:var(--ink);font-family:var(--font-h);font-weight:700;font-size:13px;padding:6px 18px;border-radius:999px}
.offer-ico{width:64px;height:64px;border-radius:18px;background:rgba(15,147,212,.12);color:var(--sky);display:grid;place-items:center;margin-bottom:18px}
.offer.best .offer-ico{background:var(--sand);color:var(--ink)}
.offer-ico svg{width:32px;height:32px}
.offer h3{font-size:22px}.offer small{color:var(--sky-d);font-weight:600;display:block;margin:2px 0 12px}
.offer p{font-size:14.5px;margin-bottom:16px}
.offer ul{margin-bottom:26px;flex:1}
.offer li{padding:9px 0 9px 26px;position:relative;font-size:14.5px;border-top:1px dashed rgba(120,140,180,.3)}
.offer li::before{content:"✓";position:absolute;left:0;color:var(--sky);font-weight:700}
.offer.best li::before{color:var(--sand)}
.offer .btn{justify-content:center}

/* Team */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.member{text-align:center}
.m-photo{position:relative;height:310px;border-radius:var(--r);background:linear-gradient(160deg,#cfe6f6,#8cc6ea);display:grid;place-items:center;overflow:hidden;margin-bottom:18px}
.m-photo>span svg{width:96px;height:96px;color:#fff;opacity:.9}
.m-soc{position:absolute;left:0;right:0;bottom:-60px;display:flex;justify-content:center;gap:10px;transition:.35s}
.member:hover .m-soc{bottom:18px}
.m-soc a{width:40px;height:40px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700}
.m-soc a:hover{background:var(--sand);color:var(--ink)}
.member h4{font-size:19px}.member small{color:var(--sky-d);font-weight:500}

/* Testimonials */
.testi{background:linear-gradient(135deg,var(--ink),#0a2d70);position:relative;overflow:hidden}
.testi::after{content:"";position:absolute;left:-100px;bottom:-120px;width:340px;height:340px;border:2px dashed rgba(255,255,255,.14);border-radius:50%}
.tslider{max-width:820px;margin:0 auto;position:relative;z-index:2;text-align:center}
.tcard{display:none;background:#fff;border-radius:var(--r);padding:44px 46px 36px;animation:fade .5s}
.tcard.active{display:block}
.quote{font-family:Georgia,serif;font-size:90px;line-height:.6;color:var(--sand);height:42px}
.tcard p{font-size:19px;color:var(--ink);margin:10px 0 24px}
.who{display:flex;gap:14px;justify-content:center;align-items:center;text-align:left}
.avatar{width:54px;height:54px;border-radius:50%;background:var(--soft);display:grid;place-items:center;color:var(--sky)}
.avatar svg{width:28px;height:28px}
.who b{display:block;font-family:var(--font-h);color:var(--ink)}.who small{color:#6a7894}
.tdots{display:flex;justify-content:center;gap:10px;margin-top:24px}
.tdots button{width:12px;height:12px;border-radius:50%;border:0;background:rgba(255,255,255,.35);cursor:pointer}
.tdots button.on{background:var(--sand);width:34px;border-radius:8px}

/* Blog */
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:40px}
.post{border-radius:var(--r);overflow:hidden;background:#fff;box-shadow:0 8px 30px rgba(5,25,74,.08);transition:.3s}
.post:hover{transform:translateY(-8px)}
.post-img{height:230px;position:relative;transition:.5s}
.post-img.t1{background:linear-gradient(160deg,#14407f,#0f93d4)}.post-img.t2{background:linear-gradient(160deg,#05194a,#3a6fb8)}.post-img.t3{background:linear-gradient(160deg,#c9a063,#f0c078)}
.date{position:absolute;left:18px;top:18px;background:var(--sand);color:var(--ink);font-family:var(--font-h);font-weight:700;border-radius:12px;padding:8px 14px;font-size:14px}
.post-b{padding:26px}
.post-meta{display:flex;gap:18px;font-size:13px;color:#6a7894;margin-bottom:10px}
.post-meta span:first-child{color:var(--sky-d);font-weight:600}
.post h4{font-size:20px;line-height:1.3;margin-bottom:16px}

/* CTA */
.cta2{padding:0;background:var(--sky)}
.cta2 .container{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-top:50px;padding-bottom:50px;flex-wrap:wrap}
.cta2 h3{color:#fff;font-size:34px}.cta2 p{color:#e3f3fc}

/* Footer newsletter */
.foot-news{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;padding:34px 0;margin-bottom:34px;border-bottom:1px solid rgba(255,255,255,.12)}
.foot-news h4{color:#fff;font-size:24px;margin-bottom:4px}
.fn-form{display:flex;gap:10px;flex-wrap:wrap}
.fn-form input{border:0;border-radius:999px;padding:15px 24px;min-width:300px;font:inherit}
.fn-form strong{color:var(--sand)}
.footer{font-size:14.5px}

/* Video modal */
.modal{position:fixed;inset:0;background:rgba(3,16,56,.85);display:none;place-items:center;z-index:200;padding:20px}
.modal.open{display:grid;animation:fade .3s}
.modal-box{position:relative;width:min(900px,100%)}
.modal-x{position:absolute;right:-6px;top:-46px;background:none;border:0;color:#fff;font-size:38px;cursor:pointer}
.video-ph{aspect-ratio:16/9;border-radius:var(--r);background:linear-gradient(135deg,#0a2562,#0f93d4);display:grid;place-content:center;text-align:center;color:#fff;gap:10px}
.video-ph span{font-size:56px}

@media(max-width:1100px){
  .slide h1{font-size:46px}.h2{font-size:34px}
  .svc2-grid,.post-grid{grid-template-columns:1fr 1fr}
  .a2-grid{grid-template-columns:1fr}.a2-img{height:420px}.a2-badge{right:10px}.play{left:10px}
  .why2-grid,.offer-grid,.team-grid{grid-template-columns:1fr 1fr}.offer.best{transform:none}
  .c-grid{grid-template-columns:1fr 1fr}.c-item:nth-child(2){border:0}
}
@media(max-width:700px){
  .topbar .tb-l{display:none}.topbar .container{justify-content:center}
  .header .container{height:72px}.logo img{height:52px}
  .slide h1{font-size:34px}.slide p{font-size:16px}.hero-slider{min-height:620px}.sl-arrow{display:none}
  .h2{font-size:28px}section{padding:60px 0}
  .svc2-grid,.post-grid,.why2-grid,.offer-grid,.team-grid,.checks2,.c-grid{grid-template-columns:1fr}
  .c-item{border:0;border-bottom:1px solid rgba(255,255,255,.12);padding:34px 20px}
  .tcard{padding:30px 22px}.fn-form input{min-width:0;width:100%}.cta2 h3{font-size:26px}
  .nav{top:72px!important}
}

/* Services : 3 cartes | image | 3 cartes */
.sc-wrap{display:grid;grid-template-columns:1fr 430px 1fr;gap:30px;align-items:center}
.sc-col{display:grid;gap:30px}
.sc{position:relative;display:flex;gap:22px;align-items:flex-start;background:#fff;padding:30px 24px 28px 62px;box-shadow:0 10px 40px rgba(5,25,74,.1);min-height:148px;transition:.3s}
.sc:hover{transform:translateY(-5px);box-shadow:0 16px 46px rgba(5,25,74,.18)}
.sc-ico{position:absolute;left:-34px;top:50%;margin-top:-34px;width:68px;height:68px;border-radius:50%;background:#14308f;color:#fff;display:grid;place-items:center;z-index:1}
.sc-ico::before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--sky);transform:translate(-5px,6px);z-index:-1}
.sc-ico svg{width:34px;height:34px}
.sc h3{font-size:23px;font-weight:700;color:#14308f;margin-bottom:6px;line-height:1.2}
.sc p{font-size:15.5px;color:#3a4268;line-height:1.7;padding-right:26px}
.sc-arrow{position:absolute;right:22px;bottom:16px;color:#14308f;font-size:20px;transition:.3s}
.sc:hover .sc-arrow{transform:translate(4px,4px);color:var(--sky)}
.sc-center{position:relative;height:480px}
.sc-outline{position:absolute;left:-14px;top:12px;right:-6px;bottom:-4px;border:2px solid var(--sky);border-radius:90px 150px 80px 120px;transform:rotate(-1.5deg)}
.sc-photo{position:absolute;left:0;right:0;top:44px;bottom:6px;border-radius:44px 120px 56px 90px;background:
 radial-gradient(circle at 70% 25%,rgba(240,192,120,.85),transparent 45%),linear-gradient(160deg,#7fbde6,#0f93d4 55%,#14308f);box-shadow:12px 14px 30px rgba(5,25,74,.22);display:grid;place-items:center;overflow:hidden}
.sc-person{width:220px;height:220px;color:rgba(255,255,255,.85)}
.sc-badge{position:absolute;left:-20px;top:0;width:120px;padding:18px 10px;background:#14308f;color:#fff;text-align:center;border-radius:26px 22px 26px 8px;transform:rotate(3deg);box-shadow:0 10px 24px rgba(5,25,74,.3);z-index:2}
.sc-badge::before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--sky);transform:translate(-5px,5px);z-index:-1}
.sc-badge strong{display:block;font-family:var(--font-h);font-size:40px;line-height:1}
.sc-badge span{font-size:12.5px;line-height:1.25;display:block;margin-top:4px}
@media(max-width:1100px){.sc-wrap{grid-template-columns:1fr 1fr}.sc-center{grid-column:1/-1;order:-1;max-width:430px;margin:0 auto 20px;width:100%}.sc{padding-left:56px}.sc-ico{left:-26px}}
@media(max-width:700px){.sc-wrap{grid-template-columns:1fr}.sc-col{gap:34px}.sc{margin-left:30px}.sc-center{height:380px}}
.sc-ico{background:#14308f;box-shadow:-6px 6px 0 var(--sky)}
.sc-ico::before,.sc-badge::before{display:none}
.sc-badge{box-shadow:-6px 6px 0 var(--sky),0 10px 24px rgba(5,25,74,.25)}
.sc-wrap{grid-template-columns:1fr 400px 1fr;gap:44px}
.sc-col{grid-auto-rows:1fr}
.sc h3{font-size:21px}
.sc p{font-size:15px;line-height:1.6}
.sc{align-items:center}

/* Photos par domaine (dossier images/) — le dégradé reste en secours */
.s1{background:url(../images/slide-1.jpg) center/cover no-repeat,radial-gradient(circle at 80% 30%,rgba(240,192,120,.85),transparent 40%),linear-gradient(180deg,#14407f,#c9a063)}
.s2{background:url(../images/slide-2.jpg) center/cover no-repeat,radial-gradient(circle at 75% 40%,rgba(15,147,212,.9),transparent 45%),linear-gradient(160deg,#0a2562,#0f6fb0)}
.s3{background:url(../images/slide-3.jpg) center/cover no-repeat,radial-gradient(circle at 80% 60%,rgba(240,192,120,.9),transparent 40%),linear-gradient(160deg,#0a2562,#b98a45)}
.sc-photo .ph{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity .5s}
.sc-photo .ph.on{opacity:1}
.sc-person{position:relative;z-index:0}
.sc.is-on{box-shadow:0 16px 46px rgba(5,25,74,.2);border-left:4px solid var(--sky)}
.a2-img{background:url(../images/apropos.jpg) center/cover no-repeat,linear-gradient(160deg,#bfe0f5,#7fbde6 55%,#0f93d4)}

/* ===== Titres lisibles sur fonds sombres (pages internes) ===== */
.hero h1,.page-hero h1{color:#fff}
.page-hero h1 em{font-style:normal;color:var(--sand)}
.cta h3,.cta2 h3{color:#fff}
.ph-img{background:linear-gradient(100deg,rgba(5,25,74,.94) 0%,rgba(5,25,74,.78) 45%,rgba(5,25,74,.35) 100%),url(../images/slide-3.jpg) center/cover no-repeat,var(--ink)!important}
.ph-img::after{display:none}
.page-hero .kicker{margin-bottom:14px}
.page-hero h1{font-size:50px;line-height:1.1;letter-spacing:-1px;margin-bottom:18px}
.page-hero .hero-actions{margin-top:28px}
.page-hero .hero-inner{padding:80px 0 90px;max-width:780px}

/* Barre de chips */
.chips-nav{justify-content:center}
.chips-nav .chip{padding:9px 20px;font-size:14.5px}
.chips-nav .chip b{color:var(--sky);margin-right:4px}
.chips-nav .chip:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.chips-nav .chip:hover b{color:var(--sand)}

/* Vue d'ensemble */
.xov{background:var(--soft)}
.ov-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}
.ov{position:relative;background:#fff;border-radius:var(--r);padding:30px 22px 26px;text-align:center;box-shadow:0 8px 30px rgba(5,25,74,.07);transition:.35s;overflow:hidden}
.ov:hover{background:var(--ink);transform:translateY(-8px)}
.ov-n{position:absolute;right:16px;top:10px;font-family:var(--font-h);font-size:34px;font-weight:700;color:rgba(5,25,74,.08)}
.ov-ico{width:74px;height:74px;margin:0 auto 16px;border-radius:50%;background:rgba(15,147,212,.12);color:var(--sky);display:grid;place-items:center;transition:.35s}
.ov-ico svg{width:36px;height:36px}
.ov:hover .ov-ico{background:var(--sand);color:var(--ink)}
.ov h3{font-size:19px;margin-bottom:10px;transition:.3s}
.ov:hover h3,.ov:hover .more{color:#fff}.ov:hover .more b{color:var(--sand)}

/* Lignes de domaines */
.xrow{padding:90px 0}.xrow.alt{background:var(--soft)}
.xr-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:70px;align-items:center}
.xrow.alt .xr-grid>:first-child{order:2}
.xr-media{position:relative}
.xr-img{height:540px;background-size:cover;background-position:center;background-color:#7fbde6;box-shadow:0 20px 50px rgba(5,25,74,.2)}
.shape0{border-radius:var(--r) 200px var(--r) 200px}
.shape1{border-radius:240px 240px var(--r) var(--r)}
.shape2{border-radius:200px var(--r) 200px var(--r)}
.xr-num{position:absolute;left:-14px;top:-30px;font-family:var(--font-h);font-size:120px;font-weight:700;line-height:1;color:transparent;-webkit-text-stroke:2px var(--sky);opacity:.55}
.xrow.alt .xr-num{left:auto;right:-14px}
.xr-chip{position:absolute;right:-22px;bottom:36px;display:flex;align-items:center;gap:12px;background:#fff;padding:14px 22px 14px 14px;border-radius:999px;box-shadow:0 12px 30px rgba(5,25,74,.2);animation:float 4s ease-in-out infinite}
.xrow.alt .xr-chip{right:auto;left:-22px}
.xr-chip>span{width:44px;height:44px;border-radius:50%;background:var(--ink);color:var(--sand);display:grid;place-items:center}
.xr-chip svg{width:22px;height:22px}
.xr-chip b{font-family:var(--font-h);color:var(--ink);font-size:15px}
.xrow .r3{right:-50px;left:auto;bottom:-40px}
.xrow.alt .r3{left:-50px;right:auto}
.checks2.one{grid-template-columns:1fr}
.checks2 li{font-weight:400;color:#3a4a6b}
.xrow .lead{font-size:17px}

/* Approche */
.xhow{background:linear-gradient(135deg,var(--ink),#0a2d70);position:relative;overflow:hidden}
.steps4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;position:relative}
.st{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:var(--r);padding:30px 24px;color:#cfdcf5;transition:.3s}
.st:hover{background:rgba(255,255,255,.12);transform:translateY(-6px)}
.st b{display:block;font-family:var(--font-h);font-size:44px;color:var(--sand);line-height:1;margin-bottom:12px}
.st h4{color:#fff;font-size:20px;margin-bottom:6px}

@media(max-width:1100px){.ov-grid{grid-template-columns:repeat(3,1fr)}.xr-grid{grid-template-columns:1fr;gap:40px}.xrow.alt .xr-grid>:first-child{order:0}.xr-img{height:420px}.steps4{grid-template-columns:1fr 1fr}.xr-chip,.xrow.alt .xr-chip{right:12px;left:auto}.xr-num,.xrow.alt .xr-num{left:12px;right:auto}.page-hero h1{font-size:40px}}
@media(max-width:700px){.ov-grid,.steps4{grid-template-columns:1fr}.xrow{padding:60px 0}.page-hero h1{font-size:32px}.page-hero .hero-inner{padding:50px 0 60px}.chips-nav{justify-content:flex-start}}

/* =====================================================
   RESPONSIVE FINAL (placé en dernier pour l'emporter)
   ===================================================== */
html{-webkit-text-size-adjust:100%}
body{overflow-x:clip}
img,svg,video{max-width:100%}
h1,h2,h3,h4{overflow-wrap:break-word}

/* Typographie fluide */
.slide h1{font-size:clamp(32px,5.2vw,62px)}
.page-hero h1{font-size:clamp(30px,4.6vw,50px)}
.h2{font-size:clamp(26px,3.4vw,42px)}
.cta2 h3{font-size:clamp(24px,2.8vw,34px)}
.c-item strong{font-size:clamp(40px,5vw,56px)}

/* ---- Tablette large / petit laptop ---- */
@media(max-width:1200px){
  .container{padding:0 28px}
  .sc-wrap{grid-template-columns:1fr 340px 1fr;gap:34px}
  .sc{padding:26px 20px 26px 54px}
  .ov-grid{grid-template-columns:repeat(3,1fr)}
  .offer-grid,.why2-grid,.team-grid{grid-template-columns:repeat(2,1fr)}
  .offer.best,.offer.best:hover{transform:none}
}

/* ---- Menu burger dès 1100px ---- */
@media(max-width:1100px){
  .burger{display:block;order:3}
  .header .btn{margin-left:auto;padding:11px 20px;font-size:14px}
  .header .container{gap:14px}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:#fff;padding:8px 28px 18px;border-bottom:1px solid var(--line);box-shadow:0 18px 30px rgba(5,25,74,.12)}
  .nav.open{display:flex;animation:fade .25s}
  .nav a{padding:15px 0;border-bottom:1px solid var(--line)!important;font-size:17px}
  .nav a::after{display:none}
  .nav a.active{color:var(--sky)}
  .header{position:sticky}
  .sticky-nav{top:84px}

  /* Services : image au-dessus, cartes sur 2 colonnes */
  .sc-wrap{grid-template-columns:1fr 1fr;gap:36px 30px}
  .sc-center{grid-column:1/-1;order:-1;max-width:440px;width:100%;margin:0 auto 10px;height:460px}
  .sc-col{display:contents}
  .sc{margin-left:34px}
  .sc-ico{left:-34px}

  .a2-grid,.xr-grid,.two-col{grid-template-columns:1fr;gap:44px}
  .xrow.alt .xr-grid>:first-child{order:0}
  .a2-media,.xr-media{max-width:560px;width:100%;margin:0 auto}
  .a2-img,.xr-img{height:auto;aspect-ratio:1/1.04}
  .c-grid{grid-template-columns:1fr 1fr}
  .c-item:nth-child(2){border-right:0}
  .c-item:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.12)}
  .svc2-grid,.post-grid,.news-grid,.proj-grid.two{grid-template-columns:1fr 1fr}
  .vmv-grid,.timeline,.steps4{grid-template-columns:1fr 1fr}
  .timeline::before{display:none}
  .footer-grid{grid-template-columns:1fr 1fr}
  .contact-grid{grid-template-columns:1fr}
  .reason-grid,.why-grid{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr}.chev{transform:rotate(90deg);justify-self:center}
  .proj-grid{grid-template-columns:1fr 1fr}
  .xr-chip,.xrow.alt .xr-chip{right:10px;left:auto}
  .xr-num,.xrow.alt .xr-num{left:10px;right:auto}
  .a2-badge{right:10px}.play{left:10px}
  .hero-slider{min-height:620px}
  .sl-arrow{width:44px;height:44px}
}

/* ---- Tablette portrait / grand mobile ---- */
@media(max-width:760px){
  .container{padding:0 20px}
  section{padding:56px 0}
  .topbar .tb-l{display:none}
  .topbar .container{justify-content:center;gap:14px}
  .topbar a{margin:0;font-size:12.5px}
  .header .container{height:68px}
  .logo img{height:48px}
  .header .btn{display:none}
  .burger{margin-left:auto}
  .nav{padding:6px 20px 16px}
  .sticky-nav{top:68px}

  .hero-slider{min-height:600px}
  .slide-in{max-width:100%}
  .slide p{font-size:16px}
  .slide::before{background:linear-gradient(180deg,rgba(5,25,74,.88),rgba(5,25,74,.72))}
  .sl-arrow{display:none}
  .sl-dots{bottom:22px}
  .hero-actions{gap:10px}
  .btn-pill{padding:13px 24px;font-size:15px}
  .page-hero .hero-inner{padding:48px 0 56px}
  .page-hero .hero-actions .btn{flex:1 1 auto;justify-content:center}
  .ph-img{background-position:70% center!important}

  .head-c{margin-bottom:34px}
  .sc-wrap{grid-template-columns:1fr;gap:30px}
  .sc-center{height:auto;aspect-ratio:1/1.05;max-width:360px}
  .sc{margin-left:30px;min-height:0;padding:24px 20px 26px 50px}
  .sc-ico{left:-30px;width:60px;height:60px;margin-top:-30px}
  .sc h3{font-size:19px}
  .sc p{padding-right:18px}
  .svc2-grid,.post-grid,.news-grid,.proj-grid,.proj-grid.two,.why2-grid,.offer-grid,.team-grid,.vmv-grid,.timeline,.steps4,.reason-grid,.why-grid,.ov-grid,.checks2,.footer-grid,.stats,.stats.four,.form-grid{grid-template-columns:1fr}
  .team-grid,.ov-grid{grid-template-columns:1fr 1fr;gap:14px}
  .m-photo{height:220px}
  .c-grid{grid-template-columns:1fr 1fr}
  .c-item{padding:28px 10px;border-right:0!important}
  .c-item:nth-child(odd){border-right:1px solid rgba(255,255,255,.12)!important}
  .c-item:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.12)}
  .a2-actions{gap:18px}
  .a2-badge{padding:14px 18px}.a2-badge strong{font-size:34px}
  .play{width:70px;height:70px;top:30px}
  .xr-num{font-size:84px;top:-22px}
  .xr-chip{padding:10px 16px 10px 10px}
  .xr-chip>span{width:38px;height:38px}
  .tcard{padding:28px 20px}.tcard p{font-size:16.5px}
  .split-head{flex-direction:column;align-items:flex-start;gap:14px}
  .proj{flex-direction:column}.thumb{flex:none;height:170px;width:100%}
  .cta .container,.cta2 .container,.nl,.foot-news{flex-direction:column;align-items:flex-start}
  .fn-form,.nl form{width:100%}
  .fn-form input,.nl input{min-width:0;flex:1 1 100%;width:100%}
  .fn-form .btn,.nl .btn{width:100%;justify-content:center}
  .form-foot{flex-direction:column;align-items:stretch;gap:14px}
  .form-foot .btn{justify-content:center}
  .field input,.field select,.field textarea{font-size:16px}  /* évite le zoom iOS */
  .panel,.coords{padding:22px 18px}
  .bar{flex-direction:column;align-items:flex-start}
  .bar div{flex-wrap:wrap;gap:10px 18px}
  .exp-grid{grid-template-columns:1fr}
  .totop{right:14px;bottom:14px}
  .modal-x{right:0}
}

/* ---- Petits mobiles ---- */
@media(max-width:430px){
  .container{padding:0 16px}
  .team-grid,.ov-grid{grid-template-columns:1fr}
  .c-item strong{font-size:38px}
  .h2{letter-spacing:-.3px}
  .hero-actions .btn{width:100%;justify-content:center}
  .a2-actions .btn{width:100%;justify-content:center}
  .tabs{gap:6px}.tab{padding:9px 14px;font-size:14px}
  .nl input{padding:13px 16px}
  .a2-img,.xr-img{aspect-ratio:1/1.1}
}

/* Appareils tactiles : pas d'effets survol qui « collent » */
@media(hover:none){
  .svc2:hover,.why2:hover,.offer:hover,.post:hover,.ov:hover,.st:hover,.news:hover{transform:none}
}
@media(max-width:1100px){.xrow .r3,.xrow.alt .r3{display:none}}
@media(max-width:760px){.sc-badge{left:6px}}
@media(max-width:760px){
  .topbar .container{padding-top:7px;padding-bottom:7px}
  .tb-r{display:flex;gap:6px 16px;flex-wrap:wrap;justify-content:center}
  .topbar a{font-size:12px;white-space:nowrap}
  .why2{display:flex;gap:16px;text-align:left;align-items:flex-start;padding:22px 20px}
  .why2-ico{margin:0;flex:0 0 64px;width:64px;height:64px}
  .why2-ico svg{width:30px;height:30px}
  .why2 h4{font-size:18px}
}
@media(max-width:1100px){
  .sl-arrow{top:auto;bottom:14px;transform:none}
  .sl-arrow.prev{left:20px}.sl-arrow.next{right:20px}
  .sl-dots{bottom:30px}
}
@media(max-width:760px){.sl-arrow{display:none}}
@media(max-width:760px){
  .ov-grid{grid-template-columns:1fr 1fr!important;gap:12px}
  .ov{padding:22px 12px 18px}
  .ov-ico{width:58px;height:58px}.ov-ico svg{width:28px;height:28px}
  .ov h3{font-size:16.5px}.ov-n{font-size:26px}
  .ov:last-child{grid-column:1/-1}
}
@media(max-width:760px){
  .why2{display:grid;grid-template-columns:64px 1fr;column-gap:16px;align-items:start}
  .why2-ico{grid-row:1/3}
  .why2 h4{align-self:end;margin-bottom:4px}
}

/* ===================== Ajouts version PHP ===================== */
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.flash{position:relative;z-index:60;font-size:15px}
.flash .container{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:14px;padding-bottom:14px}
.flash button{background:none;border:0;font-size:24px;line-height:1;cursor:pointer;color:inherit}
.flash-success{background:#e4f7ec;color:#14633a}.flash-error{background:#fdeaea;color:#a12626}.flash-info{background:#e8f3fc;color:#0b5a8a}
.err{display:block;color:#b42323;font-size:13px;margin-top:2px}
.err-page{text-align:center;padding:110px 0}.err-code{font-family:var(--font-h);font-size:110px;font-weight:700;color:var(--sky);line-height:1;display:block}
.err-page h1{margin:10px 0}.err-page p{margin-bottom:26px}
.empty{text-align:center;padding:50px 0;color:var(--muted)}
.m-photo[style]{background-size:cover;background-position:center}
.soc{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px}
.soc:hover{background:var(--sand);color:var(--ink)}
.footer li::before{content:none}.footer li{margin-bottom:8px}
.footer a:hover{color:var(--sand)}
.about-photo{border-radius:var(--r);min-height:380px;height:auto;aspect-ratio:1/1;background-size:cover;background-position:center}
.pager{display:flex;gap:8px;justify-content:center;margin-top:40px}
.pager a{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);font-weight:600;color:var(--ink)}
.pager a.on,.pager a:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.post-img[style],.thumb[style]{background-size:cover;background-position:center}
a.card.proj{display:flex}
.detail-grid{display:grid;grid-template-columns:1fr 340px;gap:50px;align-items:start}
.narrow-detail{max-width:860px}
.detail-img{width:100%;border-radius:var(--r);margin-bottom:30px;box-shadow:var(--shadow)}
.prose p{margin-bottom:18px;font-size:17px;line-height:1.8}
.lead-big{font-size:20px;color:var(--ink);font-weight:500;margin-bottom:24px;line-height:1.6}
.share{margin-top:36px}
.side-card{background:var(--soft);border-radius:var(--r);padding:28px;position:sticky;top:110px}
.side-card h4{font-size:20px;margin-bottom:14px}
.side-card dt{font-weight:600;color:var(--ink);font-size:14px;margin-top:12px}.side-card dd{color:var(--muted);margin-bottom:4px}
.side-card .btn{margin-top:20px;width:100%;justify-content:center}
@media(max-width:1000px){.detail-grid{grid-template-columns:1fr}.side-card{position:static}}

/* ===== Module Devis ===== */
.form-step{display:flex;align-items:center;gap:12px;font-size:19px;margin:28px 0 16px;padding-top:6px;border-top:1px dashed var(--line)}
.form-step:first-of-type{margin-top:8px;border:0}
.form-step b{width:32px;height:32px;border-radius:50%;background:var(--ink);color:var(--sand);display:grid;place-items:center;font-size:15px;font-family:var(--font-h)}
.check-line{display:flex;gap:12px;align-items:flex-start;margin-top:20px;font-size:14px;color:var(--text);cursor:pointer}
.check-line input{width:20px;height:20px;margin-top:2px;accent-color:var(--sky);flex:none}
.notice{background:#eef6fc;border-left:4px solid var(--sky);padding:12px 16px;border-radius:8px;margin-bottom:20px!important;font-size:14px}
.notice a{color:var(--sky-d);font-weight:600;text-decoration:underline}
.quote-side{display:grid;gap:20px;align-content:start}
.side-box{padding:26px}
.side-box.dark{background:var(--ink);border-color:var(--ink);color:#cfdcf5}.side-box.dark h4{color:#fff;font-size:20px;margin-bottom:8px}.side-box.dark .btn{margin-top:14px}
.q-direct{margin-top:18px;font-size:14px;color:#cfdcf5;line-height:1.9}
.q-steps{list-style:none;margin-top:6px}
.q-steps li{display:flex;gap:14px;padding:14px 0;border-bottom:1px dashed var(--line)}.q-steps li:last-child{border:0}
.q-steps b{flex:none;width:36px;height:36px;border-radius:50%;background:var(--sky);color:#fff;display:grid;place-items:center;font-family:var(--font-h)}
.q-steps h4{font-size:16px;margin-bottom:2px}.q-steps p{font-size:13.5px;color:var(--muted)}
.thanks{text-align:center;max-width:680px;padding-top:30px;padding-bottom:30px}
.thanks-ico{width:90px;height:90px;border-radius:50%;background:#e4f7ec;color:#14803f;display:grid;place-items:center;font-size:44px;margin:0 auto 20px;font-weight:700}
.ref{display:inline-block;font-family:var(--font-h);font-size:34px;font-weight:700;color:var(--ink);background:var(--soft);border:2px dashed var(--sky);border-radius:16px;padding:12px 28px;margin:6px 0 18px;letter-spacing:1px}
@media(max-width:1000px){.quote-side{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.quote-side{grid-template-columns:1fr}}

/* ===== Boutons en cours de traitement (spinner) ===== */
.btn.loading{position:relative;pointer-events:none;opacity:.85;cursor:progress}
.btn.loading::before{content:"";width:16px;height:16px;border:2.5px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:btn-spin .7s linear infinite;flex:none}
.btn-sand.loading::before,.btn-ghost.loading::before{border-color:rgba(5,25,74,.25);border-top-color:var(--ink)}
.btn:disabled{cursor:progress}
@keyframes btn-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.btn.loading::before{animation-duration:1.6s}}

/* ===================== Écran de chargement (logo animé) ===================== */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.preloader{position:fixed;inset:0;z-index:9999;display:none;place-items:center;background:radial-gradient(circle at 50% 42%,#fff 0,#f1f7fd 55%,#e3eefb 100%);transition:opacity .55s ease,visibility .55s ease,transform .55s ease}
html.pre-run .preloader{display:grid;animation:pl-failsafe 0s linear 6s forwards}   /* filet de sécurité : jamais bloqué plus de 6 s */
html.pre-run body{overflow:hidden}
.preloader.done{opacity:0;visibility:hidden;transform:scale(1.04);pointer-events:none}
@keyframes pl-failsafe{to{opacity:0;visibility:hidden;pointer-events:none}}

.pl-stage{position:relative;width:min(300px,70vw);aspect-ratio:1;display:grid;place-items:center}
.pl-logo{position:relative;z-index:2;width:62%;height:auto;opacity:0;animation:pl-pop .9s cubic-bezier(.2,.9,.3,1.2) .1s forwards,pl-float 2.4s ease-in-out 1s infinite}
.pl-ring{position:absolute;inset:0;border-radius:50%;border:2px solid transparent}
.pl-r1{border-top-color:var(--sky);border-right-color:rgba(15,147,212,.25);animation:pl-spin 1.3s linear infinite}
.pl-r2{inset:12%;border-bottom-color:var(--sand);border-left-color:rgba(240,192,120,.3);animation:pl-spin 1.9s linear infinite reverse}
.pl-glow{position:absolute;inset:18%;border-radius:50%;background:radial-gradient(circle,rgba(15,147,212,.22),transparent 68%);animation:pl-pulse 1.8s ease-in-out infinite}
.pl-bar{position:absolute;left:12%;right:12%;bottom:-34px;height:4px;border-radius:4px;background:rgba(5,25,74,.1);overflow:hidden}
.pl-bar span{display:block;height:100%;width:40%;border-radius:4px;background:linear-gradient(90deg,var(--sky),var(--sand));animation:pl-bar 1.2s ease-in-out infinite}
@keyframes pl-pop{from{opacity:0;transform:scale(.55) rotate(-6deg)}to{opacity:1;transform:none}}
@keyframes pl-float{50%{transform:translateY(-7px) scale(1.03)}}
@keyframes pl-spin{to{transform:rotate(360deg)}}
@keyframes pl-pulse{50%{transform:scale(1.18);opacity:.65}}
@keyframes pl-bar{0%{transform:translateX(-110%)}100%{transform:translateX(280%)}}
@media(prefers-reduced-motion:reduce){.pl-ring,.pl-glow,.pl-logo,.pl-bar span{animation:none!important}.pl-logo{opacity:1}.pl-bar span{width:100%}}

/* ===================== Illustrations de remplacement (aucune image) ===================== */
.thumb,.post-img,.xr-img{position:relative}
.is-empty{overflow:hidden;background-size:auto!important}
.is-empty::before{content:"";position:absolute;inset:0;background:
  radial-gradient(circle at 18% 22%,rgba(255,255,255,.22) 0 2px,transparent 3px) 0 0/26px 26px,
  linear-gradient(135deg,rgba(255,255,255,.12) 0 38%,transparent 38% 62%,rgba(255,255,255,.08) 62%);pointer-events:none}
.is-empty::after{content:"";position:absolute;right:-18%;bottom:-30%;width:70%;aspect-ratio:1;border-radius:50%;border:2px dashed rgba(255,255,255,.28);pointer-events:none}
.ph-art{position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,255,255,.92);z-index:1}
.ph-art svg{width:min(46%,64px);height:auto;aspect-ratio:1;filter:drop-shadow(0 4px 10px rgba(5,25,74,.25))}
.thumb.wide .ph-art svg,.detail-ph .ph-art svg{width:56px}
.phc-tel{background:linear-gradient(135deg,#0f93d4,#05194a)!important}
.phc-num{background:linear-gradient(135deg,#14407f,#3a8fe0)!important}
.phc-ene{background:linear-gradient(135deg,#f0c078,#c98a2e)!important}.phc-ene .ph-art{color:#05194a}.phc-ene .ph-art svg{filter:none;opacity:.85}
.phc-ing{background:linear-gradient(135deg,#0a2562,#3a6fb8)!important}
.phc-gest{background:linear-gradient(135deg,#05194a,#0f93d4 120%)!important}
.phc-svc,.phc-def{background:linear-gradient(135deg,#7fbde6,#0f93d4 60%,#14308f)!important}
.xr-img.is-empty .ph-art svg{width:34%}
.detail-ph{position:relative;aspect-ratio:16/7;margin-bottom:30px;border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
.post-img.is-empty .date{z-index:2}
a.thumb,a.post-img{display:block}
