/* =========================================================
   EXPERT ASCENSEUR — Design system
   Concept : verticalité & ingénierie de précision
   ========================================================= */

:root{
  --blue:#3457A3;          /* bleu de marque (logo) */
  --blue-600:#2C4A8C;
  --blue-700:#233c73;
  --navy:#16213f;          /* sections profondes / footer */
  --navy-800:#101a34;
  --tint:#eaf0fb;          /* panneaux clairs */
  --tint-2:#f4f7fc;
  --ink:#141b2e;           /* texte principal */
  --muted:#5b657d;         /* texte secondaire */
  --line:#dbe3f1;          /* filets */
  --bg:#f7f9fd;            /* fond de page */
  --paper:#ffffff;
  --amber:#f5a623;         /* accent : CTA & urgence (utilisé avec parcimonie) */
  --amber-600:#e0930f;
  --ok:#1f9d63;
  --danger:#d64545;

  --radius:14px;
  --radius-sm:10px;
  --shadow:0 18px 40px -22px rgba(22,33,63,.35);
  --shadow-sm:0 8px 24px -16px rgba(22,33,63,.4);
  --maxw:1200px;
  --rail:linear-gradient(180deg,transparent,var(--line) 12%,var(--line) 88%,transparent);
  --f-display:"Space Grotesk",system-ui,sans-serif;
  --f-body:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:var(--f-body);color:var(--ink);background:var(--bg);
  line-height:1.65;font-size:17px;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--blue);text-decoration:none}
h1,h2,h3,h4{font-family:var(--f-display);color:var(--navy);line-height:1.12;margin:0 0 .5em;font-weight:700;letter-spacing:-.01em}
h1{font-size:clamp(2.1rem,4.6vw,3.5rem)}
h2{font-size:clamp(1.6rem,3vw,2.4rem)}
h3{font-size:1.25rem}
p{margin:0 0 1rem}
.ic{width:1.25em;height:1.25em;flex:none}

/* ---------- layout ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.section{padding:84px 0}
.section.tight{padding:56px 0}
.center{text-align:center}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;font-family:var(--f-display);
  font-weight:600;font-size:.82rem;color:var(--blue);
  padding:6px 12px;border:1px solid var(--line);border-radius:100px;background:var(--paper);
}
.eyebrow .ic{width:15px;height:15px;color:var(--amber)}
.lead{font-size:1.12rem;color:var(--muted);max-width:62ch}
.sec-head{max-width:64ch;margin-bottom:38px}
.sec-head.center{margin-inline:auto}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:9px;font-family:var(--f-display);font-weight:600;white-space:nowrap;
  padding:13px 22px;border-radius:11px;border:1px solid transparent;cursor:pointer;
  font-size:1rem;transition:transform .15s ease, box-shadow .2s ease, background .2s;
}
.btn .ic{width:18px;height:18px}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 12px 24px -14px rgba(52,87,163,.9)}
.btn-primary:hover{background:var(--blue-600);transform:translateY(-2px)}
.btn-accent{
  position:relative;overflow:hidden;isolation:isolate;font-weight:700;
  color:#3a2600;border:none;
  background:linear-gradient(135deg,#ffc561 0%,#f5a623 48%,#ee9210 100%);
  box-shadow:0 8px 20px -6px rgba(245,166,35,.55), 0 2px 6px rgba(214,140,20,.35), inset 0 1px 0 rgba(255,255,255,.5);
}
.btn-accent:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 30px -6px rgba(245,166,35,.6), 0 5px 12px rgba(214,140,20,.4), inset 0 1px 0 rgba(255,255,255,.6);
}
.btn-accent:active{transform:translateY(0);box-shadow:0 6px 14px -6px rgba(214,140,20,.5), inset 0 1px 0 rgba(255,255,255,.4)}
.btn-accent::before{
  content:"";position:absolute;top:0;left:-135%;width:55%;height:100%;z-index:-1;pointer-events:none;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);
}
.btn-accent:hover::before{animation:btnShine .8s ease}
@keyframes btnShine{from{left:-135%}to{left:145%}}
.btn-ghost{background:transparent;color:var(--navy);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--blue);color:var(--blue)}
.btn-white{background:#fff;color:var(--navy)}
.btn-white:hover{transform:translateY(-2px)}
.btn-lg{padding:16px 28px;font-size:1.05rem}

/* ---------- top bar ---------- */
.topbar{background:var(--navy);color:#cdd7ee;font-size:.86rem}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:40px}
.topbar a{color:#e7edfb}
.topbar-left{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.topbar-left span{display:inline-flex;align-items:center;gap:7px}
.topbar-left .ic{width:15px;height:15px;color:var(--amber)}
.topbar-urg{display:inline-flex;align-items:center;gap:7px;font-weight:600;color:#fff}
.topbar-urg .dot{width:8px;height:8px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 0 rgba(245,166,35,.6);animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(245,166,35,.55)}70%{box-shadow:0 0 0 8px rgba(245,166,35,0)}100%{box-shadow:0 0 0 0 rgba(245,166,35,0)}}

/* ---------- header ---------- */
.header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.9);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line);transition:box-shadow .25s}
.header.scrolled{box-shadow:0 8px 30px -20px rgba(22,33,63,.55)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:74px}
.brand{display:flex;align-items:center;gap:12px}
.brand img{height:52px;width:auto;transition:transform .2s ease}
.brand:hover img{transform:scale(1.04)}
.menu{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:0}
.menu > li{position:relative}
.menu > li > a{
  display:flex;align-items:center;gap:6px;padding:10px 14px;border-radius:9px;white-space:nowrap;
  font-family:var(--f-display);font-weight:600;font-size:.98rem;color:var(--navy);
}
.menu > li > a:hover,.menu > li > a.is-active{color:var(--blue);background:var(--tint)}
.menu .caret{width:15px;height:15px;transition:transform .2s}
.has-drop:hover .caret,.has-drop.open .caret{transform:rotate(90deg)}

