{"id":3010,"date":"2025-07-29T16:01:56","date_gmt":"2025-07-29T16:01:56","guid":{"rendered":"https:\/\/pkfcabrera.com\/services\/tax\/"},"modified":"2026-09-21T20:39:53","modified_gmt":"2026-09-21T20:39:53","slug":"tax","status":"publish","type":"page","link":"https:\/\/pkfcabrera.com\/en\/services\/tax\/","title":{"rendered":"Tax"},"content":{"rendered":"<section class=\"l-section wpb_row us_custom_95fa59da height_large color_primary with_img\"><div class=\"l-section-img\" role=\"img\" aria-label=\"Image\" data-img-width=\"1080\" data-img-height=\"250\" style=\"background-image: url(https:\/\/pkfcabrera.com\/wp-content\/uploads\/2025\/10\/baner-generico-azul-oscuro-pkf.webp);background-repeat: no-repeat;\"><\/div><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_grid cols_2 laptops-cols_inherit tablets-cols_inherit mobiles-cols_1 valign_top type_default stacking_default\"><div class=\"wpb_column vc_column_container us_custom_06c08dc1\"><div class=\"vc_column-inner\"><div class=\"wpb_text_column us_custom_93995a29\"><div class=\"wpb_wrapper\"><h2 style=\"text-align: left;\">Services<\/h2>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_custom\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_grid cols_1 laptops-cols_inherit tablets-cols_inherit mobiles-cols_1 valign_top type_default stacking_default\"><div class=\"wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"w-html\"><nav aria-label=\"breadcrumbs\" class=\"rank-math-breadcrumb\"><p><span class=\"last\">Home<\/span><\/p><\/nav><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_custom\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_grid cols_1-3 laptops-cols_inherit tablets-cols_inherit mobiles-cols_1 valign_top type_default stacking_default\"><div class=\"wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_widgetised_column wpb_content_element\"><div class=\"wpb_wrapper\"><div id=\"nav_menu-3\" class=\"widget widget_nav_menu\"><div class=\"menu-servicios-english-container\"><ul id=\"menu-servicios-english\" class=\"menu\"><li id=\"menu-item-3075\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-3075\"><a href=\"https:\/\/pkfcabrera.com\/en\/services\/audit-and-assurance\/\">Audit and Assurance<\/a><\/li>\n<li id=\"menu-item-3076\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-3076\"><a href=\"https:\/\/pkfcabrera.com\/en\/services\/tax\/\">Tax<\/a><\/li>\n<li id=\"menu-item-3077\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-3077\"><a href=\"https:\/\/pkfcabrera.com\/en\/services\/legal\/\">Legal<\/a><\/li>\n<li id=\"menu-item-3078\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-3078\"><a href=\"https:\/\/pkfcabrera.com\/en\/services\/information-technology\/\">Information Technology<\/a><\/li>\n<li id=\"menu-item-3079\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-3079\"><a href=\"https:\/\/pkfcabrera.com\/en\/services\/corporate-training\/\">Corporate Training<\/a><\/li>\n<\/ul><\/div><\/div><\/div><\/div>\n<div class=\"wpcf7 no-js\" id=\"wpcf7-f2859-o1\" lang=\"es-CO\" dir=\"ltr\" data-wpcf7-id=\"2859\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/en\/wp-json\/wp\/v2\/pages\/3010#wpcf7-f2859-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Formulario de contacto\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"2859\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.7\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"es_CO\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f2859-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/>\n<\/fieldset>\n<style scoped>\n\/* 1. Forzar contenedor y espaciados *\/\n.pkf-contenedor-f {\n max-width: 500px !important;\n margin: 0 auto !important;\n font-family: sans-serif !important;\n}\n.pkf-contenedor-f p {\n margin-bottom: 20px !important;\n}\n\n\/* 2. Unificaci\u00f3n absoluta de todos los campos con bordes redondeados *\/\n.pkf-contenedor-f input[type=\"text\"],\n.pkf-contenedor-f input[type=\"email\"],\n.pkf-contenedor-f input[type=\"tel\"],\n.pkf-contenedor-f textarea,\n.pkf-contenedor-f select {\n width: 100% !important;\n padding: 15px !important;\n border: 1px solid #d1d5db !important;\n border-radius: 8px !important; \/* Esquinas redondeadas *\/\n color: #0b3c7e !important; \/* Azul PKF *\/\n font-size: 16px !important;\n background-color: #ffffff !important; \/* Fondo Blanco *\/\n box-sizing: border-box !important;\n box-shadow: none !important;\n height: auto !important;\n}\n\n\/* 3. Ajuste espec\u00edfico para el campo de mensaje *\/\n.pkf-contenedor-f textarea {\n height: 100px !important; \/* Altura compacta a la mitad *\/\n resize: vertical !important;\n}\n\n\/* 4. Estilo estricto e inserci\u00f3n de flecha para el desplegable *\/\n.pkf-contenedor-f select {\n -webkit-appearance: none !important;\n -moz-appearance: none !important;\n appearance: none !important;\n background-image: url(\"data:image\/svg+xml;charset=UTF-8,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='%230b3c7e'%3E%3Cpath d='M7 10l5 5 5-5H7z'\/%3E%3C\/svg%3E\") !important;\n background-repeat: no-repeat !important;\n background-position: right 15px center !important;\n background-size: 20px !important;\n}\n\n\/* 5. Color de los marcadores de posici\u00f3n *\/\n.pkf-contenedor-f ::placeholder,\n.pkf-contenedor-f input::placeholder,\n.pkf-contenedor-f textarea::placeholder {\n color: #0b3c7e !important;\n opacity: 1 !important;\n}\n\n\/* 6. Asegurar visibilidad de la Pol\u00edtica de Privacidad *\/\n.pkf-contenedor-f .privacidad-c {\n margin-bottom: 20px !important;\n display: block !important;\n color: #0b3c7e !important;\n font-size: 15px !important;\n}\n.pkf-contenedor-f .privacidad-c span.wpcf7-list-item-label {\n color: #0b3c7e !important;\n font-size: 15px !important;\n}\n.pkf-contenedor-f .privacidad-c input[type=\"checkbox\"] {\n margin-right: 10px !important;\n transform: scale(1.2) !important;\n display: inline-block !important;\n}\n.pkf-contenedor-f .privacidad-c a {\n color: #0044ff !important;\n text-decoration: none !important;\n font-weight: normal !important;\n}\n.pkf-contenedor-f .privacidad-c a:hover {\n text-decoration: underline !important;\n}\n\n\/* 7. Bot\u00f3n Enviar S\u00f3lido Redondeado *\/\n.pkf-contenedor-f input[type=\"submit\"] {\n width: 100% !important;\n background-color: #123c80 !important; \/* Azul Oscuro *\/\n color: #ffffff !important;\n padding: 15px !important;\n border: none !important;\n border-radius: 8px !important;\n font-size: 16px !important;\n font-weight: bold !important;\n opacity: 1 !important;\n cursor: pointer !important;\n box-shadow: none !important;\n -webkit-appearance: none !important;\n transition: background-color 0.3s ease !important;\n}\n.pkf-contenedor-f input[type=\"submit\"]:hover {\n background-color: #0b2959 !important;\n}\n\n\/* 8. CORRECCI\u00d3N DEL MENSAJE DE \u00c9XITO OCULTO *\/\n.wpcf7-response-output {\n color: #155724 !important; \/* Texto verde oscuro legible *\/\n background-color: #d4edda !important; \/* Fondo verde suave *\/\n border: 1px solid #c3e6cb !important; \/* Borde verde *\/\n border-radius: 8px !important; \/* Esquinas redondeadas a juego *\/\n padding: 12px 20px !important;\n margin-top: 20px !important;\n font-size: 15px !important;\n text-align: center !important;\n font-weight: 500 !important;\n}\n<\/style>\n<div class=\"pkf-contenedor-f\">\n\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"tu-nombre\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Nombre *\" value=\"\" type=\"text\" name=\"tu-nombre\" \/><\/span>\n\t<\/p>\n\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"tu-empresa\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" placeholder=\"Empresa\" value=\"\" type=\"text\" name=\"tu-empresa\" \/><\/span>\n\t<\/p>\n\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"tu-cargo\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" placeholder=\"Cargo\" value=\"\" type=\"text\" name=\"tu-cargo\" \/><\/span>\n\t<\/p>\n\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"tu-email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"e-mail *\" value=\"\" type=\"email\" name=\"tu-email\" \/><\/span>\n\t<\/p>\n\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"tu-telefono\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-tel wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-tel\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Tel\u00e9fono *\" value=\"\" type=\"tel\" name=\"tu-telefono\" \/><\/span>\n\t<\/p>\n\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"tu-mensaje\"><textarea cols=\"40\" rows=\"10\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea\" aria-invalid=\"false\" placeholder=\"Escribe tu mensaje aqu\u00ed...\" name=\"tu-mensaje\"><\/textarea><\/span>\n\t<\/p>\n\t<div class=\"privacidad-c\">\n\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"acepto-politica\"><span class=\"wpcf7-form-control wpcf7-acceptance\"><span class=\"wpcf7-list-item\"><label><input type=\"checkbox\" name=\"acepto-politica\" value=\"1\" aria-invalid=\"false\" \/><span class=\"wpcf7-list-item-label\">He le\u00eddo y acepto la <a href=\"https:\/\/pkfcabrera.com\/politica-privacidad\/\" target=\"_blank\">Pol\u00edtica de Privacidad<\/a>.<\/span><\/label><\/span><\/span><\/span>\n\t\t<\/p>\n\t<\/div>\n\t<p><input class=\"wpcf7-form-control wpcf7-submit has-spinner\" type=\"submit\" value=\"Enviar\" \/>\n\t<\/p>\n<\/div><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n<\/div><\/div><div class=\"wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_text_column\"><div class=\"wpb_wrapper\"><p>We offer comprehensive tax advisory services to help your company comply with, defend, and plan its tax position before the DIAN (Colombia&#8217;s tax authority) and other authorities \u2014 from strategic planning to the handling of ongoing proceedings.<\/p>\n<p>&nbsp;<\/p>\n<p>Below is our range of solutions:<\/p>\n<p>&nbsp;<\/p>\n<table style=\"border-collapse: collapse; width: 100%; height: 216px;\">\n<tbody>\n<tr style=\"height: 48px;\">\n<td style=\"width: 50%; height: 48px;\">\n<ul>\n<li>Strategic tax planning advisory.<\/li>\n<\/ul>\n<\/td>\n<td style=\"width: 50%; height: 48px;\">\n<ul>\n<li>Transfer pricing.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr style=\"height: 72px;\">\n<td style=\"width: 50%; height: 72px;\">\n<ul>\n<li>Ongoing tax advisory.<\/li>\n<\/ul>\n<\/td>\n<td style=\"width: 50%; height: 72px;\">\n<ul>\n<li>Preparation of tax returns for individuals and companies.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr style=\"height: 48px;\">\n<td style=\"width: 50%; height: 48px;\">\n<ul>\n<li>Tax outsourcing.<\/li>\n<\/ul>\n<\/td>\n<td style=\"width: 50%; height: 48px;\">\n<ul>\n<li>Preventive tax diagnostics.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr style=\"height: 48px;\">\n<td style=\"width: 50%; height: 48px;\">\n<ul>\n<li>Tax refund and credit balance management (saldo a favor).<\/li>\n<\/ul>\n<\/td>\n<td style=\"width: 50%; height: 48px;\">\n<ul>\n<li>In-house corporate tax training.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div><\/div><div class=\"w-separator size_medium\"><\/div><div class=\"w-html us_custom_4af741be\"><!DOCTYPE html>\n<html lang=\"es\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>XE Divisas - Conversor Universal<\/title>\n    \n    <!-- Tailwind CSS -->\n    <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n    \n    <!-- Chart.js para los gr\u00e1ficos -->\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js\"><\/script>\n    \n    <!-- FontAwesome para iconos -->\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\">\n\n    <style>\n        \/* Estilos personalizados para emular XE *\/\n        body {\n            font-family: 'Inter', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n            background-color: #f8f9fa;\n        }\n        \n        .xe-blue-bg {\n            background-color: #ffffff; \/* Fondo blanco plano *\/\n        }\n\n        .xe-blue-text {\n            color: #0a146e;\n        }\n\n        .xe-light-blue {\n            background-color: #315cfd; \/* Azul brillante para botones *\/\n        }\n\n        .xe-light-blue:hover {\n            background-color: #2749c9;\n        }\n\n        .converter-card {\n            box-shadow: 0 12px 24px rgba(0,0,0,0.15);\n            margin-top: -80px; \/* Efecto flotante sobre el header *\/\n        }\n\n        .currency-flag {\n            width: 24px;\n            height: 16px;\n            object-fit: cover;\n            border-radius: 2px;\n            box-shadow: 0 0 2px rgba(0,0,0,0.2);\n        }\n\n        \/* Animaci\u00f3n suave para inputs *\/\n        input:focus, select:focus {\n            outline: none;\n            box-shadow: 0 0 0 2px rgba(49, 92, 253, 0.4);\n            border-color: #315cfd;\n        }\n        \n        .tab-active {\n            border-bottom: 2px solid #315cfd;\n            color: #315cfd;\n            font-weight: 600;\n        }\n\n        \/* NUEVO: Reglas para ocultar las flechas de cantidad en todos los navegadores *\/\n        \/* Chrome, Safari, Edge, Opera *\/\n        input[type=number]::-webkit-outer-spin-button,\n        input[type=number]::-webkit-inner-spin-button {\n            -webkit-appearance: none;\n            margin: 0;\n        }\n        \/* Firefox *\/\n        input[type=number] {\n            -moz-appearance: textfield;\n        }\n    <\/style>\n<\/head>\n<body class=\"flex flex-col min-h-screen\">\n\n    <!-- Header Grande Blanco con T\u00edtulo en Grises -->\n    <div class=\"xe-blue-bg pt-10 pb-28 px-4 text-center\">\n        <!-- T\u00edtulo cambiado a text-gray-500 para un gris medio\/suave -->\n        <h1 class=\"text-3xl md:text-4xl font-bold mb-4 text-gray-500\">Conversor de Monedas Confiable<\/h1>\n        <p class=\"text-gray-400 max-w-2xl mx-auto text-lg\">Consulta los tipos de cambio actuales y las tendencias hist\u00f3ricas de las principales divisas del mundo.<\/p>\n    <\/div>\n\n    <!-- Contenido Principal -->\n    <!-- CAMBIO: px-0 en m\u00f3vil para que ocupe todo el ancho -->\n    <main class=\"flex-grow px-0 md:px-4 pb-12\">\n        <div class=\"max-w-4xl mx-auto\">\n            \n            <!-- Tarjeta del Conversor -->\n            <!-- CAMBIO: rounded-none en m\u00f3vil, p-4 en m\u00f3vil para ganar espacio -->\n            <div class=\"bg-white rounded-none md:rounded-xl converter-card p-4 md:p-8\">\n                \n                <!-- Pesta\u00f1as eliminadas seg\u00fan solicitud -->\n\n                <!-- Inputs Grid -->\n                <div class=\"grid grid-cols-1 md:grid-cols-[1fr_auto_1fr_auto] gap-4 items-end mb-6\">\n                    \n                    <!-- Input Cantidad -->\n                    <div class=\"w-full\">\n                        <label class=\"block text-sm font-semibold text-gray-600 mb-1\">Cantidad<\/label>\n                        <div class=\"relative\">\n                            <!-- S\u00edmbolo fijo a la izquierda -->\n                            <span class=\"absolute left-4 top-1\/2 -translate-y-1\/2 text-gray-500 font-bold text-lg pointer-events-none\" id=\"symbol-prefix\">$<\/span>\n                            <!-- CAMBIO: 'text-right' a\u00f1adido para justificar el n\u00famero a la derecha -->\n                            <input type=\"number\" id=\"amount\" value=\"1\" min=\"0\" step=\"any\" inputmode=\"decimal\"\n                                class=\"w-full pl-14 pr-4 py-3 border border-gray-300 rounded-lg font-bold text-lg text-gray-800 text-right transition focus:ring-2 focus:ring-blue-500 focus:border-blue-500\">\n                        <\/div>\n                    <\/div>\n\n                    <!-- Select DE -->\n                    <div class=\"w-full md:w-64\">\n                        <label class=\"block text-sm font-semibold text-gray-600 mb-1\">De<\/label>\n                        <div class=\"relative\">\n                            <img decoding=\"async\" id=\"flag-from\" src=\"\" class=\"absolute left-3 top-1\/2 -translate-y-1\/2 currency-flag\" alt=\"flag\">\n                            <select id=\"currency-from\" class=\"w-full pl-10 pr-8 py-3 border border-gray-300 rounded-lg font-bold text-gray-800 bg-white appearance-none cursor-pointer transition\">\n                                <!-- Opciones generadas por JS -->\n                            <\/select>\n                            <i class=\"fas fa-chevron-down absolute right-3 top-1\/2 -translate-y-1\/2 text-gray-400 pointer-events-none\"><\/i>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Bot\u00f3n Swap -->\n                    <div class=\"flex justify-center md:pb-2\">\n                        <button id=\"swap-btn\" class=\"w-10 h-10 rounded-full border border-gray-300 flex items-center justify-center text-blue-600 hover:bg-blue-50 hover:border-blue-300 transition group\">\n                            <i class=\"fas fa-retweet group-hover:rotate-180 transition duration-300\"><\/i>\n                        <\/button>\n                    <\/div>\n\n                    <!-- Select A -->\n                    <div class=\"w-full md:w-64\">\n                        <label class=\"block text-sm font-semibold text-gray-600 mb-1\">A<\/label>\n                        <div class=\"relative\">\n                            <img decoding=\"async\" id=\"flag-to\" src=\"\" class=\"absolute left-3 top-1\/2 -translate-y-1\/2 currency-flag\" alt=\"flag\">\n                            <select id=\"currency-to\" class=\"w-full pl-10 pr-8 py-3 border border-gray-300 rounded-lg font-bold text-gray-800 bg-white appearance-none cursor-pointer transition\">\n                                <!-- Opciones generadas por JS -->\n                            <\/select>\n                            <i class=\"fas fa-chevron-down absolute right-3 top-1\/2 -translate-y-1\/2 text-gray-400 pointer-events-none\"><\/i>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- Bot\u00f3n Acci\u00f3n y Resultado -->\n                <div class=\"flex flex-col md:flex-row justify-between items-start md:items-center gap-4\">\n                    <div class=\"text-sm text-gray-500\">\n                        <p class=\"mb-1\"><i class=\"fas fa-info-circle text-blue-500\"><\/i> Usamos la tasa del mercado medio.<\/p>\n                    <\/div>\n                    \n                    <button id=\"convert-btn\" class=\"w-full md:w-auto xe-light-blue text-white font-bold py-3 px-8 rounded-lg shadow-lg transition transform active:scale-95 text-lg\">\n                        Convertir\n                    <\/button>\n                <\/div>\n\n                <!-- Secci\u00f3n de Resultados -->\n                <div class=\"mt-8 pt-6 border-t border-gray-100\">\n                    <div id=\"result-container\" class=\"transition-opacity duration-300\">\n                        <p class=\"text-gray-500 font-medium mb-1\"><span id=\"res-amount\">1<\/span> <span id=\"res-from-name\">D\u00f3lar estadounidense<\/span> =<\/p>\n                        <p class=\"text-3xl md:text-4xl font-bold xe-blue-text mb-2\">\n                            <span id=\"res-value\">3.734,04<\/span> <span id=\"res-to-code\">COP<\/span>\n                        <\/p>\n                        <p class=\"text-gray-500 text-sm mb-4\">\n                            1 <span id=\"rate-from-code\">USD<\/span> = <span id=\"rate-single\">3.734,04<\/span> <span id=\"rate-to-code\">COP<\/span>\n                        <\/p>\n                        <div class=\"bg-blue-50 border border-blue-100 p-3 rounded text-sm text-blue-800 flex items-start gap-2\">\n                            <i class=\"fas fa-check-circle mt-1\"><\/i>\n                            <p>Esta tasa es solo para fines informativos. Si env\u00edas dinero, la tasa real puede variar.<\/p>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n            <\/div>\n\n            <!-- Secci\u00f3n de Gr\u00e1fico -->\n            <div class=\"mt-8 bg-white rounded-xl shadow-sm border border-gray-200 p-6\">\n                <h3 class=\"text-xl font-bold xe-blue-text mb-4\">Historial de <span id=\"chart-title\">USD a COP<\/span> (\u00daltimos 30 d\u00edas)<\/h3>\n                <div class=\"relative h-64 w-full\">\n                    <canvas id=\"rateChart\"><\/canvas>\n                <\/div>\n            <\/div>\n\n            <!-- Tabla de Conversi\u00f3n R\u00e1pida -->\n            <div class=\"mt-8 grid grid-cols-1 md:grid-cols-2 gap-6\">\n                <div class=\"bg-white rounded-xl shadow-sm border border-gray-200 p-6\">\n                    <h3 class=\"font-bold xe-blue-text mb-4 border-b pb-2\">Convertir <span class=\"table-base-code\">USD<\/span> a <span class=\"table-target-code\">COP<\/span><\/h3>\n                    <ul class=\"space-y-2 text-sm\" id=\"table-left\">\n                        <!-- Generado por JS -->\n                    <\/ul>\n                <\/div>\n                <div class=\"bg-white rounded-xl shadow-sm border border-gray-200 p-6\">\n                    <h3 class=\"font-bold xe-blue-text mb-4 border-b pb-2\">Convertir <span class=\"table-target-code\">COP<\/span> a <span class=\"table-base-code\">USD<\/span><\/h3>\n                    <ul class=\"space-y-2 text-sm\" id=\"table-right\">\n                        <!-- Generado por JS -->\n                    <\/ul>\n                <\/div>\n            <\/div>\n\n        <\/div>\n    <\/main>\n\n    <!-- L\u00f3gica de la Aplicaci\u00f3n -->\n    <script>\n        document.addEventListener('DOMContentLoaded', () => {\n            \n            \/\/ --- 1. Datos y Configuraci\u00f3n ---\n            \n            \/\/ Lista de monedas soportadas con metadatos\n            const currencies = [\n                { code: 'USD', name: 'D\u00f3lar estadounidense', flag: 'us', symbol: '$' },\n                { code: 'EUR', name: 'Euro', flag: 'eu', symbol: '\u20ac' },\n                { code: 'GBP', name: 'Libra esterlina', flag: 'gb', symbol: '\u00a3' },\n                { code: 'JPY', name: 'Yen japon\u00e9s', flag: 'jp', symbol: '\u00a5' },\n                { code: 'CAD', name: 'D\u00f3lar canadiense', flag: 'ca', symbol: 'C$' },\n                { code: 'AUD', name: 'D\u00f3lar australiano', flag: 'au', symbol: 'A$' },\n                { code: 'CHF', name: 'Franco suizo', flag: 'ch', symbol: 'Fr' },\n                { code: 'CNY', name: 'Yuan chino', flag: 'cn', symbol: '\u00a5' },\n                { code: 'MXN', name: 'Peso mexicano', flag: 'mx', symbol: '$' },\n                { code: 'COP', name: 'Peso colombiano', flag: 'co', symbol: '$' },\n                { code: 'ARS', name: 'Peso argentino', flag: 'ar', symbol: '$' },\n                { code: 'CLP', name: 'Peso chileno', flag: 'cl', symbol: '$' },\n                { code: 'PEN', name: 'Sol peruano', flag: 'pe', symbol: 'S\/' },\n                { code: 'BRL', name: 'Real brasile\u00f1o', flag: 'br', symbol: 'R$' },\n            ];\n\n            \/\/ Tasas base simuladas (Relativas a 1 USD)\n            \/\/ Actualizadas para reflejar el mercado real actual (Nov 2025)\n            const baseRates = {\n                'USD': 1,\n                'EUR': 0.95,  \/\/ Euro fuerte\n                'GBP': 0.79,\n                'JPY': 151.5,\n                'CAD': 1.40,\n                'AUD': 1.54,\n                'CHF': 0.89,\n                'CNY': 7.24,\n                'MXN': 20.35, \/\/ Peso mexicano actual\n                'COP': 3734.04, \/\/ Tasa actualizada seg\u00fan preferencia del usuario\n                'ARS': 1050.00, \/\/ Ajustado a inflaci\u00f3n reciente\n                'CLP': 975.00,\n                'PEN': 3.75,\n                'BRL': 5.80\n            };\n\n            \/\/ Elementos del DOM\n            const amountInput = document.getElementById('amount');\n            const fromSelect = document.getElementById('currency-from');\n            const toSelect = document.getElementById('currency-to');\n            const swapBtn = document.getElementById('swap-btn');\n            const convertBtn = document.getElementById('convert-btn');\n            const flagFrom = document.getElementById('flag-from');\n            const flagTo = document.getElementById('flag-to');\n            const symbolPrefix = document.getElementById('symbol-prefix');\n            \n            \/\/ Elementos de Resultado\n            const resAmount = document.getElementById('res-amount');\n            const resFromName = document.getElementById('res-from-name');\n            const resValue = document.getElementById('res-value');\n            const resToCode = document.getElementById('res-to-code');\n            const rateFromCode = document.getElementById('rate-from-code');\n            const rateSingle = document.getElementById('rate-single');\n            const rateToCode = document.getElementById('rate-to-code');\n\n            \/\/ --- 2. Inicializaci\u00f3n ---\n\n            \/\/ Poblar Selects\n            function populateSelects() {\n                const optionsHTML = currencies.map(c => \n                    `<option value=\"${c.code}\">${c.code} - ${c.name}<\/option>`\n                ).join('');\n                \n                fromSelect.innerHTML = optionsHTML;\n                toSelect.innerHTML = optionsHTML;\n\n                \/\/ Valores por defecto\n                fromSelect.value = 'USD';\n                toSelect.value = 'COP';\n                \n                updateUIFlags();\n            }\n\n            \/\/ --- 3. Funciones L\u00f3gicas ---\n\n            \/\/ Funci\u00f3n para obtener tasas reales de la API\n            async function fetchLiveRates() {\n                try {\n                    const infoContainer = document.querySelector('.fa-info-circle, .fa-check-circle, .fa-sync, .fa-exclamation-triangle').parentElement.parentElement;\n                    \/\/ Indicador visual discreto de carga\n                    infoContainer.style.opacity = '0.7';\n\n                    \/\/ Usamos una API alternativa que suele ser m\u00e1s precisa para LATAM\n                    const response = await fetch('https:\/\/api.exchangerate-api.com\/v4\/latest\/USD');\n                    \n                    if (!response.ok) throw new Error('Error en la red');\n                    \n                    const data = await response.json();\n\n                    if (data && data.rates) {\n                        \/\/ Actualizar nuestro objeto baseRates con los datos reales\n                        currencies.forEach(currency => {\n                            if (data.rates[currency.code]) {\n                                baseRates[currency.code] = data.rates[currency.code];\n                            }\n                        });\n\n                        \/\/ Recalcular todo con los nuevos datos\n                        calculateAndDisplay();\n\n                        \/\/ Mostrar confirmaci\u00f3n de actualizaci\u00f3n con la hora\n                        const date = new Date();\n                        infoContainer.innerHTML = `<p class=\"mb-1\"><i class=\"fas fa-check-circle text-green-500\"><\/i> Tasas de mercado actualizadas en tiempo real (${date.toLocaleTimeString()}).<\/p>`;\n                        infoContainer.style.opacity = '1';\n                    }\n                } catch (error) {\n                    console.error(\"Error al obtener tasas:\", error);\n                    \/\/ Si falla, mantenemos los valores por defecto (que ahora son los correctos de 3734)\n                    const infoContainer = document.querySelector('.fa-info-circle, .fa-check-circle, .fa-sync').parentElement.parentElement;\n                    infoContainer.innerHTML = '<p class=\"mb-1\"><i class=\"fas fa-info-circle text-blue-500\"><\/i> Usando tasa de referencia de cierre reciente.<\/p>';\n                    infoContainer.style.opacity = '1';\n                }\n            }\n\n            function getRate(from, to) {\n                const rateFrom = baseRates[from];\n                const rateTo = baseRates[to];\n                return rateTo \/ rateFrom;\n            }\n\n            function updateUIFlags() {\n                const fromData = currencies.find(c => c.code === fromSelect.value);\n                const toData = currencies.find(c => c.code === toSelect.value);\n                \n                \/\/ Actualizar banderas usando flagcdn\n                flagFrom.src = `https:\/\/flagcdn.com\/w40\/${fromData.flag}.png`;\n                flagTo.src = `https:\/\/flagcdn.com\/w40\/${toData.flag}.png`;\n                \n                \/\/ Actualizar s\u00edmbolo en input\n                symbolPrefix.innerText = fromData.symbol;\n            }\n\n            function formatCurrency(val) {\n                \/\/ Formato local simple\n                return val.toLocaleString('es-ES', { maximumFractionDigits: 4 });\n            }\n\n            function calculateAndDisplay() {\n                const amount = parseFloat(amountInput.value) || 0;\n                const fromCode = fromSelect.value;\n                const toCode = toSelect.value;\n                const fromData = currencies.find(c => c.code === fromCode);\n\n                const rate = getRate(fromCode, toCode);\n                const total = amount * rate;\n\n                \/\/ Actualizar DOM principal\n                resAmount.innerText = amount.toLocaleString('es-ES'); \/\/ Formato n\u00famero\n                resFromName.innerText = fromData.name;\n                \n                \/\/ Animaci\u00f3n simple de actualizaci\u00f3n de texto\n                resValue.style.opacity = '0.5';\n                setTimeout(() => {\n                    resValue.innerText = formatCurrency(total);\n                    resValue.style.opacity = '1';\n                }, 150);\n\n                resToCode.innerText = toCode;\n\n                \/\/ Tasa unitaria peque\u00f1a\n                rateFromCode.innerText = fromCode;\n                rateSingle.innerText = formatCurrency(rate);\n                rateToCode.innerText = toCode;\n\n                updateChart(fromCode, toCode);\n                updateTables(fromCode, toCode, rate);\n            }\n\n            \/\/ --- 4. Gr\u00e1ficos (Chart.js) ---\n            let myChart = null;\n\n            function updateChart(from, to) {\n                const ctx = document.getElementById('rateChart').getContext('2d');\n                document.getElementById('chart-title').innerText = `${from} a ${to}`;\n\n                \/\/ Generar datos hist\u00f3ricos falsos pero realistas\n                const days = 30;\n                const labels = [];\n                const data = [];\n                const currentRate = getRate(from, to);\n                \n                \/\/ Simular fluctuaci\u00f3n del mercado\n                let tempRate = currentRate;\n                for (let i = days; i > 0; i--) {\n                    const date = new Date();\n                    date.setDate(date.getDate() - i);\n                    labels.push(date.toLocaleDateString('es-ES', { day: 'numeric', month: 'short' }));\n                    \n                    \/\/ Variaci\u00f3n aleatoria peque\u00f1a (\u00b10.5%)\n                    const change = (Math.random() - 0.5) * 0.01; \n                    tempRate = tempRate * (1 + change);\n                    data.push(tempRate);\n                }\n                \/\/ Asegurar que el \u00faltimo punto sea la tasa actual\n                data[data.length - 1] = currentRate;\n\n                \/\/ Destruir gr\u00e1fico anterior si existe\n                if (myChart) {\n                    myChart.destroy();\n                }\n\n                \/\/ Crear gradiente\n                const gradient = ctx.createLinearGradient(0, 0, 0, 300);\n                gradient.addColorStop(0, 'rgba(49, 92, 253, 0.2)');\n                gradient.addColorStop(1, 'rgba(49, 92, 253, 0.0)');\n\n                myChart = new Chart(ctx, {\n                    type: 'line',\n                    data: {\n                        labels: labels,\n                        datasets: [{\n                            label: `Tasa ${from}\/${to}`,\n                            data: data,\n                            borderColor: '#315cfd',\n                            backgroundColor: gradient,\n                            borderWidth: 2,\n                            pointRadius: 0,\n                            pointHoverRadius: 4,\n                            fill: true,\n                            tension: 0.1\n                        }]\n                    },\n                    options: {\n                        responsive: true,\n                        maintainAspectRatio: false,\n                        interaction: {\n                            intersect: false,\n                            mode: 'index',\n                        },\n                        plugins: {\n                            legend: { display: false },\n                            tooltip: {\n                                callbacks: {\n                                    label: function(context) {\n                                        return context.parsed.y.toFixed(4) + ' ' + to;\n                                    }\n                                }\n                            }\n                        },\n                        scales: {\n                            y: {\n                                grid: { color: '#f0f0f0' },\n                                ticks: {\n                                    callback: function(value) { return value.toFixed(3); }\n                                }\n                            },\n                            x: {\n                                grid: { display: false },\n                                ticks: { maxTicksLimit: 6 }\n                            }\n                        }\n                    }\n                });\n            }\n\n            \/\/ --- 5. Tablas de Conversi\u00f3n R\u00e1pida ---\n            function updateTables(from, to, rate) {\n                \/\/ Actualizar t\u00edtulos\n                document.querySelectorAll('.table-base-code').forEach(el => el.innerText = from);\n                document.querySelectorAll('.table-target-code').forEach(el => el.innerText = to);\n\n                const amounts = [1, 5, 10, 25, 50, 100, 500, 1000];\n                const inverseRate = 1 \/ rate;\n\n                \/\/ Tabla Izquierda (From -> To)\n                const leftHTML = amounts.map(amt => `\n                    <li class=\"flex justify-between border-b border-gray-100 last:border-0 py-1\">\n                        <span class=\"font-bold text-blue-900\">${amt} ${from}<\/span>\n                        <span class=\"text-gray-600\">${formatCurrency(amt * rate)} ${to}<\/span>\n                    <\/li>\n                `).join('');\n                document.getElementById('table-left').innerHTML = leftHTML;\n\n                \/\/ Tabla Derecha (To -> From)\n                const rightHTML = amounts.map(amt => `\n                    <li class=\"flex justify-between border-b border-gray-100 last:border-0 py-1\">\n                        <span class=\"font-bold text-blue-900\">${amt} ${to}<\/span>\n                        <span class=\"text-gray-600\">${formatCurrency(amt * inverseRate)} ${from}<\/span>\n                    <\/li>\n                `).join('');\n                document.getElementById('table-right').innerHTML = rightHTML;\n            }\n\n            \/\/ --- 6. Event Listeners ---\n\n            \/\/ Cambio en selectores\n            fromSelect.addEventListener('change', () => {\n                updateUIFlags();\n                calculateAndDisplay();\n            });\n            toSelect.addEventListener('change', () => {\n                updateUIFlags();\n                calculateAndDisplay();\n            });\n\n            \/\/ Bot\u00f3n Swap\n            swapBtn.addEventListener('click', () => {\n                const temp = fromSelect.value;\n                fromSelect.value = toSelect.value;\n                toSelect.value = temp;\n                updateUIFlags();\n                calculateAndDisplay();\n                \n                \/\/ Rotaci\u00f3n visual del icono\n                const icon = swapBtn.querySelector('i');\n                icon.style.transform = 'rotate(180deg)';\n                setTimeout(() => icon.style.transform = 'rotate(0deg)', 300);\n            });\n\n            \/\/ Bot\u00f3n Convertir\n            convertBtn.addEventListener('click', calculateAndDisplay);\n\n            \/\/ Input Cantidad (Actualizar al presionar Enter o perder foco)\n            amountInput.addEventListener('input', calculateAndDisplay);\n\n            \/\/ CAMBIO: Ahora borra el contenido al tocar, en vez de seleccionarlo\n            amountInput.addEventListener('focus', function() {\n                this.value = '';\n            });\n\n            \/\/ Opcional: Si el usuario sale sin escribir nada, volver a poner 1 para que no quede feo\n            amountInput.addEventListener('blur', function() {\n                if (this.value === '' || this.value === '0') {\n                    this.value = '1';\n                    calculateAndDisplay();\n                }\n            });\n\n            \/\/ Inicio\n            populateSelects();\n            calculateAndDisplay();\n            \n            \/\/ Llamar a la API para actualizar las divisas\n            fetchLiveRates();\n        });\n    <\/script>\n<\/body>\n<\/html><\/div><\/div><\/div><\/div><\/div><\/section>\n","protected":false},"excerpt":{"rendered":"Services HomeAudit and Assurance Tax Legal Information Technology Corporate Training He le\u00eddo y acepto la Pol\u00edtica de Privacidad. We offer comprehensive tax advisory services to help your company comply with, defend, and plan its tax position before the DIAN (Colombia&#8217;s tax authority) and other authorities \u2014 from strategic planning to the handling of ongoing proceedings....","protected":false},"author":1,"featured_media":0,"parent":3002,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"googlesitekit_rrm_CAow3_3dCw:productID":"","rs_blank_template":"","rs_page_bg_color":"","slide_template_v7":"","footnotes":""},"class_list":["post-3010","page","type-page","status-publish","hentry"],"acf":[],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/pkfcabrera.com\/en\/wp-json\/wp\/v2\/pages\/3010","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pkfcabrera.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/pkfcabrera.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/pkfcabrera.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pkfcabrera.com\/en\/wp-json\/wp\/v2\/comments?post=3010"}],"version-history":[{"count":11,"href":"https:\/\/pkfcabrera.com\/en\/wp-json\/wp\/v2\/pages\/3010\/revisions"}],"predecessor-version":[{"id":3021,"href":"https:\/\/pkfcabrera.com\/en\/wp-json\/wp\/v2\/pages\/3010\/revisions\/3021"}],"up":[{"embeddable":true,"href":"https:\/\/pkfcabrera.com\/en\/wp-json\/wp\/v2\/pages\/3002"}],"wp:attachment":[{"href":"https:\/\/pkfcabrera.com\/en\/wp-json\/wp\/v2\/media?parent=3010"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}