/* ============================================================
   SOLUTION TECH — design tokens (identité Bénin)
   Palette : bleu technologique + gris argenté + noir (couleurs Solution Tech)
   Type : Source Serif 4 (titres) / IBM Plex Sans (texte) / IBM Plex Mono (repères)
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,500;8..60,600;8..60,700&family=IBM+Plex+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --paper:#FFFFFF;
  --paper-dim:#F2F4F7;
  --ink:#12161D;
  --ink-soft:#4B535D;
  --green:#009FEF;
  --green-2:#0050A0;
  --yellow:#C8C8C8;
  --yellow-soft:#E8E8E8;
  --red:#E8112D;
  --line:rgba(0,159,239,0.16);
  --line-dark:rgba(255,255,255,0.16);
  --radius:2px;
  --max:1180px;
  --navy:var(--green);
  --navy-2:var(--green-2);
  --gold:var(--yellow);
  --gold-soft:var(--yellow-soft);
  --indigo:var(--green);
  --indigo-dim:#D4EAF8;
  --amber:var(--yellow);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Sans',sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3,h4{
  font-family:'Source Serif 4',serif;
  font-weight:700;
  letter-spacing:0;
  line-height:1.12;
  margin:0 0 .5em;
  color:var(--ink);
}
p{margin:0 0 1em;}
.container{max-width:var(--max);margin:0 auto;padding:0 28px;}

.mono{
  font-family:'IBM Plex Mono',monospace;
  letter-spacing:.03em;
}
.eyebrow{
  font-family:'IBM Plex Mono',monospace;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--navy);
  display:flex;
  align-items:center;
  gap:.6em;
  margin-bottom:.9em;
}
.eyebrow::before{
  content:"";
  width:9px;height:9px;
  background:var(--yellow);
  display:inline-block;
}

:focus-visible{
  outline:2.5px solid var(--navy);
  outline-offset:2px;
}

/* ---------- top utility bar ---------- */
.topbar{
  background:#111;
  color:rgba(255,255,255,0.82);
  font-family:'IBM Plex Mono',monospace;
  font-size:.72rem;
  letter-spacing:.03em;
}
.topbar .container{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:6px 28px;
  flex-wrap:wrap;
  gap:.5em 1.5em;
}
.topbar-left{display:flex;align-items:center;gap:1.2em;flex-wrap:wrap;}
.topbar-logo{height:32px;width:auto;display:block;image-rendering:auto;}
.site-header .brand-logo,
.topbar-logo,
.footer-grid .brand-logo{filter:brightness(1.02) contrast(1.02);}
.topbar-left span{white-space:nowrap;}
.topbar-right{display:flex;gap:1.4em;text-transform:uppercase;}
.topbar-right a{text-decoration:none;color:var(--gold-soft);}
.topbar-right a:hover{color:#fff;}
.topbar-social{display:flex;align-items:center;gap:8px;margin-left:1em;}
.topbar-social{display:flex;align-items:center;gap:8px;margin-left:1em;}
.topbar-social a{display:flex;align-items:center;text-decoration:none;transition:opacity .18s;}
.topbar-social a:hover{opacity:.75;}
.topbar-social svg{width:17px;height:17px;}
.topbar-social .fb-icon{fill:#1877F2;}
.topbar-social .wa-icon{fill:#25D366;}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:.6em;
  font-family:'IBM Plex Mono',monospace;
  font-size:.8rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  text-decoration:none;
  padding:.95em 1.6em;
  border:1.5px solid var(--navy);
  border-radius:var(--radius);
  background:transparent;
  color:var(--navy);
  cursor:pointer;
  transition:background .18s ease, color .18s ease, opacity .18s ease;
}
.btn:hover{opacity:.85;}
.btn-primary{
  background:var(--navy);
  border-color:var(--navy);
  color:#fff;
}
.btn-primary:hover{background:var(--navy-2);opacity:1;}
.btn-ghost-light{
  border-color:rgba(255,255,255,0.55);
  color:var(--paper);
}
.btn-ghost-light:hover{
  background:rgba(255,255,255,0.08);
}
.btn-amber{
  background:var(--gold);
  border-color:var(--gold);
  color:#fff;
  font-weight:600;
}
.btn-amber:hover{background:#d4880f;opacity:1;}
.btn-red{
  background:var(--red);
  border-color:var(--red);
  color:#fff;
  font-weight:600;
}
.btn-red:hover{background:#ba0f25;opacity:1;}

/* ---------- header / nav ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,0.96);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
  box-shadow:0 1px 0 var(--gold-soft);
}
.nav-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 28px;
  max-width:var(--max);
  margin:0 auto;
}
.brand{
  display:flex;
  align-items:center;
  gap:.65em;
  text-decoration:none;
}
.brand-logo{height:34px;width:auto;display:block;}
.brand .sub{
  font-family:'IBM Plex Mono',monospace;
  font-size:.62rem;
  color:var(--ink-soft);
  text-transform:none;
  letter-spacing:.05em;
}
.nav-links{
  display:flex;
  gap:2em;
  list-style:none;
  margin:0;padding:0;
  font-family:'IBM Plex Sans',sans-serif;
  font-size:.86rem;
  font-weight:500;
  letter-spacing:.01em;
}
.nav-links a{
  text-decoration:none;
  color:var(--ink-soft);
  padding-bottom:4px;
  border-bottom:2px solid transparent;
  transition:color .15s ease, border-color .15s ease;
}
.nav-links a:hover,
.nav-links a[aria-current="page"]{
  color:var(--navy);
  border-color:var(--gold);
}
.nav-cta{display:flex;align-items:center;gap:1.2em;}
.nav-toggle{
  display:none;
  background:none;border:1.5px solid var(--navy);
  border-radius:var(--radius);
  width:42px;height:38px;
  align-items:center;justify-content:center;
  cursor:pointer;
}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{
  content:"";display:block;width:18px;height:2px;background:var(--navy);
  position:relative;transition:.2s;
}
.nav-toggle span::before{position:absolute;top:-6px;}
.nav-toggle span::after{position:absolute;top:6px;}

/* ---------- hero ---------- */
.hero{
  background:var(--navy);
  color:var(--paper);
  padding:88px 0 64px;
  position:relative;
  overflow:hidden;
}
.hero::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(rgba(0,28,48,.7),rgba(0,28,48,.65));
  z-index:1;
}
.hero-slideshow{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
}
.hero-slide{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  transform:translateX(-100%);
  transition:transform 1.2s ease,opacity 1.2s ease;
}
.hero-slide.active{transform:translateX(0);opacity:1;}
.hero-slide.exit{transform:translateX(100%);opacity:0;}
.hero-slide.no-anim{transition:none;}
.hero .container{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:56px;
  align-items:end;
}
.hero h1{
  font-size:clamp(2.5rem,5vw,4rem);
  color:#fff;
  margin-bottom:.32em;
}
.hero h1 em{
  font-style:italic;
  color:var(--gold-soft);
}
.hero .lead{
  font-family:'IBM Plex Sans',sans-serif;
  font-size:1.06rem;
  color:rgba(255,255,255,0.78);
  max-width:46ch;
  margin-bottom:1.6em;
}
.hero-actions{display:flex;gap:1em;flex-wrap:wrap;}

/* status board — panneau des domaines d'intervention */
.status-board{
  border:1px solid var(--line-dark);
  background:rgba(255,255,255,0.03);
  border-radius:var(--radius);
}
.status-board__head{
  display:flex;justify-content:space-between;
  padding:.85em 1.1em;
  border-bottom:1px solid var(--line-dark);
  font-family:'IBM Plex Mono',monospace;
  font-size:.66rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.55);
}
.status-row{
  display:flex;align-items:center;gap:.9em;
  padding:.85em 1.1em;
  border-bottom:1px solid var(--line-dark);
  font-family:'IBM Plex Mono',monospace;
  font-size:.78rem;
  text-decoration:none;transition:background .18s;
}
a.status-row:hover{background:rgba(255,255,255,.05);}
.status-row:last-child{border-bottom:none;}
a.status-row:last-child{border-bottom:none;}
.status-dot{
  width:8px;height:8px;
  background:var(--gold);
  flex:none;
}
.status-row .code{color:var(--gold-soft);min-width:52px;}
.status-row .label{color:var(--paper);flex:1;font-family:'IBM Plex Sans',sans-serif;letter-spacing:.01em;}
.status-row .val{color:rgba(255,255,255,0.5);font-size:.72rem;}

/* ---------- sections ---------- */
section{padding:80px 0;}
.section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:2em;
  margin-bottom:2.6em;
  border-bottom:1px solid var(--line);
  padding-bottom:1.4em;
}
.section-head h2{font-size:clamp(1.8rem,3.2vw,2.4rem);}
.section-head .note{
  font-family:'IBM Plex Sans',sans-serif;
  font-size:.88rem;
  color:var(--ink-soft);
  max-width:34ch;
}

/* module grid (services) */
#offres{padding:80px 0;}
.module-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.module{
  background:var(--paper);
  padding:2em 1.8em;
  display:flex;
  flex-direction:column;
  gap:.8em;
  text-decoration:none;
  color:var(--ink);
  border:1px solid var(--line);
  box-shadow:0 4px 12px rgba(0,0,0,.08);
  transition:transform .12s ease,box-shadow .12s ease,background .18s ease;
  cursor:pointer;
  position:relative;
  top:0;
}
.module:hover{background:var(--paper-dim);box-shadow:0 6px 20px rgba(0,0,0,.12);transform:translateY(-2px);}
.module:active{transform:translateY(1px);box-shadow:0 1px 4px rgba(0,0,0,.1);}
.module .code{
  font-family:'IBM Plex Mono',monospace;
  font-size:.72rem;
  color:var(--gold);
  letter-spacing:.08em;
}
.module h3{font-size:1.3rem;margin-bottom:.15em;color:var(--green);font-weight:800;}
.module p{font-family:'IBM Plex Sans',sans-serif;font-size:.92rem;color:var(--ink-soft);margin-bottom:0;flex:1;}
.module .go{
  font-family:'IBM Plex Mono',monospace;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--green);
  font-weight:700;
}