/* dropdown */
.drop{
  position:absolute;top:calc(100% + 8px);left:0;min-width:290px;background:var(--paper);
  border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:8px;
  opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s;list-style:none;margin:0;
}
.has-drop:hover .drop,.has-drop.open .drop{opacity:1;visibility:visible;transform:translateY(0)}
.drop a{display:flex;gap:11px;align-items:flex-start;padding:11px 12px;border-radius:10px;color:var(--navy)}
.drop a:hover{background:var(--tint)}
.drop .ic{width:20px;height:20px;color:var(--blue);margin-top:2px}
.drop b{font-family:var(--f-display);font-size:.96rem;display:block}
.drop small{color:var(--muted);font-size:.82rem;line-height:1.4}
.nav-cta{display:flex;align-items:center;gap:10px}

/* floor indicator (clin d'œil ascenseur) */
.floor{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--line);border-radius:9px;background:var(--navy);color:#8fd0ff;font-family:var(--f-display);font-weight:700;font-size:.82rem;letter-spacing:.06em}
.floor .ic{width:14px;height:14px;color:var(--amber)}

.burger{display:none;background:none;border:1px solid var(--line);border-radius:10px;padding:9px;color:var(--navy);cursor:pointer}
.burger .ic{width:22px;height:22px}

/* mobile drawer */
.drawer{position:fixed;inset:0 0 0 auto;width:min(88vw,360px);background:var(--paper);z-index:80;transform:translateX(100%);transition:transform .3s cubic-bezier(.3,.7,.2,1);box-shadow:var(--shadow);padding:20px;overflow-y:auto}
.drawer.open{transform:translateX(0)}
.drawer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.drawer nav{display:flex;flex-direction:column;gap:2px}
.drawer nav a{padding:13px 12px;border-radius:10px;font-family:var(--f-display);font-weight:600;color:var(--navy);border-bottom:1px solid var(--tint-2)}
.drawer nav a.sub{padding-left:28px;font-weight:500;font-size:.95rem;color:var(--muted)}
.drawer nav a:hover{background:var(--tint)}
.scrim{position:fixed;inset:0;background:rgba(16,26,52,.5);z-index:70;opacity:0;visibility:hidden;transition:.25s}
.scrim.open{opacity:1;visibility:visible}

