{"id":2220,"date":"2026-04-23T16:44:13","date_gmt":"2026-04-23T21:44:13","guid":{"rendered":"https:\/\/enviexpress.ec\/?page_id=2220"},"modified":"2026-04-24T17:34:04","modified_gmt":"2026-04-24T22:34:04","slug":"cotizador","status":"publish","type":"page","link":"https:\/\/enviexpress.ec\/?page_id=2220","title":{"rendered":"Cotizador"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2220\" class=\"elementor elementor-2220\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-860902a e-flex e-con-boxed e-con e-parent\" data-id=\"860902a\" 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-0463aa0 elementor-widget elementor-widget-spacer\" data-id=\"0463aa0\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f657fa4 e-flex e-con-boxed e-con e-parent\" data-id=\"f657fa4\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-d1b74ef e-con-full e-flex e-con e-child\" data-id=\"d1b74ef\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-285e5fe elementor-widget elementor-widget-image\" data-id=\"285e5fe\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/enviexpress.ec\/wp-content\/uploads\/2026\/04\/envicarro-1024x1024.png\" class=\"attachment-large size-large wp-image-2231\" alt=\"\" srcset=\"https:\/\/enviexpress.ec\/wp-content\/uploads\/2026\/04\/envicarro-1024x1024.png 1024w, https:\/\/enviexpress.ec\/wp-content\/uploads\/2026\/04\/envicarro-300x300.png 300w, https:\/\/enviexpress.ec\/wp-content\/uploads\/2026\/04\/envicarro-150x150.png 150w, https:\/\/enviexpress.ec\/wp-content\/uploads\/2026\/04\/envicarro-768x768.png 768w, https:\/\/enviexpress.ec\/wp-content\/uploads\/2026\/04\/envicarro-1536x1536.png 1536w, https:\/\/enviexpress.ec\/wp-content\/uploads\/2026\/04\/envicarro.png 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dca73e7 elementor-widget elementor-widget-spacer\" data-id=\"dca73e7\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d035abc e-con-full e-flex e-con e-child\" data-id=\"d035abc\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fbe9225 elementor-widget elementor-widget-shortcode\" data-id=\"fbe9225\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n<div id=\"cot-wrap\">\n\n  <!-- HEADER -->\n  <div class=\"cot-header\">\n    <div class=\"cot-header-icon\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\/><polyline points=\"3.27 6.96 12 12.01 20.73 6.96\"\/><line x1=\"12\" y1=\"22.08\" x2=\"12\" y2=\"12\"\/><\/svg>\n    <\/div>\n    <div>\n      <h2>Cotizador de Env\u00edos<\/h2>\n      <p>Calcula el costo de tu env\u00edo a nivel nacional<\/p>\n    <\/div>\n  <\/div>\n\n  <!-- TIPO -->\n  <div class=\"cot-section\">\n    <label class=\"cot-section-label\">Tipo de env\u00edo<\/label>\n    <div class=\"cot-tipo\">\n      <button class=\"cot-tipo-btn active\" data-tipo=\"paquete\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\/><\/svg>\n        <span>Paquete<\/span>\n      <\/button>\n      <button class=\"cot-tipo-btn\" data-tipo=\"documento\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"\/><line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"\/><\/svg>\n        <span>Documento<\/span>\n      <\/button>\n    <\/div>\n  <\/div>\n\n  <!-- ORIGEN \/ DESTINO -->\n  <div class=\"cot-section\">\n    <div class=\"cot-grid-2\">\n\n      <div class=\"cot-field\">\n        <label>\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"10\" r=\"3\"\/><path d=\"M12 2a8 8 0 0 1 8 8c0 5.25-8 13-8 13S4 15.25 4 10a8 8 0 0 1 8-8z\"\/><\/svg>\n          Ciudad de Origen\n        <\/label>\n        <div class=\"cot-autocomplete\" id=\"wrap-origen\">\n          <input type=\"text\" id=\"inp-origen\" placeholder=\"Buscar ciudad de origen...\" autocomplete=\"off\">\n          <svg class=\"cot-field-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><\/svg>\n          <ul id=\"list-origen\" class=\"cot-dropdown\"><\/ul>\n          <input type=\"hidden\" id=\"val-origen\">\n        <\/div>\n      <\/div>\n\n      <div class=\"cot-field\">\n        <label>\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"10\" r=\"3\"\/><path d=\"M12 2a8 8 0 0 1 8 8c0 5.25-8 13-8 13S4 15.25 4 10a8 8 0 0 1 8-8z\"\/><\/svg>\n          Ciudad de Destino\n        <\/label>\n        <div class=\"cot-autocomplete\" id=\"wrap-destino\">\n          <input type=\"text\" id=\"inp-destino\" placeholder=\"Primero elige origen...\" autocomplete=\"off\" disabled>\n          <svg class=\"cot-field-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><\/svg>\n          <ul id=\"list-destino\" class=\"cot-dropdown\"><\/ul>\n          <input type=\"hidden\" id=\"val-destino\">\n          <input type=\"hidden\" id=\"val-ruta\">\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n\n  <!-- PESO -->\n  <div class=\"cot-section\" id=\"cot-peso-section\" style=\"display:none;\">\n    <label class=\"cot-section-label\">Peso del paquete<\/label>\n    <div class=\"cot-peso-wrap\">\n      <div class=\"cot-field cot-field-peso\">\n        <label>\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><path d=\"M12 8v4l3 3\"\/><\/svg>\n          Peso\n        <\/label>\n        <div class=\"cot-input-unit\">\n          <input type=\"number\" id=\"cot-peso\" min=\"0.1\" step=\"0.1\" placeholder=\"0.0\">\n          <span class=\"cot-unit\">kg<\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- RESULTADO -->\n  <div id=\"cot-resultado\" style=\"display:none;\">\n    <div class=\"cot-res-header\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n      Cotizaci\u00f3n calculada\n    <\/div>\n    <div class=\"cot-res-body\">\n      <div class=\"cot-res-row\">\n        <span>Tipo de env\u00edo<\/span>\n        <strong id=\"cot-tipo-txt\"><\/strong>\n      <\/div>\n      <div class=\"cot-res-row\">\n        <span>Ruta<\/span>\n        <strong id=\"cot-ruta-txt\" class=\"cot-badge\"><\/strong>\n      <\/div>\n      <div class=\"cot-res-row\" id=\"cot-detalle-row\" style=\"display:none;\">\n        <span>Detalle<\/span>\n        <span id=\"cot-detalle-txt\" class=\"cot-detalle\"><\/span>\n      <\/div>\n      <div class=\"cot-res-total\">\n        <span>Total estimado<\/span>\n        <strong id=\"cot-total-txt\"><\/strong>\n      <\/div>\n    <\/div>\n    <p class=\"cot-nota\">* Precio referencial. Puede variar seg\u00fan condiciones del servicio.<\/p>\n  <\/div>\n\n<\/div>\n\n<style>\n*, *::before, *::after { box-sizing: border-box; }\n\n#cot-wrap {\n  max-width: 680px;\n  margin: 0 auto;\n  font-family: 'Segoe UI', system-ui, sans-serif;\n  color: #1a1a2e;\n}\n\n\/* HEADER *\/\n.cot-header {\n  display: flex;\n  align-items: center;\n  gap: 16px;\n  background: linear-gradient(135deg, #03a0e0, #04B4FC);\n  color: white;\n  padding: 24px 28px;\n  border-radius: 16px 16px 0 0;\n}\n.cot-header-icon {\n  width: 52px; height: 52px;\n  background: rgba(255,255,255,0.2);\n  border-radius: 12px;\n  display: flex; align-items: center; justify-content: center;\n  flex-shrink: 0;\n}\n.cot-header-icon svg { width: 28px; height: 28px; stroke: white; }\n.cot-header h2 { margin: 0 0 4px; font-size: 22px; font-weight: 700; }\n.cot-header p  { margin: 0; font-size: 14px; opacity: 0.85; }\n\n\/* SECTIONS *\/\n.cot-section {\n  background: #fff;\n  padding: 24px 28px;\n  border-left: 1px solid #e8edf2;\n  border-right: 1px solid #e8edf2;\n  border-bottom: 1px solid #e8edf2;\n}\n.cot-section-label {\n  display: block;\n  font-size: 13px;\n  font-weight: 600;\n  text-transform: uppercase;\n  letter-spacing: .6px;\n  color: #6b7280;\n  margin-bottom: 12px;\n}\n\n\/* TIPO BOTONES *\/\n.cot-tipo { display: flex; gap: 12px; }\n.cot-tipo-btn {\n  flex: 1;\n  display: flex; align-items: center; justify-content: center; gap: 10px;\n  padding: 14px 20px;\n  border: 2px solid #e2e8f0;\n  background: #f8fafc;\n  border-radius: 10px;\n  cursor: pointer;\n  font-size: 15px;\n  font-weight: 600;\n  color: #64748b;\n  transition: all .2s;\n}\n.cot-tipo-btn svg { width: 20px; height: 20px; stroke: currentColor; }\n.cot-tipo-btn:hover { border-color: #04B4FC; color: #04B4FC; background: #f0fbff; }\n.cot-tipo-btn.active { border-color: #FC6404; background: #FC6404; color: #fff; }\n\n\/* GRID *\/\n.cot-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }\n@media(max-width: 540px) { .cot-grid-2 { grid-template-columns: 1fr; } }\n\n\/* FIELDS *\/\n.cot-field label {\n  display: flex; align-items: center; gap: 6px;\n  font-size: 13px; font-weight: 600; color: #374151;\n  margin-bottom: 8px;\n}\n.cot-field label svg { width: 15px; height: 15px; stroke: #04B4FC; }\n\n\/* AUTOCOMPLETE *\/\n.cot-autocomplete { position: relative; }\n.cot-autocomplete input[type=text] {\n  width: 100%;\n  padding: 11px 40px 11px 14px;\n  border: 1.5px solid #e2e8f0;\n  border-radius: 8px;\n  font-size: 14px;\n  color: #1a1a2e;\n  background: #fff;\n  transition: border-color .2s;\n  outline: none;\n}\n.cot-autocomplete input[type=text]:focus { border-color: #04B4FC; box-shadow: 0 0 0 3px rgba(4,180,252,.12); }\n.cot-autocomplete input[type=text]:disabled { background: #f1f5f9; color: #94a3b8; cursor: not-allowed; }\n.cot-field-icon {\n  position: absolute; right: 12px; top: 50%; transform: translateY(-50%);\n  width: 16px; height: 16px; stroke: #9ca3af; pointer-events: none;\n}\n.cot-dropdown {\n  position: absolute; top: calc(100% + 4px); left: 0; right: 0;\n  background: #fff;\n  border: 1.5px solid #e2e8f0;\n  border-radius: 8px;\n  max-height: 220px;\n  overflow-y: auto;\n  z-index: 9999;\n  list-style: none;\n  margin: 0; padding: 4px 0;\n  box-shadow: 0 8px 24px rgba(0,0,0,.1);\n  display: none;\n}\n.cot-dropdown li {\n  padding: 10px 14px;\n  font-size: 14px;\n  cursor: pointer;\n  color: #374151;\n  transition: background .15s;\n}\n.cot-dropdown li:hover, .cot-dropdown li.active { background: #f0fbff; color: #04B4FC; }\n.cot-dropdown li.no-results { color: #9ca3af; cursor: default; font-style: italic; }\n\n\/* PESO *\/\n.cot-input-unit {\n  display: flex; align-items: center;\n  border: 1.5px solid #e2e8f0; border-radius: 8px; overflow: hidden;\n  transition: border-color .2s;\n}\n.cot-input-unit:focus-within { border-color: #04B4FC; box-shadow: 0 0 0 3px rgba(4,180,252,.12); }\n.cot-input-unit input {\n  flex: 1; border: none; outline: none;\n  padding: 11px 14px; font-size: 14px; color: #1a1a2e;\n}\n.cot-unit {\n  padding: 0 14px;\n  background: #f1f5f9;\n  color: #64748b;\n  font-size: 13px; font-weight: 600;\n  border-left: 1.5px solid #e2e8f0;\n  height: 100%; display: flex; align-items: center;\n}\n\n\/* RESULTADO *\/\n#cot-resultado {\n  border: 1.5px solid #e2e8f0;\n  border-top: none;\n  border-radius: 0 0 16px 16px;\n  overflow: hidden;\n}\n.cot-res-header {\n  display: flex; align-items: center; gap: 10px;\n  background: #04B4FC;\n  color: white;\n  padding: 14px 28px;\n  font-weight: 600; font-size: 15px;\n}\n.cot-res-header svg { width: 18px; height: 18px; stroke: white; }\n.cot-res-body { padding: 20px 28px; display: flex; flex-direction: column; gap: 12px; background: #fff; }\n.cot-res-row {\n  display: flex; justify-content: space-between; align-items: center;\n  font-size: 14px; color: #374151;\n  padding-bottom: 12px;\n  border-bottom: 1px solid #f1f5f9;\n}\n.cot-badge {\n  background: #f0fbff; color: #04B4FC;\n  padding: 3px 12px; border-radius: 20px;\n  font-size: 13px; font-weight: 700;\n  border: 1px solid #bae6fd;\n}\n.cot-detalle { font-size: 13px; color: #6b7280; text-align: right; max-width: 280px; }\n.cot-res-total {\n  display: flex; justify-content: space-between; align-items: center;\n  padding: 16px 28px;\n  background: linear-gradient(135deg, #fff8f4, #fff0e6);\n  border-top: 1px solid #fcd9b8;\n}\n.cot-res-total span { font-size: 15px; font-weight: 600; color: #374151; }\n.cot-res-total strong { font-size: 28px; font-weight: 800; color: #FC6404; }\n.cot-nota { margin: 0; padding: 10px 28px; font-size: 12px; color: #9ca3af; background: #fafafa; text-align: center; }\n<\/style>\n<script>\n(function(){\n  const ajaxUrl = 'https:\/\/enviexpress.ec\/wp-admin\/admin-ajax.php';\n  let tipoActivo = 'paquete';\n  let rutaActiva = '';\n  let origenesData = [];\n  let destinosData = [];\n\nconst tarifasPaquete = {\n    'LOCAL':        { base: 2.00, adicional: 0.30 },\n    'CANTONAL':     { base: 3.50, adicional: 0.61 },\n    'PROVINCIAL':   { base: 4.20, adicional: 0.70 },\n    'ESPECIAL':     { base: 5.00, adicional: 0.90 },\n    'DIFERENCIADA': { base: 7.00, adicional: 0.99 }\n  };\n  const tarifasDocumento = {\n    'LOCAL': 1.70, 'CANTONAL': 3.20, 'PROVINCIAL': 3.60, 'ESPECIAL': 4.20, 'DIFERENCIADA': 5.00\n  };\n\n  \/\/ \u2500\u2500 Autocomplete gen\u00e9rico \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function initAutocomplete(inputId, listId, getData, onSelect) {\n    const inp  = document.getElementById(inputId);\n    const list = document.getElementById(listId);\n\n    inp.addEventListener('input', function() {\n      const q = this.value.trim().toUpperCase();\n      const items = getData().filter(i => i.label.toUpperCase().includes(q));\n      renderList(list, items, onSelect, inp);\n    });\n\n    inp.addEventListener('focus', function() {\n      const items = getData();\n      renderList(list, items, onSelect, inp);\n    });\n\n    document.addEventListener('click', function(e) {\n      if (!inp.contains(e.target) && !list.contains(e.target)) list.style.display = 'none';\n    });\n  }\n\n  function renderList(list, items, onSelect, inp) {\n    list.innerHTML = '';\n    if (!items.length) {\n      list.innerHTML = '<li class=\"no-results\">Sin resultados<\/li>';\n      list.style.display = 'block';\n      return;\n    }\n    items.forEach(item => {\n      const li = document.createElement('li');\n      li.textContent = item.label;\n      li.addEventListener('mousedown', function(e) {\n        e.preventDefault();\n        onSelect(item);\n        inp.value = item.label;\n        list.style.display = 'none';\n      });\n      list.appendChild(li);\n    });\n    list.style.display = 'block';\n  }\n\n  \/\/ \u2500\u2500 Cargar or\u00edgenes \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  fetch(ajaxUrl + '?action=cot_origenes')\n    .then(r => r.json())\n    .then(data => {\n      origenesData = data.data.map(o => ({ label: o, value: o }));\n    });\n\n  initAutocomplete('inp-origen', 'list-origen',\n    () => origenesData,\n    (item) => {\n      document.getElementById('val-origen').value = item.value;\n      \/\/ reset destino\n      document.getElementById('inp-destino').value = '';\n      document.getElementById('val-destino').value = '';\n      document.getElementById('val-ruta').value = '';\n      document.getElementById('inp-destino').disabled = true;\n      destinosData = [];\n      rutaActiva = '';\n      ocultarResultado();\n\n      \/\/ cargar destinos\n      fetch(ajaxUrl, {\n        method: 'POST',\n        headers: {'Content-Type':'application\/x-www-form-urlencoded'},\n        body: 'action=cot_destinos&origen=' + encodeURIComponent(item.value)\n      })\n      .then(r => r.json())\n      .then(res => {\n        destinosData = res.data.map(d => ({ label: d.destino, value: d.destino, ruta: d.ruta }));\n        document.getElementById('inp-destino').disabled = false;\n        document.getElementById('inp-destino').placeholder = 'Buscar ciudad de destino...';\n      });\n    }\n  );\n\n  initAutocomplete('inp-destino', 'list-destino',\n    () => destinosData,\n    (item) => {\n      document.getElementById('val-destino').value = item.value;\n      document.getElementById('val-ruta').value = item.ruta;\n      rutaActiva = item.ruta.toUpperCase();\n      mostrarCampos();\n      calcular();\n    }\n  );\n\n  \/\/ \u2500\u2500 Botones tipo \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  document.querySelectorAll('.cot-tipo-btn').forEach(btn => {\n    btn.addEventListener('click', function() {\n      document.querySelectorAll('.cot-tipo-btn').forEach(b => b.classList.remove('active'));\n      this.classList.add('active');\n      tipoActivo = this.dataset.tipo;\n      mostrarCampos();\n      calcular();\n    });\n  });\n\n  \/\/ \u2500\u2500 Peso \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  document.getElementById('cot-peso').addEventListener('input', calcular);\n\n  function mostrarCampos() {\n    const sec = document.getElementById('cot-peso-section');\n    sec.style.display = (rutaActiva && tipoActivo === 'paquete') ? 'block' : 'none';\n    if (tipoActivo !== 'paquete') document.getElementById('cot-peso').value = '';\n  }\n\n  function calcular() {\n    if (!rutaActiva) { ocultarResultado(); return; }\n\n    document.getElementById('cot-tipo-txt').textContent = tipoActivo === 'paquete' ? 'Paquete' : 'Documento';\n    document.getElementById('cot-ruta-txt').textContent = rutaActiva;\n\n    const resultado = document.getElementById('cot-resultado');\n    const detalleRow = document.getElementById('cot-detalle-row');\n\n    if (tipoActivo === 'documento') {\n      const precio = tarifasDocumento[rutaActiva];\n      if (precio === undefined) { ocultarResultado(); return; }\n      detalleRow.style.display = 'none';\n      document.getElementById('cot-total-txt').textContent = '$' + precio.toFixed(2);\n      resultado.style.display = 'block';\n      return;\n    }\n\n    \/\/ PAQUETE\n    const peso = parseFloat(document.getElementById('cot-peso').value);\n    if (!peso || peso <= 0) {\n      detalleRow.style.display = 'none';\n      document.getElementById('cot-total-txt').textContent = '--';\n      resultado.style.display = 'block';\n      return;\n    }\n\n    const tarifa = tarifasPaquete[rutaActiva];\n    if (!tarifa) { ocultarResultado(); return; }\n\n    let total, detalle;\n    if (peso <= 4) {\n      total = tarifa.base;\n      detalle = 'Dentro del rango base (1\u20134 kg)';\n    } else {\n      const exc = peso - 4;\n      const costoExc = exc * tarifa.adicional;\n      total = tarifa.base + costoExc;\n      detalle = `Base $${tarifa.base.toFixed(2)} + ${exc.toFixed(1)}kg \u00d7 $${tarifa.adicional.toFixed(2)} = $${costoExc.toFixed(2)}`;\n    }\n\n    document.getElementById('cot-detalle-txt').textContent = detalle;\n    detalleRow.style.display = 'none';\n    document.getElementById('cot-total-txt').textContent = '$' + total.toFixed(2);\n    resultado.style.display = 'block';\n  }\n\n  function ocultarResultado() {\n    document.getElementById('cot-resultado').style.display = 'none';\n    document.getElementById('cot-peso-section').style.display = 'none';\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\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3d70531 e-flex e-con-boxed e-con e-parent\" data-id=\"3d70531\" 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-bf37483 elementor-widget elementor-widget-spacer\" data-id=\"bf37483\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\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":"","meta":{"footnotes":""},"class_list":["post-2220","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/enviexpress.ec\/index.php?rest_route=\/wp\/v2\/pages\/2220","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/enviexpress.ec\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/enviexpress.ec\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/enviexpress.ec\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/enviexpress.ec\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2220"}],"version-history":[{"count":9,"href":"https:\/\/enviexpress.ec\/index.php?rest_route=\/wp\/v2\/pages\/2220\/revisions"}],"predecessor-version":[{"id":2238,"href":"https:\/\/enviexpress.ec\/index.php?rest_route=\/wp\/v2\/pages\/2220\/revisions\/2238"}],"wp:attachment":[{"href":"https:\/\/enviexpress.ec\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}