/* two column */
.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  align-items:start;
}

/* list with markers */
.spec-list{list-style:none;margin:0;padding:0;}
.spec-list li{
  display:flex;gap:1.2em;
  padding:1.1em 0;
  border-bottom:1px solid var(--line);
}
.spec-list li:first-child{border-top:1px solid var(--line);}
.spec-list .tag{
  font-family:'IBM Plex Mono',monospace;
  font-size:.72rem;
  color:var(--gold);
  min-width:64px;
  padding-top:.15em;
}
.spec-list h4{font-size:1.08rem;margin-bottom:.2em;}
.spec-list p{margin:0;color:var(--ink-soft);font-size:.94rem;}

/* cards (offers detail pages) */
.offer-block{
  border:1px solid var(--line);
  padding:2.4em;
  margin-bottom:20px;
  background:#fff;
  border-radius:10px;
  box-shadow:0 4px 12px rgba(0,0,0,.08);
  transition:box-shadow .15s,translate .15s;
  cursor:default;
}
.offer-block:hover{box-shadow:0 8px 28px rgba(0,0,0,.12);translate:0 -3px;}
.offer-block:active{box-shadow:0 1px 4px rgba(0,0,0,.06);translate:0 1px;}
.offer-block__head{
  display:flex;justify-content:space-between;align-items:baseline;
  gap:1em;flex-wrap:wrap;
  margin-bottom:1em;
  border-bottom:1px solid var(--line);
  padding-bottom:1em;
}
.offer-block h3{font-size:1.5rem;margin:0;color:var(--green);font-weight:800;}
.pill{
  font-family:'IBM Plex Mono',monospace;
  font-size:.66rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  border:1px solid var(--navy);
  padding:.35em .8em;
  border-radius:2px;
  white-space:nowrap;
  color:var(--navy);
}
.pill-indigo{border-color:var(--navy);color:var(--navy);}
.pill-amber{border-color:var(--gold);color:#7A5E28;background:#FBF4E7;}

.check-list{list-style:none;margin:1.2em 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.7em 1.5em;}
.check-list li{
  padding-left:1.4em;position:relative;font-size:.94rem;color:var(--ink-soft);
}
.check-list li::before{
  content:"";position:absolute;left:0;top:.55em;
  width:7px;height:7px;background:var(--gold);
}

/* stats strip */
.stats{
  background:var(--navy);
  color:var(--paper);
  padding:52px 0;
}
.stats .container{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:2em;
}
.stat b{
  display:block;
  font-family:'Source Serif 4',serif;
  font-size:2.4rem;
  font-weight:700;
  color:var(--gold-soft);
}
.stat span{
  font-family:'IBM Plex Mono',monospace;
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:rgba(255,255,255,0.6);
}

/* cta band */
.cta-band{
  background:var(--navy-2);
  color:#fff;
  padding:64px 0;
  text-align:center;
  border-top:3px solid var(--gold);
}
.cta-band h2{color:#fff;font-size:clamp(1.9rem,3.6vw,2.7rem);}
.cta-band p{color:rgba(255,255,255,0.78);max-width:52ch;margin:0 auto 1.6em;font-family:'IBM Plex Sans',sans-serif;}

/* footer */
.site-footer{
  background:var(--navy);
  color:rgba(255,255,255,0.72);
  padding:56px 0 28px;
  font-size:.92rem;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr 1fr;
  gap:2.5em;
  padding-bottom:2.6em;
  border-bottom:1px solid var(--line-dark);
}
.footer-grid .brand-logo{height:32px;}
.footer-grid h4{
  color:var(--gold-soft);
  font-size:.7rem;
  font-family:'IBM Plex Mono',monospace;
  text-transform:uppercase;
  letter-spacing:.1em;
  margin-bottom:1em;
}
.footer-grid ul{list-style:none;margin:0;padding:0;}
.footer-grid li{margin-bottom:.6em;}
.footer-grid a{text-decoration:none;color:rgba(255,255,255,0.7);}
.footer-grid a:hover{color:var(--gold-soft);}
.footer-bottom{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:1.6em;
  font-family:'IBM Plex Mono',monospace;
  font-size:.72rem;
  color:rgba(255,255,255,0.4);
  flex-wrap:wrap;gap:1em;
}


/* page hero (sub-pages, smaller) */
.page-hero{
  background:var(--navy);color:var(--paper);
  padding:64px 0 48px;
}
.page-hero h1{color:#fff;font-size:clamp(2.1rem,4.2vw,3.1rem);max-width:18ch;}
.page-hero .lead{color:rgba(255,255,255,0.75);max-width:56ch;font-size:1.02rem;font-family:'IBM Plex Sans',sans-serif;}
.breadcrumb{
  font-family:'IBM Plex Mono',monospace;
  font-size:.72rem;
  color:rgba(255,255,255,0.5);
  text-transform:uppercase;
  letter-spacing:.06em;
  margin-bottom:1.4em;
}
.breadcrumb a{color:rgba(255,255,255,0.75);text-decoration:none;}

/* forms */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2em;}
.form-grid .full{grid-column:1/-1;}
label{
  display:block;
  font-family:'IBM Plex Mono',monospace;
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.07em;
  color:var(--ink-soft);
  margin-bottom:.5em;
}
input,select,textarea{
  width:100%;
  border:1.5px solid var(--navy);
  border-radius:var(--radius);
  padding:.85em 1em;
  font-family:'IBM Plex Sans',sans-serif;
  font-size:.94rem;
  background:#fff;
  color:var(--ink);
}
textarea{resize:vertical;min-height:120px;}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--indigo-dim);}

