/* ==========================================================================
   Site corporate SmartBS — design system (indépendant de Tailwind pré-compilé)
   Les variables de couleur (--navy, --ocean, --copper, --cloud, --white…) sont injectées par tenant
   dans le <head> (DesignTokens::css). Propriétés logiques partout : RTL (arabe) natif.
   ========================================================================== */

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body.corp{margin:0;font-family:var(--font-body);font-size:16px;line-height:1.65;color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.corp img,body.corp svg{max-width:100%;display:block}
:where(body.corp) a{color:inherit;text-decoration:none}
body.corp h1,body.corp h2,body.corp h3,body.corp h4{font-family:var(--font-heading);line-height:1.12;margin:0;letter-spacing:-.02em;font-weight:800;color:inherit}
body.corp p{margin:0}
body.corp ul{margin:0;padding:0;list-style:none}
[dir=rtl] body.corp{font-family:var(--font-arabic),var(--font-body)}
[dir=rtl] body.corp h1,[dir=rtl] body.corp h2,[dir=rtl] body.corp h3,[dir=rtl] body.corp h4{font-family:var(--font-arabic),var(--font-heading);letter-spacing:0;line-height:1.3}
.ic{width:1.15em;height:1.15em;flex:none}
[dir=rtl] .ic-flip{transform:scaleX(-1)}
:focus-visible{outline:3px solid var(--copper);outline-offset:3px;border-radius:6px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;inset-inline-start:12px;top:-60px;background:var(--navy);color:#fff;padding:10px 16px;border-radius:8px;z-index:200;font-weight:700}
.skip:focus{top:12px}

.container{width:100%;max-width:1200px;margin-inline:auto;padding-inline:clamp(16px,4vw,32px)}
.container.narrow{max-width:860px}

/* ---------- Boutons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:.9rem 1.5rem;border-radius:var(--btn-radius,999px);font-weight:700;font-size:.95rem;line-height:1;border:2px solid transparent;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease,border-color .2s ease;font-family:var(--font-heading);white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--copper);color:var(--on-copper);box-shadow:0 10px 24px -10px color-mix(in srgb,var(--copper) 70%,transparent)}
.btn-primary:hover{box-shadow:0 14px 30px -10px color-mix(in srgb,var(--copper) 85%,transparent)}
.btn-secondary{background:transparent;color:inherit;border-color:currentColor}
.on-dark .btn-secondary{color:#fff;border-color:rgba(255,255,255,.55)}
.on-dark .btn-secondary:hover{background:rgba(255,255,255,.1);border-color:#fff}
.on-light .btn-secondary{color:var(--navy);border-color:var(--navy)}
.on-light .btn-secondary:hover{background:var(--navy);color:#fff}
.btn-ghost{background:transparent;color:inherit;padding-inline:.4rem}
.btn-ghost:hover{transform:none;opacity:.8}
.btn-sm{padding:.65rem 1.1rem;font-size:.85rem}
.btn-block{width:100%}
.link-arrow{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;color:var(--copper-ink);font-family:var(--font-heading)}
.link-arrow .ic{transition:transform .2s}
.link-arrow:hover .ic{transform:translateX(4px)}
[dir=rtl] .link-arrow:hover .ic{transform:scaleX(-1) translateX(4px)}
.on-dark .link-arrow{color:var(--copper)}

/* ---------- En-tête ---------- */
.hdr{position:sticky;top:0;z-index:100;background:color-mix(in srgb,var(--white) 92%,transparent);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid color-mix(in srgb,var(--navy) 9%,transparent);transition:box-shadow .25s}
.hdr.scrolled{box-shadow:0 8px 30px -18px color-mix(in srgb,var(--navy) 50%,transparent)}
.hdr-in{display:flex;align-items:center;gap:1.5rem;min-height:76px}
.brand{display:flex;align-items:center;gap:.7rem;font-family:var(--font-heading);font-weight:800;font-size:1.25rem;color:var(--navy);letter-spacing:-.02em}
.brand img{height:54px;width:auto;object-fit:contain}
.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--navy);color:var(--copper);font-size:1.05rem}
.nav{display:flex;align-items:center;gap:.25rem;margin-inline-start:auto}
.nav>li{position:relative}
.nav-link{display:inline-flex;align-items:center;gap:.35rem;padding:.7rem .9rem;border-radius:10px;font-weight:600;font-size:.95rem;color:var(--navy);background:none;border:0;cursor:pointer;font-family:inherit;transition:background .2s,color .2s}
.nav-link:hover,.nav-link[aria-expanded=true],.nav-link.active{background:color-mix(in srgb,var(--navy) 7%,transparent)}
.nav-link .ic{width:1em;height:1em;transition:transform .2s}
.nav-link[aria-expanded=true] .ic{transform:rotate(180deg)}
.mega{position:absolute;inset-inline-start:0;top:calc(100% + 10px);min-width:360px;background:#fff;border:1px solid color-mix(in srgb,var(--navy) 10%,transparent);border-radius:calc(var(--radius) + 2px);box-shadow:0 30px 60px -24px color-mix(in srgb,var(--navy) 45%,transparent);padding:.6rem;opacity:0;visibility:hidden;transform:translateY(8px);transition:all .2s ease}
.nav>li.open .mega{opacity:1;visibility:visible;transform:none}
.mega a{display:flex;gap:.8rem;padding:.8rem .9rem;border-radius:12px;transition:background .15s}
.mega a:hover{background:var(--cloud)}
.mega-ico{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:10px;background:var(--cloud);color:var(--ocean)}
.mega a:hover .mega-ico{background:var(--navy);color:var(--copper)}
.mega-t{font-weight:700;color:var(--navy);font-size:.95rem;font-family:var(--font-heading)}
.mega-d{font-size:.82rem;color:var(--muted);line-height:1.4;margin-top:2px}
.hdr-tools{display:flex;align-items:center;gap:.6rem}
.lang{position:relative}
.lang-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .75rem;border-radius:10px;border:1px solid color-mix(in srgb,var(--navy) 16%,transparent);background:#fff;color:var(--navy);font-weight:700;font-size:.82rem;cursor:pointer;font-family:inherit;text-transform:uppercase;letter-spacing:.04em}
.lang-menu{position:absolute;inset-inline-end:0;top:calc(100% + 8px);background:#fff;border:1px solid color-mix(in srgb,var(--navy) 10%,transparent);border-radius:14px;box-shadow:0 24px 50px -20px color-mix(in srgb,var(--navy) 45%,transparent);padding:.4rem;min-width:150px;display:none;z-index:5}
.lang.open .lang-menu{display:block}
.lang-menu a,.lang-menu span{display:flex;justify-content:space-between;align-items:center;padding:.55rem .75rem;border-radius:8px;font-size:.9rem;font-weight:600}
.lang-menu a:hover{background:var(--cloud)}
.lang-menu .cur{color:var(--copper-ink)}
.lang-menu .off{color:var(--muted);opacity:.6;cursor:not-allowed}
.rfq-pill{position:relative;display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .8rem;border-radius:10px;font-weight:700;font-size:.85rem;color:var(--navy);background:var(--cloud)}
.rfq-pill b{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:99px;background:var(--copper);color:var(--on-copper);font-size:.72rem;padding-inline:5px}
.burger{display:none;width:44px;height:44px;border-radius:12px;border:1px solid color-mix(in srgb,var(--navy) 16%,transparent);background:#fff;color:var(--navy);cursor:pointer;place-items:center}
.preview-bar{background:#b45309;color:#fff;text-align:center;font-size:.85rem;font-weight:700;padding:.5rem 1rem}

@media (max-width:1040px){
  .burger{display:grid}
  .hdr-cta{display:none}
  .nav{position:fixed;inset:0;top:76px;background:#fff;flex-direction:column;align-items:stretch;gap:0;padding:1rem clamp(16px,4vw,32px) 2rem;overflow:auto;transform:translateX(100%);transition:transform .3s ease;margin:0}
  [dir=rtl] .nav{transform:translateX(-100%)}
  body.nav-open .nav{transform:none}
  body.nav-open{overflow:hidden}
  .nav>li{border-bottom:1px solid color-mix(in srgb,var(--navy) 8%,transparent)}
  .nav-link{width:100%;justify-content:space-between;padding:1rem .2rem;font-size:1.05rem;border-radius:0}
  .mega{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:0 0 .8rem;min-width:0;display:none}
  .nav>li.open .mega{display:block}
}

/* ---------- Sections ---------- */
.sec{padding-block:clamp(56px,8vw,112px);position:relative}
.sec.compact{padding-block:clamp(36px,5vw,64px)}
.sec.large{padding-block:clamp(80px,11vw,152px)}
.bg-white{background:var(--white);color:var(--ink)}
.bg-cloud{background:var(--cloud);color:var(--ink)}
.bg-navy{background:var(--navy);color:#fff}
.bg-ocean{background:var(--ocean);color:#fff}
.bg-white,.bg-cloud{--local-muted:var(--muted)}
.bg-navy,.bg-ocean{--local-muted:rgba(255,255,255,.76)}
.on-dark{color:#fff}
.sec-head{max-width:760px;margin-bottom:clamp(32px,5vw,56px)}
.sec-head.center{margin-inline:auto;text-align:center}
.eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-heading);font-weight:800;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--copper-ink);margin-bottom:1rem}
.eyebrow::before{content:"";width:28px;height:2px;background:currentColor;border-radius:2px}
[dir=rtl] .eyebrow{letter-spacing:0}
.bg-navy .eyebrow,.bg-ocean .eyebrow,.hero .eyebrow{color:var(--copper)}
.h2{font-size:clamp(1.9rem,4vw,3rem)}
.lead{font-size:clamp(1.02rem,1.5vw,1.2rem);color:var(--local-muted);margin-top:1.1rem;max-width:62ch}
.sec-head.center .lead{margin-inline:auto}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;background:var(--navy);color:#fff;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(900px 520px at 85% -10%,color-mix(in srgb,var(--copper) 28%,transparent),transparent 60%),radial-gradient(800px 600px at -10% 110%,color-mix(in srgb,var(--ocean) 90%,transparent),transparent 62%);z-index:-2}
.hero::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.1) 1px,transparent 1.4px);background-size:26px 26px;mask-image:linear-gradient(180deg,#000,transparent 85%);z-index:-1;pointer-events:none}
.hero-bg{position:absolute;inset:0;z-index:-3;object-fit:cover;object-position:right center;width:100%;height:100%;opacity:.9}
.hero-shade{position:absolute;inset:0;z-index:-2;opacity:var(--hero-ov,1);background:linear-gradient(90deg,var(--navy) 0%,color-mix(in srgb,var(--navy) 88%,transparent) 38%,color-mix(in srgb,var(--navy) 35%,transparent) 70%,color-mix(in srgb,var(--navy) 10%,transparent) 100%)}
[dir=rtl] .hero-shade{transform:scaleX(-1)}
[dir=rtl] .hero-bg{object-position:left center}
@media (max-width:920px){.hero-shade{background:linear-gradient(180deg,color-mix(in srgb,var(--navy) 85%,transparent),color-mix(in srgb,var(--navy) 70%,transparent))}}
.page-hd .hero-bg{opacity:.55}
.hero-in{padding-block:clamp(72px,11vw,150px) clamp(64px,9vw,120px);display:grid;gap:3rem;grid-template-columns:1.15fr .85fr;align-items:center}
.hero h1{font-size:clamp(2.4rem,6vw,4.6rem);font-weight:800}
.hero h1 em{font-style:normal;color:var(--copper)}
.hero .lead{color:rgba(255,255,255,.82);font-size:clamp(1.05rem,1.7vw,1.3rem)}
.hero-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.2rem}
.universes{display:grid;gap:1rem}
.uni{display:flex;gap:1rem;align-items:center;padding:1.3rem 1.4rem;border-radius:calc(var(--radius) + 4px);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(10px);transition:transform .25s,background .25s,border-color .25s}
.uni:hover{transform:translateX(6px);background:rgba(255,255,255,.12);border-color:var(--copper)}
[dir=rtl] .uni:hover{transform:translateX(-6px)}
.uni-ico{display:grid;place-items:center;flex:none;width:56px;height:56px;border-radius:16px;background:var(--copper);color:var(--on-copper);font-size:1.5rem}
.uni b{display:block;font-family:var(--font-heading);font-size:1.15rem}
.uni span{display:block;font-size:.9rem;color:rgba(255,255,255,.72);margin-top:2px}
@media (max-width:920px){.hero-in{grid-template-columns:1fr}}

.page-hd{background:var(--navy);color:#fff;position:relative;overflow:hidden;isolation:isolate}
.page-hd::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 360px at 90% -20%,color-mix(in srgb,var(--copper) 24%,transparent),transparent 60%);z-index:-1}
.page-hd-in{padding-block:clamp(56px,8vw,104px)}
.page-hd h1{font-size:clamp(2rem,5vw,3.6rem);max-width:20ch}
.page-hd .lead{color:rgba(255,255,255,.8)}
.crumbs{display:flex;gap:.5rem;align-items:center;font-size:.85rem;color:rgba(255,255,255,.7);margin-bottom:1.4rem;flex-wrap:wrap}
.crumbs a:hover{color:var(--copper)}

/* ---------- Cartes ---------- */
.grid{display:grid;gap:clamp(16px,2vw,28px)}
.grid.c2{grid-template-columns:repeat(2,1fr)}
.grid.c3{grid-template-columns:repeat(3,1fr)}
.grid.c4{grid-template-columns:repeat(4,1fr)}
@media (max-width:1040px){.grid.c4{grid-template-columns:repeat(2,1fr)}.grid.c3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.grid.c2,.grid.c3,.grid.c4{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid color-mix(in srgb,var(--navy) 9%,transparent);border-radius:calc(var(--radius) + 2px);padding:1.8rem;transition:transform .25s ease,box-shadow .25s ease,border-color .25s;color:var(--ink);position:relative;display:flex;flex-direction:column;gap:.9rem}
.card:hover{transform:translateY(-5px);box-shadow:0 28px 50px -28px color-mix(in srgb,var(--navy) var(--shadow-a,40%),transparent);border-color:color-mix(in srgb,var(--copper) 55%,transparent)}
.card h3{font-size:1.2rem;color:var(--navy)}
.card p{color:var(--muted);font-size:.96rem}
.card-ico{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:var(--navy);color:var(--copper);font-size:1.5rem;transition:transform .25s}
.card:hover .card-ico{transform:rotate(-6deg) scale(1.06)}
.card .num{font-family:var(--font-heading);font-weight:800;font-size:2.4rem;line-height:1;color:color-mix(in srgb,var(--copper) 75%,transparent)}
.card .link-arrow{margin-top:auto;padding-top:.4rem}
.bg-cloud .card{border-color:transparent}

.div-card{min-height:360px;border-radius:calc(var(--radius) + 8px);padding:2.4rem;color:#fff;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;gap:1rem;background:linear-gradient(155deg,var(--navy),var(--ocean));isolation:isolate;transition:transform .3s,box-shadow .3s}
.div-card.alt{background:linear-gradient(155deg,var(--ocean),var(--navy))}
.div-card::before{content:"";position:absolute;inset-inline-end:-80px;top:-80px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--copper) 45%,transparent),transparent 65%);z-index:-1}
.div-card::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.1) 1px,transparent 1.4px);background-size:22px 22px;z-index:-1;mask-image:linear-gradient(200deg,#000,transparent 70%)}
.div-card:hover{transform:translateY(-6px);box-shadow:0 40px 70px -30px color-mix(in srgb,var(--navy) 75%,transparent)}
.div-card .card-ico{background:var(--copper);color:var(--on-copper);position:absolute;top:2.4rem;inset-inline-start:2.4rem;width:64px;height:64px;font-size:1.8rem}
.div-card h3{font-size:clamp(1.7rem,3vw,2.3rem)}
.div-card p{color:rgba(255,255,255,.8);max-width:46ch}
.div-card .tag{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--copper);font-weight:800;font-family:var(--font-heading)}
.div-card .link-arrow{color:var(--copper)}
.div-card .bg-img{position:absolute;inset:0;object-fit:cover;width:100%;height:100%;opacity:.25;z-index:-2}

