/* =============================================
   Theme Vision Color — feuille de style principale
   ============================================= */

  * { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body { margin: 0; background: #ffffff; color: #16181b; font-family: 'IBM Plex Sans', sans-serif; -webkit-font-smoothing: antialiased; }
  ::selection { background: #d92027; color: #fff; }
  input, textarea, select, button { font-family: inherit; }
  .vc-burger { display: none; }
  .vc-metal { background: linear-gradient(135deg,#f4f5f6 0%,#e0e2e5 42%,#f0f1f3 58%,#d7dadd 100%); }
  .vc-brush { background-image: repeating-linear-gradient(122deg, rgba(255,255,255,0.5) 0 1px, rgba(0,0,0,0.02) 1px 3px); }
  @media (max-width: 980px) {
    .vc-nav-desktop { display: none !important; }
    .vc-util-extra { display: none !important; }
    .vc-header-cta { display: none !important; }
    .vc-burger { display: inline-flex !important; }
    .vc-hero-grid { grid-template-columns: 1fr !important; }
    .vc-2col { grid-template-columns: 1fr !important; }
    .vc-3col { grid-template-columns: 1fr !important; }
    .vc-4col { grid-template-columns: 1fr 1fr !important; }
    .vc-6col { grid-template-columns: 1fr 1fr 1fr !important; }
    .vc-7col { grid-template-columns: repeat(4, 1fr) !important; }
    .vc-timeline { grid-template-columns: 1fr !important; }
    .vc-dist-grid { grid-template-columns: 1fr !important; }
    .vc-pad { padding-left: 20px !important; padding-right: 20px !important; }
    .vc-sec { padding-top: 60px !important; padding-bottom: 60px !important; }
    .vc-h1 { font-size: 38px !important; }
    .vc-h2 { font-size: 28px !important; }
    .vc-hero-visual { display: none !important; }
  }
  @media (max-width: 560px) {
    .vc-4col { grid-template-columns: 1fr !important; }
    .vc-6col { grid-template-columns: 1fr 1fr !important; }
    .vc-7col { grid-template-columns: 1fr 1fr !important; }
  }

/* --- Ajouts thème WordPress --- */

/* Menu de langue (visuel) */

/* Menu mobile */
#vc-mobile-nav { display: none; }
#vc-mobile-nav.vc-open { display: block; }

/* Message de confirmation des formulaires */

/* Contenu de page générique (page.php) */
.vc-page-content { max-width: 860px; margin: 0 auto; padding: 70px 40px; }
.vc-page-content h1 { font-family: 'Archivo', sans-serif; font-weight: 800; font-size: 42px; color: #17191c; margin: 0 0 24px; }
.vc-page-content h2 { font-family: 'Archivo', sans-serif; font-weight: 800; font-size: 30px; color: #17191c; }
.vc-page-content p { font-size: 16px; line-height: 1.7; color: #4a4e54; }
.vc-page-content a { color: #d92027; }

/* Les liens du design d'origine n'avaient pas de soulignement par défaut :
   tous les soulignements voulus sont définis en styles inline. */
#vc-site a { text-decoration: none; }
#vc-site a[style*="text-decoration: underline"],
#vc-site a[style*="text-decoration:underline"] { text-decoration: underline !important; }
.vc-page-content a { text-decoration: underline; }

/* ----- Navigation (menus WordPress) ----- */
.vc-nav-link {
  font-size: 14px; font-weight: 600; color: #43474d;
  padding: 9px 14px; cursor: pointer; text-decoration: none;
  border-bottom: 2px solid transparent;
}
.vc-nav-link:hover { color: #17191c; }
.vc-nav-link.current { color: #d92027; border-bottom-color: #d92027; }
.vc-mobile-link {
  display: block; padding: 13px 8px; font-size: 16px; font-weight: 600;
  color: #17191c; border-bottom: 1px solid #eceef0; text-decoration: none;
}
.vc-footer-link {
  display: block; font-size: 14px; color: #a2a6ab;
  margin-bottom: 11px; text-decoration: none;
  transition: color .15s ease;
}
.vc-footer-link:hover { color: #ffffff; }
.vc-legal-link { color: #6b7076; text-decoration: none; transition: color .15s ease; }
.vc-legal-link:hover { color: #a2a6ab; }

/* ----- Images de contenu (blocs Image Gutenberg) ----- */
.vc-img { margin: 0; }
.vc-img img { display: block; width: 100%; height: auto; }

/* ----- Notice de formulaire non configuré ----- */
.vc-form-notice {
  border-left: 3px solid #d92027; background: #f7f8f9;
  padding: 16px 18px; font-size: 14px; color: #4a4e54;
}

/* ============================================================
   Cadres d'images fixes (v4) — le remplacement d'une image
   dans Gutenberg ne déforme jamais la mise en page.
   ============================================================ */
.vc-img { margin: 0; width: 100%; overflow: hidden; }
.vc-img img { display: block; width: 100%; height: auto; }

/* Cadres à ratio fixe : l'image remplit le cadre (recadrage centré) */
.vc-img-hero,
.vc-img-card,
.vc-img-photo,
.vc-img-card-wide,
.vc-img-square,
.vc-img-cover { position: relative; }

.vc-img-hero img,
.vc-img-card img,
.vc-img-photo img,
.vc-img-card-wide img,
.vc-img-square img,
.vc-img-cover img { width: 100%; height: 100%; object-fit: cover; object-position: center; }

.vc-img-hero      { aspect-ratio: 4 / 3; }   /* grande image / hero */
.vc-img-card,
.vc-img-photo     { aspect-ratio: 4 / 3; }   /* cartes classiques, photos */
.vc-img-card-wide { aspect-ratio: 21 / 9; }  /* visuels de cartes produits */
.vc-img-square    { aspect-ratio: 1 / 1; }   /* carte Europe, réseau */

/* Logos & documents : l'image reste entière, jamais recadrée */
.vc-img-logo img,
.vc-img-contain img { width: 100%; height: 100%; object-fit: contain; object-position: center; }
.vc-img-logo    { aspect-ratio: 21 / 9; }
.vc-img-contain { aspect-ratio: 4 / 3; }

/* ============================================================
   Sélecteur de langue (v4) — FR actif, autres langues prêtes.
   Jamais de lien mort : sans URL configurée, la langue est
   affichée désactivée (.is-disabled).
   ============================================================ */
.vc-lang-bar { display: flex; align-items: center; gap: 6px; }
.vc-lang-bar .vc-lang-item {
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.08em;
  line-height: 1;
  padding: 5px 7px;
  color: rgb(139, 144, 150);
  border: 1px solid rgb(42, 46, 51);
  text-decoration: none;
}
.vc-lang-bar a.vc-lang-item:hover { color: #ffffff; border-color: rgb(107, 112, 118); }
.vc-lang-bar .vc-lang-item.is-active { color: #ffffff; background: rgb(217, 32, 39); border-color: rgb(217, 32, 39); }
.vc-lang-bar .vc-lang-item.is-disabled { opacity: 0.38; cursor: default; }

.vc-lang-squares { display: flex; flex-wrap: wrap; gap: 8px; }
.vc-lang-squares .vc-lang-item {
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.08em;
  line-height: 1;
  padding: 8px 10px;
  color: rgb(196, 199, 203);
  border: 1px solid rgb(42, 46, 51);
  text-decoration: none;
}
.vc-lang-squares a.vc-lang-item:hover { color: #ffffff; border-color: rgb(107, 112, 118); }
.vc-lang-squares .vc-lang-item.is-active { color: #ffffff; background: rgb(217, 32, 39); border-color: rgb(217, 32, 39); }
.vc-lang-squares .vc-lang-item.is-disabled { opacity: 0.38; cursor: default; }

/* Sélecteur dans le menu mobile (fond blanc) */
#vc-mobile-nav .vc-lang-squares .vc-lang-item { color: rgb(75, 80, 86); border-color: rgb(217, 220, 224); }
#vc-mobile-nav .vc-lang-squares .vc-lang-item.is-active { color: #ffffff; }

/* Topbar : masquer le sélecteur sur très petit écran (il reste dans le menu mobile) */
@media (max-width: 640px) {
  .vc-lang-bar { display: none; }
}

/* ============================================================
   Footer — composition rééquilibrée (v4.2)
   ============================================================ */
.vc-footer-grid {
  display: grid;
  grid-template-columns: 1.55fr .9fr .9fr 1.15fr;
  gap: 48px;
  align-items: start;
}
.vc-footer-col { min-width: 0; }
.vc-footer-title {
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  color: rgb(107, 112, 118);
  margin-bottom: 18px;
}

/* Colonne marque */
.vc-footer-brand { max-width: 380px; }
.vc-footer-logo { margin-bottom: 18px; }
.vc-footer-desc {
  font-size: 14px; color: rgb(139, 144, 150);
  line-height: 1.6; margin: 0 0 20px;
}
.vc-footer-shop {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 700; color: #ffffff;
  text-decoration: none;
}
.vc-footer-shop:hover { color: rgb(217, 32, 39); }

/* Coordonnées entreprise */
.vc-company-info { margin: 0 0 18px; }
.vc-company-address { font-style: normal; margin: 0 0 10px; }
.vc-company-line { display: block; font-size: 13.5px; color: rgb(139, 144, 150); line-height: 1.65; }
.vc-company-line.vc-company-name {
  font-family: "IBM Plex Mono", monospace;
  font-size: 12px;
  letter-spacing: 0.1em;
  color: rgb(196, 199, 203);
  margin-bottom: 4px;
}
.vc-company-contact { display: block; font-size: 13.5px; color: rgb(196, 199, 203); line-height: 1.9; text-decoration: none; }
a.vc-company-contact:hover { color: #ffffff; }

/* Réseaux sociaux */
.vc-social-links { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; }
.vc-social-link {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px;
  color: rgb(196, 199, 203);
  border: 1px solid rgb(42, 46, 51);
  text-decoration: none;
  transition: color .15s ease, border-color .15s ease, background .15s ease;
}
.vc-social-link:hover { color: #ffffff; background: rgb(217, 32, 39); border-color: rgb(217, 32, 39); }

/* Colonne réseaux + langue */
.vc-footer-connect { display: flex; flex-direction: column; align-items: flex-start; }
.vc-footer-connect .vc-social-links { margin-bottom: 0; }
.vc-footer-connect__divider { width: 100%; height: 1px; margin: 24px 0 20px; background: rgb(42, 46, 51); }
.vc-footer-title--secondary { margin-bottom: 14px; }
.vc-footer-connect .vc-lang-squares { gap: 8px; }

/* Barre basse : copyright + liens légaux */
.vc-footer-bottom {
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px 24px; flex-wrap: wrap;
  margin-top: 48px; padding-top: 24px;
  border-top: 1px solid rgb(42, 46, 51);
}
.vc-footer-copy { font-size: 12.5px; color: rgb(107, 112, 118); }
.vc-footer-legal { display: flex; align-items: center; gap: 14px; font-size: 12.5px; }
.vc-legal-sep { color: rgb(60, 65, 71); }

/* ---- Tablette ---- */
@media (max-width: 1024px) {
  .vc-footer-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 40px 36px;
  }
  .vc-footer-brand { grid-column: 1 / -1; max-width: 720px; }
}

/* ---- Mobile ---- */
@media (max-width: 640px) {
  .vc-footer-inner { padding: 42px 20px 26px !important; }
  .vc-footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 28px 20px;
  }
  .vc-footer-brand { grid-column: 1 / -1; max-width: none; }
  .vc-footer-desc { max-width: 520px; font-size: 13.5px; margin-bottom: 16px; }
  .vc-company-info { margin-bottom: 14px; }
  .vc-footer-connect { grid-column: 1 / -1; padding-top: 2px; }
  .vc-footer-connect__divider { margin: 20px 0 18px; }
  .vc-social-links { margin-bottom: 0; }
  .vc-social-link { width: 38px; height: 38px; }
  .vc-footer-title { margin-bottom: 13px; }
  .vc-footer-link { font-size: 14px; margin-bottom: 11px; }
  .vc-footer-bottom {
    margin-top: 30px; padding-top: 20px;
    flex-direction: column; align-items: flex-start; gap: 13px;
  }
  .vc-footer-legal { flex-wrap: wrap; gap: 6px 14px; }
}

/* Très petit écran : coordonnées et liens en une colonne franche */
@media (max-width: 380px) {
  .vc-footer-grid { grid-template-columns: 1fr; }
  .vc-footer-brand,
  .vc-footer-connect { grid-column: 1; }
}