/* contact info card */
.info-card{
  background:var(--navy);color:var(--paper);
  padding:2.2em;
  border-top:3px solid var(--gold);
}
.info-card h4{
  font-family:'IBM Plex Mono',monospace;
  font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;
  color:var(--gold-soft);margin-bottom:1.2em;
}
.info-row{display:flex;gap:1em;padding:.9em 0;border-bottom:1px solid var(--line-dark);}
.info-row:last-child{border-bottom:none;}
.info-row .k{font-family:'IBM Plex Mono',monospace;font-size:.68rem;color:rgba(255,255,255,0.45);min-width:74px;text-transform:uppercase;}
.info-row .v{font-size:.92rem;}

/* map placeholder */
.map-box{
  border:1px solid var(--line);
  aspect-ratio:16/9;
  overflow:hidden;
}
.map-box iframe{width:100%;height:100%;border:0;filter:grayscale(.25);}

/* ---------- floating WhatsApp bubble ---------- */
.whatsapp-float{
  position:fixed;
  bottom:24px;right:24px;
  z-index:9999;
  width:60px;height:60px;
  border-radius:50%;
  background:#25D366;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 4px 16px rgba(37,211,102,0.4);
  text-decoration:none;
  transition:transform .3s ease, box-shadow .3s ease;
  animation:whatsapp-pulse 2s infinite;
}
.whatsapp-float:hover{
  transform:scale(1.1);
  box-shadow:0 6px 24px rgba(37,211,102,0.55);
}
.whatsapp-float svg{width:28px;height:28px;fill:#fff;}
@keyframes whatsapp-pulse{
  0%{transform:scale(1);box-shadow:0 4px 16px rgba(37,211,102,0.4);}
  50%{transform:scale(1.05);box-shadow:0 6px 24px rgba(37,211,102,0.6);}
  100%{transform:scale(1);box-shadow:0 4px 16px rgba(37,211,102,0.4);}
}
@media (max-width:560px){
  .whatsapp-float{bottom:16px;right:16px;width:52px;height:52px;}
  .whatsapp-float svg{width:24px;height:24px;}
}

/* ---------- modal ---------- */
.modal-overlay{
  display:none;
  position:fixed;
  inset:0;
  z-index:999;
  background:rgba(0,0,0,0.55);
  align-items:center;
  justify-content:center;
}
.modal-overlay.is-open{display:flex;}
.modal{
  background:var(--paper);
  max-width:480px;
  width:90%;
  padding:2.4em 2em;
  position:relative;
  border-top:4px solid var(--green);
}
.modal-close{
  position:absolute;
  top:12px;right:14px;
  background:none;border:none;
  font-size:1.4rem;
  cursor:pointer;
  line-height:1;
  color:var(--ink-soft);
}
.modal-close:hover{color:var(--ink);}
.modal h3{font-size:1.4rem;margin-bottom:.3em;}
.modal .modal-sub{color:var(--ink-soft);font-size:.92rem;margin-bottom:1.6em;}
.modal-contact-row{
  display:flex;
  align-items:center;
  gap:1em;
  padding:.9em 0;
  border-bottom:1px solid var(--line);
}
.modal-contact-row:last-child{border-bottom:none;}
.modal-contact-row .icon{font-size:1.1rem;min-width:28px;text-align:center;}
.modal-contact-row .label{font-family:'IBM Plex Mono',monospace;font-size:.7rem;text-transform:uppercase;color:var(--ink-soft);min-width:44px;}
.modal-contact-row .value{font-size:.95rem;color:var(--ink);}
.modal-contact-row .value a{color:var(--green);text-decoration:none;}
.modal-contact-row .value a:hover{text-decoration:underline;}

/* ---------- modal form ---------- */
.modal .form-group{margin-bottom:1em;}
.modal .form-group label{display:block;font-family:'IBM Plex Sans',sans-serif;font-size:.82rem;font-weight:600;color:var(--ink);margin-bottom:.3em;}
.modal .form-group input{width:100%;padding:.7em .8em;border:1px solid var(--line);border-radius:6px;font-family:'IBM Plex Sans',sans-serif;font-size:.9rem;box-sizing:border-box;transition:border-color .15s;}
.modal .form-group input:focus{outline:none;border-color:var(--green);}
.modal .form-group textarea{width:100%;padding:.7em .8em;border:1px solid var(--line);border-radius:6px;font-family:'IBM Plex Sans',sans-serif;font-size:.9rem;box-sizing:border-box;transition:border-color .15s;resize:vertical;}
.modal .form-group textarea:focus{outline:none;border-color:var(--green);}

/* ---------- software section ---------- */
.software-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:24px;
}
.software-card{
  background:var(--paper);
  padding:2em 1.8em;
  display:flex;
  flex-direction:column;
  gap:.6em;
  border:1px solid var(--line);
  box-shadow:0 4px 12px rgba(0,0,0,.08);
  transition:transform .12s ease,box-shadow .12s ease,background .18s ease;
  text-decoration:none;
  color:inherit;
  cursor:pointer;
  position:relative;
  top:0;
}
.software-card:hover{background:var(--paper-dim);box-shadow:0 6px 20px rgba(0,0,0,.12);transform:translateY(-2px);}
.software-card:active{transform:translateY(1px);box-shadow:0 1px 4px rgba(0,0,0,.1);}
.software-card .sTag{
  font-family:'IBM Plex Mono',monospace;
  font-size:.65rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ink-soft);
}
.software-card h3{font-size:1.2rem;margin-bottom:.1em;color:var(--green);font-weight:800;}
.software-card p{font-family:'IBM Plex Sans',sans-serif;font-size:.9rem;color:var(--ink-soft);margin-bottom:0;flex:1;}
.software-card .go{
  font-family:'IBM Plex Mono',monospace;
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--green);
  margin-top:.4em;
}
@media (max-width:768px){
  .software-grid{grid-template-columns:1fr;}
}