/* ---------- Carte du monde ---------- */
.map-wrap{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(24px,4vw,56px);align-items:center}
.wm{width:100%;height:auto;overflow:visible}
.wm-base{stroke:color-mix(in srgb,#fff 24%,transparent);stroke-width:1.15;stroke-linecap:round;fill:none}
.wm-hl{stroke:var(--copper);stroke-width:1.5;stroke-linecap:round;fill:none;transition:stroke-width .2s}
.wm-hl:hover{stroke-width:2.2}
.wm-pin{fill:var(--copper);stroke:#fff;stroke-width:.5;animation:pulse 2.4s infinite;transform-box:fill-box;transform-origin:center}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.45)}}
.chips{display:flex;flex-wrap:wrap;gap:.6rem}
.chip{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .9rem;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);font-weight:600;font-size:.9rem}
.chip small{color:var(--copper);font-weight:800;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}
.bg-white .chip,.bg-cloud .chip{background:#fff;border-color:color-mix(in srgb,var(--navy) 14%,transparent);color:var(--navy)}
.bg-white .wm-base,.bg-cloud .wm-base{stroke:color-mix(in srgb,var(--navy) 22%,transparent)}
@media (max-width:900px){.map-wrap{grid-template-columns:1fr}}

/* ---------- Partenaires ---------- */
.logos{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem}
.logo-tile{display:grid;place-items:center;aspect-ratio:3/2;background:#fff;border:1px solid color-mix(in srgb,var(--navy) 9%,transparent);border-radius:var(--radius);padding:1.2rem;transition:all .25s}
.logo-tile img{max-height:64px;width:auto;object-fit:contain;filter:grayscale(1);opacity:.75;transition:all .25s}
.logo-tile span{font-family:var(--font-heading);font-weight:800;color:var(--navy);text-align:center}
.logo-tile:hover{border-color:var(--copper);transform:translateY(-3px);box-shadow:0 18px 30px -22px color-mix(in srgb,var(--navy) 50%,transparent)}
.logo-tile:hover img{filter:none;opacity:1}

/* ---------- Produits ---------- */
.prod{background:#fff;border:1px solid color-mix(in srgb,var(--navy) 9%,transparent);border-radius:calc(var(--radius) + 2px);overflow:hidden;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s,border-color .25s;color:var(--ink)}
.prod:hover{transform:translateY(-5px);box-shadow:0 28px 50px -28px color-mix(in srgb,var(--navy) var(--shadow-a,40%),transparent);border-color:color-mix(in srgb,var(--copper) 55%,transparent)}
.prod-img{position:relative;aspect-ratio:4/3;background:var(--cloud);display:grid;place-items:center;overflow:hidden}
.prod-img img{width:100%;height:100%;object-fit:contain;padding:1rem;transition:transform .4s}
.prod:hover .prod-img img{transform:scale(1.05)}
.prod-img .ph{color:color-mix(in srgb,var(--navy) 30%,transparent);font-size:3rem}
.badge{display:inline-flex;align-items:center;padding:.28rem .65rem;border-radius:99px;font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;font-family:var(--font-heading)}
.badge-feat{position:absolute;top:.8rem;inset-inline-start:.8rem;background:var(--copper);color:var(--on-copper)}
.avail{background:color-mix(in srgb,var(--ocean) 12%,#fff);color:var(--ocean)}
.avail.available{background:#e3f4ea;color:#14633a}
.avail.limited{background:#fdf0d8;color:#8a5412}
.avail.unavailable{background:#f6e0e0;color:#8f1d1d}
.prod-body{padding:1.2rem 1.3rem 1.4rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.prod-body .meta{font-size:.78rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.prod-body h3{font-size:1.05rem;color:var(--navy);line-height:1.3}
.prod-body p{font-size:.9rem;color:var(--muted)}
.price{font-family:var(--font-heading);font-weight:800;color:var(--navy);font-size:1.15rem}
.price small{font-weight:600;color:var(--muted);font-size:.8rem}
.price del{color:var(--muted);font-weight:500;font-size:.85rem;margin-inline-start:.4rem}
.prod-foot{margin-top:auto;display:flex;gap:.5rem;align-items:center;justify-content:space-between;padding-top:.8rem}
.cat-layout{display:grid;grid-template-columns:270px 1fr;gap:2.4rem;align-items:start}
.filters{position:sticky;top:96px;background:#fff;border:1px solid color-mix(in srgb,var(--navy) 10%,transparent);border-radius:calc(var(--radius) + 2px);padding:1.4rem;display:grid;gap:1.1rem}
@media (max-width:900px){.cat-layout{grid-template-columns:1fr}.filters{position:static}}
.pager{display:flex;justify-content:center;gap:.4rem;margin-top:2.4rem;flex-wrap:wrap}
.pager a,.pager span{min-width:42px;height:42px;display:grid;place-items:center;border-radius:12px;border:1px solid color-mix(in srgb,var(--navy) 14%,transparent);font-weight:700;padding-inline:.8rem;background:#fff;color:var(--navy)}
.pager a:hover{border-color:var(--copper)}
.pager .cur{background:var(--navy);color:#fff;border-color:var(--navy)}
.pager .dis{opacity:.4}
.pd{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(24px,4vw,64px);align-items:start}
@media (max-width:900px){.pd{grid-template-columns:1fr}}
.gallery-main{aspect-ratio:1/1;background:var(--cloud);border-radius:calc(var(--radius) + 4px);display:grid;place-items:center;overflow:hidden}
.gallery-main img{width:100%;height:100%;object-fit:contain;padding:1.5rem}
.thumbs{display:flex;gap:.6rem;margin-top:.8rem;flex-wrap:wrap}
.thumbs button{width:72px;height:72px;border:2px solid transparent;border-radius:12px;background:var(--cloud);padding:4px;cursor:pointer}
.thumbs button[aria-current=true]{border-color:var(--copper)}
.thumbs img{width:100%;height:100%;object-fit:contain}
.spec{width:100%;border-collapse:collapse;font-size:.95rem}
.spec th,.spec td{padding:.7rem .2rem;border-bottom:1px solid color-mix(in srgb,var(--navy) 10%,transparent);text-align:start;vertical-align:top}
.spec th{color:var(--muted);font-weight:600;width:42%}
.doc{display:flex;align-items:center;gap:.7rem;padding:.8rem 1rem;border:1px solid color-mix(in srgb,var(--navy) 12%,transparent);border-radius:12px;font-weight:600;background:#fff}
.doc:hover{border-color:var(--copper)}

/* ---------- Réalisations ---------- */
.proj{border-radius:calc(var(--radius) + 4px);overflow:hidden;background:#fff;border:1px solid color-mix(in srgb,var(--navy) 9%,transparent);display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s;color:var(--ink)}
.proj:hover{transform:translateY(-5px);box-shadow:0 28px 50px -28px color-mix(in srgb,var(--navy) var(--shadow-a,40%),transparent)}
.proj-cover{aspect-ratio:16/10;background:linear-gradient(135deg,var(--navy),var(--ocean));display:grid;place-items:center;color:var(--copper);font-size:2.4rem;overflow:hidden;position:relative}
.proj-cover img{width:100%;height:100%;object-fit:cover}
.proj-logo{position:absolute;inset-inline-start:1rem;bottom:1rem;background:#fff;border-radius:12px;padding:.5rem .7rem}
.proj-logo img{height:30px;width:auto;object-fit:contain}
.proj-body{padding:1.4rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.proj-body h3{font-size:1.2rem;color:var(--navy)}
.proj-body p{color:var(--muted);font-size:.93rem}
.tags{display:flex;flex-wrap:wrap;gap:.4rem}
.tag-chip{padding:.25rem .65rem;border-radius:99px;background:var(--cloud);color:var(--ocean);font-size:.76rem;font-weight:700}
.eco{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
@media (max-width:900px){.eco{grid-template-columns:1fr}}
.eco-card{padding:2rem;border-radius:calc(var(--radius) + 6px);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);display:flex;flex-direction:column;gap:1rem;transition:all .25s}
.eco-card:hover{background:rgba(255,255,255,.11);border-color:var(--copper);transform:translateY(-5px)}
.eco-logo{height:56px;display:flex;align-items:center}
.eco-logo img{max-height:56px;width:auto;background:#fff;border-radius:12px;padding:.5rem .8rem}
.eco-card h3{font-size:1.5rem}
.eco-card p{color:rgba(255,255,255,.78);font-size:.96rem}

/* ---------- CTA / bandeaux ---------- */
.cta-band{border-radius:calc(var(--radius) + 10px);padding:clamp(32px,5vw,64px);background:linear-gradient(135deg,var(--navy),var(--ocean));color:#fff;position:relative;overflow:hidden;display:grid;grid-template-columns:1.2fr 1fr;gap:2rem;align-items:center;isolation:isolate}
.cta-band::before{content:"";position:absolute;inset-inline-end:-120px;bottom:-140px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--copper) 40%,transparent),transparent 65%);z-index:-1}
.cta-band h2{font-size:clamp(1.7rem,3.4vw,2.6rem)}
.cta-band p{color:rgba(255,255,255,.8);margin-top:.9rem}
.cta-actions{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:flex-end}
.bullets{display:grid;gap:.6rem;margin-top:1.2rem}
.bullets li{display:flex;gap:.6rem;align-items:flex-start;color:rgba(255,255,255,.9)}
.bullets .ic{color:var(--copper);margin-top:.2rem}
@media (max-width:860px){.cta-band{grid-template-columns:1fr}.cta-actions{justify-content:flex-start}}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1.4rem}
.stat b{display:block;font-family:var(--font-heading);font-weight:800;font-size:clamp(2rem,4vw,3.2rem);color:var(--copper-ink);line-height:1}
.bg-navy .stat b,.bg-ocean .stat b{color:var(--copper)}
.stat span{display:block;margin-top:.5rem;color:var(--local-muted);font-weight:600}
.quote-card{background:#fff;border-radius:calc(var(--radius) + 2px);padding:2rem;border:1px solid color-mix(in srgb,var(--navy) 9%,transparent);color:var(--ink);display:flex;flex-direction:column;gap:1rem}
.quote-card blockquote{margin:0;font-size:1.05rem;line-height:1.6}
.quote-card footer{font-size:.9rem;color:var(--muted)}
.quote-card footer b{color:var(--navy);display:block}
.faq details{border-bottom:1px solid color-mix(in srgb,var(--navy) 12%,transparent);padding:1.1rem 0}
.faq summary{cursor:pointer;font-weight:700;font-family:var(--font-heading);font-size:1.05rem;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.4rem;color:var(--copper-ink);line-height:1}
.faq details[open] summary::after{content:"−"}
.faq p{margin-top:.8rem;color:var(--muted)}
.prose p+p{margin-top:1.1rem}
.prose{font-size:1.05rem;color:var(--ink)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,72px);align-items:center}
.split.img-start .split-img{order:-1}
.split-img img{width:100%;border-radius:calc(var(--radius) + 6px);box-shadow:0 30px 60px -30px color-mix(in srgb,var(--navy) 50%,transparent)}
@media (max-width:860px){.split{grid-template-columns:1fr}.split.img-start .split-img{order:0}}

/* ---------- Formulaires ---------- */
.form-card{background:#fff;border:1px solid color-mix(in srgb,var(--navy) 10%,transparent);border-radius:calc(var(--radius) + 6px);padding:clamp(22px,3.4vw,40px);box-shadow:0 30px 60px -40px color-mix(in srgb,var(--navy) 35%,transparent);color:var(--ink)}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem}
.form-grid .full{grid-column:1/-1}
@media (max-width:640px){.form-grid{grid-template-columns:1fr}}
.fld label{display:block;font-weight:700;font-size:.88rem;margin-bottom:.4rem;color:var(--navy)}
.fld label i{font-style:normal;color:var(--muted);font-weight:500}
.inp{width:100%;padding:.85rem 1rem;border-radius:12px;border:1.5px solid color-mix(in srgb,var(--navy) 18%,transparent);background:#fff;font:inherit;color:var(--ink);transition:border-color .2s,box-shadow .2s}
.inp:focus{outline:none;border-color:var(--copper);box-shadow:0 0 0 4px color-mix(in srgb,var(--copper) 22%,transparent)}
textarea.inp{min-height:130px;resize:vertical}
.fld.err .inp{border-color:#b42318}
.fld .em{color:#b42318;font-size:.82rem;margin-top:.35rem;font-weight:600}
.hint{font-size:.8rem;color:var(--muted);margin-top:.3rem}
.hp{position:absolute!important;inset-inline-start:-9999px;width:1px;height:1px;overflow:hidden}
.consent{display:flex;gap:.7rem;align-items:flex-start;font-size:.9rem;color:var(--muted)}
.consent input{margin-top:.25rem;width:18px;height:18px;accent-color:var(--copper)}
.alert{padding:1rem 1.2rem;border-radius:12px;font-weight:600}
.alert.ok{background:#e3f4ea;color:#14633a}
.alert.ko{background:#fbeaea;color:#8f1d1d}
.sent{text-align:center;padding:2rem 1rem}
.sent .ok-ico{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:#e3f4ea;color:#14633a;margin:0 auto 1rem;font-size:2rem}
.rfq-list{display:grid;gap:.7rem;margin-bottom:1.6rem}
.rfq-row{display:flex;gap:1rem;align-items:center;padding:.8rem 1rem;border:1px solid color-mix(in srgb,var(--navy) 10%,transparent);border-radius:14px;background:var(--cloud)}
.rfq-row img{width:56px;height:56px;object-fit:contain;background:#fff;border-radius:10px}
.rfq-row .t{font-weight:700;color:var(--navy);flex:1;min-width:0}
.rfq-row .t small{display:block;color:var(--muted);font-weight:500}
.rfq-row input[type=number]{width:76px;padding:.5rem;border-radius:10px;border:1.5px solid color-mix(in srgb,var(--navy) 18%,transparent);font:inherit}
.contact-cols{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,5vw,64px);align-items:start}
@media (max-width:860px){.contact-cols{grid-template-columns:1fr}}
.info{display:grid;gap:1.1rem;margin-top:1.6rem}
.info li{display:flex;gap:.9rem;align-items:flex-start}
.info .ic{width:44px;height:44px;padding:11px;border-radius:12px;background:var(--navy);color:var(--copper)}
.info b{display:block;font-family:var(--font-heading);color:var(--navy)}
.info a:hover{color:var(--copper-ink)}

/* ---------- Pied de page ---------- */
.ftr{background:var(--navy);color:rgba(255,255,255,.78);padding-top:clamp(48px,7vw,88px);position:relative;overflow:hidden}
.ftr::before{content:"";position:absolute;inset-inline-end:-150px;top:-150px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--copper) 22%,transparent),transparent 65%)}
.ftr-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:clamp(24px,4vw,56px);position:relative}
@media (max-width:900px){.ftr-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ftr-grid{grid-template-columns:1fr}}
.ftr .brand{color:#fff;margin-bottom:1rem}
.ftr h4{color:#fff;font-size:.9rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:1rem}
[dir=rtl] .ftr h4{letter-spacing:0}
.ftr li+li{margin-top:.55rem}
.ftr a:hover{color:var(--copper)}
.ftr .sig{font-family:var(--font-heading);font-weight:700;color:var(--copper);margin-top:1.2rem;font-size:.95rem}
.social{display:flex;gap:.6rem;margin-top:1.2rem}
.social a{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.08);color:#fff;transition:background .2s,color .2s}
.social a:hover{background:var(--copper);color:var(--on-copper)}
.ftr-bar{margin-top:clamp(36px,5vw,64px);border-top:1px solid rgba(255,255,255,.14);padding-block:1.4rem;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;font-size:.88rem;position:relative}
.ftr-bar ul{display:flex;gap:1.4rem;flex-wrap:wrap}
.ftr-bar li+li{margin:0}

/* ---------- Animations ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.no-js .reveal{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}
.toast{position:fixed;inset-inline-end:20px;bottom:20px;background:var(--navy);color:#fff;padding:.9rem 1.2rem;border-radius:14px;font-weight:600;box-shadow:0 20px 40px -18px rgba(0,0,0,.5);transform:translateY(20px);opacity:0;pointer-events:none;transition:all .3s;z-index:300}
.toast.show{opacity:1;transform:none}
.nf{min-height:60vh;display:grid;place-items:center;text-align:center;padding:4rem 1rem}
.nf h1{font-size:clamp(2.4rem,6vw,4rem)}

/* ---------- En-tête sombre (style maquette) ---------- */
.btn-light{background:#fff;color:var(--navy);border-color:#fff}
.btn-light:hover{box-shadow:0 14px 30px -12px rgba(0,0,0,.55)}
.brand-name{font-family:var(--font-heading);font-weight:800;letter-spacing:.02em;font-size:1.05rem}
.hdr.dark{background:var(--navy);border-bottom:1px solid rgba(255,255,255,.12)}
.hdr.dark .brand{color:#fff}
.hdr.dark .nav-link{color:rgba(255,255,255,.92)}
.hdr.dark .nav-link:hover,.hdr.dark .nav-link[aria-expanded=true],.hdr.dark .nav-link.active{background:rgba(255,255,255,.12);color:#fff}
.hdr.dark .lang-btn,.hdr.dark .burger{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
.hdr.dark .rfq-pill{background:rgba(255,255,255,.12);color:#fff}
.hdr.dark.scrolled{box-shadow:0 10px 30px -16px rgba(0,0,0,.6)}
@media (max-width:1040px){.hdr.dark .nav{background:var(--navy)}.hdr.dark .nav>li{border-color:rgba(255,255,255,.12)}.hdr.dark .nav-link{color:#fff}.hdr.dark .mega{background:transparent}.hdr.dark .mega a:hover{background:rgba(255,255,255,.08)}.hdr.dark .mega-t{color:#fff}.hdr.dark .mega-d{color:rgba(255,255,255,.7)}.hdr.dark .mega-ico{background:rgba(255,255,255,.1);color:var(--copper)}}
/* ---------- Bandeau centré + chiffres ---------- */
.hero.center .hero-in{grid-template-columns:1fr;text-align:center;justify-items:center;padding-block:clamp(88px,12vw,170px) clamp(48px,6vw,80px)}
.hero.center .lead{margin-inline:auto}
.hero.center .hero-cta{justify-content:center}
.hero.center .universes{grid-auto-flow:column;grid-auto-columns:1fr;width:100%;max-width:760px;margin-top:2rem}
.hero.center .hero-shade{background:radial-gradient(ellipse at center,color-mix(in srgb,var(--navy) 55%,transparent) 0%,color-mix(in srgb,var(--navy) 78%,transparent) 70%,color-mix(in srgb,var(--navy) 92%,transparent) 100%)}
.hero.center .hero-bg{object-position:center}
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.16);padding-block:clamp(24px,3vw,40px);text-align:center}
.hero-stats>div{padding-inline:1rem;border-inline-end:1px solid rgba(255,255,255,.2)}
.hero-stats>div:last-child{border-inline-end:0}
.hero-stats b{display:block;font-family:var(--font-heading);font-size:clamp(1.6rem,3vw,2.4rem);font-weight:800}
.hero-stats span{display:block;margin-top:.3rem;color:rgba(255,255,255,.8);font-size:.92rem}
@media (max-width:760px){.hero-stats{grid-template-columns:repeat(2,1fr);row-gap:1.4rem}.hero-stats>div:nth-child(2n){border-inline-end:0}.hero.center .universes{grid-auto-flow:row}}

/* ---------- Divisions (cartes claires + photo) ---------- */
.btn-navy{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn-navy:hover{background:var(--ocean);border-color:var(--ocean)}
.div2{position:relative;overflow:hidden;border-radius:calc(var(--radius) + 6px);min-height:300px;background:linear-gradient(135deg,var(--cloud),#fff);border:1px solid color-mix(in srgb,var(--navy) 10%,transparent);box-shadow:0 24px 50px -34px color-mix(in srgb,var(--navy) 45%,transparent);display:flex;isolation:isolate;transition:transform .3s,box-shadow .3s}
.div2:hover{transform:translateY(-5px);box-shadow:0 34px 60px -30px color-mix(in srgb,var(--navy) 55%,transparent)}
.div2-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:right center;z-index:-2}
.div2.has-img::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#fff 0%,color-mix(in srgb,#fff 92%,transparent) 42%,color-mix(in srgb,#fff 25%,transparent) 100%)}
[dir=rtl] .div2.has-img::after{transform:scaleX(-1)}
[dir=rtl] .div2-img{object-position:left center}
.div2-body{padding:clamp(24px,3vw,40px);display:flex;flex-direction:column;gap:.9rem;align-items:flex-start;max-width:min(26rem,100%);justify-content:center;color:var(--navy)}
.div2-ico{display:grid;place-items:center;width:56px;height:56px;color:var(--navy);font-size:2.2rem}
.div2-ico .ic{width:2.2rem;height:2.2rem;stroke-width:1.4}
.div2 h3{font-size:clamp(1.5rem,2.6vw,2.1rem);color:var(--navy)}
.div2 p{color:color-mix(in srgb,var(--navy) 82%,#fff);font-weight:500}
/* ---------- Présence internationale + écosystème ---------- */
.reach{display:grid;grid-template-columns:1.55fr 1fr;gap:clamp(24px,4vw,56px);align-items:center}
.reach.solo{grid-template-columns:1fr}
.h3{font-size:clamp(1.4rem,2.4vw,1.9rem)}
.reach-map{display:grid;grid-template-columns:1.5fr 1fr;gap:1.4rem;align-items:center;margin-top:1.4rem}
.reach-svg .wm-base{stroke:color-mix(in srgb,var(--navy) 18%,transparent)}
.reach-list{display:grid;gap:.9rem}
.reach-list li{display:flex;gap:.8rem;align-items:center}
.reach-list .cc{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;font-size:.68rem;font-weight:800;font-family:var(--font-heading);flex:none}
.reach-list b{display:block;color:var(--navy);line-height:1.2}
.reach-list small{display:block;color:var(--muted)}
.eco-card2{background:var(--navy);color:#fff;border-radius:calc(var(--radius) + 8px);padding:clamp(22px,3vw,34px)}
.eco-card2 h3{font-size:1.15rem;padding-bottom:1rem;margin-bottom:1.2rem;border-bottom:1px solid rgba(255,255,255,.16)}
.eco-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.8rem}
.eco-tile{background:#fff;color:var(--navy);border-radius:var(--radius);padding:1.2rem .8rem;min-height:210px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.5rem;transition:transform .25s}
.eco-tile:hover{transform:translateY(-4px)}
.eco-tile img{max-height:64px;max-width:100%;object-fit:contain}
.eco-tile b{font-family:var(--font-heading);line-height:1.2}
.eco-tile small{color:var(--muted);font-size:.74rem;word-break:break-all}
@media (max-width:1000px){.reach{grid-template-columns:1fr}}
@media (max-width:640px){.reach-map{grid-template-columns:1fr}}

.no-anim .reveal{opacity:1!important;transform:none!important;transition:none!important}
.no-anim *{scroll-behavior:auto!important}
