{"id":4422,"date":"2026-07-21T11:42:12","date_gmt":"2026-07-21T14:42:12","guid":{"rendered":"https:\/\/terraflux.com.br\/terraflux\/?page_id=4422"},"modified":"2026-10-21T15:03:04","modified_gmt":"2026-10-21T18:03:04","slug":"calculadora","status":"publish","type":"page","link":"https:\/\/terraflux.com.br\/terraflux\/calculadora\/","title":{"rendered":"Calculadora"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"4422\" class=\"elementor elementor-4422\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-abb1706 e-con-full e-flex e-con e-parent\" data-id=\"abb1706\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3f90f26 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"3f90f26\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"pt-BR\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Terra Flux \u2014 Calculadora de ROI<\/title>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap\" rel=\"stylesheet\">\n<style>\n  :root{\n    --bg: #F5F2EA;\n    --bg-card: #FFFFFF;\n    --ink: #12242A;\n    --ink-soft: #4C5F63;\n    --teal: #0E5C63;\n    --teal-deep: #093F44;\n    --teal-mist: #DCE9E7;\n    --clay: #C4632E;\n    --clay-soft: #F1DDD0;\n    --frost: #7FB8BE;\n    --line: #DAD4C4;\n    --good: #2E7D4F;\n    --radius: 14px;\n  }\n  *{box-sizing:border-box;}\n  html,body{margin:0;padding:0;}\n  body{\n    background:var(--bg);\n    color:var(--ink);\n    font-family:'Inter',sans-serif;\n    line-height:1.5;\n    -webkit-font-smoothing:antialiased;\n  }\n  h1,h2,h3,.display{\n    font-family:'Space Grotesk',sans-serif;\n    letter-spacing:-0.01em;\n  }\n  .mono{\n    font-family:'IBM Plex Mono',monospace;\n  }\n  .wrap{\n    max-width:1160px;\n    margin:0 auto;\n    padding:0 24px;\n  }\n\n  \/* ---------- Frost divider (signature element) ---------- *\/\n  .frost-divider{\n    position:relative;\n    height:46px;\n    overflow:hidden;\n    margin:0 0 8px 0;\n  }\n  .frost-divider svg{\n    position:absolute; top:0; left:0; width:100%; height:100%;\n  }\n\n  \/* ---------- Header ---------- *\/\n  header{\n    background:var(--teal-deep);\n    color:#fff;\n    padding:18px 0;\n  }\n  header .wrap{\n    display:flex;\n    align-items:center;\n    justify-content:space-between;\n  }\n  .logo{\n    display:flex;\n    align-items:baseline;\n    gap:2px;\n    font-family:'Space Grotesk',sans-serif;\n    font-weight:700;\n    font-size:20px;\n    letter-spacing:0.01em;\n  }\n  .logo span{color:var(--frost);}\n  .header-tag{\n    font-size:12px;\n    color:#B9D3D2;\n    font-family:'IBM Plex Mono',monospace;\n    letter-spacing:0.03em;\n    display:none;\n  }\n  @media(min-width:640px){ .header-tag{display:block;} }\n\n  \/* ---------- Hero ---------- *\/\n  .hero{\n    background:linear-gradient(180deg,var(--teal-deep) 0%, var(--teal) 100%);\n    color:#fff;\n    padding:56px 0 74px;\n    position:relative;\n  }\n  .hero h1{\n    font-size:clamp(28px,4.2vw,44px);\n    font-weight:700;\n    max-width:760px;\n    margin:0 0 14px;\n  }\n  .hero p{\n    max-width:600px;\n    color:#CFE3E1;\n    font-size:16px;\n    margin:0 0 0;\n  }\n  .hero-eyebrow{\n    font-family:'IBM Plex Mono',monospace;\n    font-size:12px;\n    letter-spacing:0.08em;\n    text-transform:uppercase;\n    color:var(--frost);\n    margin-bottom:14px;\n    display:flex;\n    align-items:center;\n    gap:8px;\n  }\n  .hero-eyebrow .dot{\n    width:6px;height:6px;border-radius:50%;\n    background:var(--clay);\n    display:inline-block;\n  }\n\n  \/* ---------- Sections ---------- *\/\n  main{padding-bottom:80px;}\n  section.block{\n    padding:44px 0 8px;\n  }\n  .section-head{\n    display:flex;\n    align-items:flex-end;\n    justify-content:space-between;\n    gap:16px;\n    margin-bottom:22px;\n    flex-wrap:wrap;\n  }\n  .section-num{\n    font-family:'IBM Plex Mono',monospace;\n    font-size:12px;\n    color:var(--clay);\n    letter-spacing:0.06em;\n    margin-bottom:6px;\n    display:block;\n  }\n  .section-head h2{\n    font-size:24px;\n    margin:0;\n    color:var(--teal-deep);\n  }\n  .section-sub{\n    color:var(--ink-soft);\n    font-size:14px;\n    max-width:480px;\n    margin:6px 0 0;\n  }\n\n  \/* ---------- Machine cards ---------- *\/\n  .machine-grid{\n    display:grid;\n    grid-template-columns:repeat(auto-fit,minmax(210px,1fr));\n    gap:14px;\n  }\n  .machine-card{\n    background:var(--bg-card);\n    border:2px solid var(--line);\n    border-radius:var(--radius);\n    padding:18px;\n    cursor:pointer;\n    transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease;\n    position:relative;\n  }\n  .machine-card:hover{ transform:translateY(-2px); }\n  .machine-card.active{\n    border-color:var(--teal);\n    box-shadow:0 6px 18px rgba(14,92,99,0.14);\n    background:var(--teal-mist);\n  }\n  .machine-card .chk{\n    position:absolute; top:14px; right:14px;\n    width:20px;height:20px;border-radius:6px;\n    border:2px solid var(--line);\n    background:#fff;\n    display:flex;align-items:center;justify-content:center;\n  }\n  .machine-card.active .chk{\n    background:var(--teal);\n    border-color:var(--teal);\n  }\n  .machine-card.active .chk::after{\n    content:\"\u2713\";\n    color:#fff;\n    font-size:12px;\n    font-weight:700;\n  }\n  .machine-card .m-name{\n    font-family:'Space Grotesk',sans-serif;\n    font-weight:600;\n    font-size:17px;\n    margin:0 0 4px;\n    color:var(--teal-deep);\n    padding-right:28px;\n  }\n  .machine-card .m-cap{\n    font-family:'IBM Plex Mono',monospace;\n    font-size:13px;\n    color:var(--ink-soft);\n    margin-bottom:12px;\n  }\n  .machine-card .m-price{\n    font-family:'IBM Plex Mono',monospace;\n    font-size:18px;\n    font-weight:600;\n    color:var(--clay);\n  }\n  .machine-card .m-price small{\n    font-size:11px;\n    font-weight:400;\n    color:var(--ink-soft);\n    display:block;\n    margin-top:2px;\n  }\n\n  \/* ---------- Food grid ---------- *\/\n  .food-grid{\n    display:grid;\n    grid-template-columns:repeat(auto-fill,minmax(160px,1fr));\n    gap:12px;\n  }\n  .food-card{\n    background:var(--bg-card);\n    border:2px solid var(--line);\n    border-radius:var(--radius);\n    padding:14px;\n    cursor:pointer;\n    transition:border-color .15s ease;\n  }\n  .food-card.active{\n    border-color:var(--clay);\n    background:var(--clay-soft);\n  }\n  .food-card .f-top{\n    display:flex;align-items:center;gap:8px;\n    margin-bottom:8px;\n  }\n  .food-card .f-emoji{font-size:22px;}\n  .food-card .f-name{\n    font-weight:600;\n    font-size:14px;\n    color:var(--ink);\n  }\n  .food-card .f-meta{\n    display:flex;\n    gap:6px;\n    flex-wrap:wrap;\n  }\n  .f-tag{\n    font-family:'IBM Plex Mono',monospace;\n    font-size:10.5px;\n    background:#fff;\n    border:1px solid var(--line);\n    border-radius:20px;\n    padding:2px 8px;\n    color:var(--ink-soft);\n  }\n  .food-card.active .f-tag{ border-color:#e0b79b; }\n\n  \/* ---------- Advanced editable panel ---------- *\/\n  .adv-panel{\n    margin-top:16px;\n    background:var(--bg-card);\n    border:1px solid var(--line);\n    border-radius:var(--radius);\n    padding:16px 18px;\n    display:none;\n  }\n  .adv-panel.show{display:block;}\n  .adv-row{\n    display:flex;\n    gap:18px;\n    flex-wrap:wrap;\n    align-items:flex-end;\n  }\n  .field{\n    display:flex;\n    flex-direction:column;\n    gap:6px;\n    min-width:140px;\n  }\n  .field label{\n    font-size:12px;\n    color:var(--ink-soft);\n    font-weight:600;\n  }\n  .field input{\n    font-family:'IBM Plex Mono',monospace;\n    font-size:15px;\n    padding:8px 10px;\n    border:1.5px solid var(--line);\n    border-radius:8px;\n    background:#fdfcf9;\n    color:var(--ink);\n    width:120px;\n  }\n  .field input:focus{ outline:2px solid var(--teal); border-color:var(--teal); }\n  .link-btn{\n    background:none;border:none;\n    color:var(--teal);\n    font-size:13px;\n    font-weight:600;\n    cursor:pointer;\n    padding:0;\n    text-decoration:underline;\n    text-underline-offset:3px;\n  }\n\n  \/* ---------- Price inputs ---------- *\/\n  .price-grid{\n    display:grid;\n    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));\n    gap:16px;\n  }\n  .price-card{\n    background:var(--bg-card);\n    border:1px solid var(--line);\n    border-radius:var(--radius);\n    padding:18px;\n  }\n  .price-card label{\n    display:block;\n    font-size:13px;\n    font-weight:600;\n    color:var(--teal-deep);\n    margin-bottom:8px;\n  }\n  .price-input-row{\n    display:flex;\n    align-items:center;\n    border:1.5px solid var(--line);\n    border-radius:10px;\n    overflow:hidden;\n    background:#fdfcf9;\n  }\n  .price-input-row span.prefix{\n    padding:10px 10px;\n    color:var(--ink-soft);\n    font-family:'IBM Plex Mono',monospace;\n    font-size:14px;\n    border-right:1.5px solid var(--line);\n    background:#f1efe8;\n  }\n  .price-input-row input{\n    border:none;\n    background:transparent;\n    padding:10px 12px;\n    font-family:'IBM Plex Mono',monospace;\n    font-size:16px;\n    width:100%;\n    color:var(--ink);\n  }\n  .price-input-row input:focus{ outline:none; }\n  .unit-toggle{\n    display:flex;\n    gap:6px;\n    margin-top:8px;\n  }\n  .unit-btn{\n    font-family:'IBM Plex Mono',monospace;\n    font-size:12px;\n    border:1.5px solid var(--line);\n    background:#fff;\n    padding:5px 10px;\n    border-radius:20px;\n    cursor:pointer;\n    color:var(--ink-soft);\n  }\n  .unit-btn.active{\n    background:var(--teal);\n    border-color:var(--teal);\n    color:#fff;\n  }\n  .op-days{\n    margin-top:14px;\n  }\n  .op-days label{\n    font-size:13px;font-weight:600;color:var(--teal-deep);\n    display:block;margin-bottom:8px;\n  }\n  input[type=range]{\n    width:100%;\n    accent-color:var(--teal);\n  }\n  .op-days .val{\n    font-family:'IBM Plex Mono',monospace;\n    font-size:13px;\n    color:var(--ink-soft);\n  }\n\n  \/* ---------- Results ---------- *\/\n  .results-empty{\n    background:var(--bg-card);\n    border:1.5px dashed var(--line);\n    border-radius:var(--radius);\n    padding:36px 20px;\n    text-align:center;\n    color:var(--ink-soft);\n    font-size:14px;\n  }\n  .result-cards{\n    display:grid;\n    gap:16px;\n    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));\n  }\n  .result-card{\n    background:var(--bg-card);\n    border:1.5px solid var(--line);\n    border-radius:var(--radius);\n    padding:20px;\n    position:relative;\n  }\n  .result-card.best{\n    border-color:var(--good);\n    box-shadow:0 8px 22px rgba(46,125,79,0.14);\n  }\n  .best-badge{\n    position:absolute;\n    top:-11px; right:16px;\n    background:var(--good);\n    color:#fff;\n    font-family:'IBM Plex Mono',monospace;\n    font-size:10.5px;\n    letter-spacing:0.04em;\n    padding:4px 10px;\n    border-radius:20px;\n    text-transform:uppercase;\n  }\n  .result-card h3{\n    font-size:16px;\n    margin:0 0 2px;\n    color:var(--teal-deep);\n  }\n  .result-card .r-cap{\n    font-family:'IBM Plex Mono',monospace;\n    font-size:12px;\n    color:var(--ink-soft);\n    margin-bottom:14px;\n  }\n  .roi-gauge{\n    display:flex;\n    align-items:baseline;\n    gap:6px;\n    margin-bottom:16px;\n    padding-bottom:16px;\n    border-bottom:1px dashed var(--line);\n  }\n  .roi-gauge .big{\n    font-family:'IBM Plex Mono',monospace;\n    font-size:36px;\n    font-weight:600;\n    color:var(--clay);\n  }\n  .roi-gauge .unit{\n    font-size:13px;\n    color:var(--ink-soft);\n  }\n  .r-line{\n    display:flex;\n    justify-content:space-between;\n    font-size:13px;\n    padding:5px 0;\n    color:var(--ink-soft);\n  }\n  .r-line b{\n    color:var(--ink);\n    font-family:'IBM Plex Mono',monospace;\n    font-weight:600;\n    font-size:13px;\n  }\n  .r-line.total{\n    border-top:1px solid var(--line);\n    margin-top:6px;\n    padding-top:10px;\n  }\n  .r-line.total b{ color:var(--teal-deep); font-size:14px; }\n  .neg{ color:#B23A3A !important; }\n\n  \/* ---------- Footer \/ disclaimer ---------- *\/\n  .disclaimer{\n    background:var(--teal-mist);\n    border:1px solid #C7DAD7;\n    border-radius:var(--radius);\n    padding:16px 18px;\n    font-size:12.5px;\n    color:var(--ink-soft);\n    margin-top:28px;\n    line-height:1.6;\n  }\n  .cta-bar{\n    margin-top:22px;\n    background:var(--teal-deep);\n    border-radius:var(--radius);\n    padding:22px 24px;\n    display:flex;\n    align-items:center;\n    justify-content:space-between;\n    gap:16px;\n    flex-wrap:wrap;\n    color:#fff;\n  }\n  .cta-bar p{ margin:0; font-size:14px; color:#CFE3E1; max-width:420px; }\n  .cta-btn{\n    background:var(--clay);\n    color:#fff;\n    text-decoration:none;\n    font-weight:600;\n    font-size:14px;\n    padding:12px 22px;\n    border-radius:30px;\n    white-space:nowrap;\n  }\n  footer{\n    text-align:center;\n    padding:26px 0 40px;\n    font-family:'IBM Plex Mono',monospace;\n    font-size:11.5px;\n    color:var(--ink-soft);\n  }\n\n  @media(max-width:640px){\n    .hero{padding:40px 0 58px;}\n    section.block{padding:34px 0 4px;}\n    .adv-row{gap:12px;}\n    .field{min-width:120px;}\n    .cta-bar{flex-direction:column; align-items:flex-start;}\n  }\n<\/style>\n<\/head>\n<body>\n\n<\/header>\n\n<div class=\"hero\">\n  <div class=\"wrap\">\n    <div class=\"hero-eyebrow\"><span class=\"dot\"><\/span> CALCULADORA DE RETORNO<\/div>\n    <h1>Quanto tempo leva para o seu liofilizador se pagar?<\/h1>\n    <p>Escolha o equipamento, o alimento e seus pre\u00e7os \u2014 a calculadora mostra o volume liofilizado por ciclo, os ciclos por m\u00eas e o retorno estimado do investimento.<\/p>\n  <\/div>\n<\/div>\n\n<div class=\"frost-divider\">\n  <svg viewBox=\"0 0 1160 46\" preserveAspectRatio=\"none\">\n    <path d=\"M0,18 C120,4 180,32 300,20 C420,8 480,30 600,18 C720,6 780,28 900,16 C1020,4 1080,26 1160,14\"\n      fill=\"none\" stroke=\"#7FB8BE\" stroke-width=\"1.4\" opacity=\"0.55\"\/>\n    <path d=\"M0,28 C140,40 220,10 360,26 C500,42 560,14 700,28 C840,42 900,12 1040,26 C1100,32 1130,24 1160,28\"\n      fill=\"none\" stroke=\"#0E5C63\" stroke-width=\"1.4\" opacity=\"0.35\"\/>\n  <\/svg>\n<\/div>\n\n<main class=\"wrap\">\n\n  <!-- STEP 1: MACHINES -->\n  <section class=\"block\">\n    <div class=\"section-head\">\n      <div>\n        <span class=\"section-num\">01 \u2014 EQUIPAMENTO<\/span>\n        <h2>Escolha um ou mais modelos para comparar<\/h2>\n        <p class=\"section-sub\">Linha Home Harvest Right. Selecione quantos quiser \u2014 os resultados aparecem lado a lado.<\/p>\n      <\/div>\n    <\/div>\n    <div class=\"machine-grid\" id=\"machineGrid\"><\/div>\n  <\/section>\n\n  <!-- STEP 2: FOOD -->\n  <section class=\"block\">\n    <div class=\"section-head\">\n      <div>\n        <span class=\"section-num\">02 \u2014 ALIMENTO<\/span>\n        <h2>Selecione o produto a liofilizar<\/h2>\n        <p class=\"section-sub\">Valores de % de \u00e1gua removida e tempo de ciclo s\u00e3o refer\u00eancias gerais \u2014 ajuste se tiver dados espec\u00edficos.<\/p>\n      <\/div>\n      <button class=\"link-btn\" id=\"toggleAdv\">Editar valores \u203a<\/button>\n    <\/div>\n    <div class=\"food-grid\" id=\"foodGrid\"><\/div>\n\n    <div class=\"adv-panel\" id=\"advPanel\">\n      <div class=\"adv-row\">\n        <div class=\"field\">\n          <label for=\"advWater\">% de \u00e1gua removida<\/label>\n          <input type=\"number\" id=\"advWater\" min=\"1\" max=\"99\" step=\"1\">\n        <\/div>\n        <div class=\"field\">\n          <label for=\"advCycle\">Dura\u00e7\u00e3o do ciclo (h)<\/label>\n          <input type=\"number\" id=\"advCycle\" min=\"6\" max=\"72\" step=\"1\">\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- STEP 3: PRICES -->\n  <section class=\"block\">\n    <div class=\"section-head\">\n      <div>\n        <span class=\"section-num\">03 \u2014 PRE\u00c7OS E OPERA\u00c7\u00c3O<\/span>\n        <h2>Informe os valores do seu neg\u00f3cio<\/h2>\n      <\/div>\n    <\/div>\n    <div class=\"price-grid\">\n      <div class=\"price-card\">\n        <label>Custo do produto in natura<\/label>\n        <div class=\"price-input-row\">\n          <span class=\"prefix\">R$\/kg<\/span>\n          <input type=\"number\" id=\"costPrice\" min=\"0\" step=\"0.01\" placeholder=\"Ex: 12,00\">\n        <\/div>\n      <\/div>\n      <div class=\"price-card\">\n        <label>Pre\u00e7o de venda do produto liofilizado<\/label>\n        <div class=\"price-input-row\">\n          <span class=\"prefix\" id=\"salePrefix\">R$\/kg<\/span>\n          <input type=\"number\" id=\"salePrice\" min=\"0\" step=\"0.01\" placeholder=\"Ex: 180,00\">\n        <\/div>\n        <div class=\"unit-toggle\">\n          <button class=\"unit-btn active\" data-unit=\"kg\">por kg<\/button>\n          <button class=\"unit-btn\" data-unit=\"g\">por grama<\/button>\n        <\/div>\n      <\/div>\n      <div class=\"price-card\">\n        <div class=\"op-days\">\n          <label>Dias de opera\u00e7\u00e3o por semana: <span class=\"val\" id=\"opDaysVal\">7 dias (cont\u00ednuo)<\/span><\/label>\n          <input type=\"range\" id=\"opDays\" min=\"1\" max=\"7\" step=\"1\" value=\"7\">\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- STEP 4: RESULTS -->\n  <section class=\"block\">\n    <div class=\"section-head\">\n      <div>\n        <span class=\"section-num\">04 \u2014 RESULTADO<\/span>\n        <h2>Retorno estimado do investimento<\/h2>\n      <\/div>\n    <\/div>\n    <div id=\"resultsArea\"><\/div>\n\n    <div class=\"disclaimer\">\n      <strong>Sobre esta estimativa:<\/strong> os c\u00e1lculos consideram apenas custo do insumo in natura e receita de venda do produto liofilizado, com base na capacidade do equipamento, % de remo\u00e7\u00e3o de \u00e1gua e tempo de ciclo informados. N\u00e3o incluem embalagem, m\u00e3o de obra, aluguel, energia, impostos ou outros custos operacionais. Use como refer\u00eancia inicial de viabilidade \u2014 para uma an\u00e1lise completa, fale com o Comercial T\u00e9cnico da Terra Flux.\n    <\/div>\n\n    <div class=\"cta-bar\">\n      <p>Quer validar esse c\u00e1lculo com a nossa equipe ou tirar d\u00favidas sobre o equipamento ideal para o seu volume?<\/p>\n      <a class=\"cta-btn\" href=\"https:\/\/wa.me\/5511969233010\" target=\"_blank\" rel=\"noopener\">Falar com Comercial T\u00e9cnico<\/a>\n    <\/div>\n  <\/section>\n\n<\/main>\n\n<footer>TERRA FLUX \u2014 DISTRIBUIDORA OFICIAL HARVEST RIGHT NO BRASIL<\/footer>\n\n<script>\nconst machines = [\n  {id:'small',  name:'Small Home',  capacity:4.5,  price:35880},\n  {id:'medium', name:'Medium Home', capacity:7,  price:41160},\n  {id:'large',  name:'Large Home',  capacity:12, price:53900},\n  {id:'xl',     name:'XL Home',     capacity:23, price:76680},\n];\n\nconst foods = [\n  {id:'morango',  name:'Morango',                          emoji:'\ud83c\udf53', water:90, cycle:22},\n  {id:'framboesa',name:'Framboesa',                         emoji:'\ud83c\udf47', water:90, cycle:20},\n  {id:'banana',   name:'Banana',                            emoji:'\ud83c\udf4c', water:88, cycle:24},\n  {id:'manga',    name:'Manga',                             emoji:'\ud83e\udd6d', water:85, cycle:24},\n  {id:'abacaxi',  name:'Abacaxi',                           emoji:'\ud83c\udf4d', water:87, cycle:22},\n  {id:'pudim',    name:'Pudim',                             emoji:'\ud83c\udf6e', water:78, cycle:20},\n  {id:'sorvete',  name:'Sorvete',                           emoji:'\ud83c\udf66', water:90, cycle:24},\n  {id:'candy',    name:'Candy (bala de goma)',              emoji:'\ud83c\udf6c', water:15, cycle:18},\n  {id:'cafe',     name:'Caf\u00e9 (extrato l\u00edquido)',            emoji:'\u2615', water:92, cycle:24},\n  {id:'refeicao', name:'Refei\u00e7\u00e3o pronta (carne c\/ molho)',  emoji:'\ud83c\udf72', water:65, cycle:24},\n];\n\nlet state = {\n  selectedMachines: new Set(['medium']),\n  selectedFood: 'morango',\n  customWater: null,\n  customCycle: null,\n  costPrice: null,\n  salePrice: null,\n  saleUnit: 'kg',\n  opDays: 7,\n};\n\nconst fmtBRL = (n) => n.toLocaleString('pt-BR', {style:'currency', currency:'BRL'});\nconst fmtNum = (n, d=1) => n.toLocaleString('pt-BR', {minimumFractionDigits:d, maximumFractionDigits:d});\n\nfunction currentFood(){\n  const f = foods.find(x => x.id === state.selectedFood);\n  return {\n    ...f,\n    water: state.customWater ?? f.water,\n    cycle: state.customCycle ?? f.cycle,\n  };\n}\n\nfunction renderMachines(){\n  const grid = document.getElementById('machineGrid');\n  grid.innerHTML = machines.map(m => `\n    <div class=\"machine-card ${state.selectedMachines.has(m.id) ? 'active' : ''}\" data-id=\"${m.id}\">\n      <div class=\"chk\"><\/div>\n      <p class=\"m-name\">${m.name}<\/p>\n      <p class=\"m-cap\">Capacidade: ${String(m.capacity).replace('.',',')} kg \/ ciclo<\/p>\n      <p class=\"m-price\">${fmtBRL(m.price)}<small>\u00e0 vista<\/small><\/p>\n    <\/div>\n  `).join('');\n  grid.querySelectorAll('.machine-card').forEach(card => {\n    card.addEventListener('click', () => {\n      const id = card.dataset.id;\n      if(state.selectedMachines.has(id)){\n        if(state.selectedMachines.size > 1) state.selectedMachines.delete(id);\n      } else {\n        state.selectedMachines.add(id);\n      }\n      renderMachines();\n      renderResults();\n    });\n  });\n}\n\nfunction renderFoods(){\n  const grid = document.getElementById('foodGrid');\n  grid.innerHTML = foods.map(f => `\n    <div class=\"food-card ${state.selectedFood === f.id ? 'active' : ''}\" data-id=\"${f.id}\">\n      <div class=\"f-top\">\n        <span class=\"f-emoji\">${f.emoji}<\/span>\n        <span class=\"f-name\">${f.name}<\/span>\n      <\/div>\n      <div class=\"f-meta\">\n        <span class=\"f-tag\">${f.water}% \u00e1gua<\/span>\n        <span class=\"f-tag\">${f.cycle}h\/ciclo<\/span>\n      <\/div>\n    <\/div>\n  `).join('');\n  grid.querySelectorAll('.food-card').forEach(card => {\n    card.addEventListener('click', () => {\n      state.selectedFood = card.dataset.id;\n      state.customWater = null;\n      state.customCycle = null;\n      renderFoods();\n      syncAdvPanel();\n      renderResults();\n    });\n  });\n}\n\nfunction syncAdvPanel(){\n  const f = currentFood();\n  document.getElementById('advWater').value = f.water;\n  document.getElementById('advCycle').value = f.cycle;\n}\n\ndocument.getElementById('toggleAdv').addEventListener('click', () => {\n  document.getElementById('advPanel').classList.toggle('show');\n});\n\ndocument.getElementById('advWater').addEventListener('input', (e) => {\n  const v = parseFloat(e.target.value);\n  state.customWater = isNaN(v) ? null : Math.min(99, Math.max(1, v));\n  renderResults();\n});\ndocument.getElementById('advCycle').addEventListener('input', (e) => {\n  const v = parseFloat(e.target.value);\n  state.customCycle = isNaN(v) ? null : Math.min(72, Math.max(6, v));\n  renderResults();\n});\n\ndocument.getElementById('costPrice').addEventListener('input', (e) => {\n  state.costPrice = parseFloat(e.target.value) || null;\n  renderResults();\n});\ndocument.getElementById('salePrice').addEventListener('input', (e) => {\n  state.salePrice = parseFloat(e.target.value) || null;\n  renderResults();\n});\ndocument.querySelectorAll('.unit-btn').forEach(btn => {\n  btn.addEventListener('click', () => {\n    document.querySelectorAll('.unit-btn').forEach(b => b.classList.remove('active'));\n    btn.classList.add('active');\n    state.saleUnit = btn.dataset.unit;\n    document.getElementById('salePrefix').textContent = state.saleUnit === 'kg' ? 'R$\/kg' : 'R$\/g';\n    renderResults();\n  });\n});\ndocument.getElementById('opDays').addEventListener('input', (e) => {\n  state.opDays = parseInt(e.target.value);\n  const label = state.opDays === 7 ? '7 dias (cont\u00ednuo)' : `${state.opDays} dia${state.opDays>1?'s':''}\/semana`;\n  document.getElementById('opDaysVal').textContent = label;\n  renderResults();\n});\n\nfunction calcMachine(m){\n  const food = currentFood();\n  const salePricePerKg = state.salePrice == null ? null : (state.saleUnit === 'g' ? state.salePrice * 1000 : state.salePrice);\n  const costPricePerKg = state.costPrice;\n\n  const outputKgPerCycle = m.capacity * (1 - food.water \/ 100);\n  const cyclesPerWeek = Math.floor((state.opDays * 24) \/ food.cycle);\n  const cyclesPerMonth = cyclesPerWeek * 4.345;\n\n  let revenuePerCycle = null, costPerCycle = null, profitPerCycle = null, monthlyProfit = null, roiMonths = null;\n\n  if(salePricePerKg != null){\n    revenuePerCycle = outputKgPerCycle * salePricePerKg;\n  }\n  if(costPricePerKg != null){\n    costPerCycle = m.capacity * costPricePerKg;\n  }\n  if(revenuePerCycle != null && costPerCycle != null){\n    profitPerCycle = revenuePerCycle - costPerCycle;\n    monthlyProfit = profitPerCycle * cyclesPerMonth;\n    roiMonths = monthlyProfit > 0 ? m.price \/ monthlyProfit : null;\n  }\n\n  return {\n    machine: m, food, outputKgPerCycle, cyclesPerWeek, cyclesPerMonth,\n    revenuePerCycle, costPerCycle, profitPerCycle, monthlyProfit, roiMonths\n  };\n}\n\nfunction renderResults(){\n  const area = document.getElementById('resultsArea');\n  const selected = machines.filter(m => state.selectedMachines.has(m.id));\n\n  if(state.costPrice == null || state.salePrice == null){\n    area.innerHTML = `<div class=\"results-empty\">Informe o custo do produto in natura e o pre\u00e7o de venda do liofilizado acima para ver o retorno estimado.<\/div>`;\n    return;\n  }\n\n  const results = selected.map(calcMachine);\n  const validRois = results.filter(r => r.roiMonths != null).map(r => r.roiMonths);\n  const bestRoi = validRois.length ? Math.min(...validRois) : null;\n\n  area.innerHTML = `<div class=\"result-cards\">${results.map(r => {\n    const isBest = results.length > 1 && r.roiMonths != null && r.roiMonths === bestRoi;\n    const negative = r.profitPerCycle != null && r.profitPerCycle <= 0;\n    return `\n    <div class=\"result-card ${isBest ? 'best' : ''}\">\n      ${isBest ? '<span class=\"best-badge\">Melhor retorno<\/span>' : ''}\n      <h3>${r.machine.name}<\/h3>\n      <p class=\"r-cap\">${String(r.machine.capacity).replace('.',',')} kg\/ciclo \u00b7 ${fmtBRL(r.machine.price)}<\/p>\n      <div class=\"roi-gauge\">\n        ${r.roiMonths != null\n          ? `<span class=\"big\">${fmtNum(r.roiMonths,1)}<\/span><span class=\"unit\">meses para retorno<\/span>`\n          : negative\n            ? `<span class=\"big neg\">\u2014<\/span><span class=\"unit neg\">lucro negativo nesse cen\u00e1rio<\/span>`\n            : `<span class=\"big\">\u2014<\/span><span class=\"unit\">preencha os pre\u00e7os<\/span>`\n        }\n      <\/div>\n      <div class=\"r-line\"><span>Volume liofilizado \/ ciclo<\/span><b>${fmtNum(r.outputKgPerCycle,2)} kg<\/b><\/div>\n      <div class=\"r-line\"><span>Ciclos por semana<\/span><b>${r.cyclesPerWeek}<\/b><\/div>\n      <div class=\"r-line\"><span>Ciclos por m\u00eas (m\u00e9d.)<\/span><b>${fmtNum(r.cyclesPerMonth,1)}<\/b><\/div>\n      <div class=\"r-line\"><span>Receita por ciclo<\/span><b>${fmtBRL(r.revenuePerCycle)}<\/b><\/div>\n      <div class=\"r-line\"><span>Custo insumo por ciclo<\/span><b>${fmtBRL(r.costPerCycle)}<\/b><\/div>\n      <div class=\"r-line total\"><span>Lucro mensal estimado<\/span><b class=\"${negative ? 'neg' : ''}\">${fmtBRL(r.monthlyProfit)}<\/b><\/div>\n    <\/div>\n  `}).join('')}<\/div>`;\n}\n\nrenderMachines();\nrenderFoods();\nsyncAdvPanel();\nrenderResults();\n<\/script>\n\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Terra Flux \u2014 Calculadora de ROI CALCULADORA DE RETORNO Quanto tempo leva para o seu liofilizador se pagar? Escolha o equipamento, o alimento e seus pre\u00e7os \u2014 a calculadora mostra [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"class_list":["post-4422","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Calculadora - Terra Flux<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/terraflux.com.br\/terraflux\/calculadora\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Calculadora - Terra Flux\" \/>\n<meta property=\"og:description\" content=\"Terra Flux \u2014 Calculadora de ROI CALCULADORA DE RETORNO Quanto tempo leva para o seu liofilizador se pagar? Escolha o equipamento, o alimento e seus pre\u00e7os \u2014 a calculadora mostra [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/terraflux.com.br\/terraflux\/calculadora\/\" \/>\n<meta property=\"og:site_name\" content=\"Terra Flux\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.instagram.com\/terraflux\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-21T18:03:04+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/terraflux.com.br\\\/terraflux\\\/calculadora\\\/\",\"url\":\"https:\\\/\\\/terraflux.com.br\\\/terraflux\\\/calculadora\\\/\",\"name\":\"Calculadora - Terra Flux\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/terraflux.com.br\\\/terraflux\\\/#website\"},\"datePublished\":\"2026-07-21T14:42:12+00:00\",\"dateModified\":\"2026-10-21T18:03:04+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/terraflux.com.br\\\/terraflux\\\/calculadora\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/terraflux.com.br\\\/terraflux\\\/calculadora\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/terraflux.com.br\\\/terraflux\\\/calculadora\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/terraflux.com.br\\\/terraflux\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calculadora\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/terraflux.com.br\\\/terraflux\\\/#website\",\"url\":\"https:\\\/\\\/terraflux.com.br\\\/terraflux\\\/\",\"name\":\"Terra Flux\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/terraflux.com.br\\\/terraflux\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/terraflux.com.br\\\/terraflux\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/terraflux.com.br\\\/terraflux\\\/#organization\",\"name\":\"Terra Flux\",\"url\":\"https:\\\/\\\/terraflux.com.br\\\/terraflux\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/terraflux.com.br\\\/terraflux\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/terraflux.com.br\\\/terraflux\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/Logo-Terra-Flux.jpg\",\"contentUrl\":\"https:\\\/\\\/terraflux.com.br\\\/terraflux\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/Logo-Terra-Flux.jpg\",\"width\":522,\"height\":293,\"caption\":\"Terra Flux comercio Internacional\"},\"image\":{\"@id\":\"https:\\\/\\\/terraflux.com.br\\\/terraflux\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.instagram.com\\\/terraflux\"],\"legalName\":\"Terra Flux Com\u00e9rcio Internacional\",\"description\":\"Importadora e representante oficial no Brasil dos liofilizadores Harvest Right (EUA) e do sistema de climatiza\u00e7\u00e3o CoolBot. Venda nacionalizada, pronta entrega, garantia, assist\u00eancia t\u00e9cnica e consultoria em liofiliza\u00e7\u00e3o desde 2023.\",\"foundingDate\":\"2023\",\"taxID\":\"61.711.302\\\/0001-62\",\"address\":{\"@type\":\"PostalAddress\",\"addressLocality\":\"Guarulhos\",\"addressRegion\":\"SP\",\"addressCountry\":\"BR\"},\"areaServed\":\"BR\",\"knowsAbout\":[\"liofiliza\u00e7\u00e3o\",\"liofilizadores Harvest Right\",\"freeze dryer\",\"c\u00e2mara fria\",\"CoolBot\",\"conserva\u00e7\u00e3o de alimentos\",\"pet food liofilizado\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Calculadora - Terra Flux","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/terraflux.com.br\/terraflux\/calculadora\/","og_locale":"pt_BR","og_type":"article","og_title":"Calculadora - Terra Flux","og_description":"Terra Flux \u2014 Calculadora de ROI CALCULADORA DE RETORNO Quanto tempo leva para o seu liofilizador se pagar? Escolha o equipamento, o alimento e seus pre\u00e7os \u2014 a calculadora mostra [&hellip;]","og_url":"https:\/\/terraflux.com.br\/terraflux\/calculadora\/","og_site_name":"Terra Flux","article_publisher":"https:\/\/www.instagram.com\/terraflux","article_modified_time":"2026-10-21T18:03:04+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. tempo de leitura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/terraflux.com.br\/terraflux\/calculadora\/","url":"https:\/\/terraflux.com.br\/terraflux\/calculadora\/","name":"Calculadora - Terra Flux","isPartOf":{"@id":"https:\/\/terraflux.com.br\/terraflux\/#website"},"datePublished":"2026-07-21T14:42:12+00:00","dateModified":"2026-10-21T18:03:04+00:00","breadcrumb":{"@id":"https:\/\/terraflux.com.br\/terraflux\/calculadora\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/terraflux.com.br\/terraflux\/calculadora\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/terraflux.com.br\/terraflux\/calculadora\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/terraflux.com.br\/terraflux\/"},{"@type":"ListItem","position":2,"name":"Calculadora"}]},{"@type":"WebSite","@id":"https:\/\/terraflux.com.br\/terraflux\/#website","url":"https:\/\/terraflux.com.br\/terraflux\/","name":"Terra Flux","description":"","publisher":{"@id":"https:\/\/terraflux.com.br\/terraflux\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/terraflux.com.br\/terraflux\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/terraflux.com.br\/terraflux\/#organization","name":"Terra Flux","url":"https:\/\/terraflux.com.br\/terraflux\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/terraflux.com.br\/terraflux\/#\/schema\/logo\/image\/","url":"https:\/\/terraflux.com.br\/terraflux\/wp-content\/uploads\/2025\/07\/Logo-Terra-Flux.jpg","contentUrl":"https:\/\/terraflux.com.br\/terraflux\/wp-content\/uploads\/2025\/07\/Logo-Terra-Flux.jpg","width":522,"height":293,"caption":"Terra Flux comercio Internacional"},"image":{"@id":"https:\/\/terraflux.com.br\/terraflux\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.instagram.com\/terraflux"],"legalName":"Terra Flux Com\u00e9rcio Internacional","description":"Importadora e representante oficial no Brasil dos liofilizadores Harvest Right (EUA) e do sistema de climatiza\u00e7\u00e3o CoolBot. Venda nacionalizada, pronta entrega, garantia, assist\u00eancia t\u00e9cnica e consultoria em liofiliza\u00e7\u00e3o desde 2023.","foundingDate":"2023","taxID":"61.711.302\/0001-62","address":{"@type":"PostalAddress","addressLocality":"Guarulhos","addressRegion":"SP","addressCountry":"BR"},"areaServed":"BR","knowsAbout":["liofiliza\u00e7\u00e3o","liofilizadores Harvest Right","freeze dryer","c\u00e2mara fria","CoolBot","conserva\u00e7\u00e3o de alimentos","pet food liofilizado"]}]}},"_links":{"self":[{"href":"https:\/\/terraflux.com.br\/terraflux\/wp-json\/wp\/v2\/pages\/4422","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/terraflux.com.br\/terraflux\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/terraflux.com.br\/terraflux\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/terraflux.com.br\/terraflux\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/terraflux.com.br\/terraflux\/wp-json\/wp\/v2\/comments?post=4422"}],"version-history":[{"count":4,"href":"https:\/\/terraflux.com.br\/terraflux\/wp-json\/wp\/v2\/pages\/4422\/revisions"}],"predecessor-version":[{"id":4426,"href":"https:\/\/terraflux.com.br\/terraflux\/wp-json\/wp\/v2\/pages\/4422\/revisions\/4426"}],"wp:attachment":[{"href":"https:\/\/terraflux.com.br\/terraflux\/wp-json\/wp\/v2\/media?parent=4422"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}