/* ---------- testimonials ---------- */
.testimonials{
  background:var(--green);
  color:var(--paper);
  padding:80px 0;
}
.testimonials h2{color:#fff;font-size:clamp(1.8rem,3.2vw,2.4rem);margin-bottom:2.2em;}
.testi-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.testi-card{
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.12);
  padding:1.6em;
  display:flex;
  gap:1em;
  align-items:flex-start;
  transition:opacity .3s ease;
}
.testi-body{flex:1;}
.testi-avatar{flex:none;width:48px;}
.testi-avatar svg{width:48px;height:48px;display:block;border-radius:50%;}
.testi-card .quote{
  font-family:'Source Serif 4',serif;
  font-size:.95rem;
  font-style:italic;
  color:rgba(255,255,255,0.88);
  line-height:1.5;
  margin:0 0 .6em;
}
.testi-card .attribution{
  font-family:'IBM Plex Mono',monospace;
  font-size:.7rem;
  letter-spacing:.03em;
  color:var(--yellow-soft);
}
.testi-card .role{
  font-size:.72rem;
  color:rgba(255,255,255,0.5);
  font-family:'IBM Plex Sans',sans-serif;
}
@media (max-width:920px){
  .testi-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:560px){
  .testi-grid{grid-template-columns:1fr;}
}

