/* ============================================================
   LTH Maroc — NewDesign — direction "premium produit" (Apple-like)
   Principes : typographie massive, photo dominante, silence visuel,
   couleur restreinte (noir/blanc + rouge en accent rare), mouvement discret.
   ============================================================ */

@font-face{font-family:'Inter';font-weight:400;font-style:normal;font-display:swap;src:url('../fonts/inter-400.woff2') format('woff2')}
@font-face{font-family:'Inter';font-weight:500;font-style:normal;font-display:swap;src:url('../fonts/inter-500.woff2') format('woff2')}
@font-face{font-family:'Inter';font-weight:600;font-style:normal;font-display:swap;src:url('../fonts/inter-600.woff2') format('woff2')}
@font-face{font-family:'Inter';font-weight:700;font-style:normal;font-display:swap;src:url('../fonts/inter-700.woff2') format('woff2')}
@font-face{font-family:'Inter';font-weight:800;font-style:normal;font-display:swap;src:url('../fonts/inter-800.woff2') format('woff2')}
@font-face{font-family:'Inter';font-weight:900;font-style:normal;font-display:swap;src:url('../fonts/inter-900.woff2') format('woff2')}

:root{
  --ink:#0a0a0b;
  --ink-70:#3c3c3f;
  --ink-50:#6e6e73;
  --ink-30:#98989d;
  --line:#e7e7e9;
  --line-2:#efeff1;
  --paper:#ffffff;
  --fog:#f5f5f7;
  --fog-2:#fbfbfc;
  --red:#e6231e;
  --red-dark:#b91c18;
  --green:#0d7a3e;

  --font:'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
  --maxw:1320px;
  --pad:32px;
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
  .marquee-track{animation-duration:26s!important;animation-iteration-count:infinite!important}
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:var(--font);color:var(--ink);background:var(--paper);
  -webkit-font-smoothing:antialiased;line-height:1.5;font-size:17px;overflow-x:hidden;
}
img,video{max-width:100%;display:block}
svg{width:1em;height:1em;display:inline-block;vertical-align:middle;flex-shrink:0}
a{color:inherit;text-decoration:none}
::selection{background:var(--ink);color:#fff}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
@media(max-width:640px){:root{--pad:20px}}

h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.03em;line-height:1.04;color:var(--ink)}
p{margin:0}

/* ---------- type scale ---------- */
.t-hero{font-size:clamp(44px,7vw,104px);font-weight:800;letter-spacing:-.04em}
.t-xl{font-size:clamp(32px,4.2vw,58px);font-weight:700}
.t-lg{font-size:clamp(24px,2.6vw,34px);font-weight:700}
.t-eyebrow{font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--ink-50);text-transform:none}
.t-body{font-size:19px;line-height:1.55;color:var(--ink-70);font-weight:400}
.t-small{font-size:14px;color:var(--ink-50)}

