:root{
  --navy:#071b3a;
  --navy-2:#0b2a55;
  --blue:#0b5fa8;
  --cyan:#18a4d8;
  --ice:#edf5fb;
  --ink:#11213a;
  --muted:#65748b;
  --line:#dfe7ef;
  --white:#fff;
  --radius:22px;
  --shadow:0 22px 70px rgba(8,30,60,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:#fff;font-family:"DM Sans",Arial,sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
.container{width:min(1180px,calc(100% - 48px));margin-inline:auto}
.skip-link{position:fixed;left:16px;top:-80px;z-index:1000;background:#fff;color:var(--navy);padding:12px 16px;border-radius:8px;box-shadow:var(--shadow)}
.skip-link:focus{top:16px}
.site-header{position:fixed;z-index:100;top:0;left:0;width:100%;padding:13px 0;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-bottom:1px solid rgba(7,27,58,.08);transition:.3s}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;gap:30px}
.brand img{width:176px;height:64px;object-fit:contain;object-position:center}
.main-nav{display:flex;align-items:center;gap:24px;font-size:13px;font-weight:700;letter-spacing:.01em}
.main-nav a{position:relative;color:#273a55}
.main-nav a:not(.nav-cta)::after{content:"";position:absolute;left:0;bottom:-7px;width:0;height:2px;background:var(--cyan);transition:.25s}
.main-nav a:hover::after,.main-nav a:focus-visible::after{width:100%}
.nav-cta{padding:11px 18px;border-radius:999px;color:#fff!important;background:var(--navy);box-shadow:0 8px 22px rgba(7,27,58,.18)}
.nav-toggle{display:none;border:0;background:transparent;padding:8px}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--navy);margin:5px}
.hero{min-height:820px;position:relative;display:grid;align-items:center;overflow:hidden;color:#fff;background:var(--navy)}
.hero-bg{position:absolute;inset:0;background-image:url("https://images.pexels.com/photos/5953502/pexels-photo-5953502.jpeg?cs=srgb&dl=pexels-shvetsa-5953502.jpg&fm=jpg");background-size:cover;background-position:center 42%;transform:scale(1.04)}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,19,42,.96) 0%,rgba(5,24,52,.78) 42%,rgba(5,24,52,.24) 100%),linear-gradient(0deg,rgba(4,18,40,.35),rgba(4,18,40,.05))}
.hero-content{position:relative;z-index:2;padding-top:120px}
.eyebrow{margin:0 0 18px;color:#a9dff3;font-size:11px;font-weight:800;letter-spacing:.22em;text-transform:uppercase}
.eyebrow.dark{color:var(--blue)}
.hero h1{max-width:860px;margin:0;font-family:"Playfair Display",Georgia,serif;font-size:clamp(48px,6.1vw,86px);line-height:1.02;letter-spacing:-.035em;font-weight:600}
.hero h1 span,.hero h2 em,.section h2 em,.vip-panel h2 em,.cta-band h2 em{font-style:normal;color:#54c6eb}
.hero-lead{max-width:640px;margin:28px 0 34px;font-size:18px;color:#dce8f4}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:20px;border:0;border-radius:999px;padding:14px 21px;font-weight:800;font-size:13px;letter-spacing:.01em;transition:.25s}
.btn span{font-size:18px;line-height:0}
.btn-primary{background:#1a8fc8;color:#fff;box-shadow:0 12px 30px rgba(11,95,168,.25)}
.btn-primary:hover{transform:translateY(-2px);background:#159bd9}
.btn-ghost{border:1px solid rgba(255,255,255,.34);color:#fff;background:rgba(255,255,255,.05)}
.btn-ghost:hover{background:rgba(255,255,255,.12)}
.btn-light{background:#fff;color:var(--navy)}
.btn-light:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.16)}
.hero-trust{display:flex;gap:28px;flex-wrap:wrap;margin-top:50px;font-size:12px;color:#dce8f4}
.hero-trust span{display:flex;align-items:center;gap:8px}
.hero-trust i{width:7px;height:7px;border-radius:50%;background:#4dc7ee;box-shadow:0 0 0 4px rgba(77,199,238,.13)}
.scroll-indicator{position:absolute;z-index:3;bottom:28px;left:50%;width:28px;height:44px;border:1px solid rgba(255,255,255,.35);border-radius:20px;transform:translateX(-50%)}
.scroll-indicator span{position:absolute;left:50%;top:8px;width:3px;height:9px;border-radius:3px;background:#fff;animation:scroll 1.7s infinite}
@keyframes scroll{0%,100%{transform:translate(-50%,0);opacity:1}70%{transform:translate(-50%,14px);opacity:.15}}
.stats-bar{background:var(--navy);color:#fff;border-top:1px solid rgba(255,255,255,.08)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);padding:27px 0}
.stat{display:flex;align-items:center;gap:14px;padding:0 28px;border-right:1px solid rgba(255,255,255,.14)}
.stat:first-child{padding-left:0}.stat:last-child{border-right:0}
.stat strong{font-size:31px;letter-spacing:-.04em}.stat span{font-size:10px;line-height:1.35;color:#aebfd2;text-transform:uppercase;letter-spacing:.08em}
.section{padding:120px 0}
.split{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}
.section h2{font-family:"Playfair Display",Georgia,serif;font-size:clamp(38px,4.3vw,62px);line-height:1.08;letter-spacing:-.03em;margin:0 0 24px;font-weight:600}
.section-intro .lead,.section-head>p,.contact-copy .lead{font-size:17px;color:#53657c}
.section-intro>p:not(.eyebrow):not(.lead){color:#67788e;max-width:570px}
.text-link{display:inline-flex;gap:14px;align-items:center;margin-top:24px;color:var(--blue);font-weight:800;font-size:13px}
.text-link span{transition:.25s}.text-link:hover span{transform:translateX(5px)}
.about-visual,.quality-visual{position:relative}
.about-visual:before,.quality-visual:before{content:"";position:absolute;inset:20px -20px -20px 20px;background:#eaf5fb;border-radius:var(--radius);z-index:-1}
.about-visual img,.quality-visual img{width:100%;aspect-ratio:4/4.5;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow)}
.image-note{position:absolute;right:-22px;bottom:34px;background:#fff;padding:18px 20px;display:flex;gap:14px;align-items:center;border-radius:14px;box-shadow:var(--shadow);max-width:245px}
.image-note span{font-family:"Playfair Display";font-size:30px;color:#54bfe6}.image-note b{font-size:12px;line-height:1.35}
.services{background:#f7fafc}
.section-head{display:flex;justify-content:space-between;gap:50px;align-items:end;margin-bottom:54px}
.section-head>p{max-width:430px;margin:0}
.section-head.center{display:block;text-align:center;max-width:700px;margin:0 auto 55px}
.section-head.center>p:last-child{margin:0 auto}
.service-feature{display:grid;grid-template-columns:1.15fr .85fr;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);margin-bottom:18px}
.service-feature-img img{height:100%;min-height:450px;width:100%;object-fit:cover}
.service-feature-content{padding:55px}
.service-number,.service-icon{font-size:11px;letter-spacing:.18em;color:var(--blue);font-weight:900}
.service-feature h3{font-family:"Playfair Display";font-size:42px;line-height:1.08;margin:12px 0 18px}
.service-feature p{color:#65748b}
.check-list{list-style:none;padding:0;margin:28px 0 0}
.check-list li{position:relative;padding:9px 0 9px 27px;border-top:1px solid var(--line);font-size:13px;font-weight:700}
.check-list li:before{content:"✓";position:absolute;left:0;color:var(--cyan);font-weight:900}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.service-card{min-height:280px;background:#fff;border:1px solid #e6edf3;border-radius:var(--radius);padding:32px;display:flex;flex-direction:column;transition:.3s}
.service-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:transparent}
.service-card h3{font-size:20px;line-height:1.2;margin:18px 0 12px}
.service-card p{color:#718095;font-size:14px;margin:0}
.service-card a{margin-top:auto;padding-top:25px;font-size:12px;font-weight:900;color:var(--blue)}
.service-card a span{margin-left:6px}.service-card-dark{background:var(--navy);color:#fff;border-color:var(--navy)}.service-card-dark p{color:#aec0d3}.service-card-dark a{color:#58c7ed}.service-card-dark .service-icon{color:#58c7ed}
.vip-section{position:relative;min-height:680px;background:var(--navy);overflow:hidden}
.vip-image{position:absolute;inset:0 0 0 35%}
.vip-image img{width:100%;height:100%;object-fit:cover;object-position:center}
.vip-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--navy) 0%,rgba(7,27,58,.84) 22%,rgba(7,27,58,.12) 70%)}
.vip-panel{position:relative;z-index:2;width:min(1180px,calc(100% - 48px));margin:0 auto;min-height:680px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;color:#fff;padding-right:58%}
.vip-panel h2{font-family:"Playfair Display";font-size:clamp(44px,5vw,72px);line-height:1.04;margin:0 0 24px}
.vip-panel p{color:#d0dcea;max-width:520px;margin-bottom:28px}
.quality{background:#fff}.quality-list{margin-top:30px}
.quality-list>div{display:grid;grid-template-columns:40px 1fr;gap:14px;padding:16px 0;border-top:1px solid var(--line)}
.quality-list span{font-size:11px;font-weight:900;color:var(--cyan);padding-top:3px}.quality-list b{font-size:14px}.quality-list p{margin:3px 0 0;color:#728198;font-size:12px}
.quality-badge{position:absolute;left:-28px;bottom:30px;background:var(--navy);color:#fff;border-radius:14px;padding:20px;display:flex;gap:12px;align-items:center;box-shadow:var(--shadow)}
.quality-badge strong{font-family:"Playfair Display";font-size:27px}.quality-badge span{font-size:10px;color:#afc0d3;line-height:1.35}
.process{background:#f7fafc}
.process-grid{display:grid;grid-template-columns:1fr 50px 1fr 50px 1fr 50px 1fr;align-items:center}
.process-item{background:#fff;border:1px solid #e3ebf2;border-radius:18px;padding:30px;min-height:200px}
.process-item span{font-size:12px;color:var(--cyan);font-weight:900;letter-spacing:.15em}
.process-item h3{font-family:"Playfair Display";font-size:28px;margin:12px 0 8px}.process-item p{font-size:13px;color:#728198;margin:0}
.process-line{height:1px;background:#bdd0df}
.references{background:#fff}.reference-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.reference-card{position:relative;height:470px;border-radius:var(--radius);overflow:hidden;color:#fff}
.reference-card img{width:100%;height:100%;object-fit:cover;transition:.6s}
.reference-card:hover img{transform:scale(1.05)}
.reference-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,18,40,.88),rgba(4,18,40,.05) 65%)}
.reference-card>div{position:absolute;z-index:2;left:27px;right:27px;bottom:28px}
.reference-card span{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#a8ddf0;font-weight:900}
.reference-card h3{font-family:"Playfair Display";font-size:27px;line-height:1.1;margin:9px 0 0}
.gallery{background:#f7fafc}.gallery-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-template-rows:280px 280px;gap:16px}
.gallery-item{margin:0;position:relative;overflow:hidden;border-radius:18px;background:#dce8f2}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:.6s}.gallery-item:hover img{transform:scale(1.04)}
.gallery-item:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,18,40,.65),transparent 55%);pointer-events:none}
.gallery-item figcaption{position:absolute;z-index:2;left:20px;bottom:18px;color:#fff;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.g1{grid-row:1/3}.g2{grid-column:2}.g3{grid-column:3}.g4{grid-column:2/4}
.cta-band{background:linear-gradient(105deg,var(--navy),#0b3768);color:#fff;padding:72px 0}
.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.cta-band h2{font-family:"Playfair Display";font-size:48px;line-height:1.05;margin:0}
.contact{background:#fff;padding-bottom:80px}.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:start}
.contact-details{display:grid;gap:13px;margin-top:35px}.contact-details a,.contact-details>span{display:flex;gap:13px;align-items:center;font-size:13px;font-weight:700}.contact-details span span{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#edf7fb;color:var(--blue)}
.contact-form-wrap{background:#f7fafc;padding:35px;border-radius:var(--radius)}
.contact-form{display:grid;gap:18px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.contact-form label{display:grid;gap:7px;font-size:11px;font-weight:900;color:#3d4e65}
.contact-form input,.contact-form textarea,.contact-form select{width:100%;border:1px solid #dce6ef;background:#fff;border-radius:11px;padding:12px 13px;outline:none;color:var(--ink);font-size:13px}
.contact-form textarea{resize:vertical;min-height:125px}.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{border-color:#65bfe2;box-shadow:0 0 0 3px rgba(24,164,216,.1)}
.form-note{margin:0;color:#8190a2;font-size:10px;line-height:1.45}.form-status{margin:0;font-size:12px;font-weight:800;color:var(--blue);min-height:18px}
.map-card{margin-top:50px}.map-placeholder{position:relative;height:300px;border-radius:var(--radius);overflow:hidden;background:#e7f0f5;border:1px solid #d9e6ee}
.map-grid{position:absolute;inset:0;opacity:.7;background-image:linear-gradient(28deg,transparent 48%,#d1e1ea 49%,#d1e1ea 51%,transparent 52%),linear-gradient(145deg,transparent 48%,#d1e1ea 49%,#d1e1ea 51%,transparent 52%),linear-gradient(90deg,transparent 49%,#d8e6ed 50%,transparent 51%);background-size:170px 120px,210px 150px,110px 110px}
.map-pin{position:absolute;left:50%;top:50%;width:58px;height:58px;border-radius:50% 50% 50% 0;transform:translate(-50%,-70%) rotate(-45deg);background:var(--navy);color:#fff;display:grid;place-items:center;font-family:"Playfair Display";font-size:24px;box-shadow:0 15px 30px rgba(7,27,58,.25)}
.map-pin:after{content:"";width:14px;height:14px;background:#fff;border-radius:50%;position:absolute}
.map-pin{font-size:0}.map-pin:before{content:"E";font-size:22px;position:relative;z-index:2;transform:rotate(45deg)}
.map-label{position:absolute;left:calc(50% + 43px);top:calc(50% - 35px);background:#fff;padding:12px 15px;border-radius:10px;box-shadow:0 10px 25px rgba(7,27,58,.1)}.map-label strong{display:block;font-size:12px}.map-label span{font-size:10px;color:#7b8a9e}
.map-placeholder>a{position:absolute;right:22px;bottom:20px;background:#fff;border-radius:999px;padding:10px 15px;font-size:11px;font-weight:900;color:var(--blue);box-shadow:0 10px 25px rgba(7,27,58,.08)}
.site-footer{background:#04142d;color:#fff;padding:55px 0 20px}.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:45px;padding-bottom:45px;border-bottom:1px solid rgba(255,255,255,.1)}
.footer-brand img{width:220px;height:100px;object-fit:contain;object-position:left center;filter:none;background:transparent;border-radius:0;padding:0}
.footer-col{display:grid;align-content:start;gap:9px}.footer-col b{font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:#67c7e8;margin-bottom:8px}.footer-col a{font-size:12px;color:#a9b9cb}.footer-col a:hover{color:#fff}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding-top:20px;color:#73869d;font-size:10px}
.back-top{position:fixed;z-index:80;right:20px;bottom:20px;width:42px;height:42px;border:0;border-radius:50%;background:var(--navy);color:#fff;box-shadow:0 10px 25px rgba(0,0,0,.16);opacity:0;transform:translateY(10px);pointer-events:none;transition:.25s}.back-top.show{opacity:1;transform:none;pointer-events:auto}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}.delay-1{transition-delay:.08s}.delay-2{transition-delay:.16s}.delay-3{transition-delay:.24s}.delay-4{transition-delay:.32s}
@media (max-width:1000px){
  .main-nav{gap:14px}.main-nav a{font-size:11px}.nav-cta{padding:10px 13px}
  .split{gap:50px}.vip-panel{padding-right:50%}.services-grid{grid-template-columns:repeat(2,1fr)}
  .process-grid{grid-template-columns:1fr 30px 1fr}.process-item:nth-of-type(5),.process-item:nth-of-type(7){margin-top:20px}.process-line:nth-of-type(4),.process-line:nth-of-type(6){display:none}
  .reference-grid{grid-template-columns:1fr 1fr}.reference-card:last-child{grid-column:1/-1}
}
@media (max-width:780px){
  .container{width:min(100% - 30px,680px)}.site-header{padding:8px 0}.brand img{width:145px;height:56px}
  .nav-toggle{display:block}.main-nav{display:none;position:absolute;top:72px;left:15px;right:15px;padding:18px;background:#fff;border-radius:16px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch}.main-nav.open{display:flex}.main-nav a{padding:9px 5px;font-size:13px}.nav-cta{text-align:center}
  .hero{min-height:760px}.hero-content{padding-top:105px}.hero h1{font-size:clamp(43px,12vw,68px)}.hero-lead{font-size:16px}.hero-trust{margin-top:35px;gap:12px;flex-direction:column}
  .stats-grid{grid-template-columns:1fr 1fr}.stat{padding:16px 15px;border-bottom:1px solid rgba(255,255,255,.12)}.stat:nth-child(2){border-right:0}.stat:nth-child(3),.stat:nth-child(4){border-bottom:0}
  .section{padding:85px 0}.split,.contact-grid{grid-template-columns:1fr;gap:55px}.split-reverse .quality-visual{order:2}.split-reverse .section-intro{order:1}
  .section-head{display:block}.section-head>p{margin-top:18px}.service-feature{grid-template-columns:1fr}.service-feature-img img{min-height:320px}.service-feature-content{padding:32px}.service-feature h3{font-size:35px}
  .services-grid{grid-template-columns:1fr}.service-card{min-height:230px}.vip-section{min-height:700px}.vip-image{inset:0}.vip-image:after{background:linear-gradient(0deg,var(--navy) 0%,rgba(7,27,58,.75) 45%,rgba(7,27,58,.18) 100%)}.vip-panel{width:min(100% - 30px,680px);min-height:700px;padding:0;justify-content:end;padding-bottom:60px}
  .quality-badge{left:10px}.process-grid{display:grid;grid-template-columns:1fr;gap:14px}.process-line{display:none!important}.reference-grid{grid-template-columns:1fr}.reference-card:last-child{grid-column:auto}.reference-card{height:390px}
  .gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:220px 220px 220px}.g1{grid-row:1/3}.g2{grid-column:2}.g3{grid-column:2}.g4{grid-column:1/3}
  .cta-inner{display:block}.cta-band h2{font-size:39px;margin-bottom:25px}.form-row{grid-template-columns:1fr}.footer-top{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.footer-bottom{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.scroll-indicator span{animation:none}.btn,.service-card,.gallery-item img,.reference-card img{transition:none}
}


/* Map: preserve the existing card appearance while keeping the live map readable. */
.map-open-link{position:absolute;right:22px;bottom:20px;z-index:2;display:inline-flex;align-items:center;gap:6px;padding:12px 18px;border-radius:999px;background:#fff;color:#0a2d63;text-decoration:none;font-weight:700;box-shadow:0 8px 24px rgba(4,25,55,.14)}
.map-open-link:hover{transform:translateY(-1px)}

/* Final map/address visibility and footer credit — design unchanged. */
.map-live iframe{position:absolute;inset:0;width:100%;height:100%;min-height:300px;}
.map-address{position:absolute;z-index:2;left:22px;top:20px;max-width:310px;background:#fff;padding:14px 17px;border-radius:12px;box-shadow:0 10px 28px rgba(4,25,55,.16);color:#071b3a;}
.map-address strong{display:block;font-size:12px;margin-bottom:5px;}
.map-address span{display:block;font-size:10px;line-height:1.55;color:#66788e;}
.powered-mm strong{font-weight:800;color:#a9b9cb;}
@media (max-width:780px){.map-address{left:14px;top:14px;right:14px;max-width:none}.map-open-link{right:14px;bottom:14px}}

/* Références clients — présentation premium des logos */
.reference-logos{grid-template-columns:repeat(4,1fr);gap:18px}
.reference-logo-card{min-height:330px;border:1px solid #e3ebf2;border-radius:var(--radius);background:#fff;overflow:hidden;box-shadow:0 12px 35px rgba(4,18,40,.07);transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
.reference-logo-card:hover{transform:translateY(-6px);box-shadow:0 20px 48px rgba(4,18,40,.12);border-color:#cbdde9}
.reference-logo-box{height:190px;display:flex;align-items:center;justify-content:center;padding:28px;background:linear-gradient(180deg,#fff,#f7fafc);border-bottom:1px solid #e8eef3}
.reference-logo-box img{max-width:82%;max-height:125px;width:auto;height:auto;object-fit:contain;display:block}
.reference-logo-meta{padding:22px 22px 24px}.reference-logo-meta span{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);font-weight:900}.reference-logo-meta h3{font-family:"Playfair Display";font-size:22px;line-height:1.12;margin:8px 0 7px;color:var(--navy)}.reference-logo-meta p{font-size:12px;line-height:1.55;color:#728198;margin:0}
@media (max-width:1100px){.reference-logos{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.reference-logos{grid-template-columns:1fr}.reference-logo-card{min-height:300px}.reference-logo-box{height:170px}}

/* Accessible honeypot field: hidden from visitors while preserving anti-spam protection. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}

/* Content protection: keep normal text/form usability while preventing image dragging. */
img { -webkit-user-drag: none; user-drag: none; }