/* ---------- partners strip ---------- */
.partners{
  background:var(--paper-dim);
  padding:60px 0;
  text-align:center;
}
.partners h2{font-size:clamp(1.3rem,2vw,1.7rem);margin-bottom:.6em;}
.partner-track-wrap{overflow:hidden;margin-top:2em;padding:1em 0;width:100%;}
.partner-track{display:flex;gap:3.5em;align-items:center;animation:scroll-partner 22s linear infinite;width:max-content;padding:0 1.5em;}
.partner-logo-item{display:flex;align-items:center;gap:.7em;flex:none;white-space:nowrap;}
.partner-logo-item svg,.partner-img{width:36px;height:36px;flex:none;border-radius:6px;object-fit:cover;}
.partner-logo-item span{font-family:'IBM Plex Mono',monospace;font-size:.82rem;font-weight:600;color:var(--green);letter-spacing:.03em;}
@keyframes scroll-partner{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}
.partner-track:hover{animation-play-state:paused;}

/* ============================================================
   Responsive — mobile first fixes, breakpoints à 1024 / 920 / 768 / 560 / 380
   ============================================================ */
html{-webkit-text-size-adjust:100%;}
body{overflow-x:hidden;}

/* évite le zoom automatique iOS au focus d'un champ */
input,select,textarea{font-size:16px;}

