/* cyrillic-ext */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../fonts/plus-jakarta-sans-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../fonts/plus-jakarta-sans-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../fonts/plus-jakarta-sans-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../fonts/plus-jakarta-sans-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

/* Le header est déclaré sticky, mais le overflow-x:hidden (inline) du
   conteneur parent neutralise le sticky. overflow-x:clip coupe pareil
   le débordement horizontal SANS créer de scroll container : le header
   reste donc réellement collé en haut. */
body > div[style*="overflow-x:hidden"] { overflow-x: clip !important; }

/* Les liens d'ancre (#functions, #contact…) s'arrêtent sous le header
   sticky au lieu de coller la section au bord haut de l'écran. */
[id] { scroll-margin-top: 86px; }
body { margin: 0; -webkit-font-smoothing: antialiased; background: #0E0F17; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: #3A3D4D; border-radius: 8px; }
::-webkit-scrollbar-track { background: transparent; }
input:focus, textarea:focus { border-color: #7D4BF1 !important; }
#form-error { font: 600 12.5px 'Plus Jakarta Sans'; color: #C0273D; display: none; }
.g-recaptcha { transform-origin: 0 0; }

/* --- Menu hamburger (mobile) --- */
#nav-toggle {
  display: none;
  background: none;
  border: 0;
  padding: 6px;
  cursor: pointer;
  line-height: 0;
  flex-shrink: 0;
}
#mobile-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  flex-direction: column;
  background: #0E0F17;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
  padding: 10px 20px 22px;
}
#mobile-menu.open { display: flex; }
#mobile-menu a {
  font: 600 15px 'Plus Jakarta Sans';
  color: #D9D9E2;
  text-decoration: none;
  padding: 13px 4px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
#mobile-menu a.menu-cta {
  margin-top: 14px;
  padding: 13px;
  border: 0;
  border-radius: 9px;
  background: linear-gradient(135deg, #7D4BF1, #DD04DB, #FB0D84);
  color: #fff;
  text-align: center;
  font: 700 13.5px 'Plus Jakarta Sans';
}
@media (max-width: 940px) {
  header nav { display: none !important; }
  #nav-toggle { display: block; }
}
@media (max-width: 460px) {
  #header-cta { display: none !important; }
}
@media (max-width: 640px) {
  header, footer, section { padding-left: 20px !important; padding-right: 20px !important; }
  .g-recaptcha { transform: scale(0.86); }
  /* Les colonnes flex ont des min-width fixes (inline) pensés pour desktop :
     on les neutralise pour éviter tout débordement horizontal sur mobile. */
  [style*="min-width:420px"], [style*="min-width:360px"], [style*="min-width:340px"],
  [style*="min-width:320px"], [style*="min-width:280px"], [style*="min-width:240px"] {
    min-width: 0 !important;
    flex-basis: 100% !important;
    max-width: 100% !important;
  }
  /* Tableau comparatif (#vendor) : 3 colonnes trop étroites sur mobile.
     Le critère passe en pleine largeur, les 2 offres côte à côte dessous. */
  #vendor div[style*="grid-template-columns:1.1fr"] {
    grid-template-columns: 1fr 1fr !important;
  }
  #vendor div[style*="grid-template-columns:1.1fr"] > div {
    overflow-wrap: anywhere;
    padding: 12px 14px !important;
  }
  #vendor div[style*="grid-template-columns:1.1fr"] > div:first-child {
    grid-column: 1 / -1;
    padding-bottom: 0 !important;
  }
  /* Ligne d'en-tête : cellule d'angle vide inutile en 2 colonnes */
  #vendor div[style*="background:#14151F"] > div:first-child {
    display: none;
  }
}
