
:root{
  --paper:#F5F1E8;
  --paper-2:#EBE4D3;
  --paper-3:#DDD3BD;
  --ink:#0F234D;
  --ink-2:#192D5B;
  --ink-3:#25386C;
  --steel:#5F6775;
  --steel-2:#8A9099;
  --line:#E8E2D3;
  --line-soft:#E8E0D0;
  --signal:#E43D30;
  --signal-2:#C4170F;
  --bronze:#334155;
  --white:#FFFFFF;
  --maxw:1280px;
  --rad:2px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%;overflow-x:hidden}
/* Global SVG size guard */
svg:not([class]):not([width]):not([height]){max-width:100%;height:auto}
.fab svg,.btn svg,.news-link svg,.ps-arrow svg,.pw-nav svg,.hero-li svg{
  width:auto !important;height:auto !important;
  max-width:24px;max-height:24px;flex-shrink:0;
}
/* WhatsApp FAB specific */
.fab{
  position:fixed;bottom:28px;right:28px;z-index:1090;
}
.fab a{
  display:flex;align-items:center;justify-content:center;
  width:48px;height:48px;border-radius:50%;
  background:#25D366;color:#fff;text-decoration:none;
  box-shadow:0 4px 18px rgba(37,211,102,.38);
  transition:transform .3s,box-shadow .3s;
}
.fab a:hover{transform:scale(1.08);box-shadow:0 8px 30px rgba(37,211,102,.55)}
.fab svg{width:28px !important;height:28px !important;fill:#fff}
/* Back to top */
.toTop{
  position:fixed;bottom:28px;left:28px;z-index:1080;
  width:44px;height:44px;border-radius:50%;
  background:var(--ink);color:#fff;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;
}
.toTop.show{opacity:1;pointer-events:auto}
.toTop:hover{background:var(--signal);transform:translateY(-3px)}
.toTop svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2}
@media(max-width:560px){
  .fab{bottom:20px;right:20px}
  .fab a{width:50px;height:50px}
  .fab svg{width:26px !important;height:26px !important}
  .toTop{bottom:20px;left:20px;width:40px;height:40px}
}
body{
  font-family:'Inter',sans-serif;
  font-weight:400;font-size:16px;line-height:1.55;
  color:var(--ink);background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  width:100%;
  position:relative;
}
body.locked{overflow:hidden;position:fixed;left:0;right:0;width:100%}
.serif{font-family:'Playfair Display',serif;font-weight:400;letter-spacing:-.01em;line-height:.95}
.mono{font-family:'JetBrains Mono',monospace;font-feature-settings:"ss01","ss02";letter-spacing:0}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;background:none;border:none;color:inherit}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}
@media (max-width:720px){.wrap{padding:0 20px}}

/* selection */
::selection{background:var(--ink);color:var(--paper)}

/* scroll progress */
#progress{position:fixed;top:0;left:0;height:2px;width:0;background:var(--signal);z-index:2000;transition:width .15s}

/* preloader */
#preloader{position:fixed;inset:0;background:var(--paper);z-index:3000;display:flex;align-items:center;justify-content:center;transition:opacity .6s,visibility .6s}
#preloader.hide{opacity:0;visibility:hidden}
.pl{display:flex;flex-direction:column;align-items:center;gap:24px}
.pl-bar{
  width:120px;height:2px;background:var(--line);border-radius:2px;overflow:hidden;position:relative;
}
.pl-bar::after{
  content:'';position:absolute;left:-60px;top:0;width:60px;height:100%;
  background:var(--signal);
  animation:plload 1.2s ease-in-out infinite;
}
@keyframes plload{
  0%{left:-60px}100%{left:120px}
}
.pl{display:flex;align-items:baseline;gap:18px}
.pl-mark{font-family:'Playfair Display',serif;font-size:84px;line-height:1;color:var(--ink)}
.pl-sub{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--steel);position:relative}
.pl-sub::after{content:'';position:absolute;left:0;bottom:-8px;height:1px;width:60%;background:var(--signal);animation:plload 1.4s ease-in-out infinite}
@keyframes plload{0%,100%{width:0}50%{width:100%}}

/* ============ TOP STRIP ============ */
.topbar{background:var(--ink);color:var(--paper-2);font-size:12px}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;height:36px;gap:20px}
.topbar .tb-left{display:flex;align-items:center;gap:18px}
.topbar .tb-dot{width:5px;height:5px;background:var(--signal);border-radius:50%;display:inline-block;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.topbar .mono{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--steel-2)}
.topbar a:hover{color:var(--paper)}
.langsw{display:flex;gap:0;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.1em}
.langsw button{padding:4px 10px;color:var(--steel-2);border:1px solid transparent;text-transform:uppercase}
.langsw button.on{color:var(--paper);border-color:rgba(255,255,255,.15)}
.langsw button:not(.on):hover{color:var(--paper)}

/* ============ HEADER ============ */
header{
  position:sticky;top:0;z-index:1000;
  background:var(--paper);
  border-bottom:1px solid transparent;
  transition:border-color .3s,background .3s,backdrop-filter .3s;
}
header.scrolled{
  background:rgba(241,236,224,.88);
  backdrop-filter:blur(14px);
  border-bottom-color:var(--line);
}
.nav{display:flex;align-items:center;justify-content:space-between;height:84px;transition:height .3s}
header.scrolled .nav{height:68px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.logo-svg{
  height:48px;width:auto;display:block;
  object-fit:contain;transition:height .3s;
}
header.scrolled .logo-svg{height:36px}
.foot-logo{color:var(--paper)}
.foot-soc{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.foot-soc a{
  display:flex;align-items:center;justify-content:center;
  width:36px;height:36px;
  border:1px solid rgba(255,255,255,.15);border-radius:6px;
  color:rgba(255,255,255,.6);transition:all .3s;flex-shrink:0;
}
.foot-soc a:hover{color:#fff;border-color:var(--signal);background:rgba(225,31,31,.15)}
.foot-soc a svg{width:18px;height:18px;fill:currentColor;flex-shrink:0}
.foot-soc a svg[stroke]{fill:none;stroke:currentColor;stroke-width:1.8}
.foot-logo .logo-svg{height:52px;opacity:1;filter:none}
.logo-mark{
  width:44px;height:44px;
  background:var(--ink);color:var(--paper);
  display:flex;align-items:center;justify-content:center;
  font-family:'Playfair Display',serif;
  font-size:30px;line-height:1;padding-top:3px;
  position:relative;
}
.logo-mark::after{
  content:'';position:absolute;bottom:5px;right:5px;
  width:5px;height:5px;background:var(--signal);
}
.logo-txt{display:flex;flex-direction:column;line-height:1}
.logo-txt b{font-family:'Inter',sans-serif;font-weight:800;font-size:18px;letter-spacing:.05em;color:var(--ink)}
.logo-txt small{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.18em;color:var(--steel);text-transform:uppercase;margin-top:3px}

.menu{display:flex;align-items:center;gap:4px;list-style:none}
.menu a{
  font-size:14px;font-weight:500;color:var(--ink-2);
  padding:10px 14px;position:relative;
  transition:color .2s;
}
.menu a::before{
  content:'';position:absolute;left:14px;right:14px;bottom:6px;
  height:1px;background:var(--signal);
  transform:scaleX(0);transform-origin:left;transition:transform .3s ease;
}
.menu a:hover{color:var(--ink)}
.menu a:hover::before,.menu a.active::before{transform:scaleX(1)}
.menu a.active{color:var(--ink)}

.nav-cta{display:flex;align-items:center;gap:12px}
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'Inter',sans-serif;font-weight:600;font-size:13px;
  letter-spacing:.02em;
  padding:14px 22px;border:1px solid var(--ink);
  background:transparent;color:var(--ink);
  transition:all .25s ease;cursor:pointer;
  white-space:nowrap;border-radius:var(--rad);
}
.btn svg{width:14px;height:14px;transition:transform .3s}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn:hover svg{transform:translateX(3px)}
.btn:focus-visible,button:focus-visible,a:focus-visible{
  outline:2px solid var(--signal);outline-offset:3px;
}
.btn-fill{background:var(--ink);color:var(--paper)}
.btn-fill:hover{background:var(--signal);border-color:var(--signal)}
.btn-signal{background:var(--signal);border-color:var(--signal);color:var(--white)}
.btn-signal:hover{background:var(--signal-2);border-color:var(--signal-2);color:var(--white)}
.btn-light{border-color:var(--paper);color:var(--paper);background:transparent}
.btn-light:hover{background:var(--paper);color:var(--ink)}
.btn-light-fill{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.btn-light-fill:hover{background:var(--signal);color:var(--paper);border-color:var(--signal)}
.btn-sm{padding:9px 16px;font-size:12px}

.burger{display:none;flex-direction:column;gap:4px;padding:10px;border:1px solid var(--ink);border-radius:var(--rad)}
.burger span{width:18px;height:1.5px;background:var(--ink);transition:.3s}
.burger.open{border-color:var(--paper);background:transparent}
.burger.open span{background:var(--paper)}
.burger.open span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}

/* ============ HERO ============ */
/* Premium single-image hero — desktop: 45/55 split │ mobile: image-first */

/* ── Section shell ─────────────────────────────────────────────── */
.hero{
  position:relative;
  background:var(--ink);
  overflow:hidden;
  padding:0;
  min-height:100vh;
  display:flex;flex-direction:column;
}

/* ── Two-column grid ────────────────────────────────────────────── */
.hero-inner{
  display:grid;
  grid-template-columns:45% 55%;
  min-height:100vh;
  position:relative;
}

/* ── LEFT — content column ──────────────────────────────────────── */
.hero-left{
  padding:80px 52px 64px 52px;
  display:flex;flex-direction:column;justify-content:center;
  position:relative;z-index:3;
  gap:0;
}

/* Tagline badge */
.hero-tagline{
  display:flex;align-items:center;gap:12px;
  margin-bottom:28px;
}
.hero-tagline .bar{
  width:32px;height:1px;
  background:var(--signal);flex-shrink:0;
}
.tl-txt{
  font-family:'JetBrains Mono',monospace;font-size:10px;
  letter-spacing:.22em;text-transform:uppercase;
  color:rgba(255,255,255,.75);line-height:1.6;
}
.tl-sep{color:var(--signal);font-size:16px;margin:0 4px;line-height:1}
.tl-year{display:flex;flex-direction:column}
.tl-year .sig{
  font-family:'JetBrains Mono',monospace;font-size:10px;
  letter-spacing:.22em;text-transform:uppercase;
  color:var(--signal);line-height:1.6;
}

/* Headline */
.hero h1{
  font-family:'Playfair Display',serif;font-weight:400;
  font-size:clamp(30px,3.2vw,50px);line-height:1.1;
  letter-spacing:-.022em;color:#fff;
  margin:0 0 22px 0;
}
.hero h1 em{
  font-style:italic;color:#fff;
  text-decoration:underline;
  text-decoration-color:rgba(228,61,48,.35);
  text-underline-offset:5px;
  text-decoration-thickness:1px;
}

/* Lead */
.hero-lead{
  font-size:15.5px;line-height:1.72;
  color:rgba(255,255,255,.7);
  margin:0 0 32px 0;
  max-width:440px;
}
.hero-accent{
  color:var(--signal);font-weight:600;
  background:rgba(228,61,48,.1);
  padding:1px 6px;border-radius:3px;
}

/* CTAs */
.hero-ctas{
  display:flex;flex-wrap:wrap;gap:12px;
  margin:0 0 36px 0;align-items:center;
}
.hero-ctas .btn{white-space:nowrap;flex:0 0 auto}
.hero-li{
  display:inline-flex;align-items:center;gap:8px;
  border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.8);
  padding:12px 18px;transition:all .28s;border-radius:var(--rad);
  font-family:'Inter',sans-serif;font-size:13px;font-weight:500;
}
.hero-li:hover{background:#0A66C2;border-color:#0A66C2;color:#fff}
.hero-li svg{width:17px;height:17px;flex-shrink:0}

/* Stats row */
.hero-stats-row{
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(255,255,255,.12);
  padding-top:28px;gap:0;
}
.h-stat{
  padding-right:24px;
  position:relative;
}
.h-stat + .h-stat{
  padding-left:24px;padding-right:0;
}
.h-stat + .h-stat::before{
  content:'';position:absolute;left:0;top:4px;bottom:4px;
  width:1px;background:rgba(255,255,255,.12);
}
.h-stat-num{
  font-family:'Playfair Display',serif;
  font-size:clamp(28px,2.8vw,40px);line-height:1;
  letter-spacing:-.02em;color:#fff;
  display:flex;align-items:baseline;gap:3px;
  margin-bottom:6px;
}
.h-stat-num .sup{
  font-family:'JetBrains Mono',monospace;font-size:13px;
  letter-spacing:.05em;color:var(--signal);font-weight:600;
  align-self:flex-start;margin-top:4px;
}
.h-stat-lbl{
  font-family:'JetBrains Mono',monospace;
  font-size:9px;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(255,255,255,.45);line-height:1.5;
}

/* ── RIGHT — hero image ─────────────────────────────────────────── */
.hero-img-col{
  position:relative;overflow:hidden;
}

/* Ken Burns image */
.hero-img-col img.hero-bg-img{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;object-position:center;
  display:block;
  animation:kenBurns 20s ease-in-out infinite alternate;
  will-change:transform;
}
@keyframes kenBurns{
  0%  {transform:scale(1)    translate(0%,0%)}
  100%{transform:scale(1.07) translate(-1.5%,-1%)}
}

/* Left-to-right gradient — text readability bridge */
.hero-img-grad{
  position:absolute;inset:0;
  background:linear-gradient(
    to right,
    var(--ink) 0%,
    rgba(11,31,63,.65) 35%,
    rgba(11,31,63,.1) 75%,
    transparent 100%
  );
  z-index:1;
}

/* Subtle bottom fade */
.hero-img-grad-b{
  position:absolute;left:0;right:0;bottom:0;height:30%;
  background:linear-gradient(to top,rgba(11,31,63,.4),transparent);
  z-index:1;
  pointer-events:none;
}

/* ── Staggered text animations ──────────────────────────────────── */
@keyframes heroFadeUp{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes heroFadeIn{
  from{opacity:0}to{opacity:1}
}
.hero-left .hero-tagline{
  animation:heroFadeUp .65s .1s cubic-bezier(.4,0,.2,1) both;
}
.hero-left .hero h1,
.hero-left h1{
  animation:heroFadeUp .65s .22s cubic-bezier(.4,0,.2,1) both;
}
.hero-lead{
  animation:heroFadeUp .65s .34s cubic-bezier(.4,0,.2,1) both;
}
.hero-ctas{
  animation:heroFadeUp .65s .46s cubic-bezier(.4,0,.2,1) both;
}
.hero-stats-row{
  animation:heroFadeUp .65s .58s cubic-bezier(.4,0,.2,1) both;
}
.hero-img-col{
  animation:heroFadeIn .9s .05s ease both;
}

/* ── Reduce motion ──────────────────────────────────────────────── */
@media(prefers-reduced-motion:reduce){
  .hero-bg-img{animation:none !important}
  .hero-left *,.hero-img-col{animation:none !important;opacity:1 !important;transform:none !important}
}

/* ── Responsive ─────────────────────────────────────────────────── */

/* Large desktop: cap height */
@media(min-width:1440px){
  .hero-inner{min-height:90vh;max-height:860px}
  .hero-left{padding:80px 64px}
}

/* Tablet (1024–768) */
@media(max-width:1024px){
  .hero-inner{grid-template-columns:50% 50%}
  .hero-left{padding:56px 36px 48px}
  .h-stat-num{font-size:clamp(24px,3vw,34px)}
}

/* Small tablet / large phone (768px) → stack vertically */
@media(max-width:768px){
  .hero{min-height:auto}
  .hero-inner{
    display:flex;flex-direction:column;
    min-height:auto;
  }

  /* ── Image FIRST on mobile ── */
  .hero-img-col{
    order:-1;          /* moves image above text in DOM-reversed flex */
    width:100%;
    height:40vh;min-height:240px;max-height:380px;
    flex-shrink:0;
  }
  .hero-img-grad{
    /* On mobile: top-to-bottom overlay instead of left-right */
    background:linear-gradient(
      to bottom,
      rgba(11,31,63,.1) 0%,
      rgba(11,31,63,.55) 100%
    );
  }

  /* ── Content below image ── */
  .hero-left{
    order:0;
    padding:36px 20px 40px;
    align-items:flex-start;
  }

  /* CTAs full width */
  .hero-ctas{
    flex-direction:column;
    width:100%;
    gap:10px;
  }
  .hero-ctas .btn,.hero-ctas .hero-li{
    width:100% !important;
    justify-content:center !important;
    flex:0 0 auto !important;
  }

  /* Stats: 2×2 grid */
  .hero-stats-row{
    grid-template-columns:1fr 1fr;
    gap:0;
    border-top:1px solid rgba(255,255,255,.12);
  }
  .h-stat{padding:16px 14px !important}
  .h-stat + .h-stat::before{display:none}
  .h-stat:nth-child(odd){border-right:1px solid rgba(255,255,255,.1)}
  .h-stat:nth-child(3),.h-stat:nth-child(4){
    border-top:1px solid rgba(255,255,255,.1);
  }
  .h-stat-num{font-size:28px}
  .h-stat + .h-stat{padding-left:14px}

  /* Lead text tighter */
  .hero-lead{font-size:15px;max-width:100%}
  .hero h1{font-size:clamp(26px,7vw,36px)}
}

@media(max-width:480px){
  .hero-img-col{height:38vh;min-height:200px}
  .hero-left{padding:28px 16px 36px}
  .h-stat-num{font-size:24px}
  .h-stat-lbl{font-size:8px}
}



/* ============ MARQUEE ============ */
.marquee{
  background:var(--ink);color:var(--paper-2);
  border-top:1px solid var(--ink-3);border-bottom:1px solid var(--ink-3);
  overflow:hidden;
  padding:22px 0;
  position:relative;
}
.marquee::before,.marquee::after{
  content:'';position:absolute;top:0;bottom:0;width:80px;z-index:2;pointer-events:none;
}
.marquee::before{left:0;background:linear-gradient(90deg,var(--ink),transparent)}
.marquee::after{right:0;background:linear-gradient(-90deg,var(--ink),transparent)}
.mq:hover .mq-track{animation-play-state:paused}
.mq-track{display:flex;animation:mq 13.5s linear infinite;white-space:nowrap;gap:0}
.mq-item{
  font-family:'Playfair Display',serif;font-size:36px;
  padding:0 36px;color:var(--paper-2);position:relative;
}
.mq-item em{color:var(--signal);font-style:normal;margin-right:18px;font-family:'JetBrains Mono',monospace;font-size:14px;letter-spacing:.15em;vertical-align:middle}
.mq-item span{display:inline-block;border-bottom:1px solid transparent;transition:border-color .25s}
.mq-item:hover span{border-color:var(--signal)}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.marquee:hover .mq-track{animation-play-state:paused}

/* ============ SECTIONS ============ */
section{position:relative}
.sec{padding:120px 0}
@media(max-width:768px){.sec{padding:64px 0}}
@media(max-width:560px){.sec{padding:52px 0}}
.sec.tight{padding:80px 0}
.sec-ink{background:var(--ink);color:var(--paper)}
.sec-ink .steel{color:var(--steel-2)}
.sec-paper{background:var(--paper)}

/* section head */
.sec-head{
  display:grid;grid-template-columns:auto 1fr auto;
  gap:40px;align-items:end;
  padding-bottom:40px;margin-bottom:64px;
  border-bottom:1px solid var(--line);
}
.sec-ink .sec-head{border-bottom-color:var(--ink-3)}
.sh-idx{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--signal);
  padding-bottom:8px;
}
.sh-title h2{
  font-family:'Playfair Display',serif;
  font-size:clamp(40px,5.4vw,76px);
  font-weight:400;line-height:.96;letter-spacing:-.02em;
  color:var(--ink);
}
.sec-ink .sh-title h2{color:var(--paper)}
.sh-title h2 em{font-style:italic}
.sh-title h2 em.sig{color:var(--signal);font-style:italic}
.sh-sub{
  max-width:340px;text-align:right;
  font-size:14.5px;line-height:1.6;color:var(--steel);
  padding-bottom:8px;
}
.sec-ink .sh-sub{color:var(--steel-2)}
@media (max-width:900px){
  .sec-head{grid-template-columns:1fr;gap:18px}
  .sh-sub{text-align:left;max-width:none}
}

/* ============ SOLUTIONS ============ */
.sol-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.sol-grid > .sol:nth-child(-n+3){grid-column:span 2}
.sol-grid > .sol:nth-child(n+4){grid-column:span 3}
@media (max-width:960px){
  .sol-grid{grid-template-columns:repeat(2,1fr)}
  .sol-grid > .sol{grid-column:span 1 !important}
  .sol-grid > .sol:nth-child(5){grid-column:span 2 !important}
}
@media (max-width:640px){
  .sol-grid{grid-template-columns:1fr}
  .sol-grid > .sol,.sol-grid > .sol:nth-child(5){grid-column:span 1 !important}
}
.sol{
  padding:40px 36px;
  border-right:1px solid rgba(15,42,95,.08);border-bottom:1px solid rgba(15,42,95,.08);
  background:var(--paper);
  transition:background .3s,transform .3s ease,box-shadow .3s ease;
  position:relative;cursor:pointer;
  min-height:280px;display:flex;flex-direction:column;
}
@media (max-width:960px){
  .sol{padding:32px 24px;min-height:240px}
}
@media (max-width:640px){
  .sol{padding:36px 24px;min-height:0}
  .sol h3{font-size:26px}
}
.sol::before{
  content:'';position:absolute;left:0;right:0;top:0;height:0;background:var(--signal);
  transition:height .35s ease;
}
.sol::after{
  content:'';position:absolute;right:0;top:0;bottom:0;width:0;
  background:var(--signal);transition:width .3s ease;
}
.sol:hover{background:var(--paper-2);transform:translateY(-3px);box-shadow:0 10px 30px rgba(15,42,95,.05)}
.sol:hover::before{height:3px}
.sol:hover::after{width:2px}
.sol-num{
  font-family:'JetBrains Mono',monospace;
  font-size:10px;letter-spacing:.2em;color:var(--steel-2);
  margin-bottom:auto;opacity:.7;
}
.sol-glyph{
  width:48px;height:48px;display:flex;align-items:center;justify-content:center;
  color:var(--ink);margin:18px 0 24px;
}
.sol-glyph svg{width:42px;height:42px;stroke-width:1.2;fill:none;stroke:currentColor}
.sol:hover .sol-glyph{color:var(--signal)}
.sol-img{
  margin:18px -36px 24px;height:180px;overflow:hidden;
  position:relative;background:var(--paper-2);
}
.sol-img img{
  width:100%;height:100%;object-fit:cover;
  filter:grayscale(.2) contrast(1.02);
  transition:transform .8s ease,filter .4s ease;
}
.sol:hover .sol-img img{transform:scale(1.04);filter:none}
.sol-img::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 40%,rgba(241,236,223,.15));
  pointer-events:none;
}
@media (max-width:960px){.sol-img{margin:18px -24px 20px;height:160px}}
@media (max-width:640px){.sol-img{height:200px}}
.sol h3{
  font-family:'Playfair Display',serif;
  font-size:28px;font-weight:400;line-height:1.05;
  color:var(--ink);margin-bottom:20px;letter-spacing:-.01em;
}
.sol p{font-size:14.5px;line-height:1.6;color:var(--ink-3)}
.sol-arrow{
  margin-top:24px;
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.18em;color:var(--ink);
  display:inline-flex;align-items:center;gap:8px;text-transform:uppercase;
  white-space:nowrap;transition:color .3s;
}
.sol-arrow svg{width:14px;height:14px;transition:transform .3s}
.sol:hover .sol-arrow svg{transform:translateX(4px)}
.sol:hover .sol-arrow{color:var(--signal)}

/* ============ VIDEO ============ */
.vid-sec{background:var(--ink);padding:110px 0 120px}
.vid-head{text-align:center;margin-bottom:48px}
.vid-eyebrow{
  display:inline-flex;align-items:center;gap:12px;margin-bottom:22px;
  font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--signal);
}
.vid-eyebrow .bar{width:32px;height:1px;background:var(--signal)}
.vid-title{
  font-family:'Playfair Display',serif;font-weight:400;
  font-size:clamp(32px,4.5vw,56px);line-height:1.05;letter-spacing:-.015em;color:var(--paper);
}
.vid-title em{font-style:italic;color:var(--paper)}
.vid-wrap{
  max-width:960px;margin:0 auto;
  border-radius:10px;overflow:hidden;
  box-shadow:0 24px 64px rgba(14,34,77,.5);
  border:1px solid var(--ink-3);
}
.vid-wrap video{
  width:100%;height:auto;display:block;
  background:#000;
}
@media (max-width:600px){
  .vid-sec{padding:72px 0 80px}
  .vid-wrap{border-radius:6px}
}

/* ============ SERVICES — premium card grid ============ */

/* Section padding: reduced ~30% (96px → 72px) */
#services{padding:72px 0 !important}

/* Grid container */
.serv-list{
  border-top:none;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-top:48px;
}

/* ── Service card ───────────────────────────────────────────── */
.srv-card{
  display:flex;flex-direction:column;
  background:#FAFAFA;
  border:1px solid rgba(0,0,0,.07);
  border-radius:20px;
  padding:30px;
  text-decoration:none;
  cursor:pointer;
  position:relative;
  box-shadow:0 1px 4px rgba(15,35,77,.05), 0 2px 12px rgba(15,35,77,.04);
  transition:transform .26s cubic-bezier(.4,0,.2,1),
             box-shadow .26s cubic-bezier(.4,0,.2,1),
             border-color .26s;
  transition-delay:var(--srv-d,0ms);
}
.srv-card:hover{
  transform:translateY(-5px);
  box-shadow:0 14px 40px rgba(15,35,77,.12), 0 3px 10px rgba(15,35,77,.06);
  border-color:rgba(228,61,48,.15);
}

/* ── Card header: icon + badge ─────────────────────────────── */
.srv-top{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:22px;
}
.srv-icon{
  width:46px;height:46px;border-radius:12px;
  background:rgba(228,61,48,.08);
  display:flex;align-items:center;justify-content:center;
  color:var(--signal);flex-shrink:0;
  transition:background .26s;
}
.srv-card:hover .srv-icon{background:rgba(228,61,48,.14)}
.srv-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.srv-badge{
  font-family:'JetBrains Mono',monospace;font-size:10.5px;font-weight:700;
  letter-spacing:.14em;color:var(--signal);
  background:rgba(228,61,48,.08);
  padding:4px 10px;border-radius:100px;
}

/* ── Title ─────────────────────────────────────────────────── */
.srv-title{
  font-family:'Playfair Display',serif;
  font-size:clamp(19px,2vw,24px);
  line-height:1.14;font-weight:400;
  color:var(--ink);margin:0 0 10px;
}
.srv-title em{font-style:italic;color:var(--signal)}

/* ── Description ───────────────────────────────────────────── */
.srv-desc{
  font-size:14px;line-height:1.68;
  color:var(--steel);margin:0 0 24px;
  max-width:380px;flex:1;
}

/* ── Bottom row: label + arrow button ─────────────────────── */
.srv-foot{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:auto;
}
.srv-label{
  font-family:'JetBrains Mono',monospace;font-size:10px;
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--steel-2);transition:color .26s;
}
.srv-card:hover .srv-label{color:var(--signal)}
.srv-arrow{
  width:30px;height:30px;border-radius:50%;
  background:var(--ink);color:#fff;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  transition:background .26s,transform .26s;
}
.srv-arrow svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.srv-card:hover .srv-arrow{background:var(--signal);transform:translateX(3px)}

/* ── CTA block — spans full width ───────────────────────────── */
.srv-cta{
  grid-column:1 / -1;
  background:var(--ink);border-radius:20px;
  padding:52px 56px;
  display:flex;align-items:center;justify-content:space-between;gap:40px;
}
.srv-cta-left{flex:1}
.srv-cta-eyebrow{
  font-family:'JetBrains Mono',monospace;font-size:10px;
  letter-spacing:.22em;text-transform:uppercase;
  color:var(--signal);display:block;margin-bottom:14px;
}
.srv-cta-h{
  font-family:'Playfair Display',serif;
  font-size:clamp(26px,3.2vw,38px);
  line-height:1.12;font-weight:400;color:#fff;margin:0 0 10px;
}
.srv-cta-p{
  font-size:15.5px;line-height:1.65;
  color:rgba(255,255,255,.62);max-width:440px;margin:0;
}
.srv-cta-btn{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--signal);color:#fff;
  font-family:'Inter',sans-serif;font-size:14px;font-weight:600;
  padding:14px 28px;border-radius:100px;
  text-decoration:none;white-space:nowrap;flex-shrink:0;
  transition:background .25s,transform .25s,box-shadow .25s;
  box-shadow:0 4px 16px rgba(228,61,48,.35);
}
.srv-cta-btn:hover{background:#c0392b;transform:translateY(-2px);box-shadow:0 8px 24px rgba(228,61,48,.45)}
.srv-cta-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}

/* ── Mobile ─────────────────────────────────────────────────── */
@media(max-width:768px){
  #services{padding:56px 0 !important}
  .serv-list{grid-template-columns:1fr;gap:14px;margin-top:36px}
  .srv-card{padding:24px;border-radius:16px}
  .srv-card:active{transform:scale(1.02);transition-duration:.14s}
  .srv-cta{flex-direction:column;align-items:flex-start;padding:32px 24px;gap:20px}
  .srv-cta-btn{width:100%;justify-content:center}
}
@media(max-width:480px){
  .srv-card{padding:20px}
  .srv-title{font-size:19px}
}

