{"id":1126,"date":"2026-05-18T01:48:12","date_gmt":"2026-05-17T23:48:12","guid":{"rendered":"https:\/\/ftssarl.com\/?page_id=1126"},"modified":"2026-05-18T01:52:05","modified_gmt":"2026-05-17T23:52:05","slug":"demande-de-devis","status":"publish","type":"page","link":"https:\/\/ftssarl.com\/en\/demande-de-devis\/","title":{"rendered":"Demande de devis"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1126\" class=\"elementor elementor-1126\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f7c6b25 e-con-full e-flex e-con e-parent\" data-id=\"f7c6b25\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3a8824d elementor-widget elementor-widget-shortcode\" data-id=\"3a8824d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400&family=Playfair+Display+SC:wght@400;700&family=DM+Sans:wght@300;400;500&display=swap\" rel=\"stylesheet\">\n\n<style>\n\t\/* \u2550\u2550 RESET ISOLATION \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n#fts-dv *, #fts-dv *::before, #fts-dv *::after {\n  box-sizing: border-box !important;\n  margin: 0 !important;\n  padding: 0 !important;\n}\n#fts-dv {\n  font-family: 'DM Sans', sans-serif !important;\n  width: 100% !important;\n  overflow-x: hidden !important;\n}\n#fts-dv a { text-decoration: none !important; }\n#fts-dv img { display: block !important; border: none !important; box-shadow: none !important; }\n\n\/* \u2550\u2550 HERO \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n#fts-dv .fts-hero {\n  position: relative !important;\n  background-color: #696B6B !important;\n  overflow: hidden !important;\n  padding: clamp(5rem,12vw,9rem) clamp(1.5rem,8vw,6rem) clamp(4rem,10vw,7rem) !important;\n}\n#fts-dv .fts-hero::before {\n  content: '' !important;\n  position: absolute !important;\n  top: 0 !important; left: 0 !important;\n  width: 100% !important; height: 3px !important;\n  background-color: #95C11F !important;\n}\n#fts-dv .fts-hero-grid {\n  position: absolute !important;\n  inset: 0 !important;\n  background-image:\n    linear-gradient(rgba(204,255,0,.035) 1px, transparent 1px),\n    linear-gradient(90deg, rgba(204,255,0,.035) 1px, transparent 1px) !important;\n  background-size: 72px 72px !important;\n  pointer-events: none !important;\n}\n#fts-dv .fts-hero-fade {\n  position: absolute !important;\n  inset: 0 !important;\n  background: linear-gradient(to bottom, transparent 40%, #696B6B 100%) !important;\n  pointer-events: none !important;\n}\n#fts-dv .fts-hero-circle {\n  position: absolute !important;\n  right: -8rem !important; top: 50% !important;\n  transform: translateY(-50%) !important;\n  width: 36rem !important; height: 36rem !important;\n  border-radius: 50% !important;\n  border: 1px solid rgba(204,255,0,.07) !important;\n  pointer-events: none !important;\n}\n#fts-dv .fts-hero-circle2 {\n  position: absolute !important;\n  right: -4rem !important; top: 50% !important;\n  transform: translateY(-50%) !important;\n  width: 22rem !important; height: 22rem !important;\n  border-radius: 50% !important;\n  border: 1px solid rgba(204,255,0,.04) !important;\n  pointer-events: none !important;\n}\n#fts-dv .fts-hero-inner {\n  position: relative !important;\n  z-index: 2 !important;\n  max-width: 70rem !important;\n  margin: 0 auto !important;\n  display: grid !important;\n  grid-template-columns: 1fr !important;\n  gap: 3.5rem !important;\n  align-items: center !important;\n}\n@media (min-width: 1024px) {\n  #fts-dv .fts-hero-inner {\n    grid-template-columns: 1fr 1fr !important;\n    gap: 6rem !important;\n  }\n}\n#fts-dv .fts-eyebrow {\n  display: flex !important;\n  align-items: center !important;\n  gap: .875rem !important;\n  margin-bottom: 1.75rem !important;\n}\n#fts-dv .fts-eyebrow-line {\n  width: 2.5rem !important; height: 1px !important;\n  background-color: #95C11F !important;\n  flex-shrink: 0 !important;\n}\n#fts-dv .fts-eyebrow-txt {\n  font-size: .75rem !important;\n  letter-spacing: .26em !important;\n  text-transform: uppercase !important;\n  color: rgba(204,255,0,.55) !important;\n}\n#fts-dv .fts-hero-h1 {\n  font-weight: 900 !important;\n  font-size: clamp(2.75rem, 6vw, 4.5rem) !important;\n  text-transform: uppercase !important;\n  line-height: .95 !important;\n  letter-spacing: -.02em !important;\n  color: #ffffff !important;\n  margin-bottom: 1.5rem !important;\n}\n#fts-dv .fts-hero-h1 em {\n  font-style: italic !important;\n  font-weight: 400 !important;\n  color: #95C11F !important;\n}\n#fts-dv .fts-hero-lead {\n  font-size: 1.0625rem !important;\n  font-weight: 300 !important;\n  line-height: 1.75 !important;\n  color: rgba(255,255,255,.42) !important;\n  max-width: 30rem !important;\n  margin-bottom: 2.25rem !important;\n}\n#fts-dv .fts-hero-lead strong {\n  color: rgba(255,255,255,.75) !important;\n  font-weight: 500 !important;\n}\n\n\/* \u2500\u2500 \u00c9tapes process hero \u2500\u2500 *\/\n#fts-dv .fts-hero-steps {\n  display: flex !important;\n  flex-direction: column !important;\n  gap: 0 !important;\n  border: 1px solid rgba(255,255,255,.07) !important;\n}\n#fts-dv .fts-step-item {\n  display: flex !important;\n  align-items: flex-start !important;\n  gap: 1.25rem !important;\n  padding: 1.25rem 1.5rem !important;\n  border-bottom: 1px solid rgba(255,255,255,.06) !important;\n}\n#fts-dv .fts-step-item:last-child { border-bottom: none !important; }\n#fts-dv .fts-step-num {\n  font-size: 1.5rem !important;\n  font-weight: 900 !important;\n  color: #95C11F !important;\n  line-height: 1 !important;\n  flex-shrink: 0 !important;\n  width: 2rem !important;\n}\n#fts-dv .fts-step-title {\n  font-size: .75rem !important;\n  letter-spacing: .18em !important;\n  text-transform: uppercase !important;\n  color: rgba(255,255,255,.65) !important;\n  margin-bottom: .2rem !important;\n}\n#fts-dv .fts-step-desc {\n  font-size: .8125rem !important;\n  font-weight: 300 !important;\n  color: rgba(255,255,255,.32) !important;\n  line-height: 1.5 !important;\n}\n\n\/* \u2550\u2550 BRIDGE \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n#fts-dv .fts-bridge {\n  width: 100% !important;\n  height: 3rem !important;\n  background: linear-gradient(to bottom, #696B6B, #f7f5f0) !important;\n}\n\n\/* \u2550\u2550 BODY \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n#fts-dv .fts-body {\n  background-color: #f7f5f0 !important;\n  padding: clamp(3.5rem,8vw,6rem) clamp(1.5rem,8vw,6rem) clamp(4rem,10vw,7rem) !important;\n}\n#fts-dv .fts-body-inner {\n  max-width: 70rem !important;\n  margin: 0 auto !important;\n}\n\n\/* \u2550\u2550 LAYOUT \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n#fts-dv .fts-body-layout {\n  display: grid !important;\n  grid-template-columns: 1fr !important;\n  gap: 3rem !important;\n  align-items: start !important;\n}\n@media (min-width: 900px) {\n  #fts-dv .fts-body-layout {\n    grid-template-columns: 1fr 22rem !important;\n    gap: 4.5rem !important;\n  }\n}\n\n\/* \u2550\u2550 COLONNE DROITE \u2014 r\u00e9cap + engagements \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n#fts-dv .fts-body-col-side {\n  position: sticky !important;\n  top: 2rem !important;\n}\n#fts-dv .fts-side-block {\n  background-color: #696B6B !important;\n  padding: 2rem !important;\n  border-top: 3px solid #95C11F !important;\n  margin-bottom: 1.25rem !important;\n}\n#fts-dv .fts-side-tag {\n  font-size: .7rem !important;\n  letter-spacing: .22em !important;\n  text-transform: uppercase !important;\n  color: rgba(204,255,0,.6) !important;\n  margin-bottom: 1rem !important;\n}\n#fts-dv .fts-side-title {\n  font-family: 'Playfair Display', serif !important;\n  font-size: 1.25rem !important;\n  font-weight: 700 !important;\n  color: #ffffff !important;\n  line-height: 1.25 !important;\n  margin-bottom: 1.5rem !important;\n}\n#fts-dv .fts-side-list {\n  display: flex !important;\n  flex-direction: column !important;\n  gap: 0 !important;\n}\n#fts-dv .fts-side-row {\n  display: flex !important;\n  align-items: center !important;\n  gap: 1rem !important;\n  padding: .9rem 0 !important;\n  border-bottom: 1px solid rgba(255,255,255,.06) !important;\n}\n#fts-dv .fts-side-row:last-child { border-bottom: none !important; }\n#fts-dv .fts-side-icon {\n  width: 2.25rem !important; height: 2.25rem !important;\n  background-color: rgba(204,255,0,.07) !important;\n  flex-shrink: 0 !important;\n  display: flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n}\n#fts-dv .fts-side-icon svg {\n  width: 1rem !important; height: 1rem !important;\n  color: #95C11F !important;\n  fill: none !important;\n  stroke: currentColor !important;\n  stroke-width: 1.8 !important;\n}\n#fts-dv .fts-side-row-lbl {\n  font-size: .7rem !important;\n  letter-spacing: .16em !important;\n  text-transform: uppercase !important;\n  color: rgba(255,255,255,.27) !important;\n  margin-bottom: .15rem !important;\n}\n#fts-dv .fts-side-row-val {\n  font-size: .875rem !important;\n  font-weight: 400 !important;\n  color: rgba(255,255,255,.7) !important;\n}\n\n#fts-dv .fts-side-engage {\n  background-color: #ffffff !important;\n  border: 1px solid rgba(5,5,5,.09) !important;\n}\n#fts-dv .fts-side-engage-head {\n  padding: 1.125rem 1.375rem !important;\n  border-bottom: 1px solid rgba(5,5,5,.07) !important;\n  display: flex !important;\n  align-items: center !important;\n  gap: .75rem !important;\n}\n#fts-dv .fts-side-engage-head-line {\n  width: 1.5rem !important; height: 1px !important;\n  background-color: #95C11F !important;\n}\n#fts-dv .fts-side-engage-head-txt {\n  font-size: .7rem !important;\n  letter-spacing: .2em !important;\n  text-transform: uppercase !important;\n  color: #9ca3af !important;\n}\n#fts-dv .fts-engage-row {\n  display: flex !important;\n  align-items: center !important;\n  gap: .875rem !important;\n  padding: .875rem 1.375rem !important;\n  border-bottom: 1px solid rgba(5,5,5,.05) !important;\n}\n#fts-dv .fts-engage-row:last-child { border-bottom: none !important; }\n#fts-dv .fts-engage-dot {\n  width: .375rem !important; height: .375rem !important;\n  background-color: #95C11F !important;\n  border-radius: 50% !important;\n  flex-shrink: 0 !important;\n}\n#fts-dv .fts-engage-txt {\n  font-size: .8125rem !important;\n  font-weight: 300 !important;\n  color: #6b7280 !important;\n  line-height: 1.45 !important;\n}\n#fts-dv .fts-engage-txt strong {\n  font-weight: 500 !important;\n  color: #050505 !important;\n}\n@media (max-width: 899px) {\n  #fts-dv .fts-body-col-side { position: static !important; order: -1 !important; }\n}\n\n\/* \u2550\u2550 FORMULAIRE \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n#fts-dv .fts-body-header {\n  display: flex !important;\n  flex-direction: column !important;\n  gap: .5rem !important;\n  margin-bottom: 3rem !important;\n  padding-bottom: 2rem !important;\n  border-bottom: 1px solid rgba(5,5,5,.08) !important;\n}\n#fts-dv .fts-body-tag {\n  display: flex !important;\n  align-items: center !important;\n  gap: .75rem !important;\n}\n#fts-dv .fts-body-tag-line {\n  width: 2rem !important; height: 1px !important;\n  background-color: #95C11F !important; flex-shrink: 0 !important;\n}\n#fts-dv .fts-body-tag-txt {\n  font-size: .72rem !important;\n  letter-spacing: .22em !important;\n  text-transform: uppercase !important;\n  color: #9ca3af !important;\n}\n#fts-dv .fts-body-h2 {\n  font-family: 'Playfair Display', serif !important;\n  font-weight: 900 !important;\n  font-size: clamp(1.5rem, 3vw, 2.25rem) !important;\n  text-transform: uppercase !important;\n  color: #050505 !important;\n  line-height: 1.1 !important;\n}\n#fts-dv .fts-body-sub {\n  font-size: .9rem !important;\n  font-weight: 300 !important;\n  color: #6b7280 !important;\n  margin-top: .25rem !important;\n}\n#fts-dv .fts-body-sub span { color: #95C11F !important; font-weight: 500 !important; }\n\n\/* \u2500\u2500 Section separator \u2500\u2500 *\/\n#fts-dv .fts-section-sep {\n  display: flex !important;\n  align-items: center !important;\n  gap: .75rem !important;\n  margin: 2rem 0 1.25rem !important;\n}\n#fts-dv .fts-section-sep-line {\n  flex: 1 !important;\n  height: 1px !important;\n  background-color: rgba(5,5,5,.08) !important;\n}\n#fts-dv .fts-section-sep-txt {\n  font-size: .7rem !important;\n  letter-spacing: .22em !important;\n  text-transform: uppercase !important;\n  color: #9ca3af !important;\n  white-space: nowrap !important;\n}\n\n\/* \u2500\u2500 Produit repeater \u2500\u2500 *\/\n#fts-dv .fts-produit-block {\n  background-color: #ffffff !important;\n  border: 1px solid rgba(5,5,5,.09) !important;\n  padding: 1.375rem !important;\n  margin-bottom: 1rem !important;\n  position: relative !important;\n}\n#fts-dv .fts-produit-header {\n  display: flex !important;\n  align-items: center !important;\n  justify-content: space-between !important;\n  margin-bottom: 1.125rem !important;\n}\n#fts-dv .fts-produit-num {\n  font-size: .7rem !important;\n  letter-spacing: .2em !important;\n  text-transform: uppercase !important;\n  color: #9ca3af !important;\n  display: flex !important;\n  align-items: center !important;\n  gap: .5rem !important;\n}\n#fts-dv .fts-produit-num::before {\n  content: '' !important;\n  display: inline-block !important;\n  width: .375rem !important; height: .375rem !important;\n  background-color: #95C11F !important;\n  border-radius: 50% !important;\n}\n#fts-dv .fts-remove-btn {\n  background: none !important;\n  border: 1px solid rgba(229,62,62,.25) !important;\n  color: #e53e3e !important;\n  font-size: .7rem !important;\n  letter-spacing: .16em !important;\n  text-transform: uppercase !important;\n  padding: .35rem .75rem !important;\n  cursor: pointer !important;\n  transition: background-color .2s, color .2s !important;\n}\n#fts-dv .fts-remove-btn:hover {\n  background-color: #e53e3e !important;\n  color: #ffffff !important;\n}\n#fts-dv .fts-add-btn {\n  display: flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  gap: .625rem !important;\n  width: 100% !important;\n  background: none !important;\n  border: 1px dashed rgba(5,5,5,.18) !important;\n  color: #6b7280 !important;\n  font-size: .72rem !important;\n  letter-spacing: .2em !important;\n  text-transform: uppercase !important;\n  padding: 1rem !important;\n  cursor: pointer !important;\n  transition: border-color .25s, color .25s, background-color .25s !important;\n  margin-top: .5rem !important;\n}\n#fts-dv .fts-add-btn:hover {\n  border-color: #95C11F !important;\n  color: #050505 !important;\n  background-color: rgba(204,255,0,.05) !important;\n}\n#fts-dv .fts-add-btn svg {\n  width: .875rem !important; height: .875rem !important;\n  fill: none !important; stroke: currentColor !important; stroke-width: 2.5 !important;\n}\n\n\/* \u2500\u2500 Champs formulaire \u2500\u2500 *\/\n#fts-dv .fts-grid {\n  display: grid !important;\n  grid-template-columns: 1fr !important;\n  gap: 1.125rem !important;\n}\n@media (min-width: 640px) {\n  #fts-dv .fts-grid { grid-template-columns: 1fr 1fr !important; }\n  #fts-dv .fts-span { grid-column: 1 \/ -1 !important; }\n}\n#fts-dv .fts-span { grid-column: 1 \/ -1 !important; }\n\n#fts-dv .fts-grid-3 {\n  display: grid !important;\n  grid-template-columns: 1fr 1fr 1fr !important;\n  gap: .875rem !important;\n}\n@media (max-width: 640px) {\n  #fts-dv .fts-grid-3 { grid-template-columns: 1fr !important; }\n}\n\n#fts-dv .fts-fg {\n  display: flex !important;\n  flex-direction: column !important;\n  gap: .45rem !important;\n}\n#fts-dv .fts-lbl {\n  font-size: .7rem !important;\n  letter-spacing: .2em !important;\n  text-transform: uppercase !important;\n  color: #6b7280 !important;\n}\n#fts-dv .fts-req { color: #95C11F !important; margin-left: .15rem !important; }\n#fts-dv .fts-inp,\n#fts-dv .fts-ta,\n#fts-dv .fts-sel {\n  width: 100% !important;\n  background-color: #ffffff !important;\n  border: 1px solid rgba(5,5,5,.12) !important;\n  color: #050505 !important;\n  font-size: .9375rem !important;\n  font-weight: 300 !important;\n  padding: .875rem 1.125rem !important;\n  outline: none !important;\n  border-radius: 0 !important;\n  -webkit-appearance: none !important;\n  appearance: none !important;\n  transition: border-color .25s, box-shadow .25s !important;\n}\n#fts-dv .fts-inp::placeholder,\n#fts-dv .fts-ta::placeholder { color: rgba(5,5,5,.28) !important; }\n#fts-dv .fts-inp:focus,\n#fts-dv .fts-ta:focus,\n#fts-dv .fts-sel:focus {\n  border-color: #050505 !important;\n  box-shadow: 0 0 0 3px rgba(204,255,0,.25) !important;\n}\n#fts-dv .fts-inp.err,\n#fts-dv .fts-ta.err,\n#fts-dv .fts-sel.err { border-color: #e53e3e !important; }\n#fts-dv .fts-ta {\n  resize: vertical !important;\n  min-height: 7rem !important;\n}\n#fts-dv .fts-sel {\n  cursor: pointer !important;\n  background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23050505' stroke-width='1.5' fill='none' stroke-linecap='round'\/%3E%3C\/svg%3E\") !important;\n  background-repeat: no-repeat !important;\n  background-position: right 1.125rem center !important;\n  padding-right: 2.75rem !important;\n}\n#fts-dv .fts-sel option { background-color: #fff !important; color: #050505 !important; }\n\n\/* \u2500\u2500 Checkbox \u2500\u2500 *\/\n#fts-dv .fts-ck-wrap {\n  display: flex !important;\n  align-items: flex-start !important;\n  gap: .875rem !important;\n  cursor: pointer !important;\n  padding: .25rem 0 !important;\n}\n#fts-dv .fts-ck-real {\n  position: absolute !important;\n  opacity: 0 !important;\n  width: 0 !important;\n  height: 0 !important;\n}\n#fts-dv .fts-ck-box {\n  width: 1.125rem !important; height: 1.125rem !important;\n  border: 1px solid rgba(5,5,5,.25) !important;\n  background-color: #ffffff !important;\n  flex-shrink: 0 !important;\n  margin-top: .15rem !important;\n  display: flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  transition: background-color .2s, border-color .2s !important;\n}\n#fts-dv .fts-ck-real:checked ~ .fts-ck-box {\n  background-color: #95C11F !important;\n  border-color: #95C11F !important;\n}\n#fts-dv .fts-ck-real:checked ~ .fts-ck-box svg { display: block !important; }\n#fts-dv .fts-ck-box svg {\n  display: none !important;\n  width: .6875rem !important; height: .6875rem !important;\n  color: #050505 !important;\n  fill: none !important;\n  stroke: currentColor !important;\n  stroke-width: 3 !important;\n}\n#fts-dv .fts-ck-txt {\n  font-size: .8125rem !important;\n  font-weight: 300 !important;\n  line-height: 1.55 !important;\n  color: #6b7280 !important;\n}\n#fts-dv .fts-ck-txt span { color: #95C11F !important; }\n\n\/* \u2500\u2500 Bouton \u2500\u2500 *\/\n#fts-dv .fts-btn {\n  width: 100% !important;\n  display: flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  gap: .75rem !important;\n  background-color: #696B6B !important;\n  color: #ffffff !important;\n  font-size: .75rem !important;\n  font-weight: 700 !important;\n  letter-spacing: .18em !important;\n  text-transform: uppercase !important;\n  padding: 1.15rem 2rem !important;\n  border: none !important;\n  cursor: pointer !important;\n  border-radius: 0 !important;\n  transition: background-color .25s, color .25s !important;\n  margin-top: .5rem !important;\n}\n#fts-dv .fts-btn:hover { background-color: #95C11F !important; color: #050505 !important; }\n#fts-dv .fts-btn:disabled { background-color: rgba(5,5,5,.3) !important; cursor: not-allowed !important; }\n#fts-dv .fts-btn:hover .fts-btn-arrow { transform: translateX(4px) !important; }\n#fts-dv .fts-btn-arrow { transition: transform .25s !important; }\n#fts-dv .fts-spinner {\n  display: none !important;\n  width: 1rem !important; height: 1rem !important;\n  border: 2px solid rgba(255,255,255,.3) !important;\n  border-top-color: #ffffff !important;\n  border-radius: 50% !important;\n  animation: fts-dv-spin .7s linear infinite !important;\n}\n#fts-dv .fts-btn.loading .fts-spinner { display: block !important; }\n#fts-dv .fts-btn.loading .fts-btn-txt { display: none !important; }\n@keyframes fts-dv-spin { to { transform: rotate(360deg); } }\n\n\/* \u2500\u2500 Feedback \u2500\u2500 *\/\n#fts-dv .fts-fb {\n  display: none !important;\n  margin-top: 1rem !important;\n  padding: 1rem 1.25rem !important;\n  font-size: .9375rem !important;\n  font-weight: 400 !important;\n  border-left: 3px solid !important;\n}\n#fts-dv .fts-fb.ok {\n  display: block !important;\n  background-color: rgba(204,255,0,.1) !important;\n  border-color: #95C11F !important;\n  color: #4a5900 !important;\n}\n#fts-dv .fts-fb.ko {\n  display: block !important;\n  background-color: rgba(229,62,62,.07) !important;\n  border-color: #e53e3e !important;\n  color: #c53030 !important;\n}\n\n\/* \u2500\u2500 Footer \u2500\u2500 *\/\n#fts-dv .fts-body-footer {\n  margin-top: 3.5rem !important;\n  padding-top: 2rem !important;\n  border-top: 1px solid rgba(5,5,5,.08) !important;\n  display: flex !important;\n  flex-wrap: wrap !important;\n  align-items: center !important;\n  justify-content: space-between !important;\n  gap: 1rem !important;\n}\n#fts-dv .fts-bf-note {\n  font-size: .8125rem !important;\n  font-weight: 300 !important;\n  color: #9ca3af !important;\n}\n#fts-dv .fts-bf-brand {\n  font-size: .72rem !important;\n  letter-spacing: .2em !important;\n  text-transform: uppercase !important;\n  color: rgba(5,5,5,.25) !important;\n}\n<\/style>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     HERO\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div id=\"fts-dv\">\n\n  <div class=\"fts-hero\">\n    <div class=\"fts-hero-grid\"><\/div>\n    <div class=\"fts-hero-fade\"><\/div>\n    <div class=\"fts-hero-circle\"><\/div>\n    <div class=\"fts-hero-circle2\"><\/div>\n\n    <div class=\"fts-hero-inner\">\n\n      <!-- Gauche : titre + intro -->\n      <div>\n        <div class=\"fts-eyebrow\">\n          <div class=\"fts-eyebrow-line\"><\/div>\n          <span class=\"fts-eyebrow-txt\">Food Tech &amp; Solutions SARL<\/span>\n        <\/div>\n\n        <h1 class=\"fts-hero-h1\">\n          Demande de<br><em>devis<\/em>\n        <\/h1>\n\n        <p class=\"fts-hero-lead\">\n          Renseignez vos <strong>besoins en produits<\/strong> et volumes souhait\u00e9s.\n          Notre \u00e9quipe commerciale vous adresse une offre tarifaire personnalis\u00e9e\n          sous <strong>24 \u00e0 48h ouvrables<\/strong>.\n        <\/p>\n      <\/div>\n\n      <!-- Droite : \u00e9tapes process -->\n      <div>\n        <div class=\"fts-hero-steps\">\n          <div class=\"fts-step-item\">\n            <div class=\"fts-step-num\">01<\/div>\n            <div class=\"fts-step-body\">\n              <div class=\"fts-step-title\">Remplissez le formulaire<\/div>\n              <div class=\"fts-step-desc\">Produits, quantit\u00e9s, conditionnement souhait\u00e9 et coordonn\u00e9es de livraison.<\/div>\n            <\/div>\n          <\/div>\n          <div class=\"fts-step-item\">\n            <div class=\"fts-step-num\">02<\/div>\n            <div class=\"fts-step-body\">\n              <div class=\"fts-step-title\">Analyse de votre besoin<\/div>\n              <div class=\"fts-step-desc\">Notre \u00e9quipe technique v\u00e9rifie la disponibilit\u00e9 et les sp\u00e9cifications produits.<\/div>\n            <\/div>\n          <\/div>\n          <div class=\"fts-step-item\">\n            <div class=\"fts-step-num\">03<\/div>\n            <div class=\"fts-step-body\">\n              <div class=\"fts-step-title\">R\u00e9ception de votre devis<\/div>\n              <div class=\"fts-step-desc\">Vous recevez un devis d\u00e9taill\u00e9 par email sous 24 \u00e0 48h ouvrables.<\/div>\n            <\/div>\n          <\/div>\n          <div class=\"fts-step-item\">\n            <div class=\"fts-step-num\">04<\/div>\n            <div class=\"fts-step-body\">\n              <div class=\"fts-step-title\">Confirmation &amp; livraison<\/div>\n              <div class=\"fts-step-desc\">Validation de la commande et planification de la livraison \u00e0 votre convenance.<\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n\n  <!-- Transition -->\n  <div class=\"fts-bridge\"><\/div>\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n       BODY\n  \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n  <div class=\"fts-body\">\n    <div class=\"fts-body-inner\">\n      <div class=\"fts-body-layout\">\n\n        <!-- \u2500\u2500 COLONNE GAUCHE : formulaire \u2500\u2500 -->\n        <div class=\"fts-body-col-form\">\n\n          <div class=\"fts-body-header\">\n            <div class=\"fts-body-tag\">\n              <div class=\"fts-body-tag-line\"><\/div>\n              <span class=\"fts-body-tag-txt\">Formulaire de demande de devis<\/span>\n            <\/div>\n            <h2 class=\"fts-body-h2\">Votre demande<\/h2>\n            <p class=\"fts-body-sub\">Tous les champs marqu\u00e9s <span>*<\/span> sont obligatoires.<\/p>\n          <\/div>\n\n          <form id=\"fts-dv-form\" novalidate>\n            <input type=\"hidden\" name=\"action\" value=\"fts_send_devis\">\n            <input type=\"hidden\" name=\"nonce\"  value=\"e2580f02e7\">\n\n            <!-- \u2500\u2500 Identit\u00e9 \u2500\u2500 -->\n            <div class=\"fts-section-sep\">\n              <div class=\"fts-section-sep-line\"><\/div>\n              <span class=\"fts-section-sep-txt\">Vos coordonn\u00e9es<\/span>\n              <div class=\"fts-section-sep-line\"><\/div>\n            <\/div>\n\n            <div class=\"fts-grid\">\n              <div class=\"fts-fg\">\n                <label class=\"fts-lbl\" for=\"dv-nom\">Nom complet<span class=\"fts-req\">*<\/span><\/label>\n                <input id=\"dv-nom\" name=\"nom\" type=\"text\" class=\"fts-inp\" placeholder=\"Ex : Kon\u00e9 Ibrahim\" autocomplete=\"name\">\n              <\/div>\n              <div class=\"fts-fg\">\n                <label class=\"fts-lbl\" for=\"dv-email\">Adresse email<span class=\"fts-req\">*<\/span><\/label>\n                <input id=\"dv-email\" name=\"email\" type=\"email\" class=\"fts-inp\" placeholder=\"vous@exemple.com\" autocomplete=\"email\">\n              <\/div>\n              <div class=\"fts-fg\">\n                <label class=\"fts-lbl\" for=\"dv-tel\">T\u00e9l\u00e9phone<span class=\"fts-req\">*<\/span><\/label>\n                <input id=\"dv-tel\" name=\"telephone\" type=\"tel\" class=\"fts-inp\" placeholder=\"+226 00 00 00 00\" autocomplete=\"tel\">\n              <\/div>\n              <div class=\"fts-fg\">\n                <label class=\"fts-lbl\" for=\"dv-ent\">Entreprise \/ Organisation<span class=\"fts-req\">*<\/span><\/label>\n                <input id=\"dv-ent\" name=\"entreprise\" type=\"text\" class=\"fts-inp\" placeholder=\"Nom de votre structure\">\n              <\/div>\n              <div class=\"fts-fg\">\n                <label class=\"fts-lbl\" for=\"dv-pays\">Pays de livraison<span class=\"fts-req\">*<\/span><\/label>\n                <select id=\"dv-pays\" name=\"pays\" class=\"fts-sel\" style=\"padding:10px!important\">\n                  <option value=\"\" disabled selected>\u2014 S\u00e9lectionnez \u2014<\/option>\n                  <option value=\"Burkina Faso\">Burkina Faso<\/option>\n                  <option value=\"C\u00f4te d'Ivoire\">C\u00f4te d'Ivoire<\/option>\n                  <option value=\"Mali\">Mali<\/option>\n                  <option value=\"S\u00e9n\u00e9gal\">S\u00e9n\u00e9gal<\/option>\n                  <option value=\"Niger\">Niger<\/option>\n                  <option value=\"Togo\">Togo<\/option>\n                  <option value=\"B\u00e9nin\">B\u00e9nin<\/option>\n                  <option value=\"Ghana\">Ghana<\/option>\n                  <option value=\"Autre\">Autre<\/option>\n                <\/select>\n              <\/div>\n              <div class=\"fts-fg\">\n                <label class=\"fts-lbl\" for=\"dv-ville\">Ville de livraison<\/label>\n                <input id=\"dv-ville\" name=\"ville\" type=\"text\" class=\"fts-inp\" placeholder=\"Ex : Ouagadougou\">\n              <\/div>\n            <\/div>\n\n            <!-- \u2500\u2500 Produits \u2500\u2500 -->\n            <div class=\"fts-section-sep\">\n              <div class=\"fts-section-sep-line\"><\/div>\n              <span class=\"fts-section-sep-txt\">Produits souhait\u00e9s<\/span>\n              <div class=\"fts-section-sep-line\"><\/div>\n            <\/div>\n\n            <div id=\"dv-produits-list\">\n              <!-- Bloc produit #1 inject\u00e9 par JS -->\n            <\/div>\n\n            <button type=\"button\" class=\"fts-add-btn\" id=\"dv-add-produit\">\n              <svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg>\n              Ajouter un produit\n            <\/button>\n\n            <!-- \u2500\u2500 Informations compl\u00e9mentaires \u2500\u2500 -->\n            <div class=\"fts-section-sep\">\n              <div class=\"fts-section-sep-line\"><\/div>\n              <span class=\"fts-section-sep-txt\">Informations compl\u00e9mentaires<\/span>\n              <div class=\"fts-section-sep-line\"><\/div>\n            <\/div>\n\n            <div class=\"fts-grid\">\n              <div class=\"fts-fg\">\n                <label class=\"fts-lbl\" for=\"dv-secteur\">Secteur d'activit\u00e9<\/label>\n                <select id=\"dv-secteur\" name=\"secteur\" class=\"fts-sel\" style=\"padding:10px!important\">\n                  <option value=\"\" disabled selected>\u2014 S\u00e9lectionnez \u2014<\/option>\n                  <option value=\"Agroalimentaire \/ Production\">Agroalimentaire \/ Production<\/option>\n                  <option value=\"Boulangerie \/ P\u00e2tisserie\">Boulangerie \/ P\u00e2tisserie<\/option>\n                  <option value=\"Restauration \/ H\u00f4tellerie\">Restauration \/ H\u00f4tellerie<\/option>\n                  <option value=\"Industrie chimique\">Industrie chimique<\/option>\n                  <option value=\"Pharmaceutique \/ Cosm\u00e9tique\">Pharmaceutique \/ Cosm\u00e9tique<\/option>\n                  <option value=\"Distribution \/ N\u00e9goce\">Distribution \/ N\u00e9goce<\/option>\n                  <option value=\"Agriculture \/ \u00c9levage\">Agriculture \/ \u00c9levage<\/option>\n                  <option value=\"Autre\">Autre<\/option>\n                <\/select>\n              <\/div>\n              <div class=\"fts-fg\">\n                <label class=\"fts-lbl\" for=\"dv-delai\">D\u00e9lai souhait\u00e9<\/label>\n                <select id=\"dv-delai\" name=\"delai\" class=\"fts-sel\" style=\"padding:10px!important\">\n                  <option value=\"\" disabled selected>\u2014 S\u00e9lectionnez \u2014<\/option>\n                  <option value=\"Urgent (moins d'une semaine)\">Urgent (moins d'une semaine)<\/option>\n                  <option value=\"Sous 2 semaines\">Sous 2 semaines<\/option>\n                  <option value=\"Sous 1 mois\">Sous 1 mois<\/option>\n                  <option value=\"Plus d'un mois\">Plus d'un mois<\/option>\n                  <option value=\"Pas de contrainte\">Pas de contrainte<\/option>\n                <\/select>\n              <\/div>\n              <div class=\"fts-fg fts-span\">\n                <label class=\"fts-lbl\" for=\"dv-notes\">Remarques \/ Exigences particuli\u00e8res<\/label>\n                <textarea id=\"dv-notes\" name=\"notes\" class=\"fts-ta\" placeholder=\"Conditionnement sp\u00e9cifique, normes, certifications requises, conditions de stockage\u2026\"><\/textarea>\n              <\/div>\n            <\/div>\n\n            <!-- \u2500\u2500 RGPD \u2500\u2500 -->\n            <div class=\"fts-grid\" style=\"margin-top:1.125rem!important\">\n              <div class=\"fts-fg fts-span\">\n                <label class=\"fts-ck-wrap\">\n                  <input type=\"checkbox\" id=\"dv-rgpd\" name=\"rgpd\" class=\"fts-ck-real\">\n                  <div class=\"fts-ck-box\">\n                    <svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n                  <\/div>\n                  <span class=\"fts-ck-txt\">\n                    J'accepte que mes donn\u00e9es soient utilis\u00e9es pour traiter ma demande de devis.<span> *<\/span>\n                  <\/span>\n                <\/label>\n              <\/div>\n\n              <div class=\"fts-span\">\n                <button type=\"submit\" class=\"fts-btn\" id=\"dv-btn\">\n                  <div class=\"fts-spinner\"><\/div>\n                  <span class=\"fts-btn-txt\">\n                    Envoyer ma demande de devis\n                    <svg class=\"fts-btn-arrow\" style=\"display:inline-block;width:.85rem;height:.85rem;margin-left:.5rem;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:2.5;\" viewBox=\"0 0 24 24\">\n                      <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/>\n                    <\/svg>\n                  <\/span>\n                <\/button>\n                <div class=\"fts-fb\" id=\"dv-fb\"><\/div>\n              <\/div>\n            <\/div>\n\n          <\/form>\n\n          <div class=\"fts-body-footer\">\n            <p class=\"fts-bf-note\">Vous pr\u00e9f\u00e9rez un contact direct ? <a href=\"mailto:info@ftssarl.com\" style=\"color:#050505;font-weight:500;text-decoration:underline!important;\">info@ftssarl.com<\/a><\/p>\n            <span class=\"fts-bf-brand\">\u00a9 2026 Food Tech &amp; Solutions SARL<\/span>\n          <\/div>\n\n        <\/div><!-- \/.fts-body-col-form -->\n\n        <!-- \u2500\u2500 COLONNE DROITE \u2500\u2500 -->\n        <div class=\"fts-body-col-side\">\n\n          <!-- Bloc sombre : infos cl\u00e9s -->\n          <div class=\"fts-side-block\">\n            <div class=\"fts-side-tag\">Nos engagements<\/div>\n            <div class=\"fts-side-title\">Un devis clair,<br>sans engagement<\/div>\n            <div class=\"fts-side-list\">\n              <div class=\"fts-side-row\">\n                <div class=\"fts-side-icon\">\n                  <svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/><\/svg>\n                <\/div>\n                <div>\n                  <div class=\"fts-side-row-lbl\">D\u00e9lai de r\u00e9ponse<\/div>\n                  <div class=\"fts-side-row-val\">24 \u2013 48h ouvrables<\/div>\n                <\/div>\n              <\/div>\n              <div class=\"fts-side-row\">\n                <div class=\"fts-side-icon\">\n                  <svg viewBox=\"0 0 24 24\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg>\n                <\/div>\n                <div>\n                  <div class=\"fts-side-row-lbl\">Confidentialit\u00e9<\/div>\n                  <div class=\"fts-side-row-val\">Donn\u00e9es prot\u00e9g\u00e9es<\/div>\n                <\/div>\n              <\/div>\n              <div class=\"fts-side-row\">\n                <div class=\"fts-side-icon\">\n                  <svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"23\"\/><path d=\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"\/><\/svg>\n                <\/div>\n                <div>\n                  <div class=\"fts-side-row-lbl\">Tarification<\/div>\n                  <div class=\"fts-side-row-val\">Ajust\u00e9e \u00e0 vos volumes<\/div>\n                <\/div>\n              <\/div>\n              <div class=\"fts-side-row\">\n                <div class=\"fts-side-icon\">\n                  <svg viewBox=\"0 0 24 24\"><path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"\/><circle cx=\"12\" cy=\"10\" r=\"3\"\/><\/svg>\n                <\/div>\n                <div>\n                  <div class=\"fts-side-row-lbl\">Zone couverte<\/div>\n                  <div class=\"fts-side-row-val\">BF &amp; sous-r\u00e9gion UEMOA<\/div>\n                <\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n\n          <!-- Bloc blanc : produits disponibles -->\n          <div class=\"fts-side-engage\">\n            <div class=\"fts-side-engage-head\">\n              <div class=\"fts-side-engage-head-line\"><\/div>\n              <span class=\"fts-side-engage-head-txt\">Gammes disponibles<\/span>\n            <\/div>\n            <div class=\"fts-engage-row\">\n              <div class=\"fts-engage-dot\"><\/div>\n              <p class=\"fts-engage-txt\"><strong>Ingr\u00e9dients alimentaires<\/strong> \u2014 ar\u00f4mes, \u00e9pices, stabilisants<\/p>\n            <\/div>\n            <div class=\"fts-engage-row\">\n              <div class=\"fts-engage-dot\"><\/div>\n              <p class=\"fts-engage-txt\"><strong>Additifs &amp; conservateurs<\/strong> \u2014 agents de texture, colorants<\/p>\n            <\/div>\n            <div class=\"fts-engage-row\">\n              <div class=\"fts-engage-dot\"><\/div>\n              <p class=\"fts-engage-txt\"><strong>Produits chimiques industriels<\/strong> \u2014 solvants, d\u00e9tergents, acides<\/p>\n            <\/div>\n            <div class=\"fts-engage-row\">\n              <div class=\"fts-engage-dot\"><\/div>\n              <p class=\"fts-engage-txt\"><strong>Formulation sur mesure<\/strong> \u2014 conseil &amp; d\u00e9veloppement<\/p>\n            <\/div>\n            <div class=\"fts-engage-row\">\n              <div class=\"fts-engage-dot\"><\/div>\n              <p class=\"fts-engage-txt\"><strong>Emballage &amp; conditionnement<\/strong> selon vos sp\u00e9cifications<\/p>\n            <\/div>\n          <\/div>\n\n        <\/div><!-- \/.fts-body-col-side -->\n\n      <\/div><!-- \/.fts-body-layout -->\n    <\/div>\n  <\/div>\n\n<\/div><!-- \/#fts-dv -->\n\n<script>\n(function () {\n  var AJAX    = 'https:\/\/ftssarl.com\/wp-admin\/admin-ajax.php';\n  var form    = document.getElementById('fts-dv-form');\n  var btn     = document.getElementById('dv-btn');\n  var fb      = document.getElementById('dv-fb');\n  var list    = document.getElementById('dv-produits-list');\n  var counter = 0;\n\n  \/* \u2500\u2500\u2500 Gammes produits pour le select \u2500\u2500\u2500 *\/\n  var CATEGORIES = [\n    '\u2014 S\u00e9lectionnez une gamme \u2014',\n    'Ingr\u00e9dients alimentaires',\n    'Additifs & conservateurs',\n    'Produits chimiques industriels',\n    'Ar\u00f4mes & \u00e9pices',\n    'Stabilisants & texturants',\n    'Colorants alimentaires',\n    'Emballage & conditionnement',\n    'Autre \/ Non sp\u00e9cifi\u00e9'\n  ];\n\n  var UNITES = ['kg','g','L','mL','tonne','sac','carton','palette','unit\u00e9','Autre'];\n\n  \/* \u2500\u2500\u2500 Cr\u00e9er un bloc produit \u2500\u2500\u2500 *\/\n  function createProduit() {\n    counter++;\n    var idx = counter;\n    var div = document.createElement('div');\n    div.className = 'fts-produit-block';\n    div.dataset.idx = idx;\n\n    \/* Select cat\u00e9gorie *\/\n    var catOpts = CATEGORIES.map(function (c, i) {\n      return '<option value=\"' + (i === 0 ? '' : c) + '\"' + (i === 0 ? ' disabled selected' : '') + '>' + c + '<\/option>';\n    }).join('');\n\n    \/* Select unit\u00e9 *\/\n    var unitOpts = UNITES.map(function (u) {\n      return '<option value=\"' + u + '\">' + u + '<\/option>';\n    }).join('');\n\n    div.innerHTML =\n      '<div class=\"fts-produit-header\">' +\n        '<span class=\"fts-produit-num\">Produit ' + idx + '<\/span>' +\n        (idx > 1 ? '<button type=\"button\" class=\"fts-remove-btn\" data-remove=\"' + idx + '\">Supprimer<\/button>' : '') +\n      '<\/div>' +\n      '<div class=\"fts-grid\">' +\n        '<div class=\"fts-fg fts-span\">' +\n          '<label class=\"fts-lbl\">Nom du produit \/ R\u00e9f\u00e9rence<span class=\"fts-req\">*<\/span><\/label>' +\n          '<input type=\"text\" name=\"produit_nom[]\" class=\"fts-inp fts-produit-nom\" placeholder=\"Ex : Acide citrique, Glutamate monosodique\u2026\">' +\n        '<\/div>' +\n        '<div class=\"fts-fg\">' +\n          '<label class=\"fts-lbl\">Gamme<span class=\"fts-req\">*<\/span><\/label>' +\n          '<select name=\"produit_cat[]\" class=\"fts-sel fts-produit-cat\" style=\"padding:10px!important\">' + catOpts + '<\/select>' +\n        '<\/div>' +\n        '<div class=\"fts-fg\">' +\n          '<label class=\"fts-lbl\">Conditionnement \/ Sp\u00e9cification<\/label>' +\n          '<input type=\"text\" name=\"produit_spec[]\" class=\"fts-inp\" placeholder=\"Ex : poudre fine, qualit\u00e9 alimentaire\u2026\">' +\n        '<\/div>' +\n      '<\/div>' +\n      '<div class=\"fts-grid-3\" style=\"margin-top:.875rem!important\">' +\n        '<div class=\"fts-fg\">' +\n          '<label class=\"fts-lbl\">Quantit\u00e9<span class=\"fts-req\">*<\/span><\/label>' +\n          '<input type=\"number\" name=\"produit_qte[]\" class=\"fts-inp fts-produit-qte\" placeholder=\"Ex : 500\" min=\"0\" step=\"any\">' +\n        '<\/div>' +\n        '<div class=\"fts-fg\">' +\n          '<label class=\"fts-lbl\">Unit\u00e9<\/label>' +\n          '<select name=\"produit_unite[]\" class=\"fts-sel\" style=\"padding:10px!important\">' + unitOpts + '<\/select>' +\n        '<\/div>' +\n        '<div class=\"fts-fg\">' +\n          '<label class=\"fts-lbl\">Fr\u00e9quence d\\'achat<\/label>' +\n          '<select name=\"produit_freq[]\" class=\"fts-sel\" style=\"padding:10px!important\">' +\n            '<option value=\"\">\u2014 Optionnel \u2014<\/option>' +\n            '<option value=\"Commande unique\">Commande unique<\/option>' +\n            '<option value=\"Mensuelle\">Mensuelle<\/option>' +\n            '<option value=\"Trimestrielle\">Trimestrielle<\/option>' +\n            '<option value=\"Semestrielle\">Semestrielle<\/option>' +\n            '<option value=\"Annuelle\">Annuelle<\/option>' +\n          '<\/select>' +\n        '<\/div>' +\n      '<\/div>';\n\n    list.appendChild(div);\n\n    \/* Remove btn *\/\n    var removeBtn = div.querySelector('.fts-remove-btn');\n    if (removeBtn) {\n      removeBtn.addEventListener('click', function () {\n        div.remove();\n      });\n    }\n\n    \/* Clear err au focus *\/\n    div.querySelectorAll('.fts-inp, .fts-sel').forEach(function (el) {\n      el.addEventListener('input', function () { el.classList.remove('err'); });\n    });\n  }\n\n  \/* Cr\u00e9er le premier bloc au chargement *\/\n  createProduit();\n\n  \/* Bouton ajouter produit *\/\n  document.getElementById('dv-add-produit').addEventListener('click', function () {\n    if (list.querySelectorAll('.fts-produit-block').length < 10) createProduit();\n  });\n\n  \/* \u2500\u2500\u2500 Validation \u2500\u2500\u2500 *\/\n  function validate() {\n    var ok = true;\n\n    \/* Champs identit\u00e9 obligatoires *\/\n    ['dv-nom','dv-email','dv-tel','dv-ent','dv-pays'].forEach(function (id) {\n      var el = document.getElementById(id);\n      if (!el || !el.value.trim()) { if (el) el.classList.add('err'); ok = false; }\n    });\n\n    \/* Email *\/\n    var em = document.getElementById('dv-email');\n    if (em && em.value.trim() && !\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(em.value.trim())) {\n      em.classList.add('err'); ok = false;\n    }\n\n    \/* Produits : au moins nom + cat\u00e9gorie + quantit\u00e9 *\/\n    list.querySelectorAll('.fts-produit-block').forEach(function (bloc) {\n      var nom = bloc.querySelector('.fts-produit-nom');\n      var cat = bloc.querySelector('.fts-produit-cat');\n      var qte = bloc.querySelector('.fts-produit-qte');\n      if (!nom.value.trim()) { nom.classList.add('err'); ok = false; }\n      if (!cat.value)        { cat.classList.add('err'); ok = false; }\n      if (!qte.value.trim()) { qte.classList.add('err'); ok = false; }\n    });\n\n    \/* RGPD *\/\n    var ck = document.getElementById('dv-rgpd');\n    if (ck && !ck.checked) {\n      ck.closest('.fts-ck-wrap').querySelector('.fts-ck-box').style.borderColor = '#e53e3e';\n      ok = false;\n    } else if (ck) {\n      ck.closest('.fts-ck-wrap').querySelector('.fts-ck-box').style.borderColor = '';\n    }\n\n    return ok;\n  }\n\n  \/* \u2500\u2500\u2500 Submit \u2500\u2500\u2500 *\/\n  form.addEventListener('submit', function (e) {\n    e.preventDefault();\n    fb.className = 'fts-fb';\n    fb.textContent = '';\n    if (!validate()) { show('ko', 'Veuillez remplir tous les champs obligatoires et compl\u00e9ter les informations produits.'); return; }\n\n    btn.disabled = true;\n    btn.classList.add('loading');\n\n    fetch(AJAX, { method: 'POST', body: new FormData(form), credentials: 'same-origin' })\n      .then(function (r) { return r.json(); })\n      .then(function (res) {\n        btn.disabled = false; btn.classList.remove('loading');\n        if (res.success) { show('ok', res.data.message); form.reset(); list.innerHTML = ''; counter = 0; createProduit(); }\n        else             { show('ko', res.data.message); }\n      })\n      .catch(function () {\n        btn.disabled = false; btn.classList.remove('loading');\n        show('ko', 'Erreur r\u00e9seau. Veuillez r\u00e9essayer ou nous \u00e9crire directement.');\n      });\n  });\n\n  function show(type, msg) {\n    fb.className = 'fts-fb ' + type;\n    fb.textContent = msg;\n    fb.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n  }\n})();\n<\/script>\n\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_joinchat":[],"footnotes":""},"class_list":["post-1126","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/ftssarl.com\/en\/wp-json\/wp\/v2\/pages\/1126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ftssarl.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ftssarl.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ftssarl.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ftssarl.com\/en\/wp-json\/wp\/v2\/comments?post=1126"}],"version-history":[{"count":10,"href":"https:\/\/ftssarl.com\/en\/wp-json\/wp\/v2\/pages\/1126\/revisions"}],"predecessor-version":[{"id":1136,"href":"https:\/\/ftssarl.com\/en\/wp-json\/wp\/v2\/pages\/1126\/revisions\/1136"}],"wp:attachment":[{"href":"https:\/\/ftssarl.com\/en\/wp-json\/wp\/v2\/media?parent=1126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}