{"id":1548,"date":"2025-09-14T21:48:51","date_gmt":"2025-09-14T21:48:51","guid":{"rendered":"https:\/\/peptilife.me\/?page_id=1548"},"modified":"2025-09-14T22:02:05","modified_gmt":"2025-09-14T22:02:05","slug":"health","status":"publish","type":"page","link":"https:\/\/peptilife.me\/fr\/health\/","title":{"rendered":"Calculateur de sant\u00e9"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"1548\" class=\"elementor elementor-1548\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-19fff60 e-flex e-con-boxed e-con e-parent\" data-id=\"19fff60\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4c51f10 elementor-widget elementor-widget-html\" data-id=\"4c51f10\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- MINI-APP: Ideal Weight Calculator + PDF Report + Recommendations -->\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/@phosphor-icons\/web@2.1.2\/src\/regular\/style.css\">\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/jspdf@2.5.2\/dist\/jspdf.umd.min.js\"><\/script>\n\n<style>\n  .pl-miniapp{--pl-primary:#3F39A0;--pl-accent:#969AFF;--pl-bg:rgba(150,154,255,.06);--pl-card:rgba(255,255,255,.9);--pl-text:#0f1226;--pl-muted:#6b6e9a;--pl-success:#1bbf72;--pl-danger:#ff5a7a;--pl-radius:18px;--pl-shadow:0 12px 30px rgba(63,57,160,.15)}\n  .pl-miniapp *{box-sizing:border-box}\n  .pl-miniapp{font-family:Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--pl-text)}\n  .pl-wrap{background:linear-gradient(180deg,var(--pl-bg),transparent);border:1px solid rgba(63,57,160,.09);backdrop-filter:saturate(120%) blur(8px);border-radius:24px;padding:22px;box-shadow:var(--pl-shadow)}\n  .pl-header{display:flex;align-items:center;gap:12px;margin-bottom:18px}\n  .pl-ico{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--pl-primary),var(--pl-accent));color:#fff}\n  .pl-title{font-size:1.2rem;font-weight:700;margin:0}\n  .pl-sub{font-size:.9rem;color:var(--pl-muted);margin:2px 0 0}\n\n  .pl-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}\n  @media (max-width:900px){.pl-grid{grid-template-columns:1fr}}\n\n  .pl-card{background:var(--pl-card);border:1px solid rgba(63,57,160,.10);border-radius:var(--pl-radius);padding:18px;box-shadow:var(--pl-shadow)}\n\n  .pl-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}\n  @media (max-width:680px){.pl-fields{grid-template-columns:1fr}}\n  .pl-field{position:relative}\n  .pl-label{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--pl-muted);margin-bottom:6px}\n  .pl-input{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #e9e9f6;border-radius:14px;padding:12px 14px;transition:.25s ease;box-shadow:inset 0 0 0 1px transparent}\n  .pl-input:focus-within{border-color:var(--pl-accent);box-shadow:inset 0 0 0 1px var(--pl-accent)}\n  .pl-input i{font-size:20px;color:var(--pl-primary)}\n  .pl-input input{width:100%;border:none;outline:0;font:600 1rem\/1 Inter;color:var(--pl-text)}\n  .pl-suffix{font-size:.85rem;color:var(--pl-muted);font-weight:600}\n\n  .pl-sep{height:1px;background:linear-gradient(90deg,transparent,rgba(63,57,160,.2),transparent);margin:14px 0}\n  .pl-seg{display:flex;gap:8px;flex-wrap:wrap}\n  .pl-pill{flex:1 1 120px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px dashed rgba(63,57,160,.35);padding:10px 12px;border-radius:14px;background:#fff;cursor:pointer;transition:.22s ease}\n  .pl-pill i{font-size:18px}\n  .pl-pill.active{background:linear-gradient(180deg,#fff,rgba(150,154,255,.12));border:1px solid var(--pl-accent);box-shadow:0 6px 16px rgba(150,154,255,.3)}\n\n  .pl-cta{display:flex;align-items:center;gap:10px;justify-content:center;background:linear-gradient(135deg,var(--pl-primary),var(--pl-accent));color:#fff;border:none;width:100%;padding:14px;border-radius:16px;font-weight:800;letter-spacing:.2px;cursor:pointer;transition:.2s transform}\n  .pl-cta i{font-size:20px}\n  .pl-cta:hover{transform:translateY(-1px)}\n\n  .pl-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}\n  .pl-download{display:inline-flex;align-items:center;gap:10px;justify-content:center;background:#fff;color:var(--pl-primary);border:1px solid var(--pl-accent);width:100%;padding:12px;border-radius:14px;font-weight:800;letter-spacing:.1px;cursor:pointer;transition:.2s ease}\n  .pl-download:disabled{opacity:.5;cursor:not-allowed}\n\n  .pl-result{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:stretch}\n  @media (max-width:680px){.pl-result{grid-template-columns:1fr}}\n  .pl-kpi{background:#fff;border:1px solid #ecebfd;border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:6px}\n  .pl-kpi .k{font-size:.8rem;color:var(--pl-muted)}\n  .pl-kpi .v{font-size:1.3rem;font-weight:800}\n  .pl-delta.positive{color:var(--pl-success)} .pl-delta.negative{color:var(--pl-danger)}\n  .pl-note{font-size:.86rem;color:var(--pl-muted)}\n\n  .pl-products h3{display:flex;align-items:center;gap:10px;margin:0 0 10px 0;font-size:1rem}\n  .pl-products h3 i{color:var(--pl-primary)}\n  .pl-row{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}\n  @media (max-width:520px){.pl-row{grid-template-columns:1fr}}\n  .pl-p{background:#fff;border:1px solid #edf;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:.25s box-shadow}\n  .pl-p:hover{box-shadow:0 10px 24px rgba(63,57,160,.18)}\n  .pl-thumb{aspect-ratio:1\/1;background:#f6f6ff;display:grid;place-items:center;overflow:hidden}\n  .pl-thumb img{width:100%;height:100%;object-fit:cover}\n  .pl-body{padding:10px 12px;display:flex;flex-direction:column;gap:6px}\n  .pl-price{font-weight:800;color:var(--pl-primary);font-size:.98rem}\n  .pl-name{font-size:.92rem;line-height:1.2}\n  .pl-open{margin-top:auto;display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--pl-accent);border-radius:12px;color:var(--pl-primary);font-weight:700;text-decoration:none}\n  .pl-skel{height:150px;background:linear-gradient(90deg,#f2f2ff,#fbfbff,#f2f2ff);background-size:200% 100%;animation:plShine 1.1s linear infinite;border-radius:14px}\n  @keyframes plShine{to{background-position:-200% 0}}\n  .pl-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(150,154,255,.18);border:1px solid rgba(150,154,255,.5);color:var(--pl-primary);font-weight:700;border-radius:999px;padding:6px 10px}\n  .pl-foot{display:flex;align-items:center;gap:10px;justify-content:space-between;margin-top:6px}\n<\/style>\n\n<div class=\"pl-miniapp\">\n  <div class=\"pl-wrap\">\n    <div class=\"pl-header\">\n      <span class=\"pl-ico\"><i class=\"ph ph-heartbeat\"><\/i><\/span>\n      <div>\n        <h3 class=\"pl-title\">Calculateur de poids id\u00e9al<\/h3>\n        <p class=\"pl-sub\">Saisissez vos donn\u00e9es et obtenez des recommandations sur mesure.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"pl-grid\">\n      <!-- Column: Form -->\n      <section class=\"pl-card\" aria-label=\"Formulaire de calcul\">\n        <div class=\"pl-fields\">\n          <div class=\"pl-field\">\n            <label class=\"pl-label\"><i class=\"ph ph-identification-card\"><\/i> Nom<\/label>\n            <div class=\"pl-input\">\n              <i class=\"ph ph-identification-card\"><\/i>\n              <input id=\"pl-name\" type=\"text\" placeholder=\"par exemple, John Smith\" maxlength=\"60\" aria-label=\"Votre nom\">\n            <\/div>\n          <\/div>\n          <div class=\"pl-field\">\n            <label class=\"pl-label\"><i class=\"ph ph-scales\"><\/i> Poids actuel<\/label>\n            <div class=\"pl-input\">\n              <i class=\"ph ph-scales\"><\/i>\n              <input id=\"pl-weight\" type=\"number\" min=\"20\" max=\"400\" step=\"0.1\" placeholder=\"par exemple, 85\" inputmode=\"decimal\" aria-label=\"Poids en kilogrammes\">\n              <span class=\"pl-suffix\">kg<\/span>\n            <\/div>\n          <\/div>\n          <div class=\"pl-field\">\n            <label class=\"pl-label\"><i class=\"ph ph-ruler\"><\/i> Hauteur<\/label>\n            <div class=\"pl-input\">\n              <i class=\"ph ph-ruler\"><\/i>\n              <input id=\"pl-height\" type=\"number\" min=\"120\" max=\"230\" step=\"0.1\" placeholder=\"par exemple, 175\" inputmode=\"decimal\" aria-label=\"Taille en centim\u00e8tres\">\n              <span class=\"pl-suffix\">cm<\/span>\n            <\/div>\n          <\/div>\n          <div class=\"pl-field\">\n            <label class=\"pl-label\"><i class=\"ph ph-cake\"><\/i> L'\u00e2ge<\/label>\n            <div class=\"pl-input\">\n              <i class=\"ph ph-cake\"><\/i>\n              <input id=\"pl-age\" type=\"number\" min=\"14\" max=\"100\" step=\"1\" placeholder=\"par exemple, 34\" aria-label=\"\u00c2ge en ann\u00e9es\">\n              <span class=\"pl-suffix\">ans<\/span>\n            <\/div>\n          <\/div>\n          <div class=\"pl-field\">\n            <label class=\"pl-label\"><i class=\"ph ph-user\"><\/i> Le sexe<\/label>\n            <div class=\"pl-seg\" role=\"tablist\" aria-label=\"S\u00e9lectionner le sexe\">\n              <button class=\"pl-pill active\" data-gender=\"m\" role=\"tab\" aria-selected=\"true\"><i class=\"ph ph-gender-male\"><\/i> Homme<\/button>\n              <button class=\"pl-pill\" data-gender=\"f\" role=\"tab\" aria-selected=\"false\"><i class=\"ph ph-gender-female\"><\/i> Femme<\/button>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"pl-sep\"><\/div>\n        <div class=\"pl-actions\">\n          <button id=\"pl-calc\" class=\"pl-cta\" style=\"flex:1\"><i class=\"ph ph-magic-wand\"><\/i> Calculer<\/button>\n          <button id=\"pl-pdf\" class=\"pl-download\" style=\"flex:1\" disabled><i class=\"ph ph-file-pdf\"><\/i> T\u00e9l\u00e9charger le rapport sur la sant\u00e9 (PDF)<\/button>\n        <\/div>\n        <p class=\"pl-note\" style=\"margin-top:10px\">\n          Nous utilisons un objectif <strong>IMC de 22<\/strong> pour estimer le \"poids id\u00e9al\" et afficher une fourchette saine (18,5-24,9). Cet outil est indicatif et ne remplace pas un avis m\u00e9dical.\n        <\/p>\n      <\/section>\n\n      <!-- Column: Results + Products -->\n      <section class=\"pl-card\" aria-live=\"polite\">\n        <div class=\"pl-result\" id=\"pl-result\" hidden>\n          <div class=\"pl-kpi\">\n            <span class=\"k\">Poids id\u00e9al (IMC 22)<\/span>\n            <span class=\"v\" id=\"pl-ideal\">- kg<\/span>\n            <span class=\"k\">Gamme saine<\/span>\n            <span class=\"v\" id=\"pl-range\">- kg<\/span>\n          <\/div>\n          <div class=\"pl-kpi\">\n            <span class=\"k\">Votre IMC<\/span>\n            <span class=\"v\" id=\"pl-bmi\">-<\/span>\n            <span class=\"k\">Objectif vs. actuel<\/span>\n            <span class=\"v pl-delta\" id=\"pl-delta\">-<\/span>\n          <\/div>\n        <\/div>\n\n        <div class=\"pl-sep\"><\/div>\n\n        <div class=\"pl-products\">\n          <h3><i class=\"ph ph-shopping-bag\"><\/i> Recommand\u00e9 pour vous<\/h3>\n          <div class=\"pl-row\" id=\"pl-prods\">\n            <div class=\"pl-skel\"><\/div><div class=\"pl-skel\"><\/div>\n          <\/div>\n          <div class=\"pl-foot\">\n            <span class=\"pl-badge\"><i class=\"ph ph-lightning\"><\/i> Actualiser \u00e0 chaque calcul<\/span>\n            <a href=\"\/fr\/shop\/\" class=\"pl-open\" aria-label=\"Ouvrir un magasin complet\"><i class=\"ph ph-storefront\"><\/i> Voir la boutique<\/a>\n          <\/div>\n        <\/div>\n      <\/section>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  const $ = s=>document.querySelector(s);\n  const $$ = s=>document.querySelectorAll(s);\n  const el = {\n    name:   $('#pl-name'),\n    weight: $('#pl-weight'),\n    height: $('#pl-height'),\n    age:    $('#pl-age'),\n    pills:  $$('.pl-pill'),\n    calc:   $('#pl-calc'),\n    pdf:    $('#pl-pdf'),\n    result: $('#pl-result'),\n    ideal:  $('#pl-ideal'),\n    range:  $('#pl-range'),\n    bmi:    $('#pl-bmi'),\n    delta:  $('#pl-delta'),\n    prods:  $('#pl-prods')\n  };\n  let gender = 'm';\n  let cache = null; \/\/ guarda \u00faltimos resultados para el PDF\n\n  \/\/ Toggle pills\n  el.pills.forEach(b=>{\n    b.addEventListener('click',()=>{\n      el.pills.forEach(x=>{x.classList.remove('active');x.setAttribute('aria-selected','false')});\n      b.classList.add('active');b.setAttribute('aria-selected','true');\n      gender = b.dataset.gender;\n    });\n  });\n\n  function formatDateEN(d=new Date()){\n    return d.toLocaleDateString('en-US',{weekday:'long', year:'numeric', month:'long', day:'numeric'});\n  }\n\n  \/\/ Core calc (BMI target 22)\n  function calc(){\n    const name = (el.name.value || '').trim();\n    const w = parseFloat(el.weight.value);\n    const hcm = parseFloat(el.height.value);\n    const age = parseInt(el.age.value,10);\n\n    if(!w || !hcm || !age || hcm < 80 || hcm > 260 || age < 14 || age > 100){\n      el.result.hidden = true;\n      el.pdf.disabled = true;\n      return;\n    }\n\n    const m = hcm \/ 100;\n    const bmi = w \/ (m*m);\n    const ideal = 22 * (m*m);\n    const minW = 18.5 * (m*m);\n    const maxW = 24.9 * (m*m);\n    const delta = ideal - w;\n    const deltaClass = delta>=0 ? 'positive' : 'negative';\n\n    el.ideal.textContent = ideal.toFixed(1) + ' kg';\n    el.range.textContent = minW.toFixed(1) + ' \u2013 ' + maxW.toFixed(1) + ' kg';\n    el.bmi.textContent = bmi.toFixed(1);\n\n    \/\/ Correct Lose\/Gain\n    el.delta.textContent = (delta>0 ? 'Gain ' : 'Lose ') + Math.abs(delta).toFixed(1) + ' kg';\n    el.delta.classList.remove('positive','negative');\n    el.delta.classList.add(deltaClass);\n\n    el.result.hidden = false;\n    el.pdf.disabled = false;\n\n    cache = {\n      name, weight:w, height:hcm, age, sex: (gender==='m'?'Male':'Female'),\n      bmi: bmi.toFixed(1),\n      ideal: ideal.toFixed(1),\n      range: `${minW.toFixed(1)} \u2013 ${maxW.toFixed(1)}`,\n      deltaTxt: (delta>0 ? 'Gain ' : 'Lose ') + Math.abs(delta).toFixed(1) + ' kg',\n      deltaSign: delta>=0 ? 'positive' : 'negative',\n      date: formatDateEN()\n    };\n\n    \/\/ Refresh recommendations every time\n    loadProducts(true);\n  }\n\n  el.calc.addEventListener('click', ()=>{\n    calc();\n    el.calc.animate(\n      [{transform:'translateY(0)'},{transform:'translateY(-2px)'},{transform:'translateY(0)'}],\n      {duration:240,easing:'ease-out'}\n    );\n  });\n\n  \/\/ Create PDF\n  async function toDataURL(url){\n    \/\/ intenta convertir imagen a base64 (puede requerir CORS permitido; el logo est\u00e1 en tu dominio)\n    const res = await fetch(url, {mode:'cors'});\n    const blob = await res.blob();\n    return await new Promise((resolve)=>{\n      const reader = new FileReader();\n      reader.onloadend = ()=>resolve(reader.result);\n      reader.readAsDataURL(blob);\n    });\n  }\n\n  async function generatePDF(){\n    if(!cache){ return; }\n    const { jsPDF } = window.jspdf;\n    const doc = new jsPDF({ unit:'pt', format:'a4' });\n\n    const primary = [63,57,160];   \/\/ #3F39A0\n    const accent  = [150,154,255]; \/\/ #969AFF\n    const text    = [15,18,38];\n\n    \/\/ Header band\n    doc.setFillColor(245,246,255);\n    doc.rect(0,0,595,120,'F');\n\n    \/\/ Logo\n    try{\n      const logo = await toDataURL('http:\/\/peptilife.me\/wp-content\/uploads\/2025\/09\/peptilife.png');\n      doc.addImage(logo, 'PNG', 40, 28, 140, 40);\n    }catch(e){\n      \/\/ fallback: text\n      doc.setTextColor(primary[0],primary[1],primary[2]);\n      doc.setFont('helvetica','bold'); doc.setFontSize(20);\n      doc.text('PeptiLife', 40, 55);\n    }\n\n    \/\/ Title + date\n    doc.setTextColor(text[0],text[1],text[2]);\n    doc.setFont('helvetica','bold'); doc.setFontSize(22);\n    doc.text('Health Report', 40, 100);\n    doc.setFont('helvetica','normal'); doc.setFontSize(11);\n    doc.setTextColor(105,110,154);\n    doc.text(formatDateEN(new Date()), 480, 100, {align:'right'});\n\n    \/\/ Card: Client info\n    const cardX = 40, cardY = 140, cardW = 515, cardH = 88;\n    doc.setDrawColor(accent[0],accent[1],accent[2]);\n    doc.setFillColor(255,255,255);\n    doc.roundedRect(cardX, cardY, cardW, cardH, 12, 12, 'FD');\n\n    doc.setFont('helvetica','bold'); doc.setFontSize(12);\n    doc.setTextColor(text[0],text[1],text[2]);\n    doc.text('Client', cardX+16, cardY+22);\n    doc.setFont('helvetica','normal'); doc.setTextColor(105,110,154);\n    doc.text(`Name: ${cache.name || '\u2014'}`, cardX+16, cardY+44);\n    doc.text(`Age: ${cache.age} yrs`, cardX+200, cardY+44);\n    doc.text(`Sex: ${cache.sex}`, cardX+320, cardY+44);\n    doc.text(`Height: ${cache.height} cm    Weight: ${cache.weight} kg`, cardX+16, cardY+66);\n\n    \/\/ Two KPI cards\n    const kY = cardY + cardH + 20;\n    const kW = (cardW - 12)\/2;\n    const k1X = cardX, k2X = cardX + kW + 12;\n\n    function kpi(x,y,w,title,rows,color){\n      doc.setDrawColor(accent[0],accent[1],accent[2]);\n      doc.roundedRect(x,y,w,120,12,12,'S');\n      doc.setFont('helvetica','bold'); doc.setFontSize(12);\n      doc.setTextColor(105,110,154);\n      doc.text(title, x+16, y+22);\n      doc.setFont('helvetica','bold'); doc.setFontSize(22);\n      doc.setTextColor(text[0],text[1],text[2]);\n      doc.text(rows[0], x+16, y+54);\n      doc.setFont('helvetica','bold'); doc.setFontSize(12);\n      doc.setTextColor(105,110,154);\n      doc.text(rows[1].label, x+16, y+80);\n      doc.setFont('helvetica','bold'); doc.setFontSize(16);\n      doc.setTextColor(color[0],color[1],color[2]);\n      doc.text(rows[1].value, x+16, y+104);\n    }\n\n    kpi(k1X, kY, kW, 'Ideal weight (BMI 22)', [\n      `${cache.ideal} kg`,\n      {label:'Healthy range', value: cache.range}\n    ], primary);\n\n    const deltaColor = cache.deltaSign==='positive' ? [27,191,114] : [255,90,122];\n    kpi(k2X, kY, kW, 'Your BMI', [\n      `${cache.bmi}`,\n      {label:'Goal vs. current', value: cache.deltaTxt}\n    ], deltaColor);\n\n    \/\/ Footer note\n    doc.setFont('helvetica','normal'); doc.setFontSize(9);\n    doc.setTextColor(120,124,160);\n    doc.text(\n      'This report is informational only and does not replace professional medical advice. Target and ranges are estimated using BMI.',\n      40, 520\n    );\n\n    \/\/ Save\n    const safeName = (cache.name||'Guest').replace(\/[^a-z0-9\\-_\\s]\/gi,'').trim().replace(\/\\s+\/g,'_');\n    const file = `Health-Report-${safeName || 'PeptiLife'}-${new Date().toISOString().slice(0,10)}.pdf`;\n    doc.save(file);\n  }\n\n  el.pdf.addEventListener('click', async ()=>{\n    el.pdf.disabled = true;\n    try{ await generatePDF(); } finally { el.pdf.disabled = false; }\n  });\n\n  \/\/ Products (pick 2 random from latest)\n  async function loadProducts(refresh=false){\n    try{\n      if(refresh){\n        el.prods.innerHTML = '<div class=\"pl-skel\"><\/div><div class=\"pl-skel\"><\/div>';\n      }\n      const base = window.location.origin;\n      const url = `${base}\/wp-json\/wc\/store\/products?orderby=date&per_page=12&_=${Date.now()}`;\n      const res = await fetch(url, {credentials:'same-origin'});\n      if(!res.ok) throw new Error('HTTP '+res.status);\n      const items = await res.json();\n      if(!Array.isArray(items) || !items.length){\n        el.prods.innerHTML = '<p class=\"pl-note\">No products available.<\/p>'; \n        return;\n      }\n      const shuffled = items.sort(()=>Math.random()-0.5).slice(0,2);\n      el.prods.innerHTML = shuffled.map(p=>{\n        const img = (p.images && p.images[0] && p.images[0].src) ? p.images[0].src : '';\n        const price = (p.prices && p.prices.price!=null)\n          ? (p.prices.currency_prefix||'') + (p.prices.price\/100).toFixed(2) + (p.prices.currency_suffix||'')\n          : '';\n        const url = p.permalink || '#';\n        const name = p.name || 'Product';\n        return `\n          <article class=\"pl-p\">\n            <div class=\"pl-thumb\">${img?`<img decoding=\"async\" alt=\"${name}\" src=\"${img}\" loading=\"lazy\">`:'<i class=\"ph ph-image\"><\/i>'}<\/div>\n            <div class=\"pl-body\">\n              <div class=\"pl-name\">${name}<\/div>\n              <div class=\"pl-price\">${price}<\/div>\n              <a class=\"pl-open\" href=\"${url}\" aria-label=\"Open ${name}\"><i class=\"ph ph-arrow-up-right\"><\/i> View<\/a>\n            <\/div>\n          <\/article>\n        `;\n      }).join('');\n    }catch(e){\n      console.error(e);\n      el.prods.innerHTML = '<p class=\"pl-note\">Recommendations are not available right now.<\/p>';\n    }\n  }\n\n  \/\/ Initial load\n  loadProducts();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Ideal Weight Calculator Enter your data and get tailored recommendations. Name Current weight kg Height cm Age yrs Sex Male Female Calculate Download Health Report (PDF) We use a target BMI of 22 to estimate \u201cideal weight\u201d and display a healthy range (18.5\u201324.9). This tool is indicative and doesn\u2019t replace medical advice. Ideal weight (BMI [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"class_list":["post-1548","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/peptilife.me\/fr\/wp-json\/wp\/v2\/pages\/1548","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/peptilife.me\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/peptilife.me\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/peptilife.me\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/peptilife.me\/fr\/wp-json\/wp\/v2\/comments?post=1548"}],"version-history":[{"count":10,"href":"https:\/\/peptilife.me\/fr\/wp-json\/wp\/v2\/pages\/1548\/revisions"}],"predecessor-version":[{"id":1559,"href":"https:\/\/peptilife.me\/fr\/wp-json\/wp\/v2\/pages\/1548\/revisions\/1559"}],"wp:attachment":[{"href":"https:\/\/peptilife.me\/fr\/wp-json\/wp\/v2\/media?parent=1548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}