/* ============ PRODUCT SLIDER ============ */
.ps{background:#fff;padding:0;position:relative;overflow:hidden}
.ps-head{text-align:center;padding:80px 0 48px;background:linear-gradient(180deg,var(--paper) 0%,#fff 100%)}
.ps-title{font-family:'Playfair Display',serif;font-weight:400;font-size:clamp(32px,4.5vw,56px);line-height:1.05;color:var(--ink);margin-bottom:14px}
.ps-title em{font-style:italic}
.ps-sub{font-family:'Inter',sans-serif;font-size:15px;line-height:1.6;color:var(--steel);max-width:520px;margin:0 auto}
.ps-main{position:relative;overflow:hidden}
.ps-viewport{overflow:hidden}
.ps-track{display:flex;transition:transform .6s cubic-bezier(.4,0,.2,1)}
.ps-slide{flex:0 0 100%;width:100%;display:grid;grid-template-columns:1fr 1fr;min-height:520px}
.ps-slide-img{position:relative;background:#ffffff;display:flex;align-items:center;justify-content:center;padding:48px;overflow:hidden}
.ps-slide-img img{max-width:88%;max-height:400px;object-fit:contain;transition:transform .5s ease}
.ps-slide-img::after{content:'';position:absolute;right:0;top:10%;bottom:10%;width:1px;background:var(--line)}
.ps-slide-info{padding:56px 52px;display:flex;flex-direction:column;justify-content:center}
.ps-counter{font-family:'JetBrains Mono',monospace;font-size:13px;letter-spacing:.1em;color:var(--signal);margin-bottom:20px;display:flex;align-items:center;gap:8px}
.ps-counter b{font-size:28px;font-weight:700;color:var(--ink)}
.ps-counter span{color:var(--steel-2);font-size:13px}
.ps-counter::after{content:'';flex:1;max-width:60px;height:1px;background:var(--line);margin-left:8px}
.ps-slide-name{font-family:'Playfair Display',serif;font-size:clamp(24px,3vw,36px);font-weight:400;color:var(--ink);line-height:1.1;margin-bottom:8px}
.ps-slide-cat{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--steel-2);margin-bottom:20px}
.ps-slide-desc{font-size:15px;line-height:1.6;color:var(--steel);margin-bottom:24px;max-width:440px}
.ps-slide-supplier{display:flex;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:28px}
.ps-slide-supplier-label{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--steel-2)}
.ps-slide-supplier-name{font-family:'Playfair Display',serif;font-size:18px;color:var(--signal);text-decoration:none}
.ps-slide-supplier-name:hover{text-decoration:underline}
.ps-slide-actions{display:flex;gap:12px;flex-wrap:wrap}
.ps-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:10;width:48px;height:48px;border-radius:4px;background:var(--ink);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .3s}
.ps-arrow:hover{background:var(--signal)}
.ps-arrow svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2}
.ps-prev{left:16px}
.ps-next{right:16px}
.ps-thumbs-wrap{background:var(--paper);border-top:1px solid var(--line);padding:20px 0}
.ps-thumbs-wrap .wrap{display:flex;align-items:center;gap:10px}
.ps-thumbs{display:flex;gap:10px;overflow-x:auto;flex:1;scrollbar-width:none;-ms-overflow-style:none}
.ps-thumbs::-webkit-scrollbar{display:none}
.ps-thumb{
  flex:0 0 auto;width:160px;padding:12px 10px 14px;
  border:2px solid transparent;
  background:#fff;
  cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  transition:border-color .3s,background .3s,box-shadow .3s;
  border-radius:8px;
}
.ps-thumb.active{
  border-color:var(--signal);
  box-shadow:0 4px 14px rgba(228,61,48,.15);
  background:#fff;
}
.ps-thumb.active .ps-thumb-name{
  color:#D84A3A;
  font-weight:600;
  text-decoration:underline;
  text-decoration-color:rgba(216,74,58,.4);
  text-underline-offset:3px;
}
.ps-thumb:hover{background:var(--paper-2)}
.ps-thumb img{width:100%;height:60px;object-fit:contain;margin-bottom:2px}
.ps-thumb-num{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;color:var(--signal)}
.ps-thumb-name{
  font-family:'Inter',sans-serif;
  font-size:13px;font-weight:500;
  color:#1F2937;
  text-align:center;
  line-height:1.35;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  max-width:100%;
}
.ps-thumb-brand{
  font-family:'JetBrains Mono',monospace;
  font-size:9px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--steel-2);
  text-align:center;
}
.ps-thumb-arrow{width:32px;height:32px;border-radius:50%;flex-shrink:0;background:var(--ink);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .3s}
.ps-thumb-arrow:hover{background:var(--signal)}
.ps-thumb-arrow svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}

.ps-img-fallback{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  background:linear-gradient(135deg,var(--paper) 0%,var(--paper-2) 100%);
  padding:24px;text-align:center;
}
.pif-badge{
  width:72px;height:72px;border-radius:50%;
  background:var(--ink);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-family:'Playfair Display',serif;font-size:30px;font-weight:600;
}
.pif-name{
  font-family:'Playfair Display',serif;font-size:20px;font-weight:500;
  color:var(--ink);
}
.pif-cat{
  font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--steel-2);
}
.ps-slide-gallery{position:relative;width:100%;height:100%}
.ps-slide-gallery img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:48px;opacity:0;transition:opacity .4s ease}
.ps-slide-gallery img.active{opacity:1;position:relative}

/* ── Gallery default state: CSS-first, no JS dependency ──────────
   :first-child is always the default visible image.
   When user clicks (JS sets .active), only .active is shown.
   This eliminates ALL onerror race conditions.
   ────────────────────────────────────────────────────────────── */
.ps-slide-gallery img:first-child{opacity:1;position:relative}
.ps-slide-gallery:has(.active) img:not(.active){opacity:0 !important;position:absolute !important}
.ps-slide-gallery:has(.active) img.active{opacity:1 !important;position:relative !important}

.ps-slide-dots{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);display:flex;gap:8px;z-index:5}
.ps-dot{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--ink);background:transparent;cursor:pointer;transition:background .3s,border-color .3s;padding:0}
.ps-dot.active{background:var(--signal);border-color:var(--signal)}
.ps-dot.hidden{display:none}
.ps-img-nav{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;background:var(--ink);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s;z-index:5}
.ps-slide-img:hover .ps-img-nav{opacity:.7}
.ps-img-nav:hover{opacity:1 !important;background:var(--signal)}
.ps-img-nav svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.5}
.ps-img-prev{left:12px}
.ps-img-next{right:12px}

@media(max-width:900px){.ps-slide{grid-template-columns:1fr;min-height:auto}.ps-slide-img{min-height:280px;padding:28px}.ps-slide-img::after{display:none}.ps-slide-info{padding:32px 24px}.ps-arrow{width:38px;height:38px}.ps-prev{left:8px}.ps-next{right:8px}.ps-head{padding:56px 0 32px}}
@media(max-width:560px){.ps-slide-info{padding:24px 18px}.ps-thumb{width:110px;padding:6px}}

/* ============ INDUSTRIES ============ */
.ind-sec{
  position:relative;overflow:hidden;
  background:var(--paper);padding:110px 0 100px;
}
.ind-bp{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(14,34,77,.022) 1px,transparent 1px),
    linear-gradient(90deg,rgba(14,34,77,.022) 1px,transparent 1px);
  background-size:52px 52px;pointer-events:none;
}
.ind-wrap{position:relative;z-index:2}

/* Head */
.ind-head{text-align:center;margin-bottom:56px}
.ind-label{
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.35em;
  text-transform:uppercase;color:var(--signal);margin-bottom:16px;
  display:flex;align-items:center;justify-content:center;gap:12px;
}
.ind-label::before,.ind-label::after{content:'';width:28px;height:1px;background:var(--signal)}
.ind-title{
  font-family:'Playfair Display',serif;font-weight:400;
  font-size:clamp(28px,3.8vw,50px);line-height:1.12;
  color:var(--ink);margin-bottom:16px;letter-spacing:-.01em;
}
.ind-title em{font-style:italic}
.ind-title-line{
  width:48px;height:2px;margin:0 auto 0;
  background:var(--signal);position:relative;overflow:hidden;border-radius:2px;
}
.ind-title-line::after{
  content:'';position:absolute;left:-100%;top:0;
  width:100%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.9),transparent);
  animation:indShimmer 2.8s ease-in-out infinite;
}
@keyframes indShimmer{0%{left:-100%}100%{left:200%}}

/* ── Cards grid ───────────────────────────────────────────────── */
.ind-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

/* ── Card shell ── */
.ind{
  background:#fff;
  border:1px solid rgba(14,34,77,.07);
  border-radius:16px;
  overflow:hidden;
  display:flex;flex-direction:column;
  position:relative;
  box-shadow:0 2px 10px rgba(14,34,77,.05);
  transition:transform .35s cubic-bezier(.4,0,.2,1),
             box-shadow .35s cubic-bezier(.4,0,.2,1),
             border-color .35s;
  cursor:default;
  will-change:transform;
}
.ind:hover{
  transform:translateY(-7px);
  box-shadow:0 20px 48px rgba(14,34,77,.12);
  border-color:rgba(14,34,77,.12);
}

/* ── Image header ── */
.ind-img-wrap{
  position:relative;
  height:185px;
  overflow:hidden;
  flex-shrink:0;
}
.ind-img{
  width:100%;height:100%;
  object-fit:cover;object-position:center;
  display:block;
  transition:transform .5s cubic-bezier(.4,0,.2,1);
}
.ind:hover .ind-img{transform:scale(1.07)}

.ind-img-overlay{
  position:absolute;inset:0;
  background:linear-gradient(
    to bottom,
    rgba(11,31,63,.10) 0%,
    rgba(11,31,63,.58) 100%
  );
}

/* ── Icon pill (image, top-left) ── */
.ind-ic{
  position:absolute;top:12px;left:12px;
  width:40px;height:40px;border-radius:50%;
  background:rgba(255,255,255,.14);
  border:1.5px solid rgba(255,255,255,.30);
  display:flex;align-items:center;justify-content:center;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  transition:background .32s,border-color .32s,transform .32s;
  flex-shrink:0;
}
.ind:hover .ind-ic{
  background:rgba(228,61,48,.24);
  border-color:rgba(228,61,48,.55);
  transform:scale(1.08);
}
.ind-ic svg{
  width:18px;height:18px;
  stroke:#fff;fill:none;
  stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;
}

/* ── Card body ── */
.ind-body{
  padding:20px 22px 24px;
  flex:1;display:flex;flex-direction:column;
}
.ind-name{
  font-family:'Playfair Display',serif;
  font-size:18px;font-weight:500;line-height:1.2;
  color:var(--ink);letter-spacing:-.01em;
  margin:0 0 8px 0;
}
.ind-accent{
  width:26px;height:2px;
  background:var(--signal);border-radius:2px;
  margin-bottom:10px;
  transition:width .32s cubic-bezier(.4,0,.2,1);
}
.ind:hover .ind-accent{width:40px}
.ind-desc{
  font-family:'Inter',sans-serif;
  font-size:13px;line-height:1.65;
  color:var(--steel);margin:0;flex:1;
}

/* ── Staggered entrance ── */
@keyframes indFadeUp{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:translateY(0)}
}
.ind{opacity:0;animation:indFadeUp .55s cubic-bezier(.4,0,.2,1) both}
.ind:nth-child(1){animation-delay:.07s}
.ind:nth-child(2){animation-delay:.14s}
.ind:nth-child(3){animation-delay:.21s}
.ind:nth-child(4){animation-delay:.28s}
.ind:nth-child(5){animation-delay:.35s}
.ind:nth-child(6){animation-delay:.42s}

/* ── Responsive ── */
@media(max-width:960px){
  .ind-grid{grid-template-columns:repeat(2,1fr);gap:20px}
  .ind-img-wrap{height:165px}
  .ind-sec{padding:80px 0 72px}
}
@media(max-width:640px){
  .ind-grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .ind-img-wrap{height:140px}
  .ind-body{padding:14px 16px 18px}
  .ind-name{font-size:16px}
  .ind-desc{font-size:12.5px}
  .ind-sec{padding:64px 0}
}
@media(max-width:380px){
  .ind-grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .ind,.ind-img,.ind-accent{transition:none!important;animation:none!important}
  .ind{opacity:1!important}
}

/* ============ WHY (4-col dark) ============ */
.why-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:0;border-top:1px solid var(--ink-3);
}
.why{
  padding:42px 28px 50px;
  border-right:1px solid var(--ink-3);
  position:relative;
  transition:background .3s;
}
.why:last-child{border-right:none}
.why:hover{background:rgba(255,255,255,.02)}
.why-num{
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.18em;color:var(--signal);
  margin-bottom:36px;
}
.why h3{
  font-family:'Playfair Display',serif;font-size:30px;line-height:1.05;color:var(--paper);
  margin-bottom:18px;letter-spacing:-.01em;
}
.why h3 em{font-style:italic}
.why p{color:var(--paper-2);font-size:14.5px;line-height:1.6;opacity:.82}
@media (max-width:900px){
  .why-grid{grid-template-columns:repeat(2,1fr)}
  .why{border-bottom:1px solid var(--ink-3)}
  .why:nth-child(2n){border-right:none}
}
@media (max-width:560px){
  .why-grid{grid-template-columns:1fr}
  .why{border-right:none}
}

/* ============ PRESENCE ============ */
.pres-wrap{
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  border:1px solid var(--line);border-radius:8px;overflow:hidden;
  min-height:460px;
}
.pres-map{position:relative;background:var(--paper-2)}
#officesMap{width:100%;height:100%;min-height:460px}
.off-loading{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:var(--paper-2);z-index:5;
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--steel-2);
  transition:opacity .4s,visibility .4s;
}
.off-loading.hide{opacity:0;visibility:hidden}
.pres-list{
  background:#fff;padding:28px 0;
  display:flex;flex-direction:column;justify-content:center;
  overflow-y:auto;
  border-left:1px solid rgba(0,0,0,.07); /* separator from map panel */
}
.pres-item{
  padding:16px 28px;cursor:pointer;
  border-left:2px solid transparent;
  transition:background .3s,border-color .3s,padding-left .3s;
}
.pres-item:hover{background:rgba(0,0,0,.03);padding-left:32px}
.pres-item.on{border-left-color:var(--signal);background:rgba(225,31,31,.06)}
.pres-flag{
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;color:#9CA3AF;margin-bottom:6px;
}
.pres-city{
  font-family:'Playfair Display',serif;font-size:20px;color:#111111;
  line-height:1.15;margin-bottom:4px;
}
.pres-meta{
  font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.16em;
  text-transform:uppercase;color:#6B7280;
}
/* Map dots */
.offdot-wrap{background:none !important;border:none !important}
.offdot{
  width:14px;height:14px;border-radius:50%;
  background:var(--signal);border:2px solid #fff;
  box-shadow:0 2px 8px rgba(225,31,31,.4);
  transition:transform .3s;
}
.offdot-wrap:hover .offdot{transform:scale(1.4)}
/* Leaflet popups */
.leaflet-popup-content-wrapper{
  border-radius:8px !important;box-shadow:0 8px 28px rgba(0,0,0,.2) !important;
  padding:0 !important;
}
.leaflet-popup-content{padding:16px 20px !important;margin:0 !important;font-family:'Inter',sans-serif !important}
.pop-cat{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--signal);margin-bottom:6px}
.pop-name{font-family:'Playfair Display',serif;font-size:20px;color:var(--ink);margin-bottom:4px}
.pop-loc{font-size:12px;color:var(--steel);margin-bottom:4px}
.pop-spec{font-size:11px;color:var(--steel-2);line-height:1.5}

@media(max-width:820px){
  .pres-wrap{grid-template-columns:1fr}
  .pres-map{min-height:300px}
  #officesMap{min-height:300px}
  .pres-list{padding:20px 0;border-left:none;border-top:1px solid rgba(0,0,0,.08)}
  .pres-item{padding:12px 20px}
}

/* ============ CATALOGUE ============ */
.cata{
  background:var(--ink);color:var(--paper);
  display:grid;grid-template-columns:1.1fr 1fr;gap:0;
  position:relative;overflow:hidden;
  border:1px solid var(--ink-3);
}
.cata-left{padding:64px 56px}
.cata-mark{
  display:flex;align-items:center;gap:14px;margin-bottom:30px;
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--signal);
}
.cata-mark .bar{width:32px;height:1px;background:var(--signal)}
.cata-left h2{
  font-family:'Playfair Display',serif;font-size:clamp(36px,4.4vw,60px);
  line-height:1;letter-spacing:-.015em;margin-bottom:20px;color:var(--paper);
}
.cata-left h2 em{font-style:italic}
.cata-intro{color:var(--paper-2);opacity:.82;font-size:15.5px;line-height:1.6;margin-bottom:30px;max-width:480px}
.cata-points{list-style:none;margin-bottom:36px}
.cata-points li{
  display:flex;align-items:flex-start;gap:14px;
  padding:11px 0;border-bottom:1px solid var(--ink-3);
  font-size:14px;color:var(--paper-2);
}
.cata-points li svg{width:14px;height:14px;color:var(--signal);flex-shrink:0;margin-top:4px;stroke-width:2.5;fill:none;stroke:currentColor}
.cata-pdf-vis{
  display:flex;align-items:center;gap:20px;
  padding-top:24px;border-top:1px solid var(--ink-3);
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.15em;color:var(--steel-2);text-transform:uppercase;
}
.cata-pdf-vis .pdf-thumb{
  width:54px;height:70px;background:var(--paper);position:relative;
  display:flex;align-items:center;justify-content:center;
  font-family:'JetBrains Mono',monospace;font-weight:700;font-size:12px;color:var(--ink);
}
.cata-pdf-vis .pdf-thumb::after{
  content:'';position:absolute;top:0;right:0;
  border-top:12px solid var(--ink);border-left:12px solid var(--paper-2);
}

.cata-form{padding:64px 56px;background:var(--ink-2);display:flex;flex-direction:column;justify-content:center;border-left:1px solid var(--ink-3)}
.cata-form h3{font-family:'Playfair Display',serif;font-size:28px;color:var(--paper);margin-bottom:8px;line-height:1.1}
.cata-form .ftxt{color:var(--steel-2);font-size:13px;margin-bottom:28px}
.field{margin-bottom:18px}
.field label{
  display:block;font-family:'JetBrains Mono',monospace;font-size:10.5px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--steel-2);margin-bottom:8px;
}
.field input,.field select,.field textarea{
  width:100%;padding:12px 0;background:transparent;
  border:none;border-bottom:1px solid var(--ink-3);
  color:var(--paper);font:inherit;font-size:15px;
  transition:border-color .25s;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-bottom-color:var(--signal)}
.field input.err,.field select.err,.field textarea.err{border-bottom-color:var(--signal)}
.field input::placeholder,.field textarea::placeholder{color:var(--steel)}
.cata-form .btn{width:100%;justify-content:center;margin-top:14px}
.cata-success{padding:40px 0;text-align:center}
.cata-success .ok-ic{
  width:64px;height:64px;border:1px solid var(--signal);color:var(--signal);
  display:flex;align-items:center;justify-content:center;margin:0 auto 20px;border-radius:50%;
}
.cata-success .ok-ic svg{width:30px;height:30px;stroke:currentColor;fill:none;stroke-width:2.5}
.cata-success h4{font-family:'Playfair Display',serif;font-size:26px;color:var(--paper);margin-bottom:10px}
.cata-success p{color:var(--paper-2);font-size:14px;line-height:1.6;margin-bottom:18px}
.cata-success a{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.15em;color:var(--signal);text-transform:uppercase;border-bottom:1px solid var(--signal);padding-bottom:2px}

@media (max-width:900px){
  .cata{grid-template-columns:1fr}
  .cata-left,.cata-form{padding:40px 28px}
  .cata-form{border-left:none;border-top:1px solid var(--ink-3)}
}

@media (max-width:820px){
  .cata{grid-template-columns:1fr !important}
  .cata-form{border-left:none !important;border-top:1px solid var(--ink-3) !important}
}

/* ============ 4 PILLARS ============ */
.pillars{
  background:var(--ink);
  border-bottom:1px solid var(--ink-3);
  padding:0;
}
.pill-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
}
.pill{
  display:flex;align-items:center;gap:12px;
  padding:22px 24px;
  border-right:1px solid var(--ink-3);
  font-family:'JetBrains Mono',monospace;font-size:10.5px;
  letter-spacing:.14em;text-transform:uppercase;
  color:var(--paper-2);
  transition:color .3s,background .3s;
}
.pill:last-child{border-right:none}
.pill:hover{color:var(--paper);background:var(--ink-2)}
.pill svg{
  width:22px;height:22px;flex-shrink:0;
  color:var(--signal);
}
@media (max-width:820px){
  .pill-grid{grid-template-columns:repeat(2,1fr)}
  .pill:nth-child(2){border-right:none}
  .pill:nth-child(3),.pill:nth-child(4){border-top:1px solid var(--ink-3)}
}
@media (max-width:480px){
  .pill-grid{grid-template-columns:1fr}
  .pill{border-right:none;border-bottom:1px solid var(--ink-3)}
  .pill:last-child{border-bottom:none}
}

/* ============ PARTNER WALL ============ */
.pw{
  background:#ffffff;padding:120px 0;
  position:relative;
}
.pw::after{
  content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);
  width:80px;height:1px;background:var(--line);
}
.pw-head{text-align:center;margin-bottom:64px}
.pw-eyebrow{
  font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.3em;
  text-transform:uppercase;color:var(--signal);margin-bottom:20px;
}
.pw-title{
  font-family:'Playfair Display',serif;font-weight:400;
  font-size:clamp(34px,4.8vw,60px);line-height:1.05;letter-spacing:-.015em;
  color:var(--ink);margin-bottom:18px;
}
.pw-title em{font-style:italic}
.pw-sub{
  font-family:'Inter',sans-serif;font-size:15.5px;line-height:1.6;
  color:var(--steel);max-width:540px;margin:0 auto;
}

.pw-carousel{position:relative;padding:0 60px}
.pw-swiper{overflow:hidden}
.pw-swiper .swiper-slide{height:auto}

.pw-cell{
  background:#ffffff;
  padding:32px 20px;min-height:140px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;position:relative;overflow:hidden;
  cursor:default;
  border:1px solid #e5e5e5;
  border-radius:8px;
  transition:transform .3s ease,box-shadow .3s ease,border-color .3s;
}
.pw-cell:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.08);border-color:#d0d0d0}
a.pw-cell{text-decoration:none;color:inherit;cursor:pointer}

.pw-cell img{
  height:50px;width:auto;max-width:140px;object-fit:contain;
  opacity:0;position:absolute;
  filter:none;
  transition:opacity .4s,transform .3s ease;
}
.pw-cell img.loaded{opacity:1;position:relative}
.pw-cell:hover img.loaded{transform:scale(1.05)}
.pw-cell img.loaded ~ .pw-name{display:none}

.pw-name{
  font-family:'Playfair Display',serif;font-size:17px;
  color:var(--ink);letter-spacing:.01em;line-height:1.15;
  transition:color .3s;
}
.pw-cell:hover .pw-name{color:var(--signal)}
.pw-meta{
  font-family:'JetBrains Mono',monospace;font-size:9px;
  letter-spacing:.2em;text-transform:uppercase;color:var(--steel-2);
  margin-top:8px;
}
.pw-num{
  position:absolute;top:10px;right:12px;
  font-family:'JetBrains Mono',monospace;font-size:9px;
  letter-spacing:.1em;color:#e5e5e5;
}

.pw-nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:10;
  width:44px;height:44px;border-radius:50%;
  background:#11285D;color:#fff;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .3s,transform .3s;
  box-shadow:0 4px 12px rgba(17,40,93,.25);
}
.pw-nav:hover{background:var(--signal);transform:translateY(-50%) scale(1.08)}
.pw-nav svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2.5}
.pw-nav-prev{left:0}
.pw-nav-next{right:0}

.pw-pagination{margin-top:28px;display:flex;justify-content:center;gap:6px}
.pw-pagination .swiper-pagination-bullet{
  width:8px;height:8px;background:var(--line);opacity:1;
  transition:background .3s,width .3s;border-radius:4px;
}
.pw-pagination .swiper-pagination-bullet-active{
  background:var(--signal);width:24px;
}

@media(max-width:820px){.pw-carousel{padding:0 48px}.pw-nav{width:36px;height:36px}}
@media(max-width:560px){.pw-carousel{padding:0 40px}.pw-nav{width:32px;height:32px}}


/* ============ ACTUALITES ============ */
.news-sec{background:var(--paper);padding:110px 0 90px}
.news-grid{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:24px;margin-bottom:48px;
  align-items:start;
}
.news-card{
  background:#fff;border:1px solid var(--line);border-radius:10px;
  overflow:hidden;cursor:pointer;
  transition:transform .35s cubic-bezier(.4,0,.2,1),box-shadow .35s,border-color .35s;
}
.news-card:hover{transform:translateY(-5px);box-shadow:0 16px 40px rgba(14,34,77,.12);border-color:#cdd5e0}
.news-card-inner{padding:30px 28px;display:flex;flex-direction:column;gap:11px}
.news-tag{
  font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--signal);font-weight:700;
}
.news-emoji{font-size:26px;line-height:1;margin:2px 0}
.news-date{
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;
  color:var(--steel-2);text-transform:uppercase;
}
.news-card h3{
  font-family:'Playfair Display',serif;font-size:23px;font-weight:400;
  line-height:1.18;color:var(--ink);letter-spacing:-.01em;
}
.news-card p{
  font-size:14px;line-height:1.6;color:var(--steel);margin:0;
}
.news-detail{
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.04em;
  color:var(--steel-2);line-height:1.5;
}
.news-link{
  display:inline-flex;align-items:center;gap:8px;margin-top:6px;
  font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--signal);text-decoration:none;
  background:none;border:none;cursor:pointer;padding:0;transition:gap .3s;
}
.news-link:hover{gap:14px}
.news-link svg{width:14px;height:14px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.8}
.news-footer{text-align:center}

@media(max-width:900px){.news-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.news-grid{grid-template-columns:1fr;gap:18px}.news-sec{padding:72px 0 56px}}

/* News Modal */
.news-modal{
  position:fixed;inset:0;z-index:3000;
  display:flex;align-items:center;justify-content:center;padding:24px;
  opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s;
}
.news-modal.open{opacity:1;visibility:visible}
.news-modal-bg{position:absolute;inset:0;background:rgba(10,18,40,.7);backdrop-filter:blur(6px)}
.news-modal-card{
  position:relative;z-index:2;background:#fff;border-radius:14px;
  max-width:640px;width:100%;max-height:88vh;overflow-y:auto;
  padding:48px 44px;
  transform:translateY(24px) scale(.97);transition:transform .4s cubic-bezier(.4,0,.2,1);
  box-shadow:0 40px 100px rgba(0,0,0,.4);
}
.news-modal.open .news-modal-card{transform:translateY(0) scale(1)}
.news-modal-close{
  position:absolute;top:20px;right:20px;
  width:40px;height:40px;border-radius:50%;border:none;cursor:pointer;
  background:var(--paper);color:var(--ink);
  display:flex;align-items:center;justify-content:center;
  transition:background .3s,transform .3s;
}
.news-modal-close:hover{background:var(--signal);color:#fff;transform:rotate(90deg)}
.news-modal-close svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}
.news-modal-tag{
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--signal);font-weight:700;margin-bottom:8px;
}
.news-modal-emoji{font-size:40px;line-height:1;margin-bottom:14px}
.news-modal-date{
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.12em;
  color:var(--steel-2);text-transform:uppercase;margin-bottom:18px;
}
.news-modal-card h2{
  font-family:'Playfair Display',serif;font-size:clamp(26px,3.5vw,38px);
  font-weight:400;line-height:1.12;color:var(--ink);margin-bottom:20px;
}
.news-modal-img{width:100%;height:auto;border-radius:10px;margin-bottom:24px;display:block}
.news-modal-body{font-size:15.5px;line-height:1.75;color:var(--steel);margin-bottom:28px}
.news-modal-body p{margin-bottom:14px}
.news-modal-detail{
  font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.04em;
  color:var(--ink);line-height:1.8;background:var(--paper);
  padding:16px 18px;border-radius:8px;border-left:3px solid var(--signal);
}
.news-modal-link{
  display:inline-flex;align-items:center;gap:8px;margin-top:24px;
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--signal);text-decoration:none;transition:gap .3s;
}
.news-modal-link:hover{gap:14px}
.news-modal-link svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.8}
@media(max-width:560px){.news-modal-card{padding:36px 24px}}


/* ============ PRODUCT ZOOM + LIGHTBOX ============ */
.ps-slide-img{cursor:zoom-in}
.ps-slide-gallery img{
  cursor:zoom-in;
  transition:transform .4s ease, opacity .4s ease;
}
.ps-slide-gallery img.active:hover{transform:scale(1.04)}

/* Lightbox overlay */
.lb{
  position:fixed;inset:0;z-index:4000;
  background:rgba(5,8,20,.94);
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;
  transition:opacity .3s ease,visibility .3s ease;
  outline:none;
}
.lb.open{opacity:1;visibility:visible}

.lb-img-wrap{
  position:relative;
  max-width:min(92vw,1100px);
  max-height:90vh;
  display:flex;align-items:center;justify-content:center;
}

.lb-img{
  max-width:min(88vw,1000px);
  max-height:85vh;
  object-fit:contain;
  border-radius:8px;
  opacity:1;
  transform:scale(.97);
  transition:transform .35s cubic-bezier(.4,0,.2,1),
             opacity .22s ease;
  box-shadow:0 32px 100px rgba(0,0,0,.7);
  display:block;
}
.lb.open .lb-img{transform:scale(1)}