/* ---------- reveal ---------- */
.r{opacity:0;transform:translateY(18px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.r.on{opacity:1;transform:translateY(0)}
.r-fade{opacity:0;transition:opacity 1.1s var(--ease)}
.r-fade.on{opacity:1}
.r-scale{opacity:0;transform:scale(1.04);transition:opacity 1.1s var(--ease),transform 1.4s var(--ease)}
.r-scale.on{opacity:1;transform:scale(1)}
.r-group > *{opacity:0;transform:translateY(16px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.r-group.on > *{opacity:1;transform:translateY(0)}
.r-group.on > *:nth-child(1){transition-delay:0s}
.r-group.on > *:nth-child(2){transition-delay:.08s}
.r-group.on > *:nth-child(3){transition-delay:.16s}
.r-group.on > *:nth-child(4){transition-delay:.24s}
.r-group.on > *:nth-child(5){transition-delay:.32s}
.r-group.on > *:nth-child(6){transition-delay:.40s}
.r-group.on > *:nth-child(7){transition-delay:.48s}

/* ---------- links / buttons ---------- */
.link-cta{
  display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:17px;
  color:var(--red);padding-bottom:2px;border-bottom:1px solid transparent;transition:border-color .3s,gap .3s;
}
.link-cta:hover{border-color:var(--red);gap:11px}
.link-cta svg{width:15px;height:15px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:15px 30px;border-radius:100px;font-weight:600;font-size:16px;
  border:1px solid transparent;cursor:pointer;transition:transform .4s var(--ease),background .25s,border-color .25s,opacity .25s;
}
.btn-fill{background:var(--ink);color:#fff}
.btn-fill:hover{background:var(--red);transform:translateY(-1px)}
.btn-line{border-color:var(--ink-30);color:var(--ink)}
.btn-line:hover{border-color:var(--ink)}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-dark);transform:translateY(-1px)}
.btn svg{transition:transform .3s var(--ease)}
.btn:hover svg{transform:translateX(3px)}
.btn-line svg{color:var(--red)}

/* ---------- nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:300;padding:18px 0;
  background:rgba(255,255,255,.92);backdrop-filter:blur(16px) saturate(1.6);
  box-shadow:0 1px 0 var(--line);transition:padding .35s var(--ease),box-shadow .35s;
}
.nav.solid{padding:14px 0;box-shadow:0 4px 20px rgba(10,10,11,.06)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:nowrap;max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
.nav-mark{display:flex;align-items:center;flex-shrink:0}
.nav-mark img{height:42px;width:auto;display:block;transition:height .35s var(--ease)}
.nav.solid .nav-mark img{height:36px}
.nav-links{display:flex;gap:20px;list-style:none;margin:0;padding:0;flex-shrink:0}
.nav-links a{font-size:13.5px;font-weight:500;color:var(--ink-70);transition:color .2s;white-space:nowrap}
.nav-links a:hover{color:var(--ink)}
.nav-cta{display:flex;align-items:center;gap:12px;flex-shrink:0}
.nav-cta .btn{padding:9px 18px;font-size:13.5px;white-space:nowrap}
.nav-burger{display:none;background:none;border:0;width:34px;height:34px;position:relative;cursor:pointer}
.nav-burger span{position:absolute;left:6px;right:6px;height:1.5px;background:var(--ink);transition:transform .3s var(--ease),opacity .3s}
.nav-burger span:nth-child(1){top:12px}
.nav-burger span:nth-child(2){top:18px}
.nav-burger span:nth-child(3){top:24px}
.nav-burger.on span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav-burger.on span:nth-child(2){opacity:0}
.nav-burger.on span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* ---------- hero : bande vidéo cinématique ---------- */
.hero{position:relative;height:100vh;min-height:680px;max-height:980px;overflow:hidden;background:var(--ink);color:#fff;display:flex;align-items:center}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease}
.hero-bg video.show{opacity:.62}
.hero-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,9,11,.35) 0%,rgba(8,9,11,.25) 40%,rgba(8,9,11,.88) 100%)}
.hero-content{position:relative;z-index:2;text-align:center;width:100%;padding:0 var(--pad)}
.hero .t-eyebrow{display:block;margin-bottom:20px;color:rgba(255,255,255,.65)}
.hero h1{max-width:980px;margin:0 auto;color:#fff}
.hero .t-body{max-width:600px;margin:26px auto 0;color:rgba(255,255,255,.72)}
.hero-cta{display:flex;gap:28px;justify-content:center;align-items:center;margin-top:40px;flex-wrap:wrap}
.hero .btn-line{border-color:rgba(255,255,255,.35);color:#fff}
.hero .btn-line:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.hero .link-cta{color:#fff;border-color:transparent}
.hero .link-cta:hover{border-color:#fff}
.hero-scrollcue{position:absolute;left:50%;bottom:36px;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;color:rgba(255,255,255,.55);font-size:11px;letter-spacing:.08em}
.hero-scrollcue svg{width:16px;height:16px;animation:bob 2s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}
.hero-dots{position:absolute;right:var(--pad);top:50%;transform:translateY(-50%);z-index:2;display:flex;flex-direction:column;gap:10px}
.hero-dots button{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.3);border:0;padding:0;cursor:pointer;transition:background .3s,transform .3s}
.hero-dots button.active{background:#fff;transform:scale(1.3)}
@media(max-width:780px){.hero-dots{display:none}}

/* ---------- marquee : boucle infinie mathématiquement exacte ----------
   Le container n'a AUCUN gap : chaque item porte son propre margin-right.
   Ainsi copie1 et copie2 ont une largeur rigoureusement identique et
   translateX(-50%) tombe pile sur la jonction, sans zone vide. */
.marquee{background:var(--ink);color:rgba(255,255,255,.55);padding:16px 0;overflow:hidden;white-space:nowrap;font-size:13px;font-weight:600;letter-spacing:.06em}
.marquee-track{display:inline-flex;animation:scroll-left 26s linear infinite;will-change:transform}
.marquee-item{display:inline-flex;align-items:center;gap:10px;margin-right:48px;white-space:nowrap}
.marquee-item svg{width:5px;height:5px;color:var(--red)}
@keyframes scroll-left{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- section background rhythm ---------- */
.bg-fog{background:var(--fog)}
.bg-dark{background:var(--ink);color:#fff}
.bg-dark h2,.bg-dark h3,.bg-dark h4{color:#fff}
.bg-dark .t-body,.bg-dark p{color:rgba(255,255,255,.62)}
.bg-dark .section-head .t-eyebrow{color:rgba(255,255,255,.5)}
.bg-dark .rule,.bg-dark.slab:not(:last-child){border-color:rgba(255,255,255,.12)}

/* ---------- back to top ---------- */
.to-top{
  position:fixed;right:28px;bottom:28px;width:48px;height:48px;border-radius:50%;
  background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;
  border:1.5px solid rgba(255,255,255,.18);cursor:pointer;z-index:400;opacity:0;pointer-events:none;transform:translateY(12px);
  transition:opacity .35s var(--ease),transform .35s var(--ease),background .25s;box-shadow:0 10px 30px rgba(0,0,0,.35);
}
.to-top.show{opacity:1;pointer-events:auto;transform:translateY(0)}
.to-top:hover{background:var(--red)}
.to-top svg{width:18px;height:18px}

/* ---------- section rhythm ---------- */
.section{padding:150px 0}
.section-tight{padding:70px 0}
@media(max-width:900px){.section{padding:96px 0}}
.section-head{max-width:640px;margin:0 0 64px}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.section-head .t-eyebrow{display:block;margin-bottom:16px}
.section-head p{margin-top:18px}
.rule{height:1px;background:var(--line);border:0;margin:0}

/* ---------- big stat row ---------- */
.stats-row{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat{padding:52px var(--pad) 48px;text-align:center;border-left:1px solid var(--line);transition:background .3s}
.stat:hover{background:var(--fog-2)}
.stat:first-child{border-left:0}
.stat-icon{width:38px;height:38px;margin:0 auto 18px;border-radius:11px;background:var(--fog);display:flex;align-items:center;justify-content:center;color:var(--red)}
.stat-icon svg{width:18px;height:18px}
.stat .num{font-size:clamp(34px,4vw,54px);font-weight:800;letter-spacing:-.03em}
.stat .lbl{margin-top:8px;font-size:14px;color:var(--ink-50)}
@media(max-width:900px){.stats-row{grid-template-columns:repeat(2,1fr)}.stat:nth-child(3){border-left:0}}

/* ---------- product showcase slabs ---------- */
.slab{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;padding:64px 0}
.slab:not(:last-child){border-bottom:1px solid var(--line)}
.slab.flip{direction:rtl}
.slab.flip > *{direction:ltr}
.slab-media{aspect-ratio:1/1;background:var(--fog);border-radius:28px;display:flex;align-items:center;justify-content:center;padding:52px;overflow:hidden}
.slab-media img{width:100%;height:100%;object-fit:contain;transition:transform .8s var(--ease)}
.slab:hover .slab-media img{transform:scale(1.045)}
.slab-eyebrow{font-size:13px;font-weight:600;color:var(--red);margin-bottom:14px}
.slab h3{font-size:clamp(26px,3vw,40px)}
.slab p{margin-top:18px;max-width:440px}
.prose{max-width:640px}
.prose p:first-child{margin-top:0}
.slab .link-cta{margin-top:28px}
@media(max-width:860px){.slab,.slab.flip{grid-template-columns:1fr;direction:ltr;gap:32px}}

/* ---------- catalog page hero (texture vidéo discrète) ---------- */
.cat-hero{position:relative;padding:150px 0 68px;background:var(--fog-2);overflow:hidden}
.cat-hero-bg{position:absolute;inset:0;z-index:0}
.cat-hero-bg video{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.08) brightness(1.05);opacity:.2}
.cat-hero-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(245,245,247,.55) 0%,rgba(245,245,247,.8) 45%,var(--paper) 100%)}
.cat-hero .crumb,.cat-hero .wrap{position:relative;z-index:1}
.cat-hero .t-eyebrow{display:block;margin-bottom:16px}
.cat-hero h1{max-width:720px}
.cat-hero .t-body{max-width:560px;margin-top:20px}

/* ---------- pest strip (cibles ciblées, identité métier) ---------- */
.pest-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper)}
.pest-strip .wrap{display:grid;grid-template-columns:repeat(6,1fr)}
.pest-item{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:26px 10px;border-left:1px solid var(--line);transition:background .3s}
.pest-item:first-child{border-left:0}
.pest-item:hover{background:var(--fog-2)}
.pest-item svg{width:30px;height:30px;color:var(--ink-70)}
.pest-item span{font-size:12.5px;font-weight:600;color:var(--ink-50)}
@media(max-width:780px){.pest-strip .wrap{grid-template-columns:repeat(3,1fr)}.pest-item{border-left:0;border-top:1px solid var(--line)}.pest-item:nth-child(3n+1){border-left:0}}

/* ---------- filter pills ---------- */
.filter-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:44px}
.filter-pill{
  padding:10px 20px;border-radius:100px;border:1px solid var(--line);font-size:13.5px;font-weight:600;
  color:var(--ink-70);cursor:pointer;transition:background .25s,border-color .25s,color .25s;background:var(--paper);
}
.filter-pill.active{background:var(--ink);border-color:var(--ink);color:#fff}
.filter-pill:not(.active):hover{border-color:var(--ink-30)}

/* ---------- mini-card type tag ---------- */
.mini-tag{
  display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;letter-spacing:.03em;
  color:var(--ink-50);background:var(--fog);padding:4px 10px;border-radius:100px;margin-bottom:12px;
}
.mini-tag svg{width:11px;height:11px}

/* ---------- catalog section (premium, watermark) ---------- */
.section-catalog{position:relative;background:linear-gradient(180deg,var(--fog-2) 0%,var(--fog) 100%);overflow:hidden}
.section-catalog::before{
  content:'12';position:absolute;top:-60px;right:-10px;font-size:min(38vw,460px);font-weight:800;
  color:rgba(10,10,11,.04);letter-spacing:-.06em;line-height:1;pointer-events:none;user-select:none;z-index:0;
}
.section-catalog .wrap{position:relative;z-index:1}
.mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:20px;overflow:hidden}
.mini-card{background:var(--paper);padding:36px 30px;position:relative;z-index:1;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.mini-card:hover{transform:translateY(-5px);box-shadow:0 24px 48px -16px rgba(10,10,11,.16);z-index:2}
.mini-card .mini-media{aspect-ratio:1/1;background:var(--fog);border-radius:14px;display:flex;align-items:center;justify-content:center;padding:16px;margin-bottom:22px;overflow:hidden}
.mini-card .mini-media img{width:100%;height:100%;object-fit:contain;transition:transform .6s var(--ease)}
.mini-card:hover .mini-media img{transform:scale(1.06)}
.mini-card h4{font-size:16px;font-weight:700;letter-spacing:-.01em}
.mini-card p{margin-top:6px;font-size:14px;color:var(--ink-50);line-height:1.45}
@media(max-width:900px){.mini-grid{grid-template-columns:repeat(2,1fr)}.section-catalog::before{font-size:220px}}
@media(max-width:480px){.mini-grid{grid-template-columns:1fr;border-radius:16px}}

/* ---------- cinematic video band ---------- */
.cine{position:relative;height:86vh;min-height:560px;overflow:hidden;background:var(--ink)}
.cine video{width:100%;height:100%;object-fit:cover;opacity:.92}
.cine-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,11,.15) 0%,rgba(10,10,11,.05) 40%,rgba(10,10,11,.55) 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:64px var(--pad)}
.cine-overlay .inner{max-width:var(--maxw);margin:0 auto;width:100%}
.cine-overlay .t-eyebrow{color:rgba(255,255,255,.7)}
.cine-overlay h2{color:#fff;max-width:640px}

/* ---------- sectors (soft gradient stage + elevated tiles) ---------- */
.section-sectors{position:relative;background:radial-gradient(ellipse 78% 65% at 50% 0%,var(--fog) 0%,var(--paper) 62%)}
.sector-list{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.sector-item{
  padding:30px 26px 28px;background:var(--paper);border:1px solid var(--line);border-radius:20px;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s;
}
.sector-item:hover{transform:translateY(-6px);box-shadow:0 26px 50px -16px rgba(10,10,11,.14);border-color:transparent}
.sector-chip{
  width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,var(--red),var(--red-dark));
  display:flex;align-items:center;justify-content:center;margin-bottom:20px;box-shadow: 0 12px 26px -8px rgb(2 42 72);
}
.sector-chip svg{width:20px;height:20px;color:#fff}
.sector-item h4{font-size:17.5px;font-weight:700;margin-bottom:9px}
.sector-item p{font-size:14.5px;color:var(--ink-50);line-height:1.5}
@media(max-width:900px){.sector-list{grid-template-columns:repeat(2,1fr)}}

/* ---------- cta band ---------- */
.band{background:var(--ink);color:#fff;padding:130px 0;text-align:center}
.band h2{color:#fff;max-width:760px;margin:0 auto}
.band p{color:rgba(255,255,255,.6);margin-top:20px;font-size:19px}
.band .hero-cta{margin-top:40px}
.band .btn-line{border-color:rgba(255,255,255,.3);color:#fff}
.band .btn-line:hover{border-color:#fff}

/* ---------- articles (soft gradient + elevated cards) ---------- */
.section-articles{background:linear-gradient(180deg,var(--paper) 0%,var(--fog) 100%)}
.article-list{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.article-item{
  background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:30px;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease);
}
.article-item:hover{transform:translateY(-6px);box-shadow:0 26px 50px -16px rgba(10,10,11,.13)}
.article-tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.05em;color:var(--red);background:#fdeceb;padding:6px 13px;border-radius:100px;margin-bottom:16px}
.article-item .t-small{display:block;margin-bottom:12px}
.article-item h4{font-size:18.5px;font-weight:700;line-height:1.32;margin-bottom:10px}
.article-item p{font-size:14.5px;color:var(--ink-50);line-height:1.55}
.article-item .link-cta{margin-top:18px;font-size:14px}
@media(max-width:900px){.article-list{grid-template-columns:1fr;gap:20px}}

/* ---------- testimonials ---------- */
.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.testimonial-card{
  position:relative;overflow:hidden;background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:34px 30px 30px;
  display:flex;flex-direction:column;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s;
}
.testimonial-card:hover{transform:translateY(-6px);box-shadow:0 26px 50px -16px rgba(10,10,11,.13);border-color:transparent}
.testimonial-quote-mark{position:absolute;top:22px;right:26px;width:46px;height:auto;color:var(--red);opacity:.09;pointer-events:none}
.testimonial-stars{position:relative;display:flex;gap:3px;color:var(--red);margin-bottom:16px}
.testimonial-stars svg{width:15px;height:15px}
.testimonial-quote{position:relative;font-size:15px;line-height:1.6;color:var(--ink-70);flex:1}
.testimonial-author{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
.testimonial-author strong{display:block;font-size:14.5px;font-weight:700}
.testimonial-author span{display:block;font-size:12.5px;color:var(--ink-50);margin-top:3px}
@media(max-width:900px){.testimonial-grid{grid-template-columns:1fr;gap:18px}}

/* ---------- footer (sombre, fait écho au hero pour "fermer" la page) ---------- */
.foot{padding:88px 0 32px;background:var(--ink);color:rgba(255,255,255,.6);border-top:1px solid rgba(255,255,255,.08)}
/* Quand le footer suit directement un bandeau CTA déjà sombre (.band), les deux paddings
   sombres s'additionnent en un grand vide noir sans repère. On resserre l'espace et on
   ajoute un liseré net pour marquer clairement où finit le bandeau et où commence le footer. */
.band + .foot{padding-top:0;border-top:1px solid rgba(255,255,255,.14);margin-top:-1px}
.band + .foot .foot-grid{padding-top:56px}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:48px}
.foot-mark{font-size:21px;font-weight:800;letter-spacing:-.02em;color:#fff}
.foot-mark span{color:var(--red)}
.foot-tagline{margin-top:16px;margin-bottom:20px;color:rgba(255,255,255,.5);font-size:14.5px;max-width:280px;line-height:1.6}
.foot-social{display:flex;gap:10px;margin-top:22px}
.foot-social a{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.7);transition:background .2s,color .2s}
.foot-social a:hover{background:var(--red);color:#fff}
.foot-social svg{width:16px;height:16px}
.foot h5{font-size:12px;font-weight:700;color:rgba(255,255,255,.35);margin:0 0 20px;text-transform:uppercase;letter-spacing:.06em}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{margin-bottom:13px;font-size:14.5px}
.foot a{color:rgba(255,255,255,.65);transition:color .2s}
.foot a:hover{color:#fff}
.foot .btn-red,.foot .btn-red:hover{color:#fff}
.foot-contact li{display:flex}
.foot-contact li,.foot-contact a{display:flex;align-items:flex-start;gap:10px}
.foot-contact svg{width:16px;height:16px;color:var(--red);flex-shrink:0;margin-top:2px}
.foot-bottom{margin-top:64px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:13px;color:rgba(255,255,255,.35)}
@media(max-width:860px){.foot-grid{grid-template-columns:1fr 1fr;gap:36px}}
@media(max-width:640px){
  .foot{padding:64px 0 28px}
  .foot-grid{grid-template-columns:1fr;gap:0}
  .foot-grid > div{padding:28px 0;border-bottom:1px solid rgba(255,255,255,.1)}
  .foot-grid > div:first-child{padding-top:0}
  .foot-grid > div:last-child{border-bottom:0;padding-bottom:0}
  .foot-tagline{max-width:none}
}

/* ============================================================
   PRODUCT PAGE
   ============================================================ */
.crumb{padding:120px 0 0;font-size:13px;color:var(--ink-30)}
.crumb a{transition:color .2s}
.crumb a:hover{color:var(--ink)}
.pdp{padding:36px 0 150px;display:grid;grid-template-columns:1.15fr .85fr;gap:88px;align-items:start}
@media(max-width:960px){.pdp{grid-template-columns:1fr;gap:48px}}

.pdp-stage{position:sticky;top:110px}
.pdp-viewer{aspect-ratio:1/1;background:var(--fog);border-radius:32px;display:flex;align-items:center;justify-content:center;padding:60px;position:relative;overflow:hidden}
@media(max-width:520px){.pdp-viewer{padding:32px;border-radius:22px}.pdp-stage{position:static}}
.pdp-viewer img{width:100%;height:100%;object-fit:contain;transition:opacity .35s var(--ease)}
.pdp-viewer video{width:100%;height:100%;object-fit:cover;border-radius:0}
.pdp-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(10,10,11,.15);opacity:0;transition:opacity .3s;cursor:pointer}
.pdp-viewer:hover .pdp-play.show{opacity:1}
.pdp-play span{width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px rgba(0,0,0,.25)}
.pdp-play svg{width:26px;height:26px;color:var(--ink);margin-left:4px}
.pdp-thumbs{display:flex;gap:12px;margin-top:16px}
.pdp-thumb{width:76px;height:76px;border-radius:14px;background:var(--fog);border:1.5px solid transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:10px;position:relative;transition:border-color .2s}
.pdp-thumb.active{border-color:var(--ink)}
.pdp-thumb img{max-width:100%;max-height:100%;object-fit:contain}
.pdp-thumb .play-badge{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(10,10,11,.35);border-radius:12px}
.pdp-thumb .play-badge svg{width:16px;height:16px;color:#fff}

.pdp-info .badge{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--green);background:#e9f7ee;padding:6px 14px;border-radius:100px;margin-bottom:20px}
.pdp-info h1{font-size:clamp(32px,3.6vw,48px)}
.pdp-info .t-body{margin-top:16px}
.pdp-variants{display:flex;flex-wrap:wrap;gap:9px;margin-top:26px}
.pdp-variant{border:1px solid var(--line);border-radius:100px;padding:8px 16px;font-size:13.5px;font-weight:500;color:var(--ink-70)}
.pdp-actions{margin-top:32px;display:flex;gap:16px;flex-wrap:wrap}
.pdp-tabs{display:flex;gap:0;margin-top:56px;border-bottom:1px solid var(--line)}
.pdp-tab-btn{padding:14px 0;margin-right:32px;font-size:15px;font-weight:600;color:var(--ink-30);border-bottom:1.5px solid transparent;background:none;border-top:0;border-left:0;border-right:0;cursor:pointer;transition:color .2s}
.pdp-tab-btn.active{color:var(--ink);border-bottom-color:var(--ink)}
.pdp-tab-panel{display:none;padding:32px 0}
.pdp-tab-panel.active{display:block;animation:fade .4s var(--ease)}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.spec-row{display:flex;gap:24px;padding:16px 0;border-bottom:1px solid var(--line-2);font-size:15px}
.spec-row dt{width:180px;flex-shrink:0;color:var(--ink-50)}
.spec-row dd{margin:0;color:var(--ink-70)}
@media(max-width:560px){.spec-row{flex-direction:column;gap:4px}.spec-row dt{width:auto;font-size:13px;font-weight:600}}

/* ---------- product page hero (nom du produit, vidéo en texture) ---------- */
.pdp-hero{position:relative;padding:148px 0 56px;background:var(--fog-2);overflow:hidden}
.pdp-hero-bg{position:absolute;inset:0;z-index:0}
.pdp-hero-bg video{width:100%;height:100%;object-fit:cover;filter:grayscale(.75) contrast(1.1) brightness(1.02);opacity:.3}
.pdp-hero-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(245,245,247,.35) 0%,rgba(245,245,247,.72) 55%,var(--paper) 100%)}
.pdp-hero .crumb,.pdp-hero .wrap{position:relative;z-index:1}
.pdp-hero .t-eyebrow{display:block;margin-bottom:14px}
.pdp-hero h1{font-size:clamp(48px,8vw,120px);letter-spacing:-.04em}
@media(max-width:640px){.pdp-hero{padding:120px 0 44px}}

/* ---------- product targets (ravageurs ciblés) ---------- */
.pdp-targets{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.pdp-target{display:flex;align-items:center;gap:7px;background:var(--fog);padding:8px 15px 8px 11px;border-radius:100px;font-size:12.5px;font-weight:600;color:var(--ink-70)}
.pdp-target svg{width:18px;height:18px;color:var(--red);flex-shrink:0}

/* ---------- product feature chips ---------- */
.feat-list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:34px}
.feat-item{display:flex;gap:13px;align-items:flex-start;padding:17px;background:var(--fog);border-radius:16px;transition:background .3s}
.feat-item:hover{background:var(--fog-2);box-shadow:0 12px 28px -12px rgba(10,10,11,.1)}
.feat-icon{width:38px;height:38px;border-radius:11px;background:var(--paper);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.feat-icon svg{width:17px;height:17px;color:var(--red)}
.feat-item strong{display:block;font-size:13.5px;font-weight:700;margin-bottom:3px;color:var(--ink)}
.feat-item span{font-size:12.5px;color:var(--ink-50);line-height:1.45}
@media(max-width:520px){.feat-list{grid-template-columns:1fr}}

/* ---------- product cinematic panel : texte à gauche, vidéo bien visible à droite ---------- */
.pdp-cine{position:relative;overflow:hidden;border-radius:28px;margin:96px 24px;background:var(--ink);min-height:460px;display:flex;align-items:stretch}
.pdp-cine video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pdp-cine-inner{
  position:relative;z-index:1;width:100%;padding:56px var(--pad);display:flex;align-items:center;
  background:linear-gradient(90deg,rgba(8,9,11,.96) 0%,rgba(8,9,11,.9) 38%,rgba(8,9,11,.45) 62%,rgba(8,9,11,.05) 85%);
}
.pdp-cine-inner .inner{max-width:460px}
.pdp-cine h2{color:#fff;font-size:clamp(26px,2.8vw,38px)}
.pdp-cine .t-eyebrow{color:rgba(255,255,255,.6)}
.pdp-cine-facts{display:flex;gap:28px;flex-wrap:wrap;margin-top:26px;padding-top:24px;border-top:1px solid rgba(255,255,255,.14)}
.pdp-cine-facts div{font-size:12.5px;color:rgba(255,255,255,.55)}
.pdp-cine-facts strong{display:block;font-size:20px;font-weight:800;color:#fff;letter-spacing:-.02em}
@media(max-width:820px){
  .pdp-cine{margin:72px 16px;border-radius:20px;min-height:520px}
  .pdp-cine-inner{background:linear-gradient(180deg,rgba(8,9,11,.4) 0%,rgba(8,9,11,.97) 74%);align-items:flex-end;padding:32px 22px 40px}
  .pdp-cine-inner .inner{max-width:none}
  .pdp-cine-facts{gap:22px}
}
@media(max-width:420px){.pdp-cine-facts{gap:16px 26px}}

/* ---------- réseau international : grille de partenaires à égalité (aucun n'est un "siège") ---------- */
.partner-role{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:5px 13px;border-radius:100px;margin-bottom:14px;background:var(--fog);color:var(--ink-50)}
.partner-role.partenaire{background:#e8f0fe;color:#1a56db}
.partner-role.collaborateur{background:#e9f7ee;color:#0d7a3e}

.partner-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:20px;overflow:hidden}
.partner-grid-2{grid-template-columns:repeat(2,1fr)}
.partner-card{background:var(--paper);padding:30px;transition:transform .4s var(--ease),box-shadow .4s var(--ease);position:relative}
.partner-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -14px rgba(10,10,11,.12);z-index:2}
.partner-card h4{font-size:17px;margin-bottom:3px}
.partner-card .country{font-size:13px;color:var(--ink-50);margin-bottom:18px}
.partner-contact{border-top:1px solid var(--line-2);padding-top:14px}
.partner-contact div{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-70);margin-bottom:8px;font-weight:600}
.partner-contact svg{width:14px;height:14px;color:var(--red);flex-shrink:0}
.partner-contact .fax-row{font-size:12px;color:var(--ink-30);font-weight:500;padding-left:22px}

@media(max-width:960px){.partner-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.partner-grid{grid-template-columns:1fr}}

/* ---------- fiche technique PDF : popup, sans bouton de téléchargement ---------- */
.pdf-modal-overlay{position:fixed;inset:0;z-index:500;background:rgba(10,10,11,.72);display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility 0s .3s}
.pdf-modal-overlay.open{opacity:1;visibility:visible;transition:opacity .3s var(--ease)}
.pdf-modal{background:var(--paper);border-radius:20px;width:100%;max-width:900px;height:88vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 40px 80px rgba(0,0,0,.4)}
.pdf-modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid var(--line);flex-shrink:0}
.pdf-modal-head h3{font-size:16px;font-weight:700;margin:0}
.pdf-modal-close{width:36px;height:36px;border-radius:50%;border:0;background:var(--fog);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);transition:background .2s;flex-shrink:0}
.pdf-modal-close:hover{background:var(--line)}
.pdf-modal-close svg{width:16px;height:16px}
.pdf-modal-body{flex:1;background:var(--fog-2)}
.pdf-modal-body iframe{width:100%;height:100%;border:0;display:block}
@media(max-width:640px){.pdf-modal{height:92vh;border-radius:16px}.pdf-modal-overlay{padding:10px}}

/* ---------- contact page ---------- */
.contact-grid{display:grid;grid-template-columns:.85fr 1fr;gap:80px;align-items:start}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;gap:48px}}

.contact-info-list{margin:0}
.contact-info-row{display:flex;gap:16px;padding:20px 0;border-bottom:1px solid var(--line-2)}
.contact-info-row:first-child{padding-top:0}
.contact-info-row:last-child{border-bottom:0}
.contact-icon{width:44px;height:44px;border-radius:13px;background:var(--fog);display:flex;align-items:center;justify-content:center;color:var(--red);flex-shrink:0}
.contact-icon svg{width:18px;height:18px}
.contact-info-row dt{font-size:12px;font-weight:600;color:var(--ink-30);text-transform:uppercase;letter-spacing:.03em;margin:0 0 4px}
.contact-info-row dd{margin:0;font-size:16px;font-weight:600;color:var(--ink)}

.contact-map{margin-top:28px;border-radius:20px;overflow:hidden;border:1px solid var(--line)}
.contact-map iframe{display:block;filter:grayscale(.3) contrast(1.02)}

.form-card{background:var(--fog-2);border:1px solid var(--line);border-radius:24px;padding:40px}
@media(max-width:520px){.form-card{padding:26px}}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:480px){.form-grid-2{grid-template-columns:1fr}}
.form-row{margin-bottom:18px}
.form-row label{display:block;font-size:13px;font-weight:600;color:var(--ink-70);margin-bottom:8px}
.form-row label .opt{font-weight:400;color:var(--ink-30);text-transform:none;letter-spacing:0}
.form-row input:not([type="checkbox"]):not([type="radio"]),.form-row textarea,.form-row select{
  width:100%;padding:14px 16px;border:1.5px solid var(--line);border-radius:13px;
  font-family:var(--font);font-size:15px;color:var(--ink);background:var(--paper);
  transition:border-color .25s,box-shadow .25s;resize:vertical;
}
.form-row input:focus,.form-row textarea:focus,.form-row select:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px rgba(10,10,11,.06)}
.form-row input[type="checkbox"],.form-row input[type="radio"]{width:18px;height:18px;flex-shrink:0;accent-color:var(--red);cursor:pointer;margin:0}
.form-row label:has(input[type="checkbox"]),.form-row label:has(input[type="radio"]){display:flex;align-items:center;gap:9px;cursor:pointer;margin-bottom:0}
/* Une case à cocher seule n'a pas de <label> au-dessus d'elle, contrairement à un champ
   texte/nombre voisin (label + boîte de saisie). On lui ajoute donc le même espace en haut
   (hauteur de label + marge) pour qu'elle démarre exactement à la même hauteur que le champ
   voisin, plutôt que de dépendre d'un centrage sur la hauteur totale de la cellule. */
.form-row:has(> label:only-child > input[type="checkbox"]:only-child),
.form-row:has(> label:only-child > input[type="radio"]:only-child){padding-top:29px}
.form-row textarea{min-height:120px}
.form-row input[type="file"]{
  width:100%;padding:11px;border:1.5px dashed var(--line);border-radius:13px;
  font-family:var(--font);font-size:13px;color:var(--ink-50);background:var(--fog-2);
  cursor:pointer;transition:border-color .25s,background .25s;
}
.form-row input[type="file"]:hover{border-color:var(--ink-30);background:var(--fog)}
.form-row input[type="file"]::file-selector-button{
  padding:9px 18px;margin-right:14px;border:0;border-radius:100px;
  background:var(--ink);color:#fff;font-family:var(--font);font-weight:600;font-size:12.5px;
  cursor:pointer;transition:background .2s;
}
.form-row input[type="file"]::file-selector-button:hover{background:var(--red)}
.form-row select{
  appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%2398989d" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 9l6 6 6-6"/></svg>');
  background-repeat:no-repeat;background-position:right 14px center;background-size:16px;padding-right:42px;
}
.form-card .btn{margin-top:6px}

/* sur contact.html, le bouton "Demander un devis" du header/footer est redondant : le visiteur est déjà sur le formulaire */
.page-contact .nav-cta .btn-red{display:none}
.page-contact .mobile-menu-actions .mm-quote{display:none}
.page-contact .mobile-menu-actions{justify-content:center}
.page-contact .mm-call{width:60px;height:60px;flex:0 0 60px}
.page-contact .foot .btn-red{display:none}

/* ---------- related products ---------- */
.related-list{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:20px;overflow:hidden}
@media(max-width:900px){.related-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.related-list{grid-template-columns:1fr;border-radius:16px}}

/* ---------- article detail page ---------- */
.article-hero{position:relative;padding:150px 0 0;background:var(--fog-2)}
.article-hero .crumb{padding:0 0 22px}
.article-hero .t-eyebrow{display:block;margin-bottom:16px}
.article-hero h1{max-width:820px;font-size:clamp(30px,4.2vw,54px);font-weight:700;letter-spacing:-.03em;line-height:1.08}
.article-meta-row{display:flex;align-items:center;gap:10px;margin-top:22px;font-size:14px;color:var(--ink-50)}
.article-meta-row .dot{width:3px;height:3px;border-radius:50%;background:var(--ink-30)}
.article-cover{margin-top:40px;aspect-ratio:16/7;border-radius:24px;overflow:hidden}
.article-cover img{width:100%;height:100%;object-fit:cover}
@media(max-width:780px){.article-cover{aspect-ratio:4/3;border-radius:18px}}
@media(max-width:640px){.article-hero{padding:120px 0 0}.article-cover{margin-top:28px}}

.article-content{max-width:720px;margin:0 auto;padding:64px var(--pad) 0}
.article-content h2{font-size:clamp(22px,2.6vw,30px);font-weight:700;letter-spacing:-.02em;margin:52px 0 18px}
.article-content h2:first-of-type{margin-top:44px}
.article-content p{font-size:18px;line-height:1.75;color:var(--ink-70);margin-top:18px}
.article-content > .r > p:first-child{margin-top:0}
.article-checklist{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}
.article-checklist li{display:flex;gap:12px;align-items:flex-start;font-size:16px;line-height:1.55;color:var(--ink-70)}
.article-checklist svg{width:20px;height:20px;color:var(--red);flex-shrink:0;margin-top:2px}
.pull-quote{margin:40px 0;padding:2px 0 2px 26px;border-left:3px solid var(--red);font-size:22px;font-weight:600;color:var(--ink);line-height:1.45}
.article-foot-meta{margin-top:56px;padding-top:28px;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;font-size:13.5px;color:var(--ink-30)}
.article-list-2{grid-template-columns:repeat(2,1fr)}
@media(max-width:900px){.article-list-2{grid-template-columns:1fr}}

/* ---------- 404 ---------- */
.err-page{padding:190px 0 130px;background:radial-gradient(ellipse 74% 60% at 50% 0%,var(--fog) 0%,var(--paper) 62%)}
.err-num{font-size:clamp(90px,17vw,220px);font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--ink);margin-top:8px}
.err-num span{color:var(--red)}
@media(max-width:640px){.err-page{padding:150px 0 100px}}

/* Menu mobile : élément INDÉPENDANT, hors de .nav, pour éviter le piège du
   containing block créé par backdrop-filter sur un ancêtre position:fixed. */
.mobile-menu{
  position:fixed;inset:0;z-index:250;background:#ffffff;
  display:flex;flex-direction:column;justify-content:center;padding:32px var(--pad);
  opacity:0;visibility:hidden;transform:translateY(-14px);
  transition:opacity .35s var(--ease),transform .35s var(--ease),visibility 0s .35s;
}
.mobile-menu.open{opacity:1;visibility:visible;transform:translateY(0);transition:opacity .35s var(--ease),transform .35s var(--ease)}
.mobile-menu ul{list-style:none;margin:0;padding:0}
.mobile-menu li{border-bottom:1px solid var(--line)}
.mobile-menu li:last-child{border-bottom:0}
.mobile-menu ul a{display:block;padding:19px 2px;font-size:24px;font-weight:700;color:var(--ink);letter-spacing:-.02em}
.mobile-menu-actions{display:flex;align-items:stretch;gap:12px;padding-top:28px}
.mm-call{
  width:54px;height:54px;flex:0 0 54px;border-radius:50%;border:1.5px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--red);
  transition:border-color .25s,background .25s,transform .3s var(--ease);
}
.mm-call svg{width:21px;height:21px}
.mm-call:hover{border-color:var(--red);background:#fdeceb;transform:translateY(-1px)}

.mm-quote{
  flex:1 1 auto;min-width:0;box-sizing:border-box;
  display:flex;flex-direction:row;align-items:center;justify-content:center;text-align:center;gap:8px;
  background:var(--red);color:#fff;border-radius:100px;border:0;
  font-weight:700;font-size:15.5px;letter-spacing:-.01em;
  transition:background .25s,transform .3s var(--ease);
}
.mm-quote svg{width:16px;height:16px;flex-shrink:0;transition:transform .3s var(--ease)}
.mm-quote:hover{background:var(--red-dark);transform:translateY(-1px)}
.mm-quote:hover svg{transform:translateX(3px)}

@media(max-width:1140px){
  .nav-links{display:none}
  .nav-cta{display:none}
  .nav-burger{display:block}
}
@media(min-width:1141px){
  .mobile-menu{display:none}
}

@media(max-width:640px){
  .stats-row{grid-template-columns:1fr 1fr}
  .article-list,.sector-list,.mini-grid{grid-template-columns:1fr}
}
