Description
:root{
–brand:#0f6125; –brand2:#1e7b34; –accent:#ff7a00;
–ink:#0b1b0f; –muted:#6b7280; –line:#e6efe8; –card:#fff; –bg:#f6faf7;
–whatsapp:#25D366; –whatsapp-dark:#1ebe57; –radius:16px; –shadow:0 18px 42px rgba(0,0,0,.08);
}
*{box-sizing:border-box}
body{margin:0;background:var(–bg);color:var(–ink);font:15px/1.5 system-ui,Segoe UI,Roboto,Arial}
.ci-wrap{background:var(–bg);padding:18px;max-width:1100px;margin:auto}
.ci-grid{display:grid;gap:16px}
.ci-hero{display:grid;gap:8px;background:var(–card);border:1px solid var(–line);border-radius:var(–radius);padding:14px}
.ci-hero h1{margin:0;font-size:24px;line-height:1.2}
.ci-hero p{margin:0;color:var(–muted)}
.ci-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.ci-badge{background:var(–card);border:1px solid var(–line);padding:6px 10px;border-radius:99px;font-weight:600}
.ci-card{background:var(–card);border:1px solid var(–line);border-radius:var(–radius);padding:14px}
.ci-h2{margin:0 0 10px;font-size:18px}
.ci-table{width:100%;border-collapse:collapse;font-size:14px}
.ci-table th,.ci-table td{border-bottom:1px dashed var(–line);padding:8px 6px;text-align:left;vertical-align:top}
.ci-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ci-kpi{border:1px dashed var(–line);border-radius:12px;padding:10px 12px}
.ci-kpi b{display:block;font-size:18px}
.ci-cta{display:flex;flex-wrap:wrap;gap:10px}
.ci-btn{display:inline-flex;align-items:center;gap:8px;border-radius:12px;padding:10px 14px;border:1px solid transparent;text-decoration:none;font-weight:700;cursor:pointer;transition:.2s}
.ci-btn:hover{transform:translateY(-1px)}
.ci-btn–pri{background:var(–brand);color:#fff}
.ci-btn–sec{background:#fff;border-color:var(–line);color:var(–ink)}
.ci-btn–wa{background:var(–whatsapp);color:#fff}
.ci-small{font-size:12px;color:var(–muted)}
.ci-note{background:#fff7ed;border:1px solid #ffedd5;color:#7c2d12;border-radius:12px;padding:10px 12px}
.ci-flex{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.ci-input{width:100%;padding:10px 12px;border:1px solid var(–line);border-radius:12px;font:inherit}
.ci-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ci-row-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ci-out{background:#f9fbfa;border:1px dashed var(–line);border-radius:12px;padding:10px 12px}
.ci-hr{height:1px;background:var(–line);margin:8px 0;border:0}
@media (min-width:980px){ .ci-grid{grid-template-columns:1.1fr .9fr} }
/* Modales */
.ci-modal{position:fixed;inset:0;background:rgba(0,0,0,.5);display:none;align-items:center;justify-content:center;padding:16px;z-index:9999}
.ci-modal.open{display:flex}
.ci-modal__card{background:#fff;max-width:720px;width:100%;border-radius:18px;box-shadow:var(–shadow);padding:16px}
.ci-modal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.ci-x{border:0;background:transparent;font-size:24px;cursor:pointer;line-height:1}
Filet anti-insectes — Barrière essentielle pour protéger vos cultures
Protection physique contre mouches, pucerons, aleurodes & co. Excellente aération, résistant UV, léger et durable — en serre et plein-champ.
Anti-insectes
UV-stabilisé
Durable
Fiche technique (modèle courant)
Les valeurs peuvent varier selon le lot. Demandez la fiche lotisée lors de l’achat.
| Maille | 0,4–0,8 mm (≈ 40–80 mesh) |
|---|---|
| Grammage | 45–90 g/m² |
| Largeur rouleau | 1,0 / 1,5 / 2,0 / 3,0 / 3,6 / 4,0 m |
| Longueur rouleau | 50 / 100 m |
| Couleur | Blanc / Transparent |
| Stabilisation UV | ≥ 3 saisons (selon exposition) |
| Transmission lumineuse | Haute (>85 % typ.) |
| Usages | Serre, pépinière, plein champ, portes/latéraux |
Service client C.I. Irrigation • Abidjan Angré 22ᵉ • Ouvert Lun-Sam
Calculateur & remises (jusqu’à 15 %)
Choisis si tu commandes au m² ou par rouleau. Les paliers sont éditables.
Remise valable sur la ligne « Filet anti-insectes » hors livraison.
(function(){
const $ = (s, root=document)=>root.querySelector(s);
const $$ = (s, root=document)=>Array.from(root.querySelectorAll(s));
const el = {
mode: $(« #mode »),
price: $(« #price »),
qty_m2: $(« #qty_m2 »),
width: $(« #width »),
qty_roll: $(« #qty_roll »),
roll_len: $(« #roll_len »),
row_m2: $(« #row-m2 »),
row_roll: $(« #row-roll »),
outQty: $(« #outQty b »),
outDisc: $(« #outDisc b »),
outTotal: $(« #outTotal b »),
btnCalc: $(« #btnCalc »),
btnReset: $(« #btnReset »),
btnShareWA: $(« #btnShareWA »),
btnQuoteModal: $(« #btnQuoteModal »),
btnDevis: $(« #btnDevis »),
btnFicheModal: $(« #btnFicheModal »),
modalFiche: $(« #modalFiche »),
modalDevis: $(« #modalDevis »),
btnPDFfromModal: $(« #btnPDFfromModal »),
btnFichePDF: $(« #btnFichePDF »),
fichePrintable: $(« #fichePrintable »),
f: {
ent: $(« #f_entreprise »), nom: $(« #f_nom »), ville: $(« #f_ville »),
mode: $(« #f_mode »), qty: $(« #f_qty »), note: $(« #f_note »),
wa: $(« #f_send_wa »), mail: $(« #f_send_mail »)
}
};
// PALIERS REMISE (max 15%)
const tiers = [
{min:100, disc:5},
{min:300, disc:10},
{min:600, disc:12},
{min:1000, disc:15}
];
function getDiscount(qty_m2){
let d=0; for(const t of tiers){ if(qty_m2>=t.min) d=t.disc; } return d;
}
function fmt(n){ const x=Number(n); return isNaN(x)?n:x.toLocaleString(‘fr-FR’); }
function calc(){
const mode = el.mode.value;
const price = Number(el.price.value||0);
let qtyEqM2 = 0, totalBrut = 0;
if(mode===’m2′){
const surf = Number(el.qty_m2.value||0);
qtyEqM2 = surf;
totalBrut = surf * price; // FCFA/m²
}else{
const rolls = Number(el.qty_roll.value||0);
const L = Number(el.roll_len.value||0);
const W = Number(el.width.value||3.6); // largeur la plus courante
qtyEqM2 = rolls * L * W;
totalBrut = rolls * price; // FCFA/rouleau
}
const disc = getDiscount(qtyEqM2);
const totalNet = totalBrut * (1 – disc/100);
el.outQty.textContent = fmt(Math.round(qtyEqM2));
el.outDisc.textContent = fmt(disc);
el.outTotal.textContent= fmt(Math.round(totalNet));
return {mode, price, qtyEqM2, disc, totalBrut, totalNet};
}
function reset(){
el.mode.value=’m2′; el.price.value=950; el.qty_m2.value=100; el.width.value=’3.6′;
el.qty_roll.value=1; el.roll_len.value=’100′;
el.row_m2.style.display=’grid’; el.row_roll.style.display=’none’;
el.outQty.textContent=’—’; el.outDisc.textContent=’—’; el.outTotal.textContent=’—’;
}
el.mode.addEventListener(‘change’, ()=>{
const m=el.mode.value;
el.row_m2.style.display=(m===’m2′)?’grid’:’none’;
el.row_roll.style.display=(m===’roll’)?’grid’:’none’;
$(« #tiersView »).textContent=(m===’m2′)
? »m² ≥ 100 ⇒ 5 % • ≥ 300 ⇒ 10 % • ≥ 600 ⇒ 12 % • ≥ 1000 ⇒ 15 % »
: »Équiv. m² calculée depuis rouleaux (longueur × largeur) »;
});
el.btnCalc.addEventListener(‘click’, calc);
el.btnReset.addEventListener(‘click’, reset);
// Modales open/close
function openModal(id){ const m=$(‘#’+id); m.classList.add(‘open’); m.setAttribute(‘aria-hidden’,’false’); document.body.style.overflow=’hidden’; }
function closeModal(id){ const m=$(‘#’+id); m.classList.remove(‘open’); m.setAttribute(‘aria-hidden’,’true’); document.body.style.overflow= »; }
$$(« #modalFiche [data-close], #modalDevis [data-close] »).forEach(b=>b.addEventListener(‘click’, e=>closeModal(e.currentTarget.getAttribute(‘data-close’))));
el.btnFicheModal.addEventListener(‘click’, ()=>openModal(‘modalFiche’));
el.btnDevis.addEventListener(‘click’, ()=>openModal(‘modalDevis’));
el.btnQuoteModal.addEventListener(‘click’, ()=>{ const r=calc(); el.f.mode.value=(el.mode.value===’m2′)?’m²’:’rouleau’; el.f.qty.value=(el.mode.value===’m2′)?Math.round(r.qtyEqM2):Number(el.qty_roll.value||1); openModal(‘modalDevis’); });
// Partage calcul sur WhatsApp
el.btnShareWA.addEventListener(‘click’, ()=>{
const r=calc();
const txt=[
« Calcul commande — Filet anti-insectes »,
`Mode: ${el.mode.value===’m2′?’Au m²’:’Par rouleau’}`,
`Équiv. surface: ${Math.round(r.qtyEqM2)} m²`,
`Remise: ${r.disc}%`,
`Total après remise: ${fmt(Math.round(r.totalNet))} FCFA`
].join(‘%0A’);
window.open(`https://wa.me/22507 00 60 31 50?text=${txt}`,’_blank’);
});
// Devis WA + mail
function buildDevisText(){
const lines=[
« Demande de devis — Filet anti-insectes »,
`Entreprise: ${el.f.ent.value||’-‘}`,
`Nom/Contact: ${el.f.nom.value||’-‘}`,
`Ville/Site: ${el.f.ville.value||’-‘}`,
`Mode: ${el.f.mode.value}`,
`Quantité/Surface: ${el.f.qty.value||’-‘}`,
`Commentaires: ${el.f.note.value||’-‘}`
];
return lines.join(‘%0A’);
}
el.f.wa.addEventListener(‘click’, ()=>{ window.open(`https://wa.me/22507 00 60 31 50?text=${buildDevisText()}`,’_blank’); });
el.f.mail.addEventListener(‘click’, (e)=>{
e.preventDefault();
const subject = encodeURIComponent(« Demande de devis — Filet anti-insectes »);
const body = decodeURIComponent(buildDevisText()).replace(/n/g,’%0A’);
window.location.href=`mailto:contact@HYDRAUCI.com?subject=${subject}&body=${body}`;
});
// Export PDF (fiche)
async function exportFichePDF(target){
if(!(window.jspdf && window.html2canvas)){ alert(« PDF indisponible. Vérifie la connexion réseau. »); return; }
const { jsPDF } = window.jspdf;
const node=target;
const canvas = await html2canvas(node,{scale:2,backgroundColor:’#ffffff’});
const img = canvas.toDataURL(‘image/png’);
const pdf = new jsPDF({orientation:’portrait’, unit:’mm’, format:’a4′});
const pageW=210, pageH=297, imgW=pageW-20, imgH=(canvas.height/canvas.width)*imgW;
pdf.setFont(‘helvetica’,’bold’); pdf.setFontSize(14);
pdf.text(‘Fiche technique — Filet anti-insectes’,10,12);
pdf.addImage(img,’PNG’,10,18,imgW,Math.min(imgH,pageH-28));
pdf.setFontSize(9); pdf.setTextColor(100);
pdf.text(‘C.I. Irrigation — Angré 22ᵉ, Abidjan • Tél. 01 73 93 95 23 • WhatsApp 01 73 93 95 23’,10,292);
pdf.save(‘Fiche-technique-Filet-anti-insectes.pdf’);
}
$(« #btnFichePDF »).addEventListener(‘click’, ()=>exportFichePDF($(« #ci-fiche-tech »)));
$(« #btnPDFfromModal »).addEventListener(‘click’, ()=>exportFichePDF($(« #fichePrintable »)));
// INIT
reset();
})();





Avis
Il n’y a pas encore d’avis.