/* ---- tablette large / petit desktop (≤1024px) ---- */
@media (max-width:1024px){
  .container{padding:0 22px;}
  .hero .container{gap:40px;}
  .module-grid{grid-template-columns:1fr 1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}

/* ---- tablette (≤920px) : bascule vers le menu mobile ---- */
@media (max-width:920px){
  .topbar-left,.topbar-right > a{display:none;}
  .topbar{background:transparent;padding:0;border:none;}
  .topbar .container{justify-content:flex-end;}
  .lang-switcher{position:fixed;top:22px;left:50%;transform:translateX(-50%);z-index:1000;background:var(--navy);padding:4px 10px;border-radius:20px;}
  .nav-links{display:none;}
  .nav-links.is-open{display:flex;flex-direction:column;gap:1.2em;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:1.6em 28px;border-bottom:1px solid var(--line);}
  .nav-toggle{display:flex;}
  .hero .container{grid-template-columns:1fr;}
  .split{grid-template-columns:1fr;gap:40px;}
  .stats .container{grid-template-columns:1fr 1fr;row-gap:2em;}
  .check-list{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
  .topbar-left > a[href^="mailto"]{display:none;}
  .nav-cta .btn-primary{padding:.8em 1.1em;font-size:.72rem;}
}

/* ---- tablette portrait / grand mobile (≤768px) ---- */
@media (max-width:768px){
  .module-grid{grid-template-columns:1fr;}
  section{padding:64px 0;}
  .offer-block{padding:1.8em;}
  .section-head{flex-direction:column;align-items:flex-start;gap:.6em;}
  .hero{padding:64px 0 48px;}
  .page-hero{padding:52px 0 40px;}
}

/* ---- mobile (≤560px) ---- */
@media (max-width:560px){
  .footer-grid{grid-template-columns:1fr;}
  section{padding:48px 0;}
  .topbar .container{flex-wrap:nowrap;padding:6px 16px;}
  .topbar-right > a{display:none;}
  .topbar-right{gap:0;}
  .topbar-left{flex-wrap:nowrap;gap:.5em;overflow:hidden;}
  .topbar-left > a[href^="mailto"]{display:none;}
  .topbar-left > a[href^="https://wa.me"]{display:none;}
  .topbar-social{gap:4px;margin-left:.2em;}
  .brand .sub{display:none;}
  .nav-cta .btn-primary{display:none;}
  .hero-actions{flex-direction:column;}
  .hero-actions .btn,.cta-band .btn{width:100%;justify-content:center;}
  .offer-block__head{flex-direction:column;align-items:flex-start;gap:.6em;}
  .status-row{flex-wrap:wrap;}
}

/* ---- très petit mobile (≤380px) ---- */
@media (max-width:380px){
  .container{padding:0 16px;}
  .brand{font-size:1.05rem;}
  .hero h1{font-size:2.1rem;}
}

/* ---------- nav dropdowns ---------- */
.nav-links li{position:relative;}
.nav-drop{
  display:none;
  position:absolute;
  top:100%;
  left:50%;
  transform:translateX(-50%);
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:0 8px 24px rgba(0,0,0,.12);
  padding:8px 0;
  min-width:200px;
  z-index:20;
  margin-top:8px;
}
.nav-drop a{
  display:block;
  padding:8px 16px;
  font-family:'IBM Plex Sans',sans-serif;
  font-size:.82rem;
  color:var(--ink);
  text-decoration:none;
  white-space:nowrap;
  transition:background .12s ease;
}
.nav-drop a:hover{background:var(--paper-dim);color:var(--green);}
.nav-links li:hover .nav-drop{display:block;}

/* ---------- scroll reveal ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .5s ease,transform .5s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:0.001ms !important;animation-iteration-count:1 !important;}
  html{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;transition:none;}
}

/* ---------- language switcher ---------- */
.lang-switcher {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: 1em;
}
.lang-switch {
  background: none;
  border: 1px solid rgba(255,255,255,0.3);
  color: rgba(255,255,255,0.6);
  font-family: 'IBM Plex Mono', monospace;
  font-size: .68rem;
  font-weight: 600;
  padding: 2px 6px;
  cursor: pointer;
  border-radius: 2px;
  transition: color .15s, border-color .15s, background .15s;
  line-height: 1.4;
}
.lang-switch:hover {
  color: #fff;
  border-color: rgba(255,255,255,0.6);
}
.lang-switch.active {
  color: var(--gold);
  border-color: var(--gold);
  background: rgba(249,160,27,0.12);
}
.lang-sep {
  color: rgba(255,255,255,0.25);
  font-size: .7rem;
}