/* Close button */
.lb-close{
  position:fixed;top:20px;right:20px;
  width:48px;height:48px;border-radius:50%;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);
  color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .25s,transform .25s;
  z-index:1;
}
.lb-close svg{width:18px;height:18px;stroke:#fff;fill:none;flex-shrink:0}
.lb-close:hover{background:var(--signal);transform:rotate(90deg) scale(1.05)}
.lb-close:focus-visible{outline:2px solid var(--signal);outline-offset:3px}

/* Arrows */
.lb-arrow{
  position:fixed;top:50%;transform:translateY(-50%);
  width:52px;height:52px;border-radius:50%;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.15);
  color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .25s,transform .25s;
}
.lb-arrow:hover{background:var(--signal);transform:translateY(-50%) scale(1.06)}
.lb-arrow:focus-visible{outline:2px solid var(--signal);outline-offset:3px}
.lb-arrow svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round}
.lb-prev{left:20px}
.lb-next{right:20px}

/* Counter */
.lb-info{
  position:fixed;bottom:20px;left:0;right:0;text-align:center;
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:.14em;
  color:rgba(255,255,255,.45);
  pointer-events:none;
}

/* Responsive */
@media(max-width:768px){
  .lb-prev{left:10px}
  .lb-next{right:10px}
  .lb-arrow{width:42px;height:42px}
  .lb-close{top:12px;right:12px;width:42px;height:42px}
}
@media(max-width:480px){
  .lb-arrow{width:36px;height:36px}
  .lb-arrow svg{width:16px;height:16px}
}
/* ============ QUOTE CART ============ */

.cart-fab{
  position:fixed;bottom:110px;right:28px;z-index:1100;
  width:52px;height:52px;border-radius:50%;
  background:var(--signal);color:#fff;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 24px rgba(225,31,31,.35);
  transition:transform .3s,box-shadow .3s,opacity .3s;
}
.cart-fab:hover{transform:scale(1.08);box-shadow:0 8px 30px rgba(225,31,31,.45)}
.cart-fab svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.8}
.cart-badge{
  position:absolute;top:-4px;right:-4px;
  min-width:20px;height:20px;border-radius:10px;
  background:var(--ink);color:var(--paper);
  font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;
  display:flex;align-items:center;justify-content:center;padding:0 5px;
}
.cart-fab.empty{opacity:0;pointer-events:none}

.cart-panel{
  position:fixed;top:0;right:-420px;width:400px;max-width:92vw;height:100%;
  background:var(--ink);border-left:1px solid var(--ink-3);
  z-index:1200;display:flex;flex-direction:column;
  transition:right .35s ease;box-shadow:-12px 0 48px rgba(0,0,0,.3);
}
.cart-panel.open{right:0}
.cart-overlay{
  position:fixed;inset:0;background:rgba(14,34,77,.6);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  z-index:1190;opacity:0;pointer-events:none;transition:opacity .3s;
}
.cart-overlay.open{opacity:1;pointer-events:auto}

.cart-header{padding:24px 28px;border-bottom:1px solid var(--ink-3);display:flex;align-items:center;justify-content:space-between}
.cart-title{font-family:'Playfair Display',serif;font-size:24px;color:var(--paper)}
.cart-close{
  width:36px;height:36px;border-radius:50%;border:1px solid var(--ink-3);
  background:transparent;color:var(--paper);cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background .3s;
}
.cart-close:hover{background:var(--ink-2)}
.cart-close svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}

.cart-body{flex:1;overflow-y:auto;padding:16px 28px}
.cart-item{display:flex;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid var(--ink-3)}
.cart-item-info{flex:1}
.cart-item-name{font-family:'Playfair Display',serif;font-size:17px;color:var(--paper);line-height:1.15;margin-bottom:3px}
.cart-item-cat{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--steel-2)}
.cart-item-rm{
  width:30px;height:30px;border-radius:50%;border:1px solid var(--ink-3);
  background:transparent;color:var(--steel-2);cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:all .3s;flex-shrink:0;
}
.cart-item-rm:hover{background:rgba(225,31,31,.15);color:var(--signal);border-color:var(--signal)}
.cart-item-rm svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.cart-empty{text-align:center;padding:60px 20px;font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--steel-2)}
.cart-footer{padding:20px 28px;border-top:1px solid var(--ink-3)}
.cart-footer .btn{width:100%;justify-content:center}

.btn-add-cart{
  background:transparent;border:1.5px solid var(--ink);color:var(--ink);
  padding:8px 14px;font-family:'JetBrains Mono',monospace;font-size:10px;
  letter-spacing:.12em;text-transform:uppercase;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;transition:all .3s;
}
.btn-add-cart:hover{background:var(--signal);border-color:var(--signal);color:#fff}
.btn-add-cart.added{background:var(--ink-3);border-color:var(--ink-3);color:#fff;pointer-events:none}
.btn-add-cart svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}

.testi{
  position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:40px;align-items:center;
  padding:30px 0;
}
.testi-quote-mark{
  font-family:'Playfair Display',serif;font-size:200px;line-height:.6;color:var(--signal);
  font-style:italic;align-self:flex-start;margin-top:30px;
}
.testi-q{
  font-family:'Playfair Display',serif;
  font-size:clamp(24px,3vw,42px);line-height:1.18;font-style:italic;color:var(--ink);
  font-weight:400;letter-spacing:-.01em;max-width:760px;
}
.testi-meta{
  margin-top:30px;display:flex;align-items:center;gap:18px;
}
.testi-meta-line{width:36px;height:1px;background:var(--ink)}
.testi-name{font-family:'Inter',sans-serif;font-weight:600;font-size:14px;color:var(--ink)}
.testi-role{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.15em;color:var(--steel);text-transform:uppercase;margin-top:3px}

.testi-nav{display:flex;flex-direction:column;gap:8px;align-self:flex-end}
.testi-nav button{
  width:48px;height:48px;border:1px solid var(--ink);
  display:flex;align-items:center;justify-content:center;
  transition:.25s;color:var(--ink);
}
.testi-nav button:hover{background:var(--ink);color:var(--paper)}
.testi-nav button svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.5}
.testi-count{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.15em;color:var(--steel);text-align:center;margin-top:6px}
@media (max-width:900px){
  .testi{grid-template-columns:auto 1fr;gap:20px}
  .testi-quote-mark{font-size:120px;margin-top:0}
  .testi-nav{grid-column:1/-1;flex-direction:row;justify-content:flex-end;margin-top:20px;align-self:auto}
}

/* ============ FAQ PREMIUM TIMELINE ============ */
.faq-sec{
  background:#F5F1E8;
  padding:120px 0;
}
.faq-layout{
  display:grid;
  grid-template-columns:380px 1fr;
  gap:80px;
  align-items:start;
  max-width:1280px;
  margin:0 auto;
}
.faq-sticky{
  position:sticky;top:120px;
}
.faq-sticky .sh-idx{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:.32em;
  color:#D94B3D;text-transform:uppercase;
  margin-bottom:24px;display:block;
}
.faq-headline{
  font-family:'Playfair Display',serif;
  font-size:clamp(32px,3.5vw,48px);
  font-weight:500;line-height:1.1;
  color:#0D2240;letter-spacing:-.02em;
  margin:0 0 18px 0;
}
.faq-headline em{font-style:italic;color:#D94B3D}
.faq-intro{
  font-family:'Inter',sans-serif;
  font-size:15px;line-height:1.7;
  color:#5F6775;margin:0 0 32px 0;
}
.faq-timeline{
  position:relative;
  padding-left:48px;
}
.faq-timeline::before{
  content:'';
  position:absolute;left:15px;top:0;bottom:0;
  width:1px;
  background:linear-gradient(180deg,#D94B3D 0%,rgba(13,34,64,.15) 30%,rgba(13,34,64,.15) 100%);
}
.faq-tl-item{
  position:relative;
  margin-bottom:20px;
}
.faq-tl-dot{
  position:absolute;left:-48px;top:28px;
  width:32px;height:32px;border-radius:50%;
  background:#F5F1E8;
  border:2px solid rgba(13,34,64,.15);
  display:flex;align-items:center;justify-content:center;
  transition:all .4s cubic-bezier(.4,0,.2,1);
  z-index:2;
}
.faq-tl-item.open .faq-tl-dot{
  background:#D94B3D;
  border-color:#D94B3D;
  transform:scale(1.15);
  box-shadow:0 0 0 6px rgba(217,75,61,.15);
}
.faq-tl-num{
  font-family:'JetBrains Mono',monospace;
  font-size:10px;font-weight:700;letter-spacing:.05em;
  color:rgba(13,34,64,.45);
  transition:color .4s;
}
.faq-tl-item.open .faq-tl-num{color:#fff}
.faq-tl-card{
  background:#FFFFFF;
  border:1px solid rgba(13,34,64,.08);
  border-radius:16px;
  overflow:hidden;
  transition:transform .4s cubic-bezier(.4,0,.2,1),
             box-shadow .4s,border-color .4s;
}
.faq-tl-item.open .faq-tl-card{
  border-color:rgba(217,75,61,.2);
  box-shadow:0 16px 48px rgba(13,34,64,.1);
  transform:translateY(-2px);
}
.faq-tl-q{
  width:100%;padding:28px 32px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  background:none;border:none;cursor:pointer;
  text-align:left;
  transition:background .3s;
}
.faq-tl-q:hover{background:rgba(245,241,232,.5)}
.faq-tl-qtxt{
  font-family:'Playfair Display',serif;
  font-size:19px;font-weight:500;line-height:1.25;
  color:#0D2240;letter-spacing:-.01em;
  flex:1;
  transition:color .3s;
}
.faq-tl-item.open .faq-tl-qtxt{color:#D94B3D}
.faq-tl-icon{
  width:36px;height:36px;flex-shrink:0;
  border-radius:50%;
  background:rgba(13,34,64,.04);
  border:1px solid rgba(13,34,64,.1);
  position:relative;
  transition:all .4s cubic-bezier(.4,0,.2,1);
}
.faq-tl-icon span{
  position:absolute;
  background:#0D2240;
  border-radius:2px;
  transition:all .4s cubic-bezier(.4,0,.2,1);
}
.faq-tl-icon span:first-child{
  width:14px;height:1.5px;
  left:50%;top:50%;transform:translate(-50%,-50%);
}
.faq-tl-icon span:last-child{
  width:1.5px;height:14px;
  left:50%;top:50%;transform:translate(-50%,-50%);
}
.faq-tl-item.open .faq-tl-icon{
  background:#D94B3D;
  border-color:#D94B3D;
  transform:rotate(45deg);
}
.faq-tl-item.open .faq-tl-icon span{background:#fff}
.faq-tl-a{
  max-height:0;overflow:hidden;
  transition:max-height .5s cubic-bezier(.4,0,.2,1);
}
.faq-tl-item.open .faq-tl-a{
  max-height:400px;
}
.faq-tl-a-inner{
  padding:0 32px 32px;
  border-top:1px solid rgba(13,34,64,.06);
}
.faq-tl-a-inner p{
  font-family:'Inter',sans-serif;
  font-size:15px;line-height:1.75;
  color:#5F6775;margin:20px 0 0 0;
}
@media(max-width:960px){
  .faq-layout{grid-template-columns:1fr;gap:48px}
  .faq-sticky{position:static}
  .faq-sec{padding:88px 0}
}
@media(max-width:640px){
  .faq-timeline{padding-left:36px}
  .faq-timeline::before{left:11px}
  .faq-tl-dot{left:-36px;width:24px;height:24px}
  .faq-tl-num{font-size:8px}
  .faq-tl-q{padding:22px 20px}
  .faq-tl-qtxt{font-size:17px}
  .faq-tl-icon{width:30px;height:30px}
  .faq-tl-icon span:first-child{width:11px}
  .faq-tl-icon span:last-child{height:11px}
  .faq-tl-a-inner{padding:0 20px 24px}
  .faq-sec{padding:64px 0}
}

/* ============ CONTACT ============ */
.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:80px}
.cnt-info h3{
  font-family:'Playfair Display',serif;font-size:36px;color:var(--ink);margin-bottom:8px;line-height:1.05;
}
.cnt-info h3 em{font-style:italic}
.cnt-info .lead{color:var(--ink-3);font-size:15px;line-height:1.6;margin-bottom:36px;max-width:380px}

.cnt-blocks{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line)}
.cnt-block{padding:24px 0;border-bottom:1px solid var(--line)}
.cnt-block-lbl{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.2em;color:var(--signal);text-transform:uppercase;margin-bottom:10px}
.cnt-block strong{font-family:'Playfair Display',serif;font-size:20px;color:var(--ink);font-weight:400;display:block;margin-bottom:6px}
.cnt-block .row{display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--ink-3);line-height:1.55}
.cnt-block a:hover{color:var(--signal)}

.cnt-form-wrap{background:var(--white);border:1px solid var(--line);padding:48px 44px}
.cnt-form-wrap h4{font-family:'Playfair Display',serif;font-size:24px;color:var(--ink);margin-bottom:6px;line-height:1.1}
.cnt-form-wrap .ftxt{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.15em;color:var(--steel);text-transform:uppercase;margin-bottom:28px}
.cnt-form-wrap .field input,.cnt-form-wrap .field select,.cnt-form-wrap .field textarea{
  color:var(--ink);border-bottom-color:var(--line);
}
.cnt-form-wrap .field input::placeholder,.cnt-form-wrap .field textarea::placeholder{color:var(--steel-2)}
.cnt-form-wrap .field input:focus,.cnt-form-wrap .field select:focus,.cnt-form-wrap .field textarea:focus{border-bottom-color:var(--signal)}
.cnt-form-wrap .field label{color:var(--steel)}
.cnt-form-wrap textarea{resize:vertical;min-height:90px}
.cnt-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.cnt-form-wrap .btn{margin-top:14px}
.hp{position:absolute;left:-9999px}

@media (max-width:900px){
  .contact-grid{grid-template-columns:1fr;gap:50px}
  .cnt-form-wrap{padding:32px 24px}
  .cnt-row{grid-template-columns:1fr;gap:0}
}

/* ============ FOOTER ============ */
footer{
  background:var(--ink);color:var(--paper);
  padding:90px 0 36px;position:relative;
}
.foot-top{
  display:grid;grid-template-columns:1.6fr 1fr 1fr;
  gap:56px;padding-bottom:52px;
  border-bottom:1px solid var(--ink-3);
}
.foot-brand{max-width:340px}
.foot-logo{display:flex;align-items:center;gap:12px;margin-bottom:22px}
.foot-logo .logo-txt small{
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--steel-2);
}
.foot-about{
  font-size:14px;line-height:1.75;color:var(--paper-2);opacity:.75;margin-bottom:26px;
}
.foot-soc{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.foot-soc a{
  display:flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:8px;
  border:1px solid var(--ink-3);color:var(--paper-2);
  transition:all .3s;flex-shrink:0;
}
.foot-soc a:hover{background:var(--signal);border-color:var(--signal);color:#fff}
.foot-soc a svg{width:18px;height:18px;fill:currentColor}
.foot-soc a svg[stroke]{fill:none;stroke:currentColor;stroke-width:1.8}
.foot-col h4{
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--signal);margin-bottom:22px;
}
.foot-col ul{list-style:none;padding:0;margin:0}
.foot-col li{margin-bottom:14px;line-height:1.3}
.foot-col li.add{
  font-family:'Inter',sans-serif;color:var(--paper-2);opacity:.6;
  font-size:14px;font-weight:400;
}
.foot-col a{
  font-family:'Playfair Display',serif;font-size:19px;font-weight:400;
  color:var(--paper);text-decoration:none;transition:color .3s;letter-spacing:.005em;
}
.foot-col a:hover{color:var(--signal)}
.foot-bottom{
  display:flex;align-items:center;justify-content:space-between;
  padding-top:28px;gap:16px;
}
.foot-bottom .mono{
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.05em;
  color:var(--steel-2);
}
.foot-legal{display:flex;gap:22px}
.foot-legal a{
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.05em;
  color:var(--steel-2);text-decoration:none;transition:color .3s;
}
.foot-legal a:hover{color:var(--paper)}

/* ============ FOOTER MOBILE FIX ============ */
@media(max-width:768px){
  footer{padding:48px 0 24px}
  .foot-top{
    display:grid;grid-template-columns:1fr 1fr;
    gap:32px 20px;padding-bottom:32px;
  }
  .foot-top>*:first-child{grid-column:1/-1}
  .foot-col h4{font-size:10px;margin-bottom:14px}
  .foot-col li{margin-bottom:12px}
  .foot-col a{font-size:18px}
  .foot-col li.add{font-size:13px}
  .foot-soc{margin-top:12px;gap:8px}
  .foot-soc a{width:32px;height:32px}
  .foot-soc svg{width:16px !important;height:16px !important}
  .foot-bottom{
    flex-direction:column;gap:8px;text-align:center;
    font-size:11px;padding-top:20px;
  }
  .foot-legal{flex-wrap:wrap;justify-content:center;gap:12px}
}
@media(max-width:480px){
  .foot-top{grid-template-columns:1fr}
  .foot-top>*:first-child{grid-column:1}
}
/* ============ COOKIE ============ */

/* ============ MOBILE UX AUDIT FIXES ============ */
/* Fix 1: floating buttons never cover footer content */
@media(max-width:768px){
  footer{padding-bottom:100px}
}
/* Fix 2: compact cookie banner */
@media(max-width:600px){
  .cookie{left:12px;right:12px;bottom:12px;max-width:none;padding:16px 18px;font-size:13px}
  .cookie-acts{display:flex;gap:8px}
  .cookie-acts .btn{flex:1;justify-content:center;padding:11px}
}
/* Fix 4: heading line-length & leading on mobile */
@media(max-width:560px){
  .sh-title h2{font-size:clamp(28px,8vw,40px);line-height:1.08}
}
/* Fix 5: 44px minimum touch targets */
@media(max-width:1024px){
  .menu a{min-height:48px;display:flex;align-items:center}
  .topbar [data-lang]{min-width:40px;min-height:36px}
}
@media(max-width:768px){
  .foot-col a{min-height:40px;display:flex;align-items:center}
  .foot-legal a{min-height:36px;display:inline-flex;align-items:center}
}

.cookie{
  position:fixed;left:22px;bottom:22px;right:22px;max-width:460px;z-index:1700;
  background:var(--white);border:1px solid var(--ink);padding:22px 24px;
  transform:translateY(160%);transition:transform .55s cubic-bezier(.2,.7,.3,1);
}
.cookie.show{transform:none}
.cookie p{font-size:13px;color:var(--ink-3);margin-bottom:14px;line-height:1.55}
.cookie p b{color:var(--ink)}
.cookie-acts{display:flex;gap:8px}

/* ============ TEAM ============ */
.team-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-top:1px solid var(--line);border-left:1px solid var(--line);
}
.team-card{
  padding:32px 28px;
  border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  background:var(--paper);transition:background .3s;
  display:flex;flex-direction:column;gap:18px;position:relative;
}
.team-card:hover{background:var(--paper-2)}
.team-photo{
  width:96px;height:96px;border-radius:50%;
  overflow:hidden;background:var(--paper-2);
  border:1px solid var(--line);
  flex-shrink:0;
}
.team-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(.4)}
.team-name{
  font-family:'Playfair Display',serif;font-size:24px;line-height:1.05;
  color:var(--ink);margin-bottom:6px;letter-spacing:-.01em;
}
.team-name .badge{
  display:inline-block;background:var(--signal);color:var(--paper);
  font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.18em;
  padding:3px 7px;margin-left:8px;vertical-align:middle;
}
.team-role{
  font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.18em;
  color:var(--signal);text-transform:uppercase;margin-bottom:14px;
}
.team-bio{font-size:14px;line-height:1.55;color:var(--ink-3);margin-bottom:auto;padding-bottom:14px}
.team-contact{
  border-top:1px solid var(--line);padding-top:14px;
  display:flex;flex-direction:column;gap:6px;font-size:13px;
}
.team-contact a{color:var(--ink-3);transition:color .2s;display:inline-flex;align-items:center;gap:8px}
.team-contact a:hover{color:var(--signal)}
.team-contact svg{width:13px;height:13px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.6}
@media (max-width:960px){.team-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.team-grid{grid-template-columns:1fr}}

/* ============ CLIENTS STRIP ============ */
.clients-strip{padding:0;background:#ffffff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden}
.cs-head{margin-bottom:0;padding:20px 0;background:var(--paper-2)}
.cs-head .mono{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--signal)}
.logo-section{
  width:100%;overflow:hidden;
  background:#ffffff;padding:60px 0;
}
@media(hover:hover){
  .logo-section:hover .logo-slider{animation-play-state:paused}
}
.logo-slider{
  display:flex;width:fit-content;
  animation:logoScroll 25s linear infinite;
}
.logo-slider img{
  filter:grayscale(100%);
  transition:.3s;
}
.logo-slider img:hover{
  filter:grayscale(0%);
  transform:scale(1.05);
}
.logo-cell{
  display:flex;align-items:center;justify-content:center;
  margin:0 24px;
  width:180px;height:100px;
  border:1px solid #e5e5e5;
  border-radius:8px;
  background:#ffffff;
  flex-shrink:0;
  transition:.3s;
  position:relative;
  overflow:hidden;
  box-sizing:border-box;
}
.logo-cell:hover{
  border-color:#d0d0d0;
  box-shadow:0 4px 16px rgba(0,0,0,.06);
}
.logo-cell img{
  margin:0;border:none;
  max-width:75%;max-height:60%;
  width:auto;height:auto;
  object-fit:contain;
  display:block;
}
.logo-fallback{
  display:none;
  font-family:'Playfair Display',serif;
  font-size:16px;font-weight:500;
  color:var(--ink);text-align:center;
  padding:0 12px;letter-spacing:-.01em;
  width:100%;
}
@keyframes logoScroll{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
.cs-grid-unused{
  display:flex;flex-wrap:wrap;gap:0;
  border-top:1px solid var(--line);border-left:1px solid var(--line);
}
.cs-cell{
  flex:1 1 calc(100%/3);min-width:200px;
  padding:22px 24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  font-family:'Playfair Display',serif;font-size:26px;line-height:1;color:var(--ink);
  letter-spacing:-.01em;background:var(--paper);transition:background .25s,color .25s;
  display:flex;align-items:center;justify-content:center;text-align:center;min-height:90px;
}
.cs-cell:hover{background:var(--ink);color:var(--paper)}
@media (max-width:900px){.cs-cell{flex:1 1 calc(100%/2);font-size:22px;min-height:80px}}
@media (max-width:560px){.cs-cell{flex:1 1 100%;font-size:20px;min-height:70px}}

/* ============ LOGO BANNER ============ */
.lb-band{
  margin-bottom:50px;
  border:1px solid var(--ink-3);
  background:var(--ink-2);
}
.lb-head{
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  padding:18px 22px;border-bottom:1px solid var(--ink-3);
}
.lb-head .mono{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--signal)}
.lb-head .meta{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--steel-2)}
.lb-grid{
  display:grid;grid-template-columns:repeat(8,1fr);gap:0;
}
.lb-cell{
  aspect-ratio:1.4/1;
  border-right:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
  background:var(--paper);
  display:flex;align-items:center;justify-content:center;
  padding:14px 16px;position:relative;
  transition:background .25s,transform .25s,box-shadow .25s;
}
.lb-cell:nth-child(8n){border-right:none}
.lb-cell:hover{background:var(--white);z-index:3;box-shadow:0 8px 24px rgba(0,0,0,.45)}
.lb-cell img{max-width:100%;max-height:64%;object-fit:contain;filter:grayscale(.4);transition:filter .25s}
.lb-cell:hover img{filter:none}
.lb-cell .lbtext{
  font-family:'Playfair Display',serif;
  font-size:18px;font-style:italic;color:var(--ink);
  text-align:center;line-height:1.05;letter-spacing:-.01em;
  display:none;
}
.lb-cell.no-img .lbtext{display:block}
.lb-cell.no-img img{display:none}
@media (max-width:1024px){
  .lb-grid{grid-template-columns:repeat(4,1fr)}
  .lb-cell{border-right:1px solid var(--line-soft) !important}
  .lb-cell:nth-child(4n){border-right:none !important}
}
@media (max-width:640px){
  .lb-grid{grid-template-columns:repeat(3,1fr)}
  .lb-cell:nth-child(4n){border-right:1px solid var(--line-soft) !important}
  .lb-cell:nth-child(3n){border-right:none !important}
}
@media (max-width:420px){
  .lb-grid{grid-template-columns:repeat(2,1fr)}
  .lb-cell:nth-child(3n){border-right:1px solid var(--line-soft) !important}
  .lb-cell:nth-child(2n){border-right:none !important}
}

.partner-mq{
  overflow:hidden;position:relative;width:100%;
  background:#ffffff;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:32px 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.partner-mq:hover .partner-mq-track{animation-play-state:paused}
.partner-mq-track{
  display:flex;
  animation:mq 28s linear infinite;
  white-space:nowrap;gap:0;
}
.partner-mq-item{
  flex:0 0 auto;
  padding:0 36px;
  text-decoration:none;
  cursor:default;
  display:flex;align-items:center;
  position:relative;
}
a.partner-mq-item{cursor:pointer}
.partner-mq-item img{
  height:50px;width:auto;max-width:160px;
  object-fit:contain;
  filter:grayscale(100%);
  opacity:0;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  transition:opacity .4s,filter .4s;
  pointer-events:none;
}
.partner-mq-item img.loaded{opacity:.65;pointer-events:auto}
.partner-mq-item:hover img.loaded{filter:none;opacity:1}
.partner-mq-item img.loaded ~ .pmq-txt{opacity:0}
.partner-mq-item .pmq-txt{
  font-family:'Playfair Display',serif;
  font-size:clamp(20px,2.4vw,30px);
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--ink);
  opacity:.5;
  transition:opacity .3s,color .3s;
}
.partner-mq-item:hover .pmq-txt{opacity:1;color:var(--signal)}

.lux-empty{
  padding:80px 24px;text-align:center;
  font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--steel-2);
}

@media (max-width:900px){
  .lux{padding:90px 0 80px}
  .partner-mq-item{padding:0 24px}
  .lux-eyebrow{letter-spacing:.24em}
}
@media (max-width:560px){
  .partner-mq-item{padding:0 18px;font-size:18px}
}