/* ---------- hero ---------- */
.hero{position:relative;background:
  radial-gradient(1100px 500px at 88% -8%, #e7effc 0, transparent 60%),
  linear-gradient(180deg,#fbfcff, var(--bg));
  overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;padding-top:70px;padding-bottom:80px}
.hero-rail{position:absolute;top:0;bottom:0;width:2px;background:var(--rail)}
.hero-rail.l{left:8%}.hero-rail.r{right:8%}
.hero h1{margin-bottom:.35em}
.hero h1 .k{color:var(--blue)}
.hero-lead{font-size:1.18rem;color:var(--muted);max-width:52ch;margin-bottom:26px}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:30px}
.hero-badges{display:flex;gap:22px;flex-wrap:wrap;color:var(--muted);font-size:.94rem}
.hero-badges span{display:inline-flex;align-items:center;gap:8px}
.hero-badges .ic{width:18px;height:18px;color:var(--ok)}

/* hero visual : cabine + immeuble en SVG */
.hero-visual{position:relative}
.hero-card{background:var(--paper);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:22px;position:relative;overflow:hidden}
.hero-card .glow{position:absolute;inset:auto -30% -40% -30%;height:60%;background:radial-gradient(closest-side,rgba(52,87,163,.16),transparent)}
.hero-svg{width:100%;height:auto;position:relative}
.hero-float{position:absolute;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-sm);padding:10px 13px;display:flex;align-items:center;gap:10px;font-size:.86rem;font-weight:600;font-family:var(--f-display)}
.hero-float .ic{width:20px;height:20px}
.hero-float.a{top:16px;left:-14px}
.hero-float.a .ic{color:var(--ok)}
.hero-float.b{bottom:22px;right:-12px}
.hero-float.b .ic{color:var(--amber)}