/* ============ RESPONSIVE NAV ============ */
@media (max-width:1200px) and (min-width:1025px){
  .menu>li:nth-child(n+5){display:none}
}
@media (max-width:1024px){
  .menu>li:nth-child(n+4){display:inline-block}
  .nav-cta .btn:not(.burger){display:none}
  .burger{display:flex}
  .menu{
    position:fixed !important;
    top:0 !important;left:0 !important;right:0 !important;bottom:0 !important;
    width:100vw !important;max-width:100vw !important;
    height:100vh;height:100dvh;
    background:var(--ink);color:var(--paper);
    flex-direction:column !important;align-items:flex-start;gap:0;
    padding:80px 28px 40px;box-sizing:border-box;
    transform:translateX(100%);transition:transform .4s cubic-bezier(.5,0,.2,1);
    z-index:1100;overflow-y:auto;overflow-x:hidden;
    display:flex !important;
  }
  .menu.open{transform:none !important}
  .menu li{width:100%;overflow:hidden}
  /* Nav links */
  .menu a{
    font-family:'Playfair Display',serif;
    font-size:clamp(24px,6vw,34px);
    font-weight:400;color:var(--paper);
    padding:14px 0;border-bottom:1px solid rgba(255,255,255,.08);
    width:100%;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .menu a::before{display:none}
  .menu a:hover,.menu a.active{color:var(--signal)}
  /* Kill ALL svgs inside menu — constrain size */
  .menu svg{
    width:20px !important;height:20px !important;
    min-width:0 !important;min-height:0 !important;
    max-width:20px !important;max-height:20px !important;
    display:inline-block;flex-shrink:0;
  }
  /* Mobile social icons in menu (if any) */
  .menu .foot-soc a{width:36px;height:36px}
  .menu .foot-soc svg{width:18px !important;height:18px !important}
  .topbar .tb-left .mono:not(:first-child){display:none}
  header.scrolled,header{z-index:1200}
  .burger{position:relative;z-index:1300}
  body.locked .fab,body.locked .toTop,body.locked .cookie{opacity:0 !important;pointer-events:none !important;transition:opacity .25s}
}

.menu-bg{
  position:fixed;inset:0;background:rgba(14,34,77,.78);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  z-index:1050;opacity:0;pointer-events:none;
  transition:opacity .35s ease;
}
.menu-bg.show{opacity:1;pointer-events:auto}

/* ============ GENERAL TYPOGRAPHIC FLOURISHES ============ */
.acc-line{height:1px;background:var(--line);margin:0}
.diag-rule{
  background-image:repeating-linear-gradient(45deg,var(--ink),var(--ink) 1px,transparent 1px,transparent 6px);
  height:6px;
}

/* ============ PREMIUM REDESIGN LAYER v3 ============ */

body{font-family:'Inter',sans-serif;font-weight:400;letter-spacing:-.005em;line-height:1.6}
h1,h2,h3,h4{font-family:'Playfair Display',serif;font-weight:500;letter-spacing:-.015em;line-height:1.12}
h1{letter-spacing:-.025em;line-height:1.05}

/* HERO — NAVY */
.hero{background:var(--ink) !important;color:#fff !important}
.hero h1{color:#fff !important;letter-spacing:-.025em}
.hero h1 em{color:#fff !important;font-style:italic;font-weight:400}
.hero-tagline .tl-txt{color:rgba(255,255,255,.85) !important}
.hero-tagline .bar{background:var(--signal) !important}
.hero .tl-year .sig{color:var(--signal) !important}
.hero-lead{color:rgba(255,255,255,.75) !important;font-size:17px;line-height:1.7}
.hero-accent{color:var(--signal) !important;background:rgba(228,61,48,.12);padding:2px 8px;border-radius:4px}



/* Hero CTAs — fix text clipping */
.hero-ctas .btn{
  white-space:nowrap !important;
  overflow:visible !important;
  flex:0 0 auto !important;
  min-width:auto !important;
}
.hero .btn:not(.btn-signal):not(.hero-li){
  border:1px solid rgba(255,255,255,.3) !important;
  color:#fff !important;
  background:transparent !important;
}
.hero .btn:not(.btn-signal):not(.hero-li):hover{
  background:#fff !important;
  color:var(--ink) !important;
  border-color:#fff !important;
}
/* LinkedIn button — fix the X stroke artifact */
.hero-li{
  background:rgba(255,255,255,.05) !important;
  border:1px solid rgba(255,255,255,.25) !important;
  color:#fff !important;
}
.hero-li:hover{background:#0A66C2 !important;border-color:#0A66C2 !important;color:#fff !important}

/* Mobile CTAs stack with full width */
@media (max-width:768px){
  .hero-ctas{flex-direction:column;width:100%;align-items:stretch}
  .hero-ctas .btn{
    width:100% !important;
    justify-content:center !important;
    padding:14px 16px !important;
    font-size:14px !important;
  }
}


/* SOLUTIONS — BEIGE */
section[id="solutions"]{background:var(--paper) !important}

/* SERVICES — WHITE */
section[id="services"]{background:#FFFFFF !important}

/* PRODUITS — BEIGE */
section[id="produits"]{background:var(--paper) !important}
.ps{background:var(--paper) !important}

/* CLIENTS & RÉFÉRENCES — NAVY */
.clients-strip{background:var(--ink) !important;padding:80px 0 60px !important;border:none !important}
.cs-head{background:var(--ink) !important;text-align:center !important;padding:0 0 48px !important;margin:0 !important}
.cs-head .mono{
  font-family:'JetBrains Mono',monospace !important;
  font-size:11px !important;letter-spacing:.32em !important;
  color:var(--signal) !important;text-transform:uppercase !important;font-weight:500 !important;
}
.cs-head::after{
  content:'Plus de 60 ans de confiance industrielle.';
  display:block;font-family:'Playfair Display',serif;
  font-size:clamp(28px,3.5vw,44px);font-weight:500;color:#fff;
  margin-top:18px;letter-spacing:-.015em;line-height:1.15;
}
.logo-section{background:var(--ink) !important;padding:48px 0 !important}
.logo-cell{
  background:rgba(255,255,255,.03) !important;
  border:1px solid rgba(255,255,255,.08) !important;
}
.logo-slider img{
  filter:brightness(0) invert(1) opacity(.65) !important;
}
.logo-fallback{
  color:rgba(255,255,255,.65) !important;
}
.logo-cell:hover .logo-fallback{color:#fff !important}
.logo-cell:hover{
  border-color:var(--signal) !important;
  background:rgba(228,61,48,.08) !important;
}
.logo-slider img:hover{
  filter:brightness(0) invert(1) opacity(1) !important;
}

/* WHY TEKNIS — WHITE */
/* section[id="why"] — removed (section no longer exists) */

/* Buttons */
.btn{font-family:'Inter',sans-serif;font-weight:500;letter-spacing:.01em;padding:14px 28px}
.btn-signal{background:var(--signal);border:1px solid var(--signal);color:#fff}
.btn-signal:hover{background:#C72E22;border-color:#C72E22;box-shadow:0 8px 24px rgba(228,61,48,.28);transform:translateY(-1px)}

/* Cards */
.news-card:hover,.ind:hover{box-shadow:0 12px 36px rgba(15,35,77,.08)}

/* Footer */
.foot-col a{font-family:'Playfair Display',serif !important;font-size:18px !important;font-weight:400 !important;letter-spacing:-.01em !important}
.foot-col h4{color:var(--signal) !important;font-weight:600 !important}

/* Section heads */
.sec-head{margin-bottom:56px}
.sh-title h2{font-size:clamp(36px,5vw,64px);line-height:1.08}
.sh-idx{color:var(--signal) !important;font-family:'JetBrains Mono',monospace !important;letter-spacing:.22em !important;font-size:11px !important;font-weight:500 !important;margin-bottom:18px !important}

@media(max-width:640px){
  .sh-title h2{font-size:clamp(28px,8vw,36px);line-height:1.12}
  .sec-head{margin-bottom:36px}
}

/* ============ SOLUTIONS PREMIUM REDESIGN ============ */
.sol-section{
  background:#F5F1E8 !important;
  padding:120px 0 !important;
}
.sol-wrap{max-width:1400px;margin:0 auto;padding:0 32px}

.sol-header{
  display:grid;grid-template-columns:1.4fr 1fr;
  gap:80px;align-items:end;
  margin-bottom:80px;
}
.sol-header-left .sh-idx{
  font-family:'JetBrains Mono',monospace !important;
  font-size:11px !important;letter-spacing:.32em !important;
  color:#E43D30 !important;text-transform:uppercase;
  margin-bottom:24px !important;display:block;
}
.sol-headline{
  font-family:'Playfair Display',serif !important;
  font-size:clamp(34px,4.5vw,56px) !important;
  font-weight:500 !important;line-height:1.1 !important;
  color:#0F234D !important;letter-spacing:-.02em;
  margin:0 !important;
}
.sol-headline em{font-style:italic;font-weight:400;color:#E43D30}

.sol-header-right{padding-bottom:12px}
.sol-intro{
  font-family:'Inter',sans-serif !important;
  font-size:16px !important;line-height:1.7 !important;
  color:#5F6775 !important;margin:0 !important;
  text-align:left !important;
}

/* Grid override */
.sol-section .sol-grid{
  display:grid !important;
  grid-template-columns:repeat(2,1fr) !important;
  gap:30px !important;
  border:none !important;
}
.sol-section .sol-grid > .sol{grid-column:auto !important}

/* Card override */
.sol-section .sol{
  display:grid !important;
  grid-template-columns:auto 1px 80px 1fr !important;
  gap:32px !important;align-items:center !important;
  background:#FFFFFF !important;
  border:1px solid rgba(15,35,77,.08) !important;
  border-radius:20px !important;padding:40px !important;
  text-decoration:none;color:inherit;
  box-shadow:0 10px 30px rgba(15,35,77,.06) !important;
  transition:transform .4s cubic-bezier(.4,0,.2,1),
             box-shadow .4s cubic-bezier(.4,0,.2,1),
             border-color .35s !important;
  min-height:200px !important;
  cursor:pointer;
}
.sol-section .sol:hover{
  transform:translateY(-8px) !important;
  box-shadow:0 24px 56px rgba(15,35,77,.12) !important;
  border-color:rgba(15,35,77,.14) !important;
}
.sol-section .sol::before,
.sol-section .sol::after{display:none !important;content:none !important}

/* Big red number */
.sol-big-num{
  font-family:'Playfair Display',serif;
  font-size:64px;font-weight:400;line-height:1;
  color:#E43D30;letter-spacing:-.02em;
}

/* Vertical divider */
.sol-divider{
  width:1px;height:64px;
  background:rgba(15,35,77,.12);
}

/* Icon circle */
.sol-icon-circle{
  width:80px;height:80px;
  background:#F5F1E8;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
  transition:background .35s,transform .35s;
}
.sol-section .sol:hover .sol-icon-circle{background:#FDE6E3;transform:scale(1.05)}
.sol-icon-circle svg{
  width:32px;height:32px;
  stroke:#0F234D;fill:none;stroke-width:1.5;
  transition:stroke .35s;
}
.sol-section .sol:hover .sol-icon-circle svg{stroke:#E43D30}

/* Content column */
.sol-content{display:flex;flex-direction:column;gap:4px;min-width:0}
.sol-section .sol-content h3{
  font-family:'Playfair Display',serif !important;
  font-size:22px !important;font-weight:500 !important;line-height:1.2 !important;
  color:#0F234D !important;letter-spacing:-.01em;
  margin:0 0 4px 0 !important;
}
.sol-section .sol-content p{
  font-family:'Inter',sans-serif !important;
  font-size:14px !important;line-height:1.65 !important;
  color:#5F6775 !important;margin:0 0 12px 0 !important;
}
.sol-cta{
  font-family:'JetBrains Mono',monospace;
  font-size:10.5px;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;
  color:#0F234D;
  display:inline-flex;align-items:center;gap:8px;
  transition:color .3s,gap .3s;
}
.sol-section .sol:hover .sol-cta{color:#E43D30;gap:14px}
.sol-cta svg{width:14px;height:14px;flex-shrink:0;transition:transform .3s,stroke .3s}
.sol-section .sol:hover .sol-cta svg{transform:translateX(4px);stroke:#E43D30}

/* Responsive */
@media(max-width:1100px){
  .sol-section .sol{padding:32px !important;gap:24px !important;grid-template-columns:auto 1px 64px 1fr !important}
  .sol-big-num{font-size:52px}
  .sol-icon-circle{width:64px;height:64px}
  .sol-icon-circle svg{width:26px;height:26px}
}
@media(max-width:960px){
  .sol-section .sol-grid{grid-template-columns:1fr !important;gap:20px !important}
  .sol-header{grid-template-columns:1fr !important;gap:24px !important;margin-bottom:56px !important}
  .sol-header-right{padding-bottom:0}
  .sol-section{padding:80px 0 !important}
}
@media(max-width:560px){
  .sol-section .sol{
    grid-template-columns:auto 1px 1fr !important;
    grid-template-rows:auto auto !important;
    gap:20px !important;padding:28px !important;min-height:0 !important;
    border-radius:16px !important;
  }
  .sol-icon-circle{grid-column:1/-1;grid-row:1;margin-bottom:8px;width:56px;height:56px}
  .sol-icon-circle svg{width:24px;height:24px}
  .sol-big-num{font-size:44px;grid-column:1;grid-row:2}
  .sol-divider{grid-column:2;grid-row:2;height:50px}
  .sol-content{grid-column:3;grid-row:2}
  .sol-section .sol-content h3{font-size:19px !important}
  .sol-wrap{padding:0 20px}
}
/* ============ CLIENTS & RÉFÉRENCES — PREMIUM REBUILD ============ */
#cr-section{
  background:#0F234D !important;
  padding:100px 0 !important;
  overflow:hidden;
  border:none !important;
}
.cr-head{
  text-align:center;
  margin-bottom:64px;
  padding:0 24px;
}
.cr-eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:.32em;
  color:#E43D30;text-transform:uppercase;
  margin-bottom:20px;
}
.cr-title{
  font-family:'Playfair Display',serif;
  font-weight:600;
  font-size:clamp(28px,4vw,46px);
  color:#FFFFFF;
  letter-spacing:.02em;
  margin:0 0 14px 0;
  line-height:1.15;
}
.cr-subtitle{
  font-family:'Inter',sans-serif;
  font-size:16px;
  color:rgba(255,255,255,.6);
  margin:0;
}

.cr-carousel-wrap{
  width:100%;
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.cr-track{
  display:flex;
  width:fit-content;
  animation:crScroll 38s linear infinite;
}
@media(hover:hover){
  .cr-carousel-wrap:hover .cr-track{animation-play-state:paused}
}
@keyframes crScroll{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}

.cr-logo{
  flex-shrink:0;
  width:220px;height:140px;
  margin:0 18px;
  background:#FFFFFF;
  border-radius:20px;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 32px rgba(0,0,0,.18);
  transition:transform .4s cubic-bezier(.4,0,.2,1),box-shadow .4s;
  box-sizing:border-box;
  padding:24px;
}
.cr-logo:hover{
  transform:scale(1.05);
  box-shadow:0 18px 44px rgba(0,0,0,.24);
}
.cr-logo img{
  max-width:100%;max-height:100%;
  width:auto;height:auto;
  object-fit:contain;
  filter:none;
  transition:transform .3s;
}
.cr-fallback{
  display:none;
  align-items:center;justify-content:center;
  width:100%;height:100%;
  font-family:'Playfair Display',serif;
  font-size:17px;font-weight:500;
  color:#0F234D;text-align:center;
  letter-spacing:-.01em;
}

/* Responsive logo count visible */
@media(min-width:1025px){ .cr-logo{width:220px} }
@media(max-width:1024px) and (min-width:769px){
  .cr-logo{width:200px;height:130px;margin:0 16px}
}
@media(max-width:768px) and (min-width:561px){
  .cr-logo{width:180px;height:120px;margin:0 14px}
  .cr-head{margin-bottom:48px}
  #cr-section{padding:72px 0 !important}
}
@media(max-width:560px){
  .cr-logo{width:150px;height:110px;margin:0 10px;border-radius:16px;padding:18px}
  .cr-head{margin-bottom:40px}
  #cr-section{padding:64px 0 !important}
  .cr-fallback{font-size:14px}
}
/* ============ FOOTER — PREMIUM REBUILD ============ */
#site-footer{
  background:#0F234D !important;
  color:#fff;
  padding:96px 0 0 !important;
  overflow:hidden;
}
.foot-wrap{max-width:1280px;margin:0 auto;padding:0 32px}

/* TOP HERO */
.foot-hero{
  display:flex;justify-content:space-between;align-items:flex-start;
  gap:40px;
  padding-bottom:56px;
  border-bottom:1px solid rgba(255,255,255,.1);
  margin-bottom:56px;
}
.foot-hero-left{max-width:480px}
.foot-logo-row{margin-bottom:20px}
.foot-logo-row img{
  height:90px;width:auto;object-fit:contain;
  filter:drop-shadow(0 0 16px rgba(228,61,48,.25)) drop-shadow(0 4px 12px rgba(0,0,0,.3));
  image-rendering:-webkit-optimize-contrast;
}
.foot-about{
  font-family:'Inter',sans-serif;
  font-size:14.5px;line-height:1.75;
  color:#F5F1E8;
  margin:0;
}
.foot-since-badge{
  flex-shrink:0;
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:.2em;
  text-transform:uppercase;
  color:#E43D30;
  border:1px solid rgba(228,61,48,.35);
  background:rgba(228,61,48,.08);
  padding:10px 20px;
  border-radius:30px;
  white-space:nowrap;
}

/* CONTACT CARDS */
.foot-contact-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:20px;margin-bottom:56px;
}
.foot-contact-card{
  display:flex;align-items:center;gap:16px;
  padding:22px 24px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
  text-decoration:none;color:inherit;
  transition:border-color .3s,background .3s,transform .3s;
}
a.foot-contact-card:hover{
  border-color:#E43D30;
  background:rgba(228,61,48,.07);
  transform:translateY(-3px);
}
.fcc-icon{
  width:42px;height:42px;flex-shrink:0;
  border-radius:50%;
  background:rgba(228,61,48,.12);
  display:flex;align-items:center;justify-content:center;
}
.fcc-icon svg{width:19px;height:19px;color:#E43D30;flex-shrink:0}
.fcc-text{display:flex;flex-direction:column;gap:3px;min-width:0}
.fcc-label{
  font-family:'JetBrains Mono',monospace;font-size:9.5px;
  letter-spacing:.16em;text-transform:uppercase;
  color:rgba(255,255,255,.45);
}
.fcc-value{
  font-family:'Inter',sans-serif;font-size:14px;font-weight:500;
  color:#fff;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}

/* PRESENCE GRID */
.foot-block-title{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;
  color:#E43D30;
  margin:0 0 24px 0;
  font-weight:600;
}
.foot-presence{margin-bottom:56px}
.foot-presence-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  align-items:stretch;          /* equal card heights in each row */
  gap:16px;
}
.fp-card{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:6px;
  padding:24px 16px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.1);
  border-radius:16px;
  text-decoration:none;
  min-height:110px;             /* equal height across all cards */
  text-align:center;
  transition:transform .35s cubic-bezier(.4,0,.2,1),border-color .35s,background .35s;
}
.fp-card:hover{
  transform:translateY(-6px);
  border-color:#E43D30;
  background:rgba(228,61,48,.08);
}
.fp-flag{
  display:block;                /* prevent any accidental inline collapse */
  font-size:28px;               /* slightly larger for premium feel */
  line-height:1;
  margin-bottom:8px;
  text-align:center;
  font-style:normal;            /* prevent italic from distorting emoji */
  font-variant:normal;
  -webkit-text-size-adjust:100%;/* prevent iOS auto-resize shrinking flags */
  visibility:visible;
  opacity:1;
}
.fp-country{
  font-family:'Playfair Display',serif;font-size:15px;font-weight:500;
  color:#fff;text-align:center;
}
.fp-city{
  font-family:'Inter',sans-serif;font-size:11.5px;
  color:rgba(255,255,255,.5);text-align:center;
}

/* NAV + SOCIAL ROW */
.foot-nav-social{
  display:grid;grid-template-columns:1fr auto;
  gap:60px;align-items:start;
  padding-bottom:48px;
  border-bottom:1px solid rgba(255,255,255,.1);
  margin-bottom:36px;
}
.foot-nav-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:14px 32px;
}
.foot-nav-grid a{
  font-family:'Inter',sans-serif;font-size:14.5px;font-weight:400;
  color:rgba(255,255,255,.72);text-decoration:none;
  transition:color .3s;
}
.foot-nav-grid a:hover{color:#E43D30}
.foot-social-block{min-width:200px}
.foot-soc{display:flex;gap:12px}
.foot-soc a{
  width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.75);
  transition:all .3s;
}
.foot-soc a:hover{
  background:#E43D30;border-color:#E43D30;color:#fff;
  transform:translateY(-3px);
}
.foot-soc svg{width:18px;height:18px}

/* BOTTOM BAR */
.foot-bottom{
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:16px;
  padding:28px 0 32px;
}
.foot-bottom .mono{
  font-family:'JetBrains Mono',monospace;font-size:11.5px;
  color:rgba(255,255,255,.4);letter-spacing:.02em;
}
.foot-legal{display:flex;gap:24px}
.foot-legal a{
  font-family:'JetBrains Mono',monospace;font-size:11.5px;
  color:rgba(255,255,255,.4);text-decoration:none;
  transition:color .3s;
}
.foot-legal a:hover{color:#fff}

/* RESPONSIVE */
/* ── Tablet (641–1023px): 3 cards per row — more breathing room ── */
@media(max-width:1023px){
  .foot-presence-grid{grid-template-columns:repeat(3,1fr);gap:14px}
  .fp-card{padding:22px 14px}
  .fp-flag{font-size:26px}       /* keep flag size on tablet */
}
@media(max-width:900px){
  .foot-hero{flex-direction:column;gap:24px}
  .foot-since-badge{align-self:flex-start}
  .foot-contact-grid{grid-template-columns:1fr;gap:14px}
  .foot-nav-social{grid-template-columns:1fr;gap:36px}
}
@media(max-width:640px){
  #site-footer{padding:64px 0 0 !important}
  .foot-wrap{padding:0 20px}
  .foot-hero{padding-bottom:40px;margin-bottom:40px}
  .foot-contact-grid{margin-bottom:40px}
  .foot-presence{margin-bottom:40px}
  .foot-presence-grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .foot-nav-grid{grid-template-columns:1fr}
  .foot-nav-social{padding-bottom:36px;margin-bottom:28px}
  .foot-bottom{flex-direction:column;align-items:flex-start;text-align:left}
  .foot-logo-row img{height:67px}
}
/* ============ CATALOGUE PREMIUM ============ */
.cat-sec{
  background:#0B1F5B;
  padding:120px 0;
  position:relative;
  overflow:hidden;
}
.cat-bg-grid{
  position:absolute;inset:0;
  pointer-events:none;
  z-index:0;
  /* Blueprint grid lines (4%) + dot pattern (18%) layered */
  background-image:
    radial-gradient(circle, rgba(255,255,255,.07) 1px, transparent 1px),
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size:24px 24px, 60px 60px, 60px 60px;
}
/* Vignette overlay */
.cat-bg-grid::before{
  content:'';
  position:absolute;inset:0;
  background:radial-gradient(ellipse at center, transparent 30%, rgba(5,12,40,.45) 100%);
  pointer-events:none;
}
/* Abstract connection lines + nodes (engineering schematic) */
.cat-bg-grid::after{
  content:'';
  position:absolute;inset:0;
  pointer-events:none;
  opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 600' fill='none' stroke='%23fff' stroke-width='.7'%3E%3Cpath d='M40 120h180v80h140' stroke-dasharray='6 8'/%3E%3Ccircle cx='40' cy='120' r='3' fill='%23fff'/%3E%3Ccircle cx='220' cy='120' r='2.5' fill='%23fff'/%3E%3Ccircle cx='220' cy='200' r='2' fill='%23fff'/%3E%3Ccircle cx='360' cy='200' r='3' fill='%23fff'/%3E%3Cpath d='M680 80v160h-120v100' stroke-dasharray='5 7'/%3E%3Ccircle cx='680' cy='80' r='3' fill='%23fff'/%3E%3Ccircle cx='680' cy='240' r='2' fill='%23fff'/%3E%3Ccircle cx='560' cy='240' r='2.5' fill='%23fff'/%3E%3Ccircle cx='560' cy='340' r='3' fill='%23fff'/%3E%3Cpath d='M100 480h200v-80h100' stroke-dasharray='4 6'/%3E%3Ccircle cx='100' cy='480' r='2.5' fill='%23fff'/%3E%3Ccircle cx='300' cy='480' r='2' fill='%23fff'/%3E%3Ccircle cx='300' cy='400' r='2' fill='%23fff'/%3E%3Ccircle cx='400' cy='400' r='3' fill='%23fff'/%3E%3Cpath d='M620 500h-140v-120h-80' stroke-dasharray='5 8'/%3E%3Ccircle cx='620' cy='500' r='2.5' fill='%23fff'/%3E%3Ccircle cx='480' cy='500' r='2' fill='%23fff'/%3E%3Ccircle cx='480' cy='380' r='2.5' fill='%23fff'/%3E%3Ccircle cx='400' cy='380' r='3' fill='%23fff'/%3E%3Crect x='355' y='185' width='10' height='10' rx='2' stroke-width='.5'/%3E%3Crect x='555' cy='335' width='8' height='8' rx='1.5' stroke-width='.5' y='335'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-size:100% 100%;
}
.cat-wrap{position:relative;z-index:2;max-width:1280px;margin:0 auto}

/* Header */
.cat-head{text-align:center;margin-bottom:56px}
.cat-label{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:.35em;
  text-transform:uppercase;color:#E44D3A;
  margin-bottom:20px;
  display:inline-flex;align-items:center;gap:12px;
}
.cat-label::before,.cat-label::after{content:'';width:24px;height:1px;background:#E44D3A}
.cat-title{
  font-family:'Playfair Display',serif;
  font-size:clamp(32px,4vw,52px);
  font-weight:500;line-height:1.1;
  color:#fff;letter-spacing:-.02em;
  margin:0 0 18px 0;
}
.cat-title em{font-style:italic;color:#E44D3A}
.cat-desc{
  font-family:'Inter',sans-serif;
  font-size:16px;line-height:1.7;
  color:rgba(255,255,255,.6);
  max-width:640px;margin:0 auto;
}

/* Stats */
.cat-stats{
  display:flex;align-items:center;justify-content:center;
  gap:0;margin-bottom:64px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:16px;padding:28px 0;
  max-width:800px;margin-left:auto;margin-right:auto;margin-bottom:64px;
  backdrop-filter:blur(8px);
}
.cat-stat{flex:1;text-align:center}
.cat-stat-num{
  display:block;font-family:'Playfair Display',serif;
  font-size:clamp(24px,3vw,36px);font-weight:500;
  color:#fff;line-height:1;
}
.cat-stat-lbl{
  display:block;font-family:'JetBrains Mono',monospace;
  font-size:9px;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(255,255,255,.4);
  margin-top:6px;
}
.cat-stat-sep{width:1px;height:40px;background:rgba(255,255,255,.1);flex-shrink:0}

/* Content Grid */
.cat-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:60px;align-items:start;
}

/* 3D Book Mockup */
.cat-book-wrap{
  perspective:1200px;
  display:flex;justify-content:center;
  margin-bottom:48px;
}
.cat-book{
  position:relative;
  width:260px;height:340px;
  transform:rotateY(-8deg) rotateX(3deg);
  transform-style:preserve-3d;
  animation:catFloat 4s ease-in-out infinite;
}
@keyframes catFloat{
  0%,100%{transform:rotateY(-8deg) rotateX(3deg) translateY(0)}
  50%{transform:rotateY(-8deg) rotateX(3deg) translateY(-12px)}
}
.cat-book-front{
  width:100%;height:100%;
  background:linear-gradient(135deg,#0B1F5B 0%,#162B6B 50%,#0B1F5B 100%);
  border-radius:4px 12px 12px 4px;
  padding:40px 32px;
  display:flex;flex-direction:column;justify-content:center;
  box-shadow:0 30px 60px rgba(0,0,0,.5),
             0 2px 0 rgba(255,255,255,.05) inset;
  position:relative;overflow:hidden;
}
.cat-book-front::before{
  content:'';position:absolute;top:0;right:0;bottom:0;width:3px;
  background:linear-gradient(180deg,#E44D3A,#c33,#E44D3A);
}
.cat-book-cover{position:relative;z-index:2}
.cat-book-label{
  font-family:'JetBrains Mono',monospace;
  font-size:9px;letter-spacing:.25em;
  text-transform:uppercase;color:#E44D3A;
  margin-bottom:12px;
}
.cat-book-year{
  font-family:'Playfair Display',serif;
  font-size:64px;font-weight:600;
  color:rgba(255,255,255,.08);
  line-height:1;margin-bottom:16px;
}
.cat-book-brand{
  font-family:'Playfair Display',serif;
  font-size:28px;font-weight:600;
  color:#fff;letter-spacing:.02em;
  margin-bottom:8px;
}
.cat-book-sub{
  font-family:'Inter',sans-serif;
  font-size:11px;line-height:1.5;
  color:rgba(255,255,255,.5);
}
.cat-book-accent{
  position:absolute;bottom:32px;left:32px;right:32px;
  height:2px;background:linear-gradient(90deg,#E44D3A,transparent);
}
.cat-book-spine{
  position:absolute;left:-14px;top:4px;bottom:4px;width:14px;
  background:linear-gradient(90deg,#0a1845,#0d1d55);
  border-radius:4px 0 0 4px;
  transform:rotateY(90deg);
  transform-origin:right center;
}
.cat-book-shadow{
  position:absolute;bottom:-20px;left:20px;right:20px;height:20px;
  background:radial-gradient(ellipse,rgba(0,0,0,.4),transparent 70%);
  filter:blur(8px);
}

/* Benefits */
.cat-benefits{
  list-style:none;display:flex;flex-direction:column;gap:14px;
  padding:0;margin:0;
}
.cat-benefits li{
  display:flex;align-items:center;gap:12px;
  font-family:'Inter',sans-serif;font-size:14.5px;
  color:rgba(255,255,255,.78);
}
.cat-benefits svg{
  width:16px;height:16px;flex-shrink:0;
  stroke:#E44D3A;fill:none;stroke-width:2.5;
}

/* Form Card */
.cat-form-card{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);
  border-radius:20px;padding:44px 40px;
  backdrop-filter:blur(12px);
}
.cat-form-title{
  font-family:'Playfair Display',serif;
  font-size:28px;font-weight:500;
  color:#fff;margin:0 0 6px 0;
}
.cat-form-sub{
  font-family:'JetBrains Mono',monospace;
  font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(255,255,255,.4);
  margin-bottom:32px;
}
.cat-field{margin-bottom:24px}
.cat-field label{
  display:block;
  font-family:'JetBrains Mono',monospace;
  font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;color:rgba(255,255,255,.45);
  margin-bottom:10px;
}
.cat-field input{
  width:100%;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  border-radius:10px;padding:14px 16px;
  font-family:'Inter',sans-serif;font-size:15px;
  color:#fff;outline:none;
  transition:all .3s;box-sizing:border-box;
}
.cat-field input::placeholder{color:rgba(255,255,255,.3)}
.cat-field input:focus{
  border-color:rgba(228,77,58,.6);
  background:rgba(255,255,255,.08);
  box-shadow:0 0 0 3px rgba(228,77,58,.12);
}

/* Submit Button */
.cat-submit{
  width:100%;padding:16px;
  background:linear-gradient(135deg,#E44D3A 0%,#C7352A 100%);
  border:none;border-radius:12px;
  color:#fff;cursor:pointer;
  font-family:'JetBrains Mono',monospace;
  font-size:11.5px;letter-spacing:.14em;
  text-transform:uppercase;
  display:flex;align-items:center;justify-content:center;gap:10px;
  box-shadow:0 8px 28px rgba(228,77,58,.35);
  transition:all .35s cubic-bezier(.4,0,.2,1);
  position:relative;overflow:hidden;
  margin-top:8px;
}
.cat-submit::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,.15),transparent 50%);
  opacity:0;transition:opacity .3s;
}
.cat-submit:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 36px rgba(228,77,58,.45);
}
.cat-submit:hover::before{opacity:1}
.cat-submit svg{width:18px;height:18px;flex-shrink:0}

/* Success */
.cat-success{text-align:center;padding:32px 0}
.cat-success-icon{font-size:44px;margin-bottom:14px}
.cat-success h4{
  font-family:'Playfair Display',serif;
  font-size:24px;color:#fff;font-weight:400;margin:0 0 8px 0;
}
.cat-success p{font-size:13px;color:rgba(255,255,255,.5)}

/* Trust */
.cat-trust{
  display:flex;justify-content:center;gap:28px;
  margin-top:24px;flex-wrap:wrap;
}
.cat-trust span{
  font-family:'Inter',sans-serif;
  font-size:12px;color:rgba(255,255,255,.45);
}

/* Responsive */
@media(max-width:960px){
  .cat-grid{grid-template-columns:1fr;gap:48px}
  .cat-sec{padding:88px 0}
  .cat-stats{flex-wrap:wrap;gap:16px;padding:24px 16px}
  .cat-stat-sep{display:none}
}
@media(max-width:640px){
  .cat-sec{padding:64px 0}
  .cat-form-card{padding:32px 24px;border-radius:16px}
  .cat-book{width:200px;height:260px}
  .cat-book-brand{font-size:22px}
  .cat-book-year{font-size:48px}
  .cat-trust{flex-direction:column;align-items:center;gap:8px}
}
/* ============ CONTACT PREMIUM ============ */
.cnt-sec{
  background:#FFFFFF;
  padding:120px 0;
  position:relative;overflow:hidden;
}
.cnt-bg-pattern{
  position:absolute;inset:0;
  background-image:
    radial-gradient(circle at 20% 50%,rgba(11,35,90,.04) 0%,transparent 50%),
    radial-gradient(circle at 80% 20%,rgba(229,57,53,.03) 0%,transparent 40%);
  pointer-events:none;
}
.cnt-wrap{position:relative;z-index:2;max-width:1280px;margin:0 auto}

/* Main card */
.cnt-card{
  display:grid;grid-template-columns:2fr 3fr;
  border-radius:24px;overflow:hidden;
  box-shadow:0 24px 80px rgba(11,35,90,.12);
  border:1px solid rgba(11,35,90,.08);
  min-height:640px;
}

/* Left column */
.cnt-left{
  background:linear-gradient(145deg,#0B235A 0%,#0e2d73 60%,#0B235A 100%);
  padding:0;
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;
}
.cnt-left-inner{
  padding:56px 44px;
  position:relative;z-index:2;flex:1;
  display:flex;flex-direction:column;
}
.cnt-blueprint{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:32px 32px;
  pointer-events:none;
}
.cnt-eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:10.5px;letter-spacing:.28em;
  text-transform:uppercase;color:#E53935;
  margin-bottom:20px;
}
.cnt-title{
  font-family:'Playfair Display',serif;
  font-size:clamp(28px,3vw,42px);font-weight:500;
  color:#fff;line-height:1.1;letter-spacing:-.02em;
  margin:0 0 8px 0;
}
.cnt-title em{font-style:italic;color:#E53935}
.cnt-tagline{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:.2em;
  text-transform:uppercase;color:rgba(255,255,255,.45);
  margin-bottom:40px;
}

/* Perks */
.cnt-perks{list-style:none;padding:0;margin:0 0 40px 0;display:flex;flex-direction:column;gap:24px}
.cnt-perks li{display:flex;align-items:flex-start;gap:16px}
.cnt-perk-icon{
  width:40px;height:40px;flex-shrink:0;
  border-radius:10px;
  background:rgba(229,57,53,.15);
  border:1px solid rgba(229,57,53,.25);
  display:flex;align-items:center;justify-content:center;
}
.cnt-perk-icon svg{width:18px;height:18px;stroke:#E53935}
.cnt-perks strong{
  display:block;font-family:'Inter',sans-serif;
  font-size:13.5px;font-weight:600;
  color:#fff;margin-bottom:2px;
}
.cnt-perks span{
  font-family:'Inter',sans-serif;
  font-size:12px;color:rgba(255,255,255,.5);line-height:1.5;
}

/* Contact strip */
.cnt-contact-strip{display:flex;flex-direction:column;gap:10px;margin-top:auto}
.cnt-strip-item{
  display:flex;align-items:center;gap:10px;
  font-family:'Inter',sans-serif;font-size:13px;
  color:rgba(255,255,255,.6);text-decoration:none;
  transition:color .3s;padding:10px 12px;
  border-radius:8px;border:1px solid rgba(255,255,255,.06);
  background:rgba(255,255,255,.03);
}
.cnt-strip-item:hover{color:#fff;border-color:rgba(255,255,255,.15)}
.cnt-strip-item svg{width:16px;height:16px;flex-shrink:0}

/* Right column — form */
.cnt-right{
  background:#fff;
  padding:56px 52px;
  display:flex;flex-direction:column;justify-content:center;
}

/* Rows */
.cnt-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}

/* Floating label fields */
.cnt-field{position:relative;margin-bottom:22px}
.cnt-field input,
.cnt-field textarea,
.cnt-field select{
  width:100%;padding:22px 16px 10px;
  border:1.5px solid rgba(11,35,90,.12);
  border-radius:12px;
  font-family:'Inter',sans-serif;font-size:15px;color:#0B235A;
  background:#FAFBFD;outline:none;
  transition:all .3s cubic-bezier(.4,0,.2,1);
  box-sizing:border-box;
  -webkit-appearance:none;
}
.cnt-field textarea{resize:vertical;min-height:120px}
.cnt-field select{cursor:pointer}
.cnt-field select option{color:#0B235A}
.cnt-field input:focus,
.cnt-field textarea:focus,
.cnt-field select:focus{
  border-color:#E53935;
  background:#fff;
  box-shadow:0 0 0 4px rgba(229,57,53,.08);
}
.cnt-field label{
  position:absolute;left:16px;top:50%;transform:translateY(-50%);
  font-family:'Inter',sans-serif;font-size:14px;font-weight:500;
  color:rgba(11,35,90,.45);
  transition:all .3s cubic-bezier(.4,0,.2,1);
  pointer-events:none;
}
.cnt-field textarea ~ label{top:20px;transform:none}
.cnt-field select ~ label{top:10px;font-size:10.5px;color:rgba(11,35,90,.45);letter-spacing:.04em}
/* Float label up when filled or focused */
.cnt-field input:focus ~ label,
.cnt-field input:not(:placeholder-shown) ~ label,
.cnt-field textarea:focus ~ label,
.cnt-field textarea:not(:placeholder-shown) ~ label{
  top:10px;transform:none;
  font-size:10.5px;font-weight:600;
  color:#E53935;letter-spacing:.04em;
}
.cnt-field input.err,
.cnt-field textarea.err{border-color:#E53935 !important;background:#fff8f8}

/* Submit button */
.cnt-submit{
  width:100%;padding:18px;margin-top:8px;
  background:linear-gradient(135deg,#E53935 0%,#C62828 100%);
  border:none;border-radius:12px;
  color:#fff;cursor:pointer;
  font-family:'JetBrains Mono',monospace;
  font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  display:flex;align-items:center;justify-content:center;gap:10px;
  box-shadow:0 8px 28px rgba(229,57,53,.3);
  transition:all .35s cubic-bezier(.4,0,.2,1);
  position:relative;overflow:hidden;
}
.cnt-submit::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,.18),transparent 60%);
  opacity:0;transition:opacity .3s;
}
.cnt-submit:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 36px rgba(229,57,53,.4);
}
.cnt-submit:hover::before{opacity:1}
.cnt-submit svg{width:17px;height:17px;flex-shrink:0}

/* Success */
.cnt-success{
  margin-top:20px;padding:24px;
  background:rgba(16,185,129,.08);
  border:1px solid rgba(16,185,129,.25);
  border-radius:12px;text-align:center;
}
.cnt-success div{font-size:32px;margin-bottom:8px}
.cnt-success p{font-family:'Inter',sans-serif;font-size:14.5px;color:#065f46;margin:0}

/* Responsive */
@media(max-width:960px){
  .cnt-card{grid-template-columns:1fr}
  .cnt-sec{padding:88px 0}
  .cnt-left-inner{padding:44px 32px}
  .cnt-right{padding:44px 32px}
  .cnt-contact-strip{margin-top:32px}
}
@media(max-width:640px){
  .cnt-sec{padding:64px 0}
  .cnt-row{grid-template-columns:1fr}
  .cnt-left-inner{padding:36px 24px}
  .cnt-right{padding:36px 24px}
  .cnt-card{border-radius:16px}
  .cnt-field input,.cnt-field textarea,.cnt-field select{font-size:16px}
}
/* ============ TEAM — carousel redesign CSS at end of stylesheet ============ */
/* ============================================================
   UX/UI AUDIT — SYSTEMATIC IMPROVEMENTS
   Colors unchanged. Focus: usability, clarity, consistency.
   ============================================================ */

/* 1. CONSISTENT SPACING SYSTEM
   Standardise section rhythm across all sections */
:root{
  --sec-lg: 110px;
  --sec-md: 80px;
  --sec-sm: 60px;
}
.sol-section, .cat-sec, .faq-sec, .cnt-sec, .team-sec,
section[id="services"], section[id="produits"],
section[id="presence"], #cr-section, #site-footer{
  scroll-margin-top: 80px;
}

/* 2. BODY TEXT CONSISTENCY
   Standardise readable body text at 15–16px */
.sh-sub, .cat-desc, .faq-intro, .team-sub, .sol-intro,
.serv-lead, .why-desc, .foot-about{
  font-size: 15.5px !important;
  line-height: 1.72 !important;
  letter-spacing: -.003em;
}

/* 3. LETTER-SPACING — reduce extremes for readability */
.sh-idx, .cat-label, .cr-eyebrow, .cnt-eyebrow,
.faq-sticky .sh-idx, .team-head-left .sh-idx{
  letter-spacing: .22em !important;
}
.fcc-label, .cat-stat-lbl, .tm-role, .foot-block-title,
.ind-label, .pres-flag, .ps-cat-label{
  letter-spacing: .16em !important;
}

/* 4. TOUCH TARGETS — 44px minimum (WCAG 2.1 requirement) */
.btn, button, .faq-tl-q, .sol, .tm-link,
.cnt-strip-item, .fp-card, nav a,
.pw-nav button, .ps-arrow, .cat-submit,
.cnt-submit, .foot-soc a, .cr-logo{
  min-height: 44px;
}
.foot-soc a{ min-width: 44px; }
.faq-tl-icon{ min-width: 44px; min-height: 44px; }
.langsw button{ min-height: 36px; min-width: 40px; }

/* Mobile touch targets — 48px for comfort */
@media(max-width:768px){
  .btn{ min-height: 48px; padding: 14px 24px !important; }
  .cat-submit, .cnt-submit{ min-height: 52px; }
  nav a, .foot-nav-grid a{ min-height: 44px; display: flex; align-items: center; }
}

/* 5. TRANSITION SPEED — standardise to snappy 300ms */
.btn, .sol-cta, .tm-link, .cnt-strip-item, .faq-tl-q,
.foot-nav-grid a, .cr-logo, .fp-card, .ind, .sol,
.news-card, .faq-tl-card{
  transition-duration: .28s !important;
  transition-timing-function: cubic-bezier(.4,0,.2,1) !important;
}
/* Keep portrait zoom at 400ms for premium feel */
.tm-portrait img{ transition-duration: .4s !important; }
/* Keep 3D book at 4s float */
.cat-book{ animation-duration: 4s !important; }

/* 6. VISUAL HIERARCHY — section titles scale */
.sh-title h2, .sol-headline, .cat-title, .faq-headline,
.cnt-title, .team-headline, .cr-title{
  letter-spacing: -.022em;
}

/* 7. FORM UX — improve readability and completion speed */
.cnt-field input, .cnt-field textarea, .cnt-field select{
  font-size: 15px !important;
  padding: 18px 14px 10px !important;
}
.cat-field input{
  font-size: 15px !important;
  padding: 14px 16px !important;
}
.cnt-field label{
  font-size: 12px !important;
}
/* Clear error state */
.cnt-field input.err{ outline: 2px solid #E53935; outline-offset: 0; }

/* 8. NAVIGATION — cleaner, better hierarchy */
.nav a{
  font-weight: 500;
  letter-spacing: .01em;
}
.nav a:hover{ opacity: 1 !important; }

/* 9. SECTION HEADS — better vertical breathing */
.sec-head{ margin-bottom: 52px !important; }
.sh-idx{ margin-bottom: 14px !important; }

/* 10. CARD READABILITY — bio text */
.sol-content p, .ind-desc, .why-desc, .serv-lead,
.faq-tl-a-inner p, .tm-bio, .news-card p{
  font-size: 14px !important;
  line-height: 1.68 !important;
}

/* 11. MOBILE LAYOUT — fix overlaps and spacing */
@media(max-width:768px){
  /* Prevent text overflow in cards */
  .sol-content h3{ font-size: 18px !important; word-break: break-word; }
  .ind-name{ font-size: 16px !important; }
  .tm-name{ font-size: 19px !important; }

  /* Hero: stack CTAs cleanly */
  .hero-ctas{
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
  }
  .hero-ctas .btn, .hero-ctas .hero-li{
    justify-content: center !important;
    text-align: center !important;
  }

  /* Prevent horizontal overflow */
  .cat-stats{ margin-left: 0 !important; margin-right: 0 !important; }

  /* Better mobile section spacing */
  .faq-sec, .team-sec, .cat-sec, .cnt-sec{ padding: 64px 0 !important; }
  .cr-carousel-wrap{ mask-image: none !important; -webkit-mask-image: none !important; }

  /* Product slider controls */
  .ps-arrow{ width: 40px !important; height: 40px !important; }
}

@media(max-width:480px){
  .cat-form-card{ padding: 24px 18px !important; border-radius: 12px !important; }
  .foot-nav-grid{ gap: 0 !important; }
  .foot-nav-grid a{ padding: 10px 0 !important; border-bottom: 1px solid rgba(255,255,255,.06); }
  .tm-link span{ max-width: 180px !important; }
}

/* 12. CONTENT ALIGNMENT — horizontal rhythm */
.wrap{
  padding-left: max(24px, 4vw) !important;
  padding-right: max(24px, 4vw) !important;
}

/* 13. CTA VISIBILITY — primary actions */
.btn-signal{
  font-weight: 600 !important;
  letter-spacing: .02em !important;
}

/* 14. PROGRESS INDICATOR — reading progress */
#progress{
  height: 2px !important;
}

/* 15. FOCUS ACCESSIBILITY — already set globally, reinforce */
:focus-visible{
  outline: 2px solid var(--signal) !important;
  outline-offset: 3px !important;
}

/* 16. LINK READABILITY — footer nav */
.foot-nav-grid a{
  font-size: 15px !important;
  line-height: 1.5 !important;
}

/* 17. PARTNER CARD HEIGHT — equalise */
.pw-cell{
  min-height: 120px !important;
}

/* 18. NEWS CARDS — consistent heights */
.news-card{ display: flex !important; flex-direction: column !important; }

/* 19. BACK TO TOP — cleaner visibility */
.toTop{
  opacity: 0;
  transition: opacity .28s, transform .28s !important;
}
.toTop.vis{ opacity: 1; }

/* End UX/UI Audit Layer */

/* ================================================================
   VISUAL RHYTHM — Coherent section flow, no color changes
   Full section map top → bottom:
   HERO(navy) → PARTNERS(white) → SOLUTIONS(beige) → SERVICES(white)
   → PRODUCTS(beige) → INDUSTRIES(beige) → CLIENTS(navy)
   → TEAM(white) → PRESENCE(beige) → CATALOGUE(navy)
   → NEWS(white) → TESTIMONIALS(beige) → FAQ(beige)
   → CONTACT(white) → NEWSLETTER(navy) → FOOTER(navy)
   ================================================================ */

/* -- PARTNER WALL: white, clean separator from navy hero -- */
.pw{
  background: #FFFFFF;
  border-bottom: 1px solid rgba(11,35,77,.07);
}
.pw-eyebrow{ opacity:.75; }

/* -- SOLUTIONS: beige, smooth from white -- */
section[id="solutions"]{
  background: var(--paper) !important;
  border-top: none !important;
}

/* -- SERVICES: white, contrast relief -- */
section[id="services"]{
  background: #FFFFFF !important;
  border-top: 1px solid rgba(11,35,77,.06) !important;
  border-bottom: 1px solid rgba(11,35,77,.06) !important;
}

/* -- PRODUCTS: beige, returns to warmth -- */
section[id="produits"]{
  background: var(--paper) !important;
  border-top: none !important;
}
.ps{ background: var(--paper) !important; }

/* -- INDUSTRIES: beige (same zone as products = unified group) -- */
.ind-sec{
  background: var(--paper) !important;
  border-top: 1px solid rgba(11,35,77,.06) !important;
}

/* -- CLIENTS: navy — strong contrast anchor -- */
.clients-strip{
  background: var(--ink) !important;
  border-top: none !important;
}
.cr-head{ background: var(--ink) !important; }

/* -- TEAM: white — palette rest after navy -- */
.team-sec{
  background: #FFFFFF !important;
  border-bottom: 1px solid rgba(11,35,77,.06) !important;
}

/* -- PRESENCE: navy — premium industrial background restored --
   background intentionally absent here so .pres-sec (#0B1F3F) wins */
section[id="presence"]{
  border-top: none !important;
}

/* -- CATALOGUE: navy — second major anchor -- */
.cat-sec{
  background: var(--ink) !important;
}

/* -- NEWS: white — editorial breath -- */
.news-sec{
  background: #FFFFFF !important;
  border-bottom: 1px solid rgba(11,35,77,.06) !important;
}

/* -- TESTIMONIALS: beige -- */
.testi-sec, section[id="temoignages"]{
  background: var(--paper) !important;
}

/* -- FAQ: beige (continuous with testimonials) -- */
.faq-sec{
  background: var(--paper) !important;
  border-top: 1px solid rgba(11,35,77,.06) !important;
}

/* -- CONTACT: white — clear form surface -- */
.cnt-sec{
  background: #FFFFFF !important;
  border-top: 1px solid rgba(11,35,77,.06) !important;
}

/*

/* ============================================================
   CROSS-SECTION TRANSITION HELPERS
   Subtle visual glue between section-type boundaries
   ============================================================ */

/* White → Navy: add shadow bridge */
.team-sec + section[id="presence"],
section[id="services"] + section[id="produits"]{
  box-shadow: inset 0 4px 20px rgba(11,35,77,.04);
}

/* Navy → White: no hard line */
.clients-strip + .team-sec,

/* Beige groups: internal sections feel connected */
section[id="produits"],
.ind-sec{
  border-left: none;
  border-right: none;
}

/* ============================================================
   SECTION SEPARATORS — subtle rule between same-color sections
   ============================================================ */
section[id="solutions"] + section[id="services"]::before,
section[id="produits"] + .ind-sec::before{
  content: '';
  display: block;
  width: 64px;
  height: 2px;
  background: var(--signal);
  margin: 0 auto;
  position: relative;
  top: -1px;
}

/* ============================================================
   SECTION ENTRY ANIMATIONS — fade-up for all section heads
   Harmonised timing
   ============================================================ */
.team-head, .cat-head, .faq-sticky, .cr-head,
.cnt-left-inner, .sol-header{
  animation: none; /* rely on .reveal class instead */
}

/* ============================================================
   WHITESPACE BALANCE — avoid over-padded sections
   ============================================================ */
section[id="services"]{ padding: 96px 0 !important; }
section[id="presence"]{ padding: 96px 0 !important; }
.news-sec{ padding: 96px 0 !important; }
.team-sec{ padding: 96px 0 !important; }

/* ============================================================
   FOOTER FLOW — nl→footer both navy = seamless
   ============================================================ */
#site-footer{
  padding-top: 80px !important;
  border-top: 1px solid rgba(255,255,255,.08) !important;
}

/* End Visual Rhythm Layer */

/* ================================================================
   PREMIUM ENHANCEMENTS — 4 TASKS
   Colors unchanged. Layout unchanged.
   ================================================================ */

/* ── TASK 1: TEAM (carousel redesign — CSS at end of stylesheet) ── */
/* ── TASK 2: PRODUCT SLIDER — Bigger, bolder images ──────────── */
.ps-slide-img{
  padding: 20px !important;
  min-height: 420px !important;
}
.ps-slide-gallery img.active:hover{ transform: scale(1.06) !important; }
.ps-img-fallback{ min-height: 420px !important; }
.ps-thumb.on{
  border-color: var(--signal) !important;
  box-shadow: 0 4px 12px rgba(228,77,58,.2) !important;
}
@media(max-width:900px){
  .ps-slide-img{ min-height: 300px !important; padding: 16px !important; }
}

/* ── TASK 3: HERO — Premium animations ───────────────────────── */
@keyframes pfGlow{
  0%,100%{ opacity: .4; transform: translate(-50%,-50%) scale(1); }
  50%{ opacity: .6; transform: translate(-50%,-50%) scale(1.1); }
}

/* ── TASK 4: PRE-FOOTER CTA ───────────────────────────────────── */
.pfcta{
  background: var(--ink);
  padding: 100px 0;
  position: relative; overflow: hidden;
  text-align: center;
}
.pfcta-grid{
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.022) 1px, transparent 1px);
  background-size: 56px 56px;
  pointer-events: none;
}
.pfcta-glow{
  position: absolute; width: 700px; height: 350px;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(228,61,48,.1) 0%, transparent 65%);
  top: 50%; left: 50%;
  transform: translate(-50%,-50%);
  pointer-events: none;
  animation: pfGlow 7s ease-in-out infinite;
}
.pfcta-inner{
  position: relative; z-index: 2;
  max-width: 820px; margin: 0 auto; padding: 0 24px;
}
.pfcta-label{
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: .28em; text-transform: uppercase;
  color: var(--signal); margin-bottom: 22px;
  display: inline-flex; align-items: center; gap: 12px;
}
.pfcta-label::before,.pfcta-label::after{
  content: ''; width: 24px; height: 1px; background: var(--signal);
}
.pfcta-title{
  font-family: 'Playfair Display', serif;
  font-size: clamp(28px, 4vw, 50px);
  font-weight: 500; line-height: 1.12;
  color: #fff; letter-spacing: -.02em;
  margin: 0 0 18px 0;
}
.pfcta-title em{ font-style: italic; color: var(--signal); }
.pfcta-sub{
  font-family: 'Inter', sans-serif;
  font-size: 16px; line-height: 1.7;
  color: rgba(255,255,255,.6); margin: 0 0 40px 0;
}
.pfcta-btns{
  display: flex; align-items: center; justify-content: center;
  gap: 16px; flex-wrap: wrap;
}
.pfcta-btn{
  display: inline-flex; align-items: center; gap: 10px;
  padding: 15px 32px; border-radius: 6px;
  font-family: 'Inter', sans-serif; font-size: 15px; font-weight: 600;
  text-decoration: none; cursor: pointer;
  transition: all .28s cubic-bezier(.4,0,.2,1);
  white-space: nowrap; min-height: 52px;
}
.pfcta-btn svg{ width: 17px; height: 17px; flex-shrink: 0; }
.pfcta-primary{
  background: var(--signal); color: #fff;
  border: 1px solid var(--signal);
  box-shadow: 0 6px 24px rgba(228,61,48,.28);
}
.pfcta-primary:hover{
  background: #C72E22; border-color: #C72E22;
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(228,61,48,.38);
}
.pfcta-secondary{
  background: transparent; color: #fff;
  border: 1px solid rgba(255,255,255,.28);
}
.pfcta-secondary:hover{
  background: rgba(255,255,255,.07);
  border-color: rgba(255,255,255,.5);
  transform: translateY(-2px);
}
@media(max-width:640px){
  .pfcta{ padding: 72px 0; }
  .pfcta-btns{ flex-direction: column; align-items: stretch; }
  .pfcta-btn{ justify-content: center; }
}

/* ============ PRODUCT SLIDER — TARGETED IMPROVEMENTS ============ */

/* 1. Background stays warm beige — no color change */
section[id="produits"]{ background: var(--paper) !important; }
.ps{ background: var(--paper) !important; }

/* 2. Images 40% larger — more prominent visual */
.ps-slide-img{
  padding: 24px !important;
  min-height: 380px !important;
}
.ps-slide-gallery{
  position: relative !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 340px !important;
}
.ps-slide-gallery img{
  padding: 10px !important;
}
.ps-img-fallback{ min-height: 340px !important; }

/* 3. Better card spacing + border-radius 12px */
.ps-slide{
  border-radius: 12px !important;
  overflow: hidden !important;
  border: 1px solid rgba(11,35,77,.08) !important;
}

/* 4. Subtle shadow on card */
.ps-slide{
  box-shadow: 0 4px 20px rgba(11,35,77,.06) !important;
  transition: transform .38s cubic-bezier(.4,0,.2,1),
              box-shadow .38s cubic-bezier(.4,0,.2,1) !important;
}

/* 5. Hover lift effect */
.ps-slide:hover{
  transform: translateY(-6px) !important;
  box-shadow: 0 16px 40px rgba(11,35,77,.12) !important;
}

/* 6. Orange accent line at top of each card */
.ps-slide::before{
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--signal), rgba(228,61,48,.4));
  border-radius: 12px 12px 0 0;
  z-index: 3;
}

/* 7. Image zoom on hover */
.ps-slide-img{ position: relative; }
.ps-slide-gallery img.active{
  transition: transform .45s cubic-bezier(.4,0,.2,1), opacity .4s !important;
}
.ps-slide:hover .ps-slide-gallery img.active{
  transform: scale(1.05) !important;
}

/* 8. Better typography */
.ps-slide-name{
  font-family: 'Playfair Display', serif !important;
  font-size: 24px !important;
  font-weight: 500 !important;
  letter-spacing: -.01em !important;
  line-height: 1.2 !important;
  color: var(--ink) !important;
}
.ps-slide-cat{
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 10px !important;
  letter-spacing: .18em !important;
  color: var(--signal) !important;
  text-transform: uppercase !important;
  margin-bottom: 10px !important;
}
.ps-slide-desc{
  font-size: 14px !important;
  line-height: 1.65 !important;
  color: var(--steel) !important;
}
.ps-slide-info{ padding: 28px 32px 32px !important; }

/* 9. Improved navigation arrows */
.ps-arrow{
  width: 44px !important; height: 44px !important;
  border-radius: 50% !important;
  background: #fff !important;
  border: 1px solid rgba(11,35,77,.1) !important;
  box-shadow: 0 2px 12px rgba(11,35,77,.08) !important;
  transition: all .28s cubic-bezier(.4,0,.2,1) !important;
}
.ps-arrow:hover{
  background: var(--signal) !important;
  border-color: var(--signal) !important;
  transform: scale(1.08) !important;
  box-shadow: 0 6px 20px rgba(228,61,48,.25) !important;
}
.ps-arrow:hover svg{ stroke: #fff !important; }

/* 10. Smooth auto-scroll — add via JS init, improve dot style */
.ps-dot{
  width: 8px !important; height: 8px !important;
  border-radius: 50% !important;
  border: 1px solid rgba(11,35,77,.2) !important;
  background: transparent !important;
  transition: all .3s !important;
  padding: 0 !important;
}
.ps-dot.on, .ps-dot.active{
  background: var(--signal) !important;
  border-color: var(--signal) !important;
  transform: scale(1.3) !important;
}

/* Thumbnail active state */
.ps-thumb.on{
  border-color: var(--signal) !important;
  box-shadow: 0 4px 12px rgba(228,61,48,.2) !important;
}

/* Mobile */
@media(max-width:900px){
  .ps-slide-img{ min-height:280px !important; padding:16px !important; }
  .ps-slide-gallery{ min-height:250px !important; }
  .ps-img-fallback{ min-height:250px !important; }
  .ps-slide-info{ padding:20px 20px 24px !important; }
  .ps-slide-name{ font-size:21px !important; }
  /* Tablet thumbnails */
  .ps-thumb{ width:136px !important; padding:10px 8px 12px !important; }
  .ps-thumb-name{ font-size:12px !important; }
}
@media(max-width:560px){
  .ps-slide-info{padding:24px 18px}
  /* Mobile thumbnails */
  .ps-thumb{ width:110px !important; padding:8px 6px 10px !important; gap:8px !important; }
  .ps-thumb img{ height:48px !important; }
  .ps-thumb-name{ font-size:11px !important; -webkit-line-clamp:2 !important; }
  .ps-thumb-brand{ display:none }
}

/* ── HIDE PRODUCT SLIDER PAGINATION & PROGRESS ── */
.ps-dot{display:none !important}
.ps-slide-dots{display:none !important}
.ps-progress{display:none !important}
.ps-bar{display:none !important}
/* Hide scrollbar on the thumbnail strip */
.ps-thumbs-wrap::-webkit-scrollbar{display:none !important}
.ps-thumbs-wrap{scrollbar-width:none !important;-ms-overflow-style:none !important}
/* Hide the viewport scrollbar */
.ps-viewport::-webkit-scrollbar{display:none !important}
.ps-viewport{scrollbar-width:none !important;-ms-overflow-style:none !important}
/* ── EST. 1963 badge — moved to standalone .est-strip (see end of stylesheet) ── */
/* ============================================================
   PRESENCE SECTION — PREMIUM WHITE v3
   Section background: pure white #ffffff
   Decorative layers (all white-compatible):
   0 pres-bg-radial    very subtle cool-warm depth gradients
   0 pres-bg-dots      dark gray dot texture upper-right (7%)
   0 pres-bg-grain     paper-like noise at 1.8% (multiply)
   1 pres-worldmap     animated SVG, multiply blend on white
   2 .wrap             all content — byte-identical
   ============================================================ */

/* ── Section shell ──────────────────────────────────────────────── */
.pres-sec{
  position:relative;overflow:hidden;
  background:#ffffff !important;
  isolation:isolate;
}
section[id="presence"].pres-sec{padding:96px 0 !important}

/* ── ① Blueprint grid — hidden (dark-bg effect, removed on white) ── */
.pres-bg-grid{display:none}

/* ── ② Radial accent — very subtle warm/cool depth on white ─────── */
.pres-bg-radial{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(ellipse 70% 55% at 96% -5%,
      rgba(210,222,242,.65) 0%,
      transparent 65%),
    radial-gradient(ellipse 55% 45% at 3% 100%,
      rgba(228,232,248,.50) 0%,
      transparent 62%);
  pointer-events:none;
}

/* ── ③ Dot texture — dark dots for light background ────────────── */
.pres-bg-dots{
  position:absolute;
  top:-5%;right:-3%;
  width:60%;max-width:680px;
  height:72%;
  z-index:0;
  background-image:radial-gradient(circle, rgba(0,0,0,.07) 1.2px, transparent 1.2px);
  background-size:11px 11px;
  mask-image:radial-gradient(ellipse 88% 78% at 78% 28%, black 36%, transparent 70%);
  -webkit-mask-image:radial-gradient(ellipse 88% 78% at 78% 28%, black 36%, transparent 70%);
  opacity:.55;
  pointer-events:none;
}

/* ── ④ Circuit-trace SVG — hidden on white (blue traces, dark only) */
.pres-bg-circuit{display:none}

/* ── ⑤ Content glow — hidden (dark-bg-only effect) ──────────────── */
.pres-glow-content{display:none}

/* ── ⑥ Depth glows — hidden (dark-bg-only animated glows) ─────────── */
.pres-glow{display:none !important}

/* ── ⑦ Vignette — hidden (dark edges wrong on white bg) ──────────── */
.pres-vignette{display:none}

/* ── ⑧ World-map SVG — multiply blend: white dots disappear,
       colored continents and red animated lines remain visible ───── */
.pres-worldmap{
  position:absolute;
  top:-5%;right:-5%;
  width:65%;max-width:720px;
  height:auto;
  opacity:.11;
  mix-blend-mode:multiply;  /* white elems vanish; colored/dark elems show */
  z-index:1;
  pointer-events:none;
}
@media(max-width:900px){
  .pres-worldmap{width:90%;right:-10%;top:0;opacity:.08}
}

/* ── ⑨ Grain — paper-like texture at 1.8%, multiply darkens subtly ─ */
.pres-bg-grain{
  position:absolute;inset:0;z-index:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-repeat:repeat;
  background-size:200px 200px;
  opacity:.018;
  mix-blend-mode:multiply;
  pointer-events:none;
}

/* ── Section heading — dark-on-white (signal red accents kept) ──── */
.pres-sec .sh-idx{color:var(--signal) !important}
.pres-sec .sh-title h2{color:var(--ink) !important}
.pres-sec .sh-title h2 em{color:var(--signal) !important}
.pres-sec .sh-sub{color:var(--steel) !important}

/* ── pres-wrap — refined border + shadow for white section bg ─────── */
.pres-wrap{
  border:1px solid rgba(0,0,0,.09) !important;
  border-radius:12px !important;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(0,0,0,.10), 0 1px 3px rgba(0,0,0,.06) !important;
  transition:box-shadow .3s,transform .3s !important;
}
.pres-wrap:hover{
  box-shadow:0 12px 48px rgba(0,0,0,.16), 0 2px 6px rgba(0,0,0,.08) !important;
}

/* ── Office list items — light-bg hover/active states ──────────── */
.pres-item{
  transition:background .28s,border-color .28s,padding-left .28s,
             transform .28s cubic-bezier(.4,0,.2,1),
             box-shadow .28s !important;
}
.pres-item:hover{
  background:rgba(0,0,0,.03) !important;
  padding-left:32px;
  transform:translateY(-2px);
  box-shadow:inset 0 0 0 1px rgba(228,61,48,.18);
}
.pres-item.on{
  border-left-color:var(--signal) !important;
  background:rgba(228,61,48,.06) !important;
}

/* ── Mobile: remove heavy decorative layers ─────────────────────── */
@media(max-width:640px){
  .pres-bg-dots{display:none}
  .pres-worldmap{display:none}
}

/* ── Reduce motion ──────────────────────────────────────────────── */
@media(prefers-reduced-motion:reduce){
  .pres-worldmap animate{display:none !important}
}

/* Skip-to-content link for keyboard users */
.skip-link{
  position:absolute;top:-44px;left:16px;
  background:var(--signal);color:#fff;
  padding:10px 18px;border-radius:0 0 4px 4px;
  font-family:'Inter',sans-serif;font-size:14px;font-weight:600;
  text-decoration:none;z-index:10000;
  transition:top .25s;white-space:nowrap;
}
.skip-link:focus{top:0}

/* ── Scroll-reveal entrance animation ─────────────── */
.reveal{
  opacity:0;transform:translateY(14px);
  transition:opacity .52s cubic-bezier(.4,0,.2,1),transform .52s cubic-bezier(.4,0,.2,1);
  transition-delay:var(--srv-d,0ms);
}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .reveal,.reveal.in{opacity:1 !important;transform:none !important;transition:none !important}
}
/* ============ TEAM — PREMIUM HORIZONTAL CAROUSEL ============
   Inspired by Siemens, Schneider, ABB, Stripe design systems.
   Desktop: 4 cards | Tablet: 2 cards | Mobile: 1 card
   ============================================================ */

/* ── Section ───────────────────────────────────────────────── */
section#equipe.team-sec{
  background:#fff !important;
  padding:56px 0 !important;
}

/* ── Header ────────────────────────────────────────────────── */
.team-head{
  display:grid;grid-template-columns:1fr 1fr;
  gap:48px;align-items:end;
  margin-bottom:40px;
}
.team-head-left .sh-idx{
  font-family:'JetBrains Mono',monospace !important;
  font-size:11px !important;letter-spacing:.22em !important;
  color:var(--signal) !important;text-transform:uppercase;
  margin-bottom:14px !important;display:block;
}
.team-headline{
  font-family:'Playfair Display',serif !important;
  font-size:clamp(28px,3.2vw,42px) !important;
  font-weight:500 !important;line-height:1.1 !important;
  color:#0B2454 !important;letter-spacing:-.02em;margin:0 !important;
}
.team-headline em{font-style:italic;color:var(--signal)}
.team-sub{
  font-family:'Inter',sans-serif !important;
  font-size:15px !important;line-height:1.7 !important;
  color:#5F6775 !important;margin:0 !important;
}
.team-rule{display:none !important}

/* ── Carousel shell ─────────────────────────────────────────── */
.team-grid{overflow:visible !important;display:block !important;border:none !important}
.tm-carousel{position:relative}
.tm-viewport{overflow:hidden}
.tm-track{
  display:flex;
  gap:16px;
  transition:transform .44s cubic-bezier(.4,0,.2,1);
  will-change:transform;
}

/* ── Card ───────────────────────────────────────────────────── */
.tm-card{
  flex:0 0 auto;               /* JS sets width */
  background:#fff !important;
  border:1px solid rgba(0,0,0,.07) !important;
  border-radius:20px !important;
  padding:26px 22px 20px !important;
  display:flex !important;flex-direction:column !important;
  box-shadow:0 1px 4px rgba(15,35,77,.05),
             0 2px 10px rgba(15,35,77,.04) !important;
  transition:transform .28s cubic-bezier(.4,0,.2,1),
             box-shadow .28s !important;
  cursor:default;
  user-select:none;
  position:static !important;  /* reset old relative */
  z-index:auto !important;
}
.tm-card:hover{
  transform:translateY(-6px) !important;
  box-shadow:0 10px 32px rgba(15,35,77,.12),
             0 2px 8px rgba(15,35,77,.06) !important;
  background:#fff !important;
}

/* ── Avatar ─────────────────────────────────────────────────── */
.tm-avatar{
  width:72px;height:72px;
  border-radius:50%;
  overflow:hidden;
  border:2px solid rgba(228,61,48,.22);
  background:#F4F0E8;
  margin-bottom:14px;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
  transition:border-color .28s;
}
.tm-card:hover .tm-avatar{border-color:var(--signal)}
.tm-avatar img{
  width:100%;height:100%;
  object-fit:cover;display:block;
}
.tm-initials{
  font-family:'Playfair Display',serif;
  font-size:24px;font-weight:500;
  color:#0B2454;letter-spacing:-.01em;
}

/* ── Badge ───────────────────────────────────────────────────── */
.tm-badge-pill{
  display:inline-block;
  background:var(--signal);color:#fff;
  font-family:'JetBrains Mono',monospace;
  font-size:8px;letter-spacing:.18em;
  padding:3px 8px;border-radius:100px;
  margin-bottom:8px;text-transform:uppercase;
  align-self:flex-start;
}

/* ── Text ───────────────────────────────────────────────────── */
.tm-role{
  font-family:'JetBrains Mono',monospace !important;
  font-size:9px !important;letter-spacing:.16em !important;
  text-transform:uppercase !important;color:var(--signal) !important;
  margin-bottom:5px !important;
}
.tm-name{
  font-family:'Playfair Display',serif !important;
  font-size:17px !important;font-weight:500 !important;
  line-height:1.2 !important;color:#0B2454 !important;
  margin:0 0 10px !important;
  letter-spacing:-.01em;
}
.tm-bio{
  font-size:13px !important;line-height:1.6 !important;
  color:#5F6775 !important;margin:0 !important;
  display:-webkit-box;
  -webkit-line-clamp:3;-webkit-box-orient:vertical;
  overflow:hidden;flex:1;min-height:60px;
}

/* ── Contact icon row ───────────────────────────────────────── */
.tm-contact{
  display:flex;align-items:center;gap:7px;
  margin-top:14px;padding-top:12px;
  border-top:1px solid rgba(0,0,0,.07);
}
.tm-icon-btn{
  width:30px;height:30px;border-radius:50%;
  background:#F4F0E8;
  display:flex;align-items:center;justify-content:center;
  text-decoration:none;color:#5F6775;
  transition:background .22s,color .22s,transform .22s;
  flex-shrink:0;
}
.tm-icon-btn:hover{background:var(--signal);color:#fff;transform:scale(1.12)}
.tm-icon-btn.li-btn:hover{background:#0A66C2}
.tm-icon-btn svg{width:13px;height:13px;flex-shrink:0}

/* ── Navigation row ─────────────────────────────────────────── */
.tm-nav{
  display:flex;align-items:center;justify-content:center;
  gap:16px;margin-top:28px;
}
.tm-arr{
  width:38px;height:38px;border-radius:50%;
  background:#fff;border:1px solid rgba(0,0,0,.10);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;color:#0B2454;
  transition:all .24s;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
  flex-shrink:0;
}
.tm-arr:hover{
  background:var(--signal);border-color:var(--signal);color:#fff;
  box-shadow:0 4px 14px rgba(228,61,48,.28);
}
.tm-arr.off{opacity:.3;pointer-events:none}
.tm-arr svg{width:15px;height:15px;fill:none;stroke:currentColor;
            stroke-width:2;stroke-linecap:round}

/* ── Pagination dots ─────────────────────────────────────────── */
.tm-dots{display:flex;align-items:center;gap:6px;flex:1;justify-content:center}
.tm-dot{
  width:6px;height:6px;border-radius:3px;
  background:rgba(11,36,84,.15);
  transition:all .24s;cursor:pointer;
  border:none;padding:0;
}
.tm-dot.on{background:var(--signal);width:20px}

/* ── CTA button ─────────────────────────────────────────────── */
.tm-cta-wrap{display:flex;justify-content:center;margin-top:36px}
.tm-cta{
  display:inline-flex;align-items:center;gap:10px;
  padding:12px 26px;border-radius:100px;
  background:#fff;border:1.5px solid rgba(11,36,84,.15);
  font-family:'Inter',sans-serif;font-size:14px;font-weight:500;
  color:#0B2454;text-decoration:none;
  transition:all .25s cubic-bezier(.4,0,.2,1);
}
.tm-cta:hover{
  border-color:var(--signal);color:var(--signal);
  box-shadow:0 4px 20px rgba(228,61,48,.15);
  transform:translateY(-2px);
}
.tm-cta svg{width:14px;height:14px;flex-shrink:0}

/* ── Responsive ─────────────────────────────────────────────── */
@media(max-width:960px){
  .team-head{grid-template-columns:1fr;gap:16px;margin-bottom:32px}
  section#equipe.team-sec{padding:48px 0 !important}
}
@media(max-width:640px){
  section#equipe.team-sec{padding:44px 0 !important}
  .tm-card{padding:22px 18px 18px !important;border-radius:16px !important}
  .tm-cta{padding:12px 22px}
}

/* ── Reduce motion ──────────────────────────────────────────── */
@media(prefers-reduced-motion:reduce){
  .tm-track{transition:none !important}
  .tm-card{transition:none !important}
  .tm-dot{transition:none !important}
}

/* ── EST. 1963 — inline next to logo, mobile only (<768px) ── */
.est-badge{
  display:none;
}
@media(max-width:767px){
  .logo{
    display:flex !important;
    align-items:center !important;
    gap:10px !important;
  }
  .est-badge{
    display:inline-block;
    font-family:'JetBrains Mono',monospace;
    font-size:11px;
    font-weight:500;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:#8A8A8A;
    white-space:nowrap;
    line-height:1;
    pointer-events:none;
    user-select:none;
  }
}


/* ── Subtle dotted pattern — white sections only ───────────────
   2px dots · 28px spacing · #0B3A6E at 6% · fades toward center
   Applied via ::after pseudo-element — no layout impact.
   ─────────────────────────────────────────────────────────────── */
.ps::after,
.pres-sec::after,
.cnt-sec::after,
.news-sec::after{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:0;
  background-image:radial-gradient(circle, rgba(11,58,110,.06) 1px, transparent 1px);
  background-size:28px 28px;
  -webkit-mask-image:radial-gradient(ellipse at center, transparent 35%, black 80%);
  mask-image:radial-gradient(ellipse at center, transparent 35%, black 80%);
}
.ps,
.pres-sec,
.cnt-sec,
.news-sec{
  position:relative;
}
/* Ensure content stays above the dot layer */
.ps > .wrap,
.pres-sec > .wrap,
.cnt-sec > .wrap,
.news-sec > .wrap,
.ps > *:not(.ps::after),
.cnt-sec .cnt-wrap{
  position:relative;
  z-index:1;
}

/* ── Équipe — full-section dotted grid (Apple / Linear aesthetic) ──
   rgba(212,200,180,.18) · 2px · 24px · #FAF9F6 warm white base
   ──────────────────────────────────────────────────────────────── */
section#equipe.team-sec{
  background:#FAF9F6 !important;
}
section#equipe.team-sec::after{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:0;
  background-image:radial-gradient(circle, rgba(212,200,180,.18) 1px, transparent 1px);
  background-size:24px 24px;
}
section#equipe .team-wrap{
  position:relative;
  z-index:1;
}

/* ── Catalogue — radial glow behind book and form ──────────────
   Soft warm/cool glows to highlight focal areas.
   ─────────────────────────────────────────────────────────────── */
.cat-book-wrap{
  position:relative;
}
.cat-book-wrap::before{
  content:'';
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:380px;height:340px;
  background:radial-gradient(ellipse, rgba(228,61,48,.10) 0%, transparent 65%);
  pointer-events:none;
  z-index:0;
  border-radius:50%;
}
.cat-book-wrap > *{ position:relative; z-index:1; }

.cat-right{
  position:relative;
}
.cat-right::before{
  content:'';
  position:absolute;
  top:40%;left:50%;
  transform:translate(-50%,-50%);
  width:320px;height:280px;
  background:radial-gradient(ellipse, rgba(100,160,255,.08) 0%, transparent 65%);
  pointer-events:none;
  z-index:0;
  border-radius:50%;
}
.cat-right > *{ position:relative; z-index:1; }

/* Reduced motion */
@media(prefers-reduced-motion:reduce){
  .cat-bg-grid::after{ display:none; }
}

/* ── HERO — Premium Industrial Atmosphere ──────────────────────
   Dots + blueprint grid + connection lines + mesh + glows + vignette
   All below z-index:3 (hero-left content layer)
   ─────────────────────────────────────────────────────────────── */

/* Layer 1: dot grid + blueprint lines + technical mesh */
.hero::before{
  content:'';
  position:absolute;inset:0;
  pointer-events:none;
  z-index:0;
  background-image:
    /* Dot grid — 1.5px dots, 24px spacing, 6% */
    radial-gradient(circle, rgba(255,255,255,.06) .75px, transparent .75px),
    /* Blueprint grid — 60px, 3% */
    linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px),
    /* Fine mesh — 12px, 1.5% */
    linear-gradient(rgba(255,255,255,.015) .5px, transparent .5px),
    linear-gradient(90deg, rgba(255,255,255,.015) .5px, transparent .5px);
  background-size:
    24px 24px,
    60px 60px,
    60px 60px,
    12px 12px,
    12px 12px;
  /* Fade mesh toward center — visible at edges only */
  -webkit-mask-image:
    radial-gradient(ellipse at center, rgba(0,0,0,.4) 20%, black 70%);
  mask-image:
    radial-gradient(ellipse at center, rgba(0,0,0,.4) 20%, black 70%);
}

/* Layer 2: vignette + dual glows + connection lines */
.hero::after{
  content:'';
  position:absolute;inset:0;
  pointer-events:none;
  z-index:0;
  background:
    /* Navy glow — top-left behind content */
    radial-gradient(ellipse at 25% 40%, rgba(41,74,155,.08) 0%, transparent 55%),
    /* Warm red glow — bottom-right corner */
    radial-gradient(ellipse at 85% 85%, rgba(229,83,61,.06) 0%, transparent 45%),
    /* Vignette — edge darkening */
    radial-gradient(ellipse at center, transparent 35%, rgba(5,12,30,.35) 100%);
}

/* Connection lines + nodes — corners only via SVG (4% opacity) */
.hero-inner::after{
  content:'';
  position:absolute;inset:0;
  pointer-events:none;
  z-index:0;
  opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 800' fill='none' stroke='%23fff' stroke-width='.6'%3E%3C!-- Top-left corner --%3E%3Cpath d='M30 60h90v50h70' stroke-dasharray='5 7'/%3E%3Ccircle cx='30' cy='60' r='2.5' fill='%23fff'/%3E%3Ccircle cx='120' cy='60' r='2' fill='%23fff'/%3E%3Ccircle cx='120' cy='110' r='1.5' fill='%23fff'/%3E%3Ccircle cx='190' cy='110' r='2.5' fill='%23fff'/%3E%3Cpath d='M50 30v40' stroke-dasharray='3 5'/%3E%3Ccircle cx='50' cy='30' r='1.5' fill='%23fff'/%3E%3C!-- Top-right corner --%3E%3Cpath d='M1100 45h-80v65h-60' stroke-dasharray='5 7'/%3E%3Ccircle cx='1100' cy='45' r='2.5' fill='%23fff'/%3E%3Ccircle cx='1020' cy='45' r='1.5' fill='%23fff'/%3E%3Ccircle cx='1020' cy='110' r='2' fill='%23fff'/%3E%3Ccircle cx='960' cy='110' r='2.5' fill='%23fff'/%3E%3C!-- Bottom-left corner --%3E%3Cpath d='M40 720h100v-60h80' stroke-dasharray='4 6'/%3E%3Ccircle cx='40' cy='720' r='2' fill='%23fff'/%3E%3Ccircle cx='140' cy='720' r='1.5' fill='%23fff'/%3E%3Ccircle cx='140' cy='660' r='2' fill='%23fff'/%3E%3Ccircle cx='220' cy='660' r='2.5' fill='%23fff'/%3E%3C!-- Bottom-right corner --%3E%3Cpath d='M1160 740h-90v-70h-70' stroke-dasharray='5 8'/%3E%3Ccircle cx='1160' cy='740' r='2.5' fill='%23fff'/%3E%3Ccircle cx='1070' cy='740' r='1.5' fill='%23fff'/%3E%3Ccircle cx='1070' cy='670' r='2' fill='%23fff'/%3E%3Ccircle cx='1000' cy='670' r='2.5' fill='%23fff'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-size:100% 100%;
}

@media(prefers-reduced-motion:reduce){
  .hero::before,.hero::after,.hero-inner::after{opacity:.5 !important}
}
@media(max-width:640px){
  .hero-inner::after{display:none}
}



/* === TEKNIS Premium Social — clean LinkedIn & Instagram logos === */
.nav-social{display:flex;align-items:center;gap:8px;margin-right:2px}
.nav-social a{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid rgba(14,34,77,.10);box-shadow:0 6px 16px rgba(14,34,77,.07);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.nav-social a:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(14,34,77,.12);border-color:rgba(14,34,77,.18)}
.nav-social img{width:21px;height:21px;display:block}
.hero-social{display:inline-flex;align-items:center;gap:8px;padding:12px 17px;border-radius:var(--rad);border:1px solid rgba(255,255,255,.20);color:#fff;text-decoration:none;font-family:'Inter',sans-serif;font-size:13px;font-weight:600;background:rgba(255,255,255,.045);transition:transform .24s ease,background .24s ease,border-color .24s ease,box-shadow .24s ease}
.hero-social:hover{transform:translateY(-2px);background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.34);box-shadow:0 10px 24px rgba(0,0,0,.16)}
.hero-social img{width:21px;height:21px;display:block;border-radius:5px}
.foot-soc a.social-brand img{width:21px;height:21px;display:block;border-radius:5px}
.foot-soc a.social-brand:hover{background:rgba(255,255,255,.10)!important;border-color:rgba(255,255,255,.28)!important}
@media(max-width:1180px){.nav-social{display:none}}
@media(max-width:640px){.hero-social{padding:11px 14px}.hero-social span{display:none}.hero-social img{width:22px;height:22px}}


/* === V9 global fixes === */
.langsw{display:flex;gap:8px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.1em}
.langsw button{padding:6px 10px;color:var(--steel-2);border:1px solid rgba(255,255,255,.08);text-transform:uppercase;border-radius:999px;display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.03)}
.langsw button.on{color:var(--paper);border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.08)}
.langsw .flag{font-size:14px;line-height:1}.langsw .lbl{font-size:10px;letter-spacing:.16em}
.logo-svg{height:58px !important;width:auto;object-fit:contain}.transparent-logo{filter:drop-shadow(0 4px 10px rgba(10,24,49,.08));mix-blend-mode:multiply}
.menu>li{position:relative}.menu-caret{font-size:11px;margin-left:4px;vertical-align:middle}.menu-item-has-mega>a{display:flex;align-items:center}
.mega-menu{position:absolute;left:50%;top:calc(100% + 16px);transform:translateX(-50%) translateY(10px);width:min(1180px,calc(100vw - 64px));padding:22px 24px;border-radius:22px;background:#fff;border:1px solid rgba(14,34,77,.08);box-shadow:0 24px 60px rgba(14,34,77,.14);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 18px;opacity:0;pointer-events:none;transition:opacity .22s ease,transform .22s ease;z-index:1250}
.menu-item-has-mega:hover .mega-menu,.menu-item-has-mega:focus-within .mega-menu{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.mega-col{padding:10px 12px;border-radius:16px;background:linear-gradient(180deg,#fbfcff 0%,#f6f8fc 100%)}
.mega-col h5{margin:0 0 10px;font-size:12px;font-family:'JetBrains Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--signal)}
.mega-col a{display:block !important;padding:7px 0 !important;font-size:13px !important;line-height:1.35;border-bottom:1px solid rgba(14,34,77,.06);white-space:normal !important}
.mega-col a:last-child{border-bottom:none}.mega-col a::before{display:none !important}.mega-col a:hover{color:var(--signal)}
.ps-slide-img{padding:18px !important;min-height:320px !important}.ps-slide-gallery{min-height:260px !important;padding:12px !important;background:linear-gradient(180deg,#f6f8fb 0%,#eef3f7 100%) !important}.ps-slide-gallery img{padding:0 !important;object-fit:contain !important;max-width:100%;max-height:100%}.ps-img-fallback{min-height:260px !important}.ps-slide-info{padding:30px 28px 32px !important}
.cat-card-preview{height:250px !important;padding:8px !important}.cat-card-preview img{width:100% !important;height:100% !important;object-fit:contain !important}
.lp2026-sheet img,.lp2026-page img{background:#fff;object-fit:contain !important}
@media(max-width:1024px){.menu-item-has-mega .mega-menu{position:static;left:auto;top:auto;transform:none;width:100%;padding:14px 0 0;border:none;box-shadow:none;background:transparent;display:grid;grid-template-columns:1fr;gap:10px;opacity:1;pointer-events:auto;margin-bottom:8px}.menu-item-has-mega .mega-col{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);padding:12px 14px;border-radius:14px}.menu-item-has-mega .mega-col h5{color:#fff;opacity:.85;font-size:11px}.menu-item-has-mega .mega-col a{font-size:13px !important;padding:8px 0 !important;border-bottom-color:rgba(255,255,255,.08);color:rgba(255,255,255,.86)}.menu-item-has-mega .mega-col a:hover{color:#fff}.menu-item-has-mega .menu-caret{display:none}}


/* === V10 compact mega-menu === */
.mega-menu{
  width:min(1080px,calc(100vw - 56px)) !important;
  padding:18px !important;
  gap:12px 14px !important;
  border-radius:18px !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  background:rgba(255,255,255,.985) !important;
  backdrop-filter:blur(14px);
}
.mega-col{
  padding:8px 10px 10px !important;
  border-radius:13px !important;
  background:linear-gradient(180deg,#fbfcff 0%,#f7f9fc 100%) !important;
  border:1px solid rgba(14,34,77,.05);
}
.mega-head{
  display:flex !important;align-items:center;justify-content:space-between;
  gap:10px;margin:0 0 6px;padding:7px 2px 9px !important;
  border-bottom:1px solid rgba(228,61,48,.16) !important;
  color:var(--signal) !important;text-decoration:none !important;
  font:700 11px/1.3 'JetBrains Mono',monospace !important;
  letter-spacing:.12em !important;text-transform:uppercase;
}
.mega-head::before{display:none !important}.mega-head b{font-size:14px;font-weight:500;transition:transform .2s ease}.mega-head:hover b{transform:translateX(3px)}
.mega-col>a:not(.mega-head){padding:6px 2px !important;font-size:12.5px !important;line-height:1.3 !important}
.mega-all-link{
  grid-column:1/-1;display:flex !important;align-items:center;justify-content:space-between;
  min-height:46px;padding:11px 14px !important;border-radius:12px;background:var(--ink) !important;
  color:#fff !important;text-decoration:none !important;font:600 12px/1.3 'Inter',sans-serif !important;
  border:0 !important;box-shadow:0 7px 18px rgba(14,34,77,.12);
}
.mega-all-link::before{display:none !important}.mega-all-link b{font-size:18px;font-weight:400;transition:transform .2s ease}.mega-all-link:hover{background:var(--signal) !important}.mega-all-link:hover b{transform:translateX(4px)}
@media(max-width:1180px) and (min-width:1025px){.mega-menu{width:min(940px,calc(100vw - 36px)) !important}.mega-col>a:not(.mega-head){font-size:12px !important}}
@media(max-width:1024px){
  .mega-menu{width:100% !important;padding:10px 0 0 !important;grid-template-columns:1fr !important;background:transparent !important;backdrop-filter:none !important}
  .mega-col{padding:10px 12px !important;background:rgba(255,255,255,.04) !important;border-color:rgba(255,255,255,.08)}
  .mega-head{color:#fff !important;border-bottom-color:rgba(255,255,255,.12) !important;padding:7px 0 9px !important}
  .mega-all-link{margin-top:4px;background:var(--signal) !important}
}


/* === V11 top buttons 3D elegant === */
.nav-cta .btn,.nav-social a,.langsw button{
  position:relative;
  overflow:hidden;
}
.nav-cta .btn-sm{
  min-height:46px;
  border-radius:14px !important;
  box-shadow:0 10px 24px rgba(14,34,77,.10), inset 0 1px 0 rgba(255,255,255,.45);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease;
}
.nav-cta .btn-sm::before,.nav-social a::before,.langsw button::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(255,255,255,.34) 0%, rgba(255,255,255,.10) 42%, rgba(255,255,255,0) 100%);
  pointer-events:none;
}
.nav-cta .btn-sm:hover{
  transform:translateY(-3px);
  box-shadow:0 16px 28px rgba(14,34,77,.16), inset 0 1px 0 rgba(255,255,255,.55);
}
.nav-cta .btn-sm:active,.nav-social a:active,.langsw button:active{transform:translateY(-1px) scale(.99)}
.nav-cta .btn:not(.btn-fill){
  background:linear-gradient(180deg, #faf9f4 0%, #ebe7db 100%) !important;
  border-color:rgba(14,34,77,.18) !important;
  color:var(--ink) !important;
}
.nav-cta .btn:not(.btn-fill):hover{
  background:linear-gradient(180deg, #fffdf8 0%, #f1ecdf 100%) !important;
  border-color:rgba(14,34,77,.28) !important;
}
.nav-cta .btn-fill{
  background:linear-gradient(180deg, #17306d 0%, #0f2454 100%) !important;
  border-color:#102857 !important;
  box-shadow:0 12px 28px rgba(15,36,84,.28), inset 0 1px 0 rgba(255,255,255,.10) !important;
}
.nav-cta .btn-fill:hover{
  background:linear-gradient(180deg, #1b377d 0%, #12306a 100%) !important;
  border-color:#12306a !important;
  box-shadow:0 16px 34px rgba(15,36,84,.34), inset 0 1px 0 rgba(255,255,255,.12) !important;
}
.nav-social a{
  border-radius:12px !important;
  background:linear-gradient(180deg,#ffffff 0%,#eef2f8 100%) !important;
  border:1px solid rgba(14,34,77,.12) !important;
  box-shadow:0 10px 22px rgba(14,34,77,.10), inset 0 1px 0 rgba(255,255,255,.8) !important;
}
.nav-social a:hover{transform:translateY(-3px) !important;box-shadow:0 16px 28px rgba(14,34,77,.16), inset 0 1px 0 rgba(255,255,255,.9) !important}
.langsw button{
  border-radius:999px !important;
  background:linear-gradient(180deg, rgba(255,255,255,.09) 0%, rgba(255,255,255,.03) 100%) !important;
  box-shadow:0 8px 18px rgba(0,0,0,.14), inset 0 1px 0 rgba(255,255,255,.10);
}
.langsw button.on{
  background:linear-gradient(180deg, rgba(255,255,255,.16) 0%, rgba(255,255,255,.07) 100%) !important;
  box-shadow:0 10px 20px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.18);
}


/* === V12 premium nav pills + clickable mega menu === */
.nav .menu{gap:10px !important}
.nav .menu>li.menu-pill{position:relative}
.nav .menu>li.menu-pill>a{
  display:flex !important;
  align-items:center;
  gap:10px;
  min-height:46px;
  padding:10px 15px !important;
  border-radius:14px;
  background:linear-gradient(180deg,#fcfbf7 0%,#ece7da 100%);
  border:1px solid rgba(14,34,77,.10);
  box-shadow:0 10px 24px rgba(14,34,77,.09), inset 0 1px 0 rgba(255,255,255,.85);
  color:var(--ink) !important;
  text-decoration:none !important;
  position:relative;
  overflow:hidden;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease;
}
.nav .menu>li.menu-pill>a::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.34) 0%,rgba(255,255,255,.10) 45%,rgba(255,255,255,0) 100%);
  pointer-events:none;
}
.nav .menu>li.menu-pill>a::before{
  width:24px;height:24px;flex:0 0 24px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:8px;
  background:linear-gradient(180deg,#ffffff 0%,#eef3fa 100%);
  border:1px solid rgba(14,34,77,.10);
  box-shadow:0 4px 10px rgba(14,34,77,.08), inset 0 1px 0 rgba(255,255,255,.9);
  color:var(--signal);
  font:700 12px/1 'Inter',sans-serif;
  position:relative;z-index:1;
}
.nav .menu>li.menu-pill>a:hover,
.nav .menu>li.menu-pill:hover>a,
.nav .menu>li.menu-pill:focus-within>a{
  transform:translateY(-3px);
  border-color:rgba(228,61,48,.20);
  box-shadow:0 16px 30px rgba(14,34,77,.14), inset 0 1px 0 rgba(255,255,255,.95);
  background:linear-gradient(180deg,#fffdfa 0%,#f2ecdf 100%);
}
.nav .menu>li.menu-pill.menu-prod>a{
  background:linear-gradient(180deg,#fff4f1 0%,#f4ddd7 100%);
  border-color:rgba(228,61,48,.18);
}
.nav .menu>li.menu-pill.menu-prod>a:hover,
.nav .menu>li.menu-pill.menu-prod:hover>a,
.nav .menu>li.menu-pill.menu-prod:focus-within>a{
  background:linear-gradient(180deg,#fff8f6 0%,#f7e5df 100%);
}
.nav .menu>li.menu-pill.menu-sol>a::before{content:"◈"}
.nav .menu>li.menu-pill.menu-serv>a::before{content:"⚙"}
.nav .menu>li.menu-pill.menu-prod>a::before{content:"▦"}
.nav .menu>li.menu-pill.menu-team>a::before{content:"◌"}
.nav .menu>li.menu-pill.menu-pres>a::before{content:"◎"}
.nav .menu>li.menu-pill.menu-faq>a::before{content:"?"}
.nav .menu>li.menu-pill.menu-news>a::before{content:"✦"}
.nav .menu>li.menu-pill.menu-cnt>a::before{content:"✉"}
.nav .menu>li.menu-pill>a .menu-caret{display:none !important}
.nav .menu>li.menu-item-has-mega>a{padding-right:42px !important;justify-content:center;position:relative}
.nav .menu>li.menu-item-has-mega>a::after{content:"▾";position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:13px;font-weight:800;line-height:1;color:rgba(14,34,77,.76);text-shadow:0 1px 0 rgba(255,255,255,.92);transition:transform .22s ease,opacity .22s ease,color .22s ease;opacity:.88}
.nav .menu>li.menu-item-has-mega:hover>a::after,
.nav .menu>li.menu-item-has-mega:focus-within>a::after,
.nav .menu>li.menu-item-has-mega.dropdown-open>a::after{transform:translateY(-50%) rotate(180deg);opacity:1;color:var(--signal)}
@media(max-width:1024px){.nav .menu>li.menu-item-has-mega>a{padding-right:36px !important}.nav .menu>li.menu-item-has-mega>a::after{right:12px;font-size:12px}}

.nav .menu>li.menu-pill>a span,
.nav .menu>li.menu-pill>a{position:relative;z-index:1}

.mega-menu{
  width:min(1120px,calc(100vw - 56px)) !important;
  padding:20px !important;
  gap:14px !important;
  border-radius:20px !important;
  background:linear-gradient(180deg,rgba(255,255,255,.995) 0%,rgba(247,249,252,.985) 100%) !important;
  border:1px solid rgba(14,34,77,.08) !important;
  box-shadow:0 26px 70px rgba(14,34,77,.22) !important;
}
.mega-col{
  padding:14px !important;
  border-radius:16px !important;
  background:linear-gradient(180deg,#ffffff 0%,#f8fafc 100%) !important;
  border:1px solid rgba(14,34,77,.07) !important;
  box-shadow:0 10px 24px rgba(14,34,77,.06), inset 0 1px 0 rgba(255,255,255,.9);
}
.mega-head{
  margin-bottom:8px !important;
  padding:7px 2px 11px !important;
}
.mega-col>a:not(.mega-head){
  display:flex !important;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  padding:10px 12px !important;
  margin:6px 0 !important;
  border-radius:12px;
  border:1px solid rgba(14,34,77,.08) !important;
  background:linear-gradient(180deg,#ffffff 0%,#f5f8fc 100%) !important;
  box-shadow:0 6px 14px rgba(14,34,77,.05), inset 0 1px 0 rgba(255,255,255,.85);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
  text-decoration:none !important;
  cursor:pointer;
}
.mega-col>a:not(.mega-head)::after{
  content:"↗";
  color:var(--signal);
  font-weight:700;
  font-size:14px;
  opacity:.9;
  flex:0 0 auto;
}
.mega-col>a:not(.mega-head):hover,
.mega-col>a:not(.mega-head):focus-visible{
  transform:translateX(4px) translateY(-1px);
  border-color:rgba(228,61,48,.22) !important;
  background:linear-gradient(180deg,#ffffff 0%,#fff5f2 100%) !important;
  box-shadow:0 12px 22px rgba(14,34,77,.10), inset 0 1px 0 rgba(255,255,255,.95);
  color:var(--ink) !important;
}
@media(max-width:1280px){
  .nav .menu{gap:8px !important}
  .nav .menu>li.menu-pill>a{padding:9px 12px !important;font-size:14px}
}
@media(max-width:1024px){
  .nav .menu>li.menu-pill>a{background:transparent !important;box-shadow:none !important;border:none !important;border-radius:12px !important;padding:12px 0 !important}
  .nav .menu>li.menu-pill>a::before{width:20px;height:20px;font-size:11px}
  .mega-menu{padding:10px 0 0 !important;background:transparent !important;box-shadow:none !important;border:none !important}
  .mega-col{padding:10px 12px !important;background:rgba(255,255,255,.05) !important;border-color:rgba(255,255,255,.08) !important}
  .mega-col>a:not(.mega-head){background:rgba(255,255,255,.06) !important;border-color:rgba(255,255,255,.08) !important;box-shadow:none !important}
  .mega-col>a:not(.mega-head):hover{transform:none}
}


/* === V13 luxury industrial header === */
.topbar{
  position:relative;
  background:
    radial-gradient(circle at 18% 0%,rgba(228,61,48,.15),transparent 28%),
    linear-gradient(180deg,#142b5f 0%,#0c214d 100%) !important;
  box-shadow:inset 0 -1px 0 rgba(255,255,255,.06),0 8px 20px rgba(8,20,45,.16);
}
.topbar::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(228,61,48,.72),rgba(255,255,255,.14),transparent);
  opacity:.7;
}
.topbar .mono{color:rgba(255,255,255,.60) !important;text-shadow:0 1px 0 rgba(0,0,0,.18)}
.topbar .tb-dot{box-shadow:0 0 0 4px rgba(228,61,48,.10),0 0 12px rgba(228,61,48,.65)}

header{
  overflow:visible;
  background:
    radial-gradient(circle at 9% 25%,rgba(255,255,255,.92),transparent 19%),
    linear-gradient(180deg,#f8f5ec 0%,#eee8dc 100%) !important;
  border-bottom:1px solid rgba(14,34,77,.08) !important;
  box-shadow:0 12px 28px rgba(14,34,77,.08),inset 0 1px 0 rgba(255,255,255,.82);
}
header::before{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.95) 20%,rgba(255,255,255,.95) 80%,transparent);
  pointer-events:none;
}
header::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;
  background:linear-gradient(90deg,transparent 0%,rgba(228,61,48,.18) 18%,rgba(14,34,77,.16) 50%,rgba(228,61,48,.18) 82%,transparent 100%);
  opacity:.75;pointer-events:none;
}
header.scrolled{
  background:linear-gradient(180deg,rgba(248,245,236,.94) 0%,rgba(239,233,220,.92) 100%) !important;
  backdrop-filter:blur(18px) saturate(118%);
  -webkit-backdrop-filter:blur(18px) saturate(118%);
  box-shadow:0 16px 34px rgba(14,34,77,.12),inset 0 1px 0 rgba(255,255,255,.74) !important;
}
.nav{position:relative}
.nav::before{
  content:"";position:absolute;left:210px;right:275px;bottom:9px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(14,34,77,.08),transparent);
  pointer-events:none;
}
.logo{
  position:relative;
  padding:6px 10px 6px 0;
  border-radius:18px;
  transform-style:preserve-3d;
  transition:transform .28s ease,filter .28s ease;
}
.logo::after{
  content:"";position:absolute;left:10%;right:12%;bottom:2px;height:14px;border-radius:50%;
  background:radial-gradient(ellipse,rgba(14,34,77,.17) 0%,rgba(14,34,77,.06) 45%,transparent 72%);
  filter:blur(5px);transform:translateZ(-1px);pointer-events:none;
}
.logo:hover{transform:translateY(-2px) rotateX(1deg);filter:drop-shadow(0 7px 12px rgba(14,34,77,.10))}
.logo-svg-real,.transparent-logo{
  position:relative;z-index:2;
  filter:drop-shadow(0 7px 9px rgba(14,34,77,.13)) !important;
}

.nav .menu>li.menu-pill>a{
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}
.nav .menu>li.menu-pill>a::after{
  background:
    linear-gradient(180deg,rgba(255,255,255,.48) 0%,rgba(255,255,255,.13) 38%,rgba(255,255,255,0) 66%),
    linear-gradient(90deg,rgba(255,255,255,.0),rgba(255,255,255,.42),rgba(255,255,255,0));
  background-size:100% 100%,36% 100%;
  background-position:0 0,-70% 0;
  background-repeat:no-repeat;
  transition:background-position .65s ease;
}
.nav .menu>li.menu-pill>a:hover::after,
.nav .menu>li.menu-pill:hover>a::after,
.nav .menu>li.menu-pill:focus-within>a::after{background-position:0 0,160% 0}
.nav .menu>li.menu-pill>a::before{transition:transform .22s ease,box-shadow .22s ease,background .22s ease}
.nav .menu>li.menu-pill>a:hover::before,
.nav .menu>li.menu-pill:hover>a::before,
.nav .menu>li.menu-pill:focus-within>a::before{
  transform:translateY(-1px) scale(1.06);
  box-shadow:0 7px 14px rgba(14,34,77,.12),inset 0 1px 0 rgba(255,255,255,.95);
}

.nav-social a,.nav-cta .btn-sm{
  isolation:isolate;
}
.nav-social a::after,.nav-cta .btn-sm::after{
  content:"";position:absolute;left:12%;right:12%;bottom:-6px;height:10px;border-radius:50%;
  background:radial-gradient(ellipse,rgba(14,34,77,.18),transparent 70%);filter:blur(4px);z-index:-1;opacity:.62;transition:opacity .2s ease,transform .2s ease;
}
.nav-social a:hover::after,.nav-cta .btn-sm:hover::after{opacity:.92;transform:translateY(2px) scaleX(1.08)}
.nav-cta .btn-fill{letter-spacing:.015em}
.nav-cta .btn-fill svg{transition:transform .22s ease}.nav-cta .btn-fill:hover svg{transform:translateX(4px)}

.mega-menu{
  transform-origin:50% 0;
  box-shadow:0 30px 80px rgba(14,34,77,.24),0 8px 22px rgba(14,34,77,.08),inset 0 1px 0 rgba(255,255,255,.9) !important;
}
.mega-menu::before{
  content:"";position:absolute;left:42px;right:42px;top:0;height:2px;
  background:linear-gradient(90deg,transparent,rgba(228,61,48,.70),rgba(14,34,77,.28),transparent);
  border-radius:999px;pointer-events:none;
}
.mega-col{position:relative;overflow:hidden}
.mega-col::before{
  content:"";position:absolute;inset:0;background:radial-gradient(circle at 10% 0%,rgba(228,61,48,.045),transparent 36%);pointer-events:none;
}
.mega-col>a:not(.mega-head){position:relative;z-index:1}
.mega-col>a:not(.mega-head)::before{
  content:"" !important;position:absolute !important;left:0;top:0;bottom:0;width:3px !important;height:auto !important;
  border-radius:12px 0 0 12px;background:linear-gradient(180deg,var(--signal),#f28a74) !important;opacity:0;transform:scaleY(.35);transition:opacity .18s ease,transform .18s ease;
}
.mega-col>a:not(.mega-head):hover::before,.mega-col>a:not(.mega-head):focus-visible::before{opacity:1;transform:scaleY(.70)}

@media(max-width:1260px){
  .nav::before{display:none}
}
@media(max-width:1024px){
  header{background:linear-gradient(180deg,#f8f5ec 0%,#eee8dc 100%) !important}
  .nav::before,.logo::after{display:none}
  .logo{padding:0}
  .mega-menu::before{display:none}
}
@media(prefers-reduced-motion:reduce){
  .logo,.nav .menu>li.menu-pill>a,.nav-social a,.nav-cta .btn-sm,.mega-col>a{transition:none !important;transform:none !important}
}


/* ===== V15 · Responsive refinement for desktop / tablet / mobile ===== */
html{scroll-padding-top:120px}
body{overflow-x:hidden}
img,video,iframe{max-width:100%;height:auto}
.wrap{width:min(100%,1440px)}
.mobile-quick-links{display:none}
.mobile-quick-links .mq-title{font:700 11px/1 'JetBrains Mono',monospace;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.68)}
.mobile-quick-links .mq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.mobile-quick-links a{display:flex;align-items:center;justify-content:center;text-align:center;padding:12px 14px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:#fff;text-decoration:none;font:600 14px/1.2 Inter,sans-serif;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.mobile-quick-links a:hover{background:rgba(255,255,255,.1)}
@media (max-width:1280px){
  .nav{gap:12px !important}
  .logo-svg,.logo-svg-real{max-width:180px !important;height:auto !important}
}
@media (max-width:1024px){
  .topbar .wrap{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}
  .tb-left{display:flex;flex-wrap:wrap;gap:6px 12px;max-width:calc(100% - 92px)}
  #header .wrap{padding-left:16px !important;padding-right:16px !important}
  .nav{height:80px !important;gap:10px !important}
  .logo{margin-left:0 !important;min-width:0 !important}
  .logo-svg,.logo-svg-real{max-width:160px !important;height:auto !important}
  .menu{padding:92px 18px 28px !important}
  .menu li{width:100%}
  .menu a{white-space:normal !important}
  .nav-social,.nav-phone,.nav-cta>a.btn{display:none !important}
  .mobile-quick-links{display:block;width:100%;padding-top:16px;margin-top:14px;border-top:1px solid rgba(255,255,255,.12)}
}
@media (max-width:768px){
  .topbar{padding:8px 0 !important}
  .tb-left .mono:last-child{display:none}
  .nav{height:74px !important}
  .logo-svg,.logo-svg-real{max-width:146px !important}
  .menu{padding-top:82px !important}
  .mobile-quick-links .mq-grid{grid-template-columns:1fr}
}
@media (max-width:560px){
  .wrap{padding-left:16px !important;padding-right:16px !important}
  .langsw{gap:6px}
  .langsw button{padding:7px 10px !important}
}
table{display:block;overflow-x:auto;white-space:nowrap}


/* === V16 header cleanup + centered desktop layout === */
.wrap{width:min(100%,1680px)}
#header .wrap{padding-left:20px !important;padding-right:20px !important}
.nav{display:grid;grid-template-columns:auto 1fr auto;align-items:center;column-gap:12px;min-height:88px}
.logo{margin-left:0 !important;min-width:210px !important;justify-content:flex-start;padding-right:4px}
.logo-svg,.logo-svg-real{max-width:220px !important;height:auto !important}
.nav .menu{justify-content:center;gap:8px !important;min-width:0}
.nav .menu>li.menu-pill>a::before{display:none !important;content:none !important}
.nav .menu>li.menu-pill>a{padding:13px 22px !important;min-height:46px;font-size:15px !important}
.nav .menu>li.menu-pill>a .menu-caret{margin-left:6px}
.nav-cta{gap:8px !important}
.nav-phone{padding:11px 15px !important}
.nav-phone svg{display:none !important}
.nav-phone span::before{content:"Tél. ";color:var(--signal);font-weight:800;margin-right:4px}
.nav-cta .btn-fill svg{display:none !important}
@media (max-width:1480px){
  .logo{min-width:190px !important}
  .logo-svg,.logo-svg-real{max-width:190px !important}
  .nav .menu>li.menu-pill>a{padding:12px 18px !important;font-size:14px !important}
  .nav-phone{padding:10px 12px !important;font-size:12px !important}
}
@media (max-width:1280px){
  .wrap{width:min(100%,1500px)}
  .logo{min-width:172px !important}
  .logo-svg,.logo-svg-real{max-width:172px !important}
  .nav .menu>li.menu-pill>a{padding:11px 14px !important;font-size:13.5px !important}
  .nav-cta .btn-sm{padding:10px 14px !important;font-size:12.5px !important}
}
@media (max-width:1024px){
  .nav{display:flex !important;min-height:80px}
  .nav .menu>li.menu-pill>a{padding:12px 0 !important}
  .nav-phone span::before{content:""}
}

/* === V16 metiers pages === */
.metier-hero{background:linear-gradient(120deg,#0d2458 0%,#153a88 55%,#102852 100%);color:#fff;position:relative;overflow:hidden}
.metier-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at top right,rgba(255,255,255,.14),transparent 40%),linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:auto,40px 40px,40px 40px;opacity:.55;pointer-events:none}
.metier-hero .wrap{position:relative;z-index:1;padding-top:72px;padding-bottom:72px}
.metier-kicker{display:inline-flex;align-items:center;gap:10px;font:700 12px/1 JetBrains Mono,monospace;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.8)}
.metier-kicker::before{content:"";width:42px;height:2px;background:var(--signal);display:inline-block}
.metier-hero h1{margin:18px 0 16px;font:600 clamp(2.2rem,4vw,4.5rem)/1.02 Playfair Display,serif;max-width:12ch}
.metier-hero p{max-width:720px;font-size:clamp(1rem,1.3vw,1.15rem);line-height:1.75;color:rgba(255,255,255,.88)}
.metier-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px}
.metier-actions a{min-width:unset !important}
.metier-layout{padding:60px 0;background:#f6f4ef}
.metier-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:26px;align-items:start}
.metier-card,.metier-side-card,.metier-topic-card{background:#fff;border:1px solid rgba(14,34,77,.08);border-radius:26px;box-shadow:0 20px 50px rgba(14,34,77,.08)}
.metier-card{padding:28px}
.metier-card h2,.metier-side-card h3,.metier-topic-card h3{margin:0 0 14px;color:#102852}
.metier-card p,.metier-topic-card p,.metier-side-card p{color:#48556c;line-height:1.8}
.metier-points{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}
.metier-point{padding:16px 18px;border-radius:18px;background:#f7f9fc;border:1px solid rgba(14,34,77,.08)}
.metier-point b{display:block;color:#102852;margin-bottom:6px}
.metier-side-card{padding:22px}
.metier-side-card ul{padding-left:18px;margin:10px 0 0}
.metier-side-card li{margin:10px 0;color:#425066;line-height:1.6}
.metier-topics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:26px}
.metier-topic-card{padding:22px;display:flex;flex-direction:column;gap:14px}
.metier-topic-card .meta{font:700 11px/1 JetBrains Mono,monospace;letter-spacing:.18em;text-transform:uppercase;color:var(--signal)}
.metier-topic-card .topic-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto}
.metier-topic-card .topic-links a{font-size:13px;padding:10px 14px;border-radius:999px;background:#f7f9fc;border:1px solid rgba(14,34,77,.08);color:#102852;text-decoration:none}
.metier-body{padding:60px 0;background:#fff}
.metier-body .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:28px;align-items:start}
.metier-copy{background:#fff;border:1px solid rgba(14,34,77,.08);border-radius:26px;padding:28px;box-shadow:0 20px 50px rgba(14,34,77,.08)}
.metier-copy h2{margin:0 0 14px;color:#102852;font-size:1.9rem}
.metier-copy h3{margin:28px 0 10px;color:#102852;font-size:1.15rem}
.metier-copy p{color:#47536a;line-height:1.85;margin:0 0 14px}
.metier-copy ul{padding-left:20px;color:#47536a;line-height:1.75}
.metier-aside{display:grid;gap:18px}
.metier-aside .box{background:#f7f9fc;border:1px solid rgba(14,34,77,.08);border-radius:24px;padding:22px}
.metier-aside .box h3{margin:0 0 12px;color:#102852}
.metier-aside .box ul{padding-left:18px;margin:0}
.metier-aside .box li{margin:10px 0;color:#48556c;line-height:1.6}
.metier-faq{margin-top:24px;display:grid;gap:14px}
.metier-faq details{background:#fff;border:1px solid rgba(14,34,77,.08);border-radius:18px;padding:16px 18px}
.metier-faq summary{cursor:pointer;font-weight:700;color:#102852}
.metier-faq p{margin:10px 0 0;color:#48556c;line-height:1.75}
.metier-cta-band{padding:42px 0 68px;background:linear-gradient(180deg,#0f2c69 0%,#102852 100%);color:#fff}
.metier-cta-inner{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:28px;padding:28px}
.metier-cta-inner p{margin:0;max-width:720px;color:rgba(255,255,255,.84);line-height:1.7}
@media (max-width:1024px){
  .metier-grid,.metier-body .wrap{grid-template-columns:1fr}
  .metier-topics{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
  .metier-points,.metier-topics{grid-template-columns:1fr}
  .metier-hero .wrap,.metier-layout,.metier-body,.metier-cta-band{padding-top:48px;padding-bottom:48px}
  .metier-card,.metier-copy,.metier-side-card,.metier-topic-card{padding:22px}
}


/* === V17 SEO expansion === */
.seo-featured{padding:54px 0;background:linear-gradient(180deg,#f7f5ef 0%,#fff 100%)}
.seo-featured .head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}
.seo-featured .head h2{margin:0;color:#102852;font:600 clamp(2rem,3vw,3.4rem)/1.04 "Playfair Display",serif}
.seo-featured .head p{max-width:700px;margin:0;color:#5d6676;line-height:1.75}
.seo-feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.seo-feature-card{display:flex;flex-direction:column;gap:12px;padding:22px;border-radius:22px;background:#fff;border:1px solid rgba(14,34,77,.08);box-shadow:0 14px 36px rgba(14,34,77,.07);text-decoration:none;color:#102852;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.seo-feature-card:hover{transform:translateY(-4px);box-shadow:0 20px 44px rgba(14,34,77,.11);border-color:rgba(227,55,44,.22)}
.seo-feature-card .tag{font:700 10px/1 "JetBrains Mono",monospace;letter-spacing:.18em;text-transform:uppercase;color:var(--signal)}
.seo-feature-card h3{margin:0;font-size:1.08rem;line-height:1.35}
.seo-feature-card p{margin:0;color:#667086;line-height:1.6;font-size:.92rem}
.seo-feature-card .go{margin-top:auto;font-weight:700;color:var(--signal)}
.brand-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.brand-card{padding:22px;border-radius:22px;background:#fff;border:1px solid rgba(14,34,77,.08);box-shadow:0 14px 36px rgba(14,34,77,.07);text-decoration:none;color:#102852;display:flex;flex-direction:column;min-height:220px}
.brand-card .brand-logo{height:64px;display:flex;align-items:center;margin-bottom:14px}
.brand-card .brand-logo img{max-width:150px;max-height:58px;object-fit:contain}
.brand-card h3{margin:0 0 10px}
.brand-card p{margin:0;color:#5f6a7e;line-height:1.65}
.brand-card .go{margin-top:auto;padding-top:16px;color:var(--signal);font-weight:700}
.mega-menu.metiers-mega{grid-template-columns:repeat(4,minmax(0,1fr)) !important}
.mega-menu.metiers-mega .mega-col{min-height:100%}
@media(max-width:1180px){.seo-feature-grid,.brand-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mega-menu.metiers-mega{grid-template-columns:repeat(2,minmax(0,1fr)) !important}}
@media(max-width:720px){.seo-featured .head{align-items:flex-start;flex-direction:column}.seo-feature-grid,.brand-grid{grid-template-columns:1fr}.mega-menu.metiers-mega{grid-template-columns:1fr !important}}


/* === V18 compact desktop header + standards SEO === */
@media (min-width:1025px){
  .wrap{width:min(100%,1640px) !important}
  #header .wrap{padding-left:18px !important;padding-right:18px !important}
  .nav{grid-template-columns:auto 1fr auto !important;column-gap:10px !important;min-height:82px !important}
  .logo{min-width:178px !important;padding-right:2px !important}
  .logo-svg,.logo-svg-real{max-width:188px !important;height:auto !important}
  .nav .menu{gap:6px !important}
  .nav .menu>li.menu-pill>a{
    min-height:42px !important;
    padding:10px 17px !important;
    font-size:14px !important;
    border-radius:13px !important;
    box-shadow:0 8px 20px rgba(14,34,77,.08), inset 0 1px 0 rgba(255,255,255,.88) !important;
  }
  .nav .menu>li.menu-pill>a:hover,
  .nav .menu>li.menu-pill:hover>a,
  .nav .menu>li.menu-pill:focus-within>a{box-shadow:0 13px 24px rgba(14,34,77,.12), inset 0 1px 0 rgba(255,255,255,.95) !important}
  .nav-cta{gap:7px !important}
  .nav-social a{width:34px !important;height:34px !important;border-radius:11px !important}
  .nav-social img{width:19px !important;height:19px !important}
  .nav-phone{padding:9px 12px !important;min-height:42px !important;border-radius:999px !important;font-size:12.5px !important;white-space:nowrap}
  .nav-cta .btn-sm{min-height:42px !important;padding:10px 13px !important;font-size:12.75px !important;border-radius:13px !important}
}
@media (min-width:1025px) and (max-width:1540px){
  .logo{min-width:166px !important}
  .logo-svg,.logo-svg-real{max-width:176px !important}
  .nav .menu>li.menu-pill>a{padding:9px 14px !important;font-size:13.5px !important}
  .nav-phone{padding:8px 10px !important;font-size:12px !important}
  .nav-cta .btn-sm{padding:9px 11px !important;font-size:12px !important}
}
@media (min-width:1025px) and (max-width:1380px){
  .nav .menu{gap:5px !important}
  .nav .menu>li.menu-pill>a{padding:8px 12px !important;font-size:13px !important}
  .nav-cta{gap:6px !important}
  .nav-phone{padding:8px 9px !important;font-size:11.5px !important}
}

.metier-standards{margin:34px 0 26px;padding:26px;border-radius:24px;background:linear-gradient(180deg,#f7fafc 0%,#f2f6fb 100%);border:1px solid rgba(14,34,77,.09);box-shadow:0 16px 34px rgba(14,34,77,.07)}
.metier-standards h3{margin:0 0 10px;color:#102852;font-size:1.35rem}
.metier-standards-intro{margin:0 0 18px;color:#5c6678;line-height:1.75}
.metier-standards-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.metier-standard{padding:16px 18px;border-radius:18px;background:#fff;border:1px solid rgba(14,34,77,.08);box-shadow:0 10px 22px rgba(14,34,77,.05)}
.metier-standard b{display:block;color:#102852;font-size:1rem;margin-bottom:6px}
.metier-standard p{margin:0;color:#556175;line-height:1.68;font-size:.95rem}
.metier-standards-note{margin-top:18px;padding:14px 16px;border-radius:16px;background:rgba(16,40,82,.04);border:1px dashed rgba(16,40,82,.14);color:#5f6a7d;line-height:1.7;font-size:.95rem}
@media(max-width:760px){.metier-standards-grid{grid-template-columns:1fr}.metier-standards{padding:20px}}


/* === V19: more compact desktop header === */
@media (min-width:1025px){
  .wrap{width:min(100%,1700px) !important}
  #header .wrap{padding-left:14px !important;padding-right:14px !important}
  .nav{column-gap:8px !important;min-height:78px !important}
  .logo{min-width:162px !important}
  .logo-svg,.logo-svg-real{max-width:172px !important}
  .nav .menu{gap:5px !important}
  .nav .menu>li.menu-pill>a{min-height:40px !important;padding:8px 13px !important;font-size:13.25px !important;border-radius:12px !important}
  .nav-social a{width:32px !important;height:32px !important;border-radius:10px !important}
  .nav-social img{width:18px !important;height:18px !important}
  .nav-phone{min-height:40px !important;padding:8px 10px !important;font-size:11.75px !important}
  .nav-cta .btn-sm{min-height:40px !important;padding:8px 11px !important;font-size:11.75px !important}
}
@media (min-width:1025px) and (max-width:1460px){
  .logo{min-width:150px !important}.logo-svg,.logo-svg-real{max-width:158px !important}
  .nav .menu>li.menu-pill>a{padding:8px 10px !important;font-size:12.5px !important}
  .nav-phone{font-size:11.25px !important;padding:8px 9px !important}
  .nav-cta .btn-sm{font-size:11.25px !important;padding:8px 9px !important}
}
.seo-hub-hero{padding:72px 0 64px;background:radial-gradient(circle at 85% 15%,rgba(228,61,48,.14),transparent 28%),linear-gradient(120deg,#0d2458 0%,#173d89 58%,#102852 100%);color:#fff}
.seo-hub-hero .eyebrow{font:700 11px/1 'JetBrains Mono',monospace;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.seo-hub-hero h1{margin:16px 0 16px;font:600 clamp(2.3rem,4vw,4.6rem)/1.02 'Playfair Display',serif;max-width:14ch}
.seo-hub-hero p{max-width:780px;margin:0;color:rgba(255,255,255,.87);line-height:1.8;font-size:1.05rem}
.seo-hub-body{padding:56px 0 72px;background:#f6f4ef}
.seo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.seo-card{padding:22px;border-radius:22px;background:#fff;border:1px solid rgba(14,34,77,.08);box-shadow:0 14px 34px rgba(14,34,77,.07);display:flex;flex-direction:column;gap:12px;text-decoration:none;color:#102852;transition:.2s}
.seo-card:hover{transform:translateY(-4px);box-shadow:0 20px 44px rgba(14,34,77,.11);border-color:rgba(228,61,48,.2)}
.seo-card .tag{font:700 10px/1 'JetBrains Mono',monospace;letter-spacing:.17em;text-transform:uppercase;color:var(--signal)}
.seo-card h3{margin:0;font-size:1.08rem;line-height:1.35}.seo-card p{margin:0;color:#606b80;line-height:1.65;font-size:.94rem}.seo-card .go{margin-top:auto;color:var(--signal);font-weight:700}
.norm-hero{padding:70px 0 62px;background:linear-gradient(120deg,#102852 0%,#173f8e 58%,#0c234f 100%);color:#fff}
.norm-hero .norm-code{font:700 12px/1 'JetBrains Mono',monospace;letter-spacing:.2em;text-transform:uppercase;color:#ff8c82}
.norm-hero h1{margin:16px 0 14px;font:600 clamp(2.2rem,4vw,4.2rem)/1.02 'Playfair Display',serif;max-width:14ch}.norm-hero p{max-width:820px;color:rgba(255,255,255,.86);line-height:1.8}
.norm-body{padding:54px 0 70px;background:#f6f4ef}.norm-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:24px;align-items:start}
.norm-main,.norm-aside .box{background:#fff;border:1px solid rgba(14,34,77,.08);border-radius:24px;box-shadow:0 16px 40px rgba(14,34,77,.07)}.norm-main{padding:28px}
.norm-main h2{margin:0 0 14px;color:#102852}.norm-main h3{margin:28px 0 10px;color:#102852}.norm-main p,.norm-main li,.norm-aside p,.norm-aside li{color:#536078;line-height:1.8}
.norm-aside{display:grid;gap:16px}.norm-aside .box{padding:22px}.norm-aside h3{margin:0 0 12px;color:#102852}
.norm-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.norm-meta div{padding:14px;border-radius:16px;background:#f7f9fc;border:1px solid rgba(14,34,77,.07)}.norm-meta b{display:block;margin-bottom:4px;color:#102852}
.norm-warning{margin-top:20px;padding:15px 17px;border-radius:16px;background:#fff7f5;border:1px solid rgba(228,61,48,.14);color:#66514d;line-height:1.7}
.faq-seo-page{padding:54px 0 72px;background:#f6f4ef}.faq-seo-grid{display:grid;grid-template-columns:1fr .38fr;gap:24px;align-items:start}
.faq-seo-main{background:#fff;border:1px solid rgba(14,34,77,.08);border-radius:24px;padding:28px;box-shadow:0 16px 40px rgba(14,34,77,.07)}.faq-seo-main h2{margin:0 0 18px;color:#102852}
.faq-seo-main details{border:1px solid rgba(14,34,77,.08);border-radius:17px;padding:16px 18px;margin:12px 0;background:#fbfcfe}.faq-seo-main summary{font-weight:700;color:#102852;cursor:pointer;line-height:1.45}.faq-seo-main details p{margin:10px 0 0;color:#59667d;line-height:1.8}
.faq-seo-side{display:grid;gap:16px}.faq-seo-side .box{background:#fff;border:1px solid rgba(14,34,77,.08);border-radius:22px;padding:20px;box-shadow:0 14px 34px rgba(14,34,77,.06)}.faq-seo-side h3{margin:0 0 10px;color:#102852}.faq-seo-side a{display:block;padding:9px 0;color:#173d89;text-decoration:none;border-bottom:1px solid rgba(14,34,77,.06)}
@media(max-width:1050px){.seo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.norm-layout,.faq-seo-grid{grid-template-columns:1fr}}
@media(max-width:680px){.seo-grid{grid-template-columns:1fr}}


/* === V20 · REECO / RENEX — ONLY MAROC === */
.maroc-only-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  margin-left:8px;
  padding:4px 8px;
  border-radius:999px;
  background:linear-gradient(180deg,#e9272e 0%,#c9141b 100%);
  color:#fff !important;
  border:1px solid rgba(138,0,7,.30);
  box-shadow:0 5px 12px rgba(201,20,27,.22), inset 0 1px 0 rgba(255,255,255,.24);
  font:800 9px/1 'JetBrains Mono',monospace;
  letter-spacing:.10em;
  text-transform:uppercase;
  white-space:nowrap;
  vertical-align:middle;
}
.maroc-only-badge::before{
  content:"🇲🇦";
  font-size:11px;
  line-height:1;
}
.mega-col a .maroc-only-badge,
.pw-name .maroc-only-badge,
.ps-slide-supplier-name .maroc-only-badge{
  margin-left:6px;
  padding:3px 6px;
  font-size:8px;
}
.lp2026-kicker .maroc-only-badge{
  margin-left:10px;
}
@media(max-width:680px){
  .maroc-only-badge{font-size:8px;padding:4px 7px;margin-left:6px}
}


/* === V21 · customer-facing knowledge content + DCT selection guide === */
.dct-guide{padding:58px 0;background:#f6f4ef}
.dct-guide-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}
.dct-guide-head h2{margin:0;color:#102852;font:600 clamp(2rem,3vw,3.2rem)/1.04 'Playfair Display',serif}
.dct-guide-head p{max-width:760px;margin:0;color:#5e687a;line-height:1.75}
.dct-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.dct-choice{padding:20px;border-radius:20px;background:#fff;border:1px solid rgba(14,34,77,.08);box-shadow:0 12px 30px rgba(14,34,77,.06)}
.dct-choice .dct-tag{font:700 10px/1 'JetBrains Mono',monospace;letter-spacing:.16em;text-transform:uppercase;color:#d9272e;margin-bottom:9px}
.dct-choice h3{margin:0 0 8px;color:#102852;font-size:1.06rem}
.dct-choice p{margin:0;color:#5c687c;line-height:1.65;font-size:.94rem}
.dct-table-wrap{margin-top:24px;overflow-x:auto;border-radius:20px;border:1px solid rgba(14,34,77,.08);box-shadow:0 12px 30px rgba(14,34,77,.06)}
.dct-table{width:100%;border-collapse:collapse;background:#fff;min-width:940px}
.dct-table th{padding:14px 15px;text-align:left;background:#102852;color:#fff;font-size:12px;letter-spacing:.04em}
.dct-table td{padding:14px 15px;border-top:1px solid rgba(14,34,77,.07);vertical-align:top;color:#526078;line-height:1.55;font-size:13px}
.dct-table tr:nth-child(even) td{background:#fafbfd}
.dct-table strong{color:#102852}
.dct-use{margin-top:24px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.dct-step{padding:18px;border-radius:18px;background:#fff;border:1px solid rgba(14,34,77,.08)}
.dct-step span{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#d9272e;color:#fff;font-weight:800;margin-bottom:10px}
.dct-step h3{margin:0 0 7px;color:#102852;font-size:1rem}
.dct-step p{margin:0;color:#5c687c;line-height:1.62;font-size:.92rem}
.dct-warning{margin-top:20px;padding:16px 18px;border-radius:16px;background:#fff7f5;border:1px solid rgba(217,39,46,.15);color:#644f4c;line-height:1.7}
.customer-note{padding:18px 20px;border-radius:18px;background:#f7f9fc;border:1px solid rgba(14,34,77,.08);color:#536078;line-height:1.72}
@media(max-width:1050px){.dct-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dct-use{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.dct-guide-head{align-items:flex-start;flex-direction:column}.dct-choice-grid,.dct-use{grid-template-columns:1fr}}


/* === V23 · services, complete brands, local SEO === */
.service-grid-v23{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.service-card-v23{display:flex;flex-direction:column;gap:12px;padding:24px;border-radius:22px;background:#fff;border:1px solid rgba(14,34,77,.08);box-shadow:0 14px 36px rgba(14,34,77,.07);text-decoration:none;color:#102852;transition:.2s}
.service-card-v23:hover{transform:translateY(-4px);border-color:rgba(225,31,31,.2);box-shadow:0 20px 44px rgba(14,34,77,.11)}
.service-card-v23 .idx{font:700 10px/1 'JetBrains Mono',monospace;letter-spacing:.18em;text-transform:uppercase;color:var(--signal)}
.service-card-v23 h3{margin:0;font-size:1.16rem;line-height:1.35}.service-card-v23 p{margin:0;color:#5f6a7d;line-height:1.68}
.service-card-v23 .go{margin-top:auto;color:var(--signal);font-weight:800}
.public-guide{padding:24px;border-radius:22px;background:#fff;border:1px solid rgba(14,34,77,.08);box-shadow:0 14px 36px rgba(14,34,77,.07)}
.public-guide h2,.public-guide h3{color:#102852}.public-guide p,.public-guide li{color:#536078;line-height:1.78}
.public-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:20px 0}
.public-guide-item{padding:16px 18px;border-radius:17px;background:#f7f9fc;border:1px solid rgba(14,34,77,.07)}
.public-guide-item b{display:block;color:#102852;margin-bottom:5px}
.local-proof-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:22px}
.local-proof{padding:18px;border-radius:18px;background:#fff;border:1px solid rgba(14,34,77,.08);box-shadow:0 12px 28px rgba(14,34,77,.06)}
.local-proof b{display:block;color:#102852;margin-bottom:6px}.local-proof span{color:#5d697d;line-height:1.6}
.brand-grid-v23{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.brand-card-v23{padding:20px;border-radius:21px;background:#fff;border:1px solid rgba(14,34,77,.08);box-shadow:0 12px 32px rgba(14,34,77,.06);text-decoration:none;color:#102852;display:flex;flex-direction:column;min-height:210px}
.brand-card-v23:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(14,34,77,.10)}
.brand-card-v23 .brand-logo{height:62px;display:flex;align-items:center;margin-bottom:12px}.brand-card-v23 .brand-logo img{max-width:150px;max-height:56px;object-fit:contain}
.brand-card-v23 h3{margin:0 0 8px;font-size:1.05rem}.brand-card-v23 p{margin:0;color:#627086;line-height:1.58;font-size:.91rem}.brand-card-v23 .go{margin-top:auto;padding-top:14px;color:var(--signal);font-weight:800}
@media(max-width:1100px){.service-grid-v23,.brand-grid-v23{grid-template-columns:repeat(2,minmax(0,1fr))}.local-proof-grid{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.service-grid-v23,.brand-grid-v23,.public-guide-grid,.local-proof-grid{grid-template-columns:1fr}}


/* === V24 simple vertical dropdown menus (desktop) === */
@media (min-width: 1025px){
  .menu>li.menu-item-has-mega{position:relative}
  .menu>li.menu-item-has-mega>.mega-menu,
  .menu>li.menu-item-has-mega>.mega-menu.metiers-mega{
    left:0 !important;
    right:auto !important;
    top:calc(100% + 10px) !important;
    transform:translateY(10px) !important;
    width:360px !important;
    max-width:min(360px, calc(100vw - 32px)) !important;
    max-height:72vh !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    padding:14px !important;
    border-radius:18px !important;
    background:rgba(255,255,255,.985) !important;
    border:1px solid rgba(14,34,77,.10) !important;
    box-shadow:0 24px 60px rgba(14,34,77,.18) !important;
    backdrop-filter:blur(14px) !important;
  }
  .menu>li.menu-item-has-mega:hover>.mega-menu,
  .menu>li.menu-item-has-mega:focus-within>.mega-menu{
    transform:translateY(0) !important;
  }
  .mega-menu::before{display:none !important}
  .mega-menu .mega-col{
    min-height:auto !important;
    padding:10px 10px 12px !important;
    border-radius:14px !important;
    background:linear-gradient(180deg,#fbfcff 0%,#f7f9fc 100%) !important;
    border:1px solid rgba(14,34,77,.06) !important;
    box-shadow:none !important;
  }
  .mega-menu .mega-head{
    margin:0 0 8px !important;
    padding:6px 2px 10px !important;
    font-size:11px !important;
    line-height:1.3 !important;
    border-bottom:1px solid rgba(228,61,48,.16) !important;
    color:var(--signal) !important;
  }
  .mega-menu .mega-col > a:not(.mega-head){
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:10px !important;
    margin:0 0 8px !important;
    padding:11px 14px !important;
    font-size:14px !important;
    line-height:1.35 !important;
    white-space:normal !important;
    border:1px solid rgba(14,34,77,.08) !important;
    border-radius:14px !important;
    background:#fff !important;
    color:var(--ink) !important;
    box-shadow:0 4px 14px rgba(14,34,77,.06) !important;
  }
  .mega-menu .mega-col > a:not(.mega-head):last-child{margin-bottom:0 !important}
  .mega-menu .mega-col > a:not(.mega-head)::after{
    content:'↗' !important;
    display:inline-block !important;
    flex:0 0 auto !important;
    color:var(--signal) !important;
    font-weight:700 !important;
  }
  .mega-menu .mega-col > a:not(.mega-head)::before{display:none !important}
  .mega-menu .mega-col > a:not(.mega-head):hover,
  .mega-menu .mega-col > a:not(.mega-head):focus-visible{
    transform:translateY(-1px) !important;
    border-color:rgba(228,61,48,.26) !important;
    box-shadow:0 10px 22px rgba(14,34,77,.10) !important;
    color:var(--signal) !important;
  }
  .mega-menu .mega-all-link{display:none !important}
}



/* === V25: dropdown only, fully vertical stacked rows === */
@media (min-width:1025px){
  .menu>li.menu-item-has-mega{position:relative !important}
  .menu>li.menu-item-has-mega>.mega-menu,
  .menu>li.menu-item-has-mega>.mega-menu.metiers-mega{
    position:absolute !important;
    left:0 !important;
    right:auto !important;
    top:calc(100% + 8px) !important;
    transform:translateY(8px) !important;
    width:390px !important;
    max-width:min(390px,calc(100vw - 28px)) !important;
    max-height:76vh !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    display:flex !important;
    flex-direction:column !important;
    flex-wrap:nowrap !important;
    align-items:stretch !important;
    gap:8px !important;
    padding:12px !important;
    margin:0 !important;
    background:#fff !important;
    border:1px solid rgba(14,34,77,.10) !important;
    border-radius:18px !important;
    box-shadow:0 24px 60px rgba(14,34,77,.18) !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    z-index:3000 !important;
  }
  .menu>li.menu-item-has-mega.dropdown-open>.mega-menu,
  .menu>li.menu-item-has-mega:focus-within>.mega-menu{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:translateY(0) !important;
  }
  /* disable hover-only mega expansion: click is primary */
  .menu>li.menu-item-has-mega:hover>.mega-menu:not(:hover){
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
  .mega-menu::before{display:none !important}
  .mega-menu .mega-col{
    display:flex !important;
    flex-direction:column !important;
    flex:0 0 auto !important;
    width:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    overflow:visible !important;
  }
  .mega-menu .mega-head{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    width:100% !important;
    margin:6px 0 4px !important;
    padding:10px 12px !important;
    border-radius:12px !important;
    border:0 !important;
    background:#f2f5fa !important;
    color:var(--signal) !important;
    font:700 10.5px/1.3 'JetBrains Mono',monospace !important;
    letter-spacing:.12em !important;
    text-transform:uppercase !important;
    pointer-events:none !important;
  }
  .mega-menu .mega-head b{display:none !important}
  .mega-menu .mega-col>a:not(.mega-head),
  .mega-menu>a.mega-all-link{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    width:100% !important;
    min-height:43px !important;
    margin:0 0 5px !important;
    padding:10px 13px !important;
    border:1px solid rgba(14,34,77,.08) !important;
    border-radius:12px !important;
    background:#fff !important;
    color:var(--ink) !important;
    font:500 13px/1.35 'Inter',sans-serif !important;
    text-decoration:none !important;
    white-space:normal !important;
    box-shadow:0 3px 10px rgba(14,34,77,.05) !important;
  }
  .mega-menu .mega-col>a:not(.mega-head)::before{display:none !important}
  .mega-menu .mega-col>a:not(.mega-head)::after{
    content:'›' !important;
    display:block !important;
    color:var(--signal) !important;
    font-size:18px !important;
    line-height:1 !important;
    flex:0 0 auto !important;
  }
  .mega-menu .mega-col>a:not(.mega-head):hover,
  .mega-menu .mega-col>a:not(.mega-head):focus-visible{
    color:var(--signal) !important;
    border-color:rgba(228,61,48,.25) !important;
    background:#fffafa !important;
    transform:none !important;
  }
  .mega-menu>a.mega-all-link{display:none !important}
}
@media(max-width:1024px){
  .menu-item-has-mega>.mega-menu{display:flex !important;flex-direction:column !important;gap:8px !important}
  .mega-menu .mega-col{display:flex !important;flex-direction:column !important}
}



/* === V26 · phone moved to top navy bar === */
.topbar .tb-right{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-left:auto}
.top-phone{display:inline-flex;align-items:center;gap:8px;color:#fff;text-decoration:none;font-size:12px;font-weight:800;letter-spacing:.035em;white-space:nowrap;padding:5px 8px;border-radius:10px;transition:background .2s ease,color .2s ease}
.top-phone svg{width:15px;height:15px;stroke:#fff;flex:0 0 auto}
.top-phone:hover{color:#fff;background:rgba(255,255,255,.08)}
@media(min-width:1025px){
  .nav{grid-template-columns:auto 1fr auto !important}
  .nav-cta{gap:7px !important}
}
@media(max-width:1024px){
  .topbar .wrap{align-items:center !important}
  .topbar .tb-right{gap:8px}
  .top-phone{font-size:11px;padding:4px 6px}
}
@media(max-width:700px){
  .top-phone span{display:none}
  .top-phone{padding:5px}
  .top-phone svg{width:16px;height:16px}
  .topbar .tb-right{gap:5px}
}


/* === V27 · Partner logos premium + REECO configurator === */
.pw-cell{
  min-height:172px !important;
  padding:26px 18px !important;
  border-radius:16px !important;
  background:linear-gradient(145deg,#ffffff 0%,#fbfcff 58%,#f2f5fb 100%) !important;
  border:1px solid rgba(18,43,91,.10) !important;
  box-shadow:0 14px 30px rgba(14,34,77,.08), inset 0 1px 0 rgba(255,255,255,.96) !important;
  transform-style:preserve-3d;
}
.pw-cell::before{
  content:'';position:absolute;inset:8px;border-radius:12px;pointer-events:none;
  background:linear-gradient(145deg,rgba(255,255,255,.74),rgba(255,255,255,0) 44%);
  border:1px solid rgba(255,255,255,.7);
}
.pw-cell:hover{
  transform:translateY(-7px) perspective(700px) rotateX(1.5deg) !important;
  box-shadow:0 24px 46px rgba(14,34,77,.15), inset 0 1px 0 rgba(255,255,255,1) !important;
}
.pw-cell img{
  height:76px !important;width:auto !important;max-width:195px !important;object-fit:contain !important;
  filter:drop-shadow(0 8px 9px rgba(13,34,77,.18)) !important;
  transform:translateZ(12px);
}
.pw-cell:hover img.loaded{transform:translateZ(18px) scale(1.10) !important}
.pw-meta{margin-top:12px !important;position:relative;z-index:2}

.reeco-config-btn{
  position:relative;overflow:hidden;
  background:linear-gradient(180deg,#e22a32 0%,#b90913 100%) !important;
  color:#fff !important;border:1px solid rgba(122,0,7,.38) !important;
  box-shadow:0 10px 24px rgba(203,15,25,.28), inset 0 1px 0 rgba(255,255,255,.26) !important;
  animation:reecoConfigPulse 1.5s ease-in-out infinite;
}
.reeco-config-btn::after{
  content:'';position:absolute;top:-40%;left:-30%;width:24%;height:180%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.62),transparent);
  transform:rotate(18deg);animation:reecoConfigShine 2.1s linear infinite;
}
.reeco-config-btn:hover{animation:none;transform:translateY(-2px) scale(1.025) !important}
@keyframes reecoConfigPulse{0%,100%{box-shadow:0 10px 24px rgba(203,15,25,.26),0 0 0 0 rgba(226,42,50,.38)}50%{box-shadow:0 13px 28px rgba(203,15,25,.34),0 0 0 8px rgba(226,42,50,0)}}
@keyframes reecoConfigShine{0%{left:-35%}55%,100%{left:120%}}
@media(max-width:760px){.pw-cell img{height:64px !important;max-width:170px !important}.pw-cell{min-height:154px !important}}


/* === V28 · clean 3D partner logo only in product cards === */
.ps-slide-supplier.ps-slide-supplier-logo-only{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:max-content !important;
  min-width:190px !important;
  max-width:100% !important;
  min-height:82px !important;
  padding:13px 22px !important;
  margin:4px 0 25px !important;
  border:1px solid rgba(14,34,77,.09) !important;
  border-radius:18px !important;
  background:linear-gradient(145deg,#ffffff 0%,#f8fafe 64%,#eef2f7 100%) !important;
  box-shadow:0 13px 25px rgba(14,34,77,.11),0 3px 6px rgba(14,34,77,.05),inset 0 1px 0 rgba(255,255,255,.98) !important;
  transform:perspective(700px) rotateX(1.5deg) rotateY(-1deg) !important;
  overflow:visible !important;
}
.ps-slide-supplier.ps-slide-supplier-logo-only::before{
  content:'';
  position:absolute;
  inset:1px;
  border-radius:17px;
  background:linear-gradient(115deg,rgba(255,255,255,.62),transparent 42%,rgba(255,255,255,.22));
  pointer-events:none;
}
.ps-slide-supplier-logo-only .ps-supplier-logo{
  position:relative !important;
  z-index:1 !important;
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:205px !important;
  max-height:62px !important;
  margin:0 !important;
  padding:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  object-fit:contain !important;
  filter:drop-shadow(0 7px 8px rgba(14,34,77,.20)) contrast(1.06) saturate(1.05) !important;
  transform:translateZ(18px) !important;
}
.ps-slide-supplier-logo-only:hover{
  transform:perspective(700px) rotateX(0deg) rotateY(0deg) translateY(-2px) !important;
  box-shadow:0 17px 32px rgba(14,34,77,.14),0 4px 8px rgba(14,34,77,.06),inset 0 1px 0 rgba(255,255,255,1) !important;
}
.ps-slide-supplier-logo-only:hover .ps-supplier-logo{
  filter:drop-shadow(0 9px 10px rgba(14,34,77,.24)) contrast(1.08) saturate(1.08) !important;
}
@media(max-width:640px){
  .ps-slide-supplier.ps-slide-supplier-logo-only{min-width:160px !important;min-height:72px !important;padding:11px 17px !important}
  .ps-slide-supplier-logo-only .ps-supplier-logo{max-width:175px !important;max-height:54px !important}
}



/* === V29 wrapping / Transition article / 2LIFT configurator === */
.v29-hero{padding:62px 0;background:linear-gradient(135deg,#0d2454 0%,#183e89 62%,#0e285f 100%);color:#fff;overflow:hidden}
.v29-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:38px;align-items:center}.v29-kicker{font:700 11px/1 'JetBrains Mono',monospace;letter-spacing:.19em;text-transform:uppercase;color:#ff8178}.v29-hero h1{margin:14px 0 18px;font:600 clamp(2.4rem,4.2vw,4.8rem)/1.02 'Playfair Display',serif}.v29-hero p{max-width:720px;color:rgba(255,255,255,.87);line-height:1.75;font-size:1.05rem}.v29-hero-visual{border-radius:28px;overflow:hidden;background:#fff;box-shadow:0 28px 70px rgba(0,0,0,.26);transform:perspective(1200px) rotateY(-4deg) rotateX(1deg)}.v29-hero-visual img{display:block;width:100%;height:430px;object-fit:cover}
.v29-section{padding:56px 0;background:#f7f5ef}.v29-section.white{background:#fff}.v29-section h2{margin:0 0 14px;color:#102852;font:600 clamp(2rem,3vw,3.15rem)/1.05 'Playfair Display',serif}.v29-lead{max-width:850px;margin:0 0 26px;color:#5d697c;line-height:1.78}.v29-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.v29-card{padding:21px;border-radius:21px;background:#fff;border:1px solid rgba(14,34,77,.08);box-shadow:0 13px 32px rgba(14,34,77,.07)}.v29-card .tag{font:700 10px/1 'JetBrains Mono',monospace;letter-spacing:.15em;text-transform:uppercase;color:var(--signal)}.v29-card h3{margin:9px 0 8px;color:#102852;font-size:1.06rem}.v29-card p,.v29-card li{color:#5c687c;line-height:1.65;font-size:.94rem}.v29-card ul{padding-left:18px;margin:8px 0 0}.v29-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.v29-gallery figure{margin:0;padding:12px;border-radius:22px;background:#fff;border:1px solid rgba(14,34,77,.08);box-shadow:0 14px 34px rgba(14,34,77,.06)}.v29-gallery img{width:100%;height:420px;object-fit:contain;border-radius:14px;background:#fff}.v29-gallery figcaption{padding:10px 6px 4px;color:#102852;font-weight:700}.v29-callout{margin-top:22px;padding:18px 20px;border-radius:18px;background:#102852;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:18px}.v29-callout p{margin:0;color:rgba(255,255,255,.82);line-height:1.65}.v29-article-image{width:100%;border-radius:24px;box-shadow:0 18px 44px rgba(14,34,77,.10);border:1px solid rgba(14,34,77,.08)}
.v29-pulse{position:relative;overflow:hidden;box-shadow:0 0 0 0 rgba(232,49,39,.55);animation:v29pulse 1.8s infinite}.v29-pulse:before{content:'';position:absolute;inset:-40%;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.30) 48%,transparent 66%);transform:translateX(-70%);animation:v29shine 2.8s infinite}@keyframes v29pulse{0%{box-shadow:0 0 0 0 rgba(232,49,39,.45)}70%{box-shadow:0 0 0 13px rgba(232,49,39,0)}100%{box-shadow:0 0 0 0 rgba(232,49,39,0)}}@keyframes v29shine{0%{transform:translateX(-80%)}60%,100%{transform:translateX(80%)}}
/* Configurator */
.lift-app{padding:36px 0 70px;background:#f4f5f8}.lift-shell{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:22px;align-items:start}.lift-form,.lift-summary{background:#fff;border:1px solid rgba(14,34,77,.08);border-radius:25px;box-shadow:0 15px 40px rgba(14,34,77,.08)}.lift-form{padding:26px}.lift-summary{position:sticky;top:112px;padding:22px}.lift-form h2{margin:0 0 18px;color:#102852}.lift-step{margin:0 0 20px;padding:20px;border-radius:20px;background:#fafbfd;border:1px solid rgba(14,34,77,.07)}.lift-step h3{margin:0 0 14px;color:#102852}.lift-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.lift-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.lift-field{display:flex;flex-direction:column;gap:6px}.lift-field.full{grid-column:1/-1}.lift-field label{font-size:12px;font-weight:700;color:#33435f}.lift-field input,.lift-field select,.lift-field textarea{width:100%;border:1px solid #d7deea;border-radius:12px;background:#fff;padding:11px 12px;color:#102852;font:500 14px/1.35 Inter,sans-serif;outline:none}.lift-field textarea{min-height:86px;resize:vertical}.lift-field input:focus,.lift-field select:focus,.lift-field textarea:focus{border-color:#5976aa;box-shadow:0 0 0 3px rgba(33,71,132,.08)}.lift-checks{display:flex;flex-wrap:wrap;gap:9px}.lift-check{display:flex;align-items:center;gap:7px;padding:9px 11px;border-radius:11px;background:#fff;border:1px solid #dfe4ed;font-size:13px;color:#33435f}.lift-check input{accent-color:#e43127}.lift-summary h2{margin:0 0 12px;color:#102852}.lift-summary-card{padding:15px;border-radius:16px;background:#f7f9fc;border:1px solid rgba(14,34,77,.07);margin-bottom:12px}.lift-summary-card b{display:block;color:#102852;margin-bottom:5px}.lift-summary-card p,.lift-summary-card li{margin:0;color:#58667d;line-height:1.58;font-size:13px}.lift-summary-card ul{margin:6px 0 0;padding-left:18px}.lift-actions{display:grid;gap:10px;margin-top:15px}.lift-actions button,.lift-actions a{width:100%;text-align:center}.lift-ref{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.lift-ref img{width:100%;border-radius:16px;border:1px solid rgba(14,34,77,.08)}.lift-internal{display:inline-flex;padding:6px 9px;border-radius:999px;background:#fff1ef;color:#c5241c;font:800 10px/1 'JetBrains Mono',monospace;letter-spacing:.1em;text-transform:uppercase}
@media(max-width:980px){.v29-hero-grid,.lift-shell{grid-template-columns:1fr}.lift-summary{position:static}.v29-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.v29-hero-visual img{height:360px}}
@media(max-width:680px){.v29-cards,.v29-gallery,.lift-grid,.lift-grid.three,.lift-ref{grid-template-columns:1fr}.v29-gallery img{height:auto}.v29-callout{align-items:flex-start;flex-direction:column}}