/* ---------- trust strip ---------- */
.trust{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.trust .wrap{display:flex;gap:18px 40px;flex-wrap:wrap;justify-content:space-between;align-items:center;padding:22px}
.trust b{font-family:var(--f-display);color:var(--navy)}
.trust-item{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:.95rem}
.trust-item .ic{width:26px;height:26px;color:var(--blue)}

/* ---------- services ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.svc{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:26px 22px;transition:.2s;overflow:hidden}
.svc::before{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--blue);transition:width .3s}
.svc:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#c9d6ee}
.svc:hover::before{width:100%}
.svc .badge{width:52px;height:52px;border-radius:13px;display:grid;place-items:center;background:var(--tint);color:var(--blue);margin-bottom:16px}
.svc .badge .ic{width:26px;height:26px}
.svc h3{margin-bottom:.35em}
.svc p{color:var(--muted);font-size:.95rem;margin-bottom:14px}
.svc .more{font-family:var(--f-display);font-weight:600;color:var(--blue);display:inline-flex;align-items:center;gap:6px;font-size:.92rem}
.svc .more .ic{width:16px;height:16px;transition:transform .2s}
.svc:hover .more .ic{transform:translateX(4px)}

/* ---------- engagements (navy band) ---------- */
.band{background:linear-gradient(160deg,var(--navy),var(--navy-800));color:#dbe4f7;position:relative;overflow:hidden}
.band::after{content:"";position:absolute;right:-100px;top:-100px;width:340px;height:340px;border-radius:50%;background:radial-gradient(closest-side,rgba(52,87,163,.35),transparent)}
.band h2{color:#fff}
.band .eyebrow{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.15);color:#bcd0ff}
.eng-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.eng{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.09);border-radius:var(--radius);padding:24px 20px}
.eng .badge{width:46px;height:46px;border-radius:12px;background:rgba(245,166,35,.14);color:var(--amber);display:grid;place-items:center;margin-bottom:14px}
.eng .badge .ic{width:24px;height:24px}
.eng h3{color:#fff;font-size:1.1rem}
.eng p{color:#aebbd6;font-size:.92rem;margin:0}

/* ---------- stats ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.stat{text-align:center;padding:26px 14px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius)}
.stat .num{font-family:var(--f-display);font-weight:700;font-size:2.6rem;color:var(--blue);line-height:1;letter-spacing:-.02em}
.stat .lab{color:var(--muted);font-size:.92rem;margin-top:8px}

/* ---------- process (vertical rail) ---------- */
.process{position:relative;max-width:760px;margin:0 auto;padding-left:20px}
.process::before{content:"";position:absolute;left:33px;top:10px;bottom:10px;width:2px;background:linear-gradient(180deg,var(--blue),var(--tint))}
.step{position:relative;display:flex;gap:22px;padding:14px 0}
.step .dot{width:30px;height:30px;border-radius:50%;background:var(--blue);color:#fff;font-family:var(--f-display);font-weight:700;display:grid;place-items:center;flex:none;z-index:1;font-size:.9rem;box-shadow:0 0 0 6px var(--bg)}
.step h3{font-size:1.08rem;margin-bottom:.15em}
.step p{color:var(--muted);margin:0;font-size:.95rem}

/* ---------- realisations ---------- */
.real-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.real{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--paper);transition:.2s}
.real:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.real .thumb{aspect-ratio:16/10;position:relative;display:grid;place-items:center;background:linear-gradient(135deg,#dfe8fa,#eef3fc)}
.real .thumb .ic{width:60px;height:60px;color:var(--blue);opacity:.55}
.real .thumb .tag{position:absolute;top:12px;left:12px;background:var(--paper);border:1px solid var(--line);border-radius:100px;padding:4px 12px;font-size:.76rem;font-weight:600;font-family:var(--f-display);color:var(--blue)}
.real .body{padding:18px}
.real h3{font-size:1.08rem;margin-bottom:.2em}
.real .meta{color:var(--muted);font-size:.88rem;display:flex;gap:8px;align-items:center}

/* ---------- testimonials ---------- */
.tst{position:relative;max-width:820px;margin:0 auto}
.tst-track{overflow:hidden}
.tst-slides{display:flex;transition:transform .45s cubic-bezier(.3,.7,.2,1)}
.tst-slide{min-width:100%;padding:8px}
.tst-card{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:36px 34px;box-shadow:var(--shadow-sm);text-align:center}
.tst-card .stars{display:inline-flex;gap:3px;color:var(--amber);margin-bottom:14px}
.tst-card .stars .ic{width:20px;height:20px;fill:var(--amber);stroke:var(--amber)}
.tst-card blockquote{font-size:1.18rem;color:var(--ink);margin:0 0 16px;font-family:var(--f-display);font-weight:500;line-height:1.5}
.tst-card cite{color:var(--muted);font-style:normal;font-size:.92rem}
.tst-dots{display:flex;gap:8px;justify-content:center;margin-top:20px}
.tst-dots button{width:9px;height:9px;border-radius:50%;border:none;background:var(--line);cursor:pointer;padding:0;transition:.2s}
.tst-dots button.on{background:var(--blue);width:24px;border-radius:100px}

/* ---------- CTA band ---------- */
.cta{background:linear-gradient(120deg,var(--blue),var(--blue-700));color:#fff;border-radius:22px;padding:48px;display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;box-shadow:var(--shadow);position:relative;overflow:hidden}
.cta::before{content:"";position:absolute;right:-60px;bottom:-80px;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.08)}
.cta h2{color:#fff;margin:0 0 .3em}
.cta p{color:#dbe6ff;margin:0;max-width:52ch}
.cta .actions{display:flex;gap:12px;flex-wrap:wrap;position:relative}

/* ---------- footer ---------- */
.footer{background:var(--navy);color:#aebbd6;padding-top:60px}
.footer h4{color:#fff;font-size:1rem;margin-bottom:16px}
.footer a{color:#c2cee6}
.footer a:hover{color:#fff}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:34px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.09)}
.footer .brand img{height:36px}
.footer .desc{font-size:.92rem;margin:16px 0;max-width:34ch}
.footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:.93rem}
.footer .fcontact li{display:flex;gap:10px;align-items:flex-start;font-size:.92rem}
.footer .fcontact .ic{width:18px;height:18px;color:var(--amber);flex:none;margin-top:3px}
.socials{display:flex;gap:10px;margin-top:16px}
.socials a{width:38px;height:38px;border-radius:10px;border:1px solid rgba(255,255,255,.14);display:grid;place-items:center;color:#fff}
.socials a:hover{background:var(--blue);border-color:var(--blue)}
.socials .ic{width:18px;height:18px}
.f-bottom{padding:20px 0;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.85rem;color:#8b98b6}
.f-bottom a{color:#aebbd6}

/* ---------- floating actions ---------- */
.floaters{position:fixed;right:18px;bottom:18px;z-index:65;display:flex;flex-direction:column;gap:10px}
.fab{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;color:#fff;box-shadow:var(--shadow);transition:transform .18s}
.fab:hover{transform:scale(1.08)}
.fab .ic{width:26px;height:26px}
.fab.wa{background:#25d366}
.fab.tel{background:var(--amber);color:#3a2600}
.fab.top{background:var(--navy);opacity:0;visibility:hidden}
.fab.top.show{opacity:1;visibility:visible}

/* ---------- inner page header ---------- */
.page-hero{background:linear-gradient(160deg,var(--navy),var(--navy-800));color:#dbe4f7;padding:56px 0 60px;position:relative;overflow:hidden}
.page-hero::after{content:"";position:absolute;right:-80px;top:-80px;width:300px;height:300px;border-radius:50%;background:radial-gradient(closest-side,rgba(52,87,163,.4),transparent)}
.page-hero h1{color:#fff;position:relative}
.page-hero p{color:#b9c6e2;max-width:60ch;position:relative;margin:0}
.crumb{display:flex;gap:8px;align-items:center;font-size:.85rem;color:#9fb0d4;margin-bottom:16px;position:relative}
.crumb a{color:#c9d6ef}
.crumb .ic{width:14px;height:14px}

/* ---------- generic content ---------- */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.checklist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.checklist li{display:flex;gap:12px;align-items:flex-start}
.checklist .ic{width:22px;height:22px;color:var(--ok);flex:none;margin-top:2px}
.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:28px}
.media{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:linear-gradient(135deg,#dfe8fa,#eef3fc);aspect-ratio:4/3;display:grid;place-items:center}
.media .ic{width:90px;height:90px;color:var(--blue);opacity:.5}

/* accordion (faq) */
.acc{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:10px}
.acc-item{border:1px solid var(--line);border-radius:12px;background:var(--paper);overflow:hidden}
.acc-q{width:100%;text-align:left;background:none;border:none;padding:18px 20px;font-family:var(--f-display);font-weight:600;font-size:1.02rem;color:var(--navy);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px}
.acc-q .ic{width:18px;height:18px;color:var(--blue);transition:transform .2s;flex:none}
.acc-item.open .acc-q .ic{transform:rotate(90deg)}
.acc-a{max-height:0;overflow:hidden;transition:max-height .3s ease;color:var(--muted)}
.acc-a p{padding:0 20px 18px;margin:0}

/* ---------- forms ---------- */
.form{display:grid;gap:16px}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
label{font-family:var(--f-display);font-weight:600;font-size:.9rem;color:var(--navy)}
label .req{color:var(--danger)}
input,select,textarea{
  width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font:inherit;
  background:var(--paper);color:var(--ink);transition:border .15s, box-shadow .15s;
}
textarea{min-height:130px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(52,87,163,.14)}
.field.err input,.field.err select,.field.err textarea{border-color:var(--danger)}
.err-msg{color:var(--danger);font-size:.82rem;display:none}
.field.err .err-msg{display:block}
.hp{position:absolute;left:-9999px}
.alert{padding:14px 16px;border-radius:11px;font-size:.95rem;display:flex;gap:10px;align-items:flex-start}
.alert .ic{width:20px;height:20px;flex:none;margin-top:2px}
.alert.ok{background:#e7f7ee;color:#166b40;border:1px solid #b8e6cd}
.alert.ko{background:#fdecec;color:#9a2b2b;border:1px solid #f3c4c4}

.info-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:16px}
.info-list li{display:flex;gap:14px;align-items:flex-start}
.info-list .badge{width:44px;height:44px;border-radius:11px;background:var(--tint);color:var(--blue);display:grid;place-items:center;flex:none}
.info-list .badge .ic{width:22px;height:22px}
.info-list b{font-family:var(--f-display);display:block}
.info-list small{color:var(--muted)}

.map-embed{border:0;width:100%;height:320px;border-radius:var(--radius);filter:grayscale(.15)}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .svc-grid,.eng-grid,.stats{grid-template-columns:repeat(2,1fr)}
  .real-grid{grid-template-columns:repeat(2,1fr)}
  .f-grid{grid-template-columns:1fr 1fr}
  .hero .wrap{grid-template-columns:1fr;gap:34px}
  .hero-rail{display:none}
  .hero-visual{max-width:520px}
}
@media (max-width:820px){
  .menu,.nav-cta .btn,.floor{display:none}
  .burger{display:inline-flex}
  .grid-2{grid-template-columns:1fr}
  .form .row{grid-template-columns:1fr}
  .cta{padding:34px}
  .topbar-left{gap:14px;font-size:.8rem}
}
@media (max-width:560px){
  .svc-grid,.eng-grid,.stats,.real-grid,.f-grid{grid-template-columns:1fr}
  .section{padding:60px 0}
  body{font-size:16px}
  .topbar-left span:not(.topbar-urg){display:none}
}

/* accessibilité */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(52,87,163,.4);outline-offset:2px}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* =========================================================
   Sélecteur de langue
   ========================================================= */
.topbar-right{display:flex;align-items:center;gap:16px}
.langswitch{display:inline-flex;border:1px solid rgba(255,255,255,.18);border-radius:8px;overflow:hidden}
.langswitch a{padding:3px 10px;font-family:var(--f-display);font-weight:600;font-size:.82rem;color:#c9d6ef;line-height:1.6}
.langswitch a.on{background:var(--amber);color:#3a2600}
.drawer-lang{display:flex;gap:8px;margin-top:16px}
.drawer-lang a{flex:1;text-align:center;padding:10px;border:1px solid var(--line);border-radius:9px;font-family:var(--f-display);font-weight:600;color:var(--navy)}
.drawer-lang a.on{background:var(--blue);color:#fff;border-color:var(--blue)}

/* =========================================================
   RTL — arabe
   ========================================================= */
html[dir="rtl"]{--f-display:'Cairo',system-ui,sans-serif;--f-body:'Cairo',system-ui,sans-serif}
html[dir="rtl"] body{font-size:17px;line-height:1.8}
html[dir="rtl"] h1,html[dir="rtl"] h2,html[dir="rtl"] h3,html[dir="rtl"] h4{letter-spacing:0}

/* éléments positionnés : inversion */
[dir="rtl"] .hero-float.a{left:auto;right:-14px}
[dir="rtl"] .hero-float.b{right:auto;left:-12px}
[dir="rtl"] .floaters{right:auto;left:18px}
[dir="rtl"] .drop{left:auto;right:0}
[dir="rtl"] .drawer{inset:0 auto 0 0;transform:translateX(-100%)}
[dir="rtl"] .drawer.open{transform:translateX(0)}
[dir="rtl"] .svc::before{left:auto;right:0}

/* rail vertical du process : passer à droite */
[dir="rtl"] .process{padding-left:0;padding-right:20px}
[dir="rtl"] .process::before{left:auto;right:33px}
[dir="rtl"] .step .dot{box-shadow:0 0 0 6px var(--bg)}

/* menu déroulant mobile : indentation à droite */
[dir="rtl"] .drawer nav a.sub{padding-left:12px;padding-right:28px}

/* chevrons directionnels : inverser le sens */
[dir="rtl"] .crumb .ic,
[dir="rtl"] .more .ic,
[dir="rtl"] .menu .caret,
[dir="rtl"] .btn .ic.caret{transform:scaleX(-1)}
[dir="rtl"] .svc:hover .more .ic{transform:scaleX(-1) translateX(4px)}

/* la CTA/flex gardent leur logique ; alignements de texte auto via dir */
[dir="rtl"] .hero-lead,[dir="rtl"] .lead{max-width:56ch}

/* numéros et éléments toujours LTR */
[dir="rtl"] [dir="ltr"]{direction:ltr;unicode-bidi:embed}

/* =========================================================
   Hero — ascenseur animé
   ========================================================= */
.hero-svg .cab   { animation: elvCab 7s cubic-bezier(.45,.05,.55,.95) infinite; }
.hero-svg .cw    { animation: elvCw  7s cubic-bezier(.45,.05,.55,.95) infinite; }
.hero-svg .digits{ animation: elvDig 7s cubic-bezier(.45,.05,.55,.95) infinite; }
.hero-svg .arrow { transform-box: fill-box; transform-origin: center; animation: elvArrow 7s ease-in-out infinite; }
.hero-svg .chev  { opacity: 0; animation: elvChev 2.4s ease-out infinite; }
.hero-svg .chev.c2 { animation-delay: .5s; }
.hero-svg .chev.c3 { animation-delay: 1s; }

@keyframes elvCab  { 0%,100%{ transform: translateY(198px); } 48%,52%{ transform: translateY(0); } }
@keyframes elvCw   { 0%,100%{ transform: translateY(0); }     48%,52%{ transform: translateY(198px); } }
@keyframes elvDig  { 0%,100%{ transform: translateY(0); }     48%,52%{ transform: translateY(-72px); } }
@keyframes elvArrow{ 0%,46%{ transform: rotate(0deg); }       54%,100%{ transform: rotate(180deg); } }
@keyframes elvChev { 0%{ opacity:0; transform: translateY(12px); } 45%{ opacity:.95; } 100%{ opacity:0; transform: translateY(-12px); } }

@media (prefers-reduced-motion: reduce){
  .hero-svg .cab,.hero-svg .cw,.hero-svg .digits,.hero-svg .arrow,.hero-svg .chev{ animation: none; }
  .hero-svg .cab   { transform: translateY(70px); }
  .hero-svg .cw    { transform: translateY(128px); }
  .hero-svg .digits{ transform: translateY(-36px); }
  .hero-svg .chev  { opacity: .5; }
}

/* Crédit prestataire (discret) */
.f-bottom .credit{opacity:.85}
.f-bottom .credit a{color:inherit;font-weight:600}
.f-bottom .credit a:hover{color:var(--amber)}
