{"id":1416,"date":"2025-08-28T13:21:46","date_gmt":"2025-08-28T16:21:46","guid":{"rendered":"https:\/\/carnevalefotografia.com\/?page_id=1416"},"modified":"2025-09-21T19:05:53","modified_gmt":"2025-09-21T22:05:53","slug":"tarifas","status":"publish","type":"page","link":"https:\/\/carnevalefotografia.com\/index.php\/tarifas\/","title":{"rendered":"TARIFAS"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<!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>Calculadora de Precios de Fotograf\u00eda Inmobiliaria<\/title>\n    <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n    <style>\n        @import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700;800&display=swap');\n        body {\n            font-family: 'Inter', sans-serif;\n            -webkit-font-smoothing: antialiased;\n            -moz-osx-font-smoothing: grayscale;\n            background-color: #1a202c !important;\n            min-height: 100vh;\n        }\n\n        .h1-responsive {\n            font-size: 1.5rem;\n            color: #2c529a !important;\n        }\n        .h2-responsive {\n            font-size: 1.25rem;\n            color: #3182ce !important;\n        }\n        .p-responsive {\n            font-size: 0.875rem;\n        }\n        .small-text-responsive {\n            font-size: 0.75rem;\n        }\n\n        @media (min-width: 640px) {\n            .h1-responsive {\n                font-size: 2.25rem;\n            }\n            .h2-responsive {\n                font-size: 1.5rem;\n            }\n            .p-responsive {\n                font-size: 1rem;\n            }\n            .small-text-responsive {\n                font-size: 0.875rem;\n            }\n        }\n\n        .force-text-color {\n            color: #4a5568 !important; \/* Tailwind gray-700 *\/\n        }\n        .details-content-text {\n            color: #2d3748 !important; \/* Tailwind gray-800 *\/\n        }\n        .details-list-marker {\n            color: #1a202c !important; \/* Tailwind gray-900 *\/\n        }\n        .location-consult-text {\n            color: #718096 !important; \/* Tailwind gray-500 *\/\n        }\n        .tab-active {\n            background-color: #2c529a !important;\n            color: white !important;\n        }\n        .tab-inactive {\n            color: #4a5568 !important; \/* Tailwind gray-700 *\/\n        }\n        \n        \/* New styles for desktop layout *\/\n        @media (min-width: 1024px) {\n            .main-content-wrapper {\n                max-width: 90rem; \/* Adjusted for wider layout *\/\n                flex-direction: row;\n                justify-content: center;\n                align-items: flex-start;\n                gap: 2rem;\n            }\n            .tab-buttons-container {\n                flex-direction: column;\n                justify-content: flex-start;\n                align-items: flex-start;\n                gap: 0.5rem;\n                flex-shrink: 0;\n            }\n            .tab-buttons-container button {\n                width: 100%;\n                text-align: left;\n                padding-left: 1.5rem;\n                padding-right: 1.5rem;\n            }\n        }\n    <\/style>\n<\/head>\n<body class=\"bg-gray-900 min-h-screen p-4 sm:p-8 flex items-center justify-center\">\n\n    <div class=\"main-content-wrapper flex flex-col items-center gap-8 w-full max-w-2xl lg:max-w-7xl\">\n\n        <!-- Tab Buttons -->\n        <div class=\"tab-buttons-container w-full flex justify-center mb-8 gap-2 lg:w-auto lg:mb-0\">\n            <button id=\"pricingTab\" class=\"tab-active py-3 px-6 rounded-xl text-lg font-bold transition-colors duration-200\">\n                Tarifario\n            <\/button>\n            <button id=\"calculatorTab\" class=\"py-3 px-6 rounded-xl text-lg font-bold transition-colors duration-200 bg-gray-200 tab-inactive\">\n                Calculadora\n            <\/button>\n        <\/div>\n\n        <!-- Tab Content -->\n        <div id=\"tab-content-container\" class=\"w-full lg:w-3\/4\">\n            <!-- Secci\u00f3n de Tarifario (Pesta\u00f1a 1) -->\n            <div id=\"pricing-tab-content\" class=\"w-full bg-white shadow-xl rounded-2xl p-6 sm:p-8 md:p-10 transition-all duration-300 transform hover:scale-[1.01]\">\n                <h1 class=\"h1-responsive font-bold mb-4 sm:mb-6 leading-tight\">Tarifario de Servicios de Fotograf\u00eda Inmobiliaria<\/h1>\n                <p class=\"p-responsive force-text-color mb-6 leading-relaxed\">Este tarifario resume nuestros precios base y los ajustes aplicados a los servicios. Valores de referencia para Madrid. Los precios no incluyen IVA.<\/p>\n\n                <div class=\"space-y-8\">\n                    <div>\n                        <div class=\"flex items-center gap-2 mb-4\">\n                            <h2 class=\"h2-responsive font-bold\">Precios Base por Servicio<\/h2>\n                        <\/div>\n                        <p class=\"p-responsive force-text-color mb-4\">Cada servicio tiene una tarifa base de <span class=\"font-bold\">80\u20ac<\/span> para propiedades de hasta 100m\u00b2.<\/p>\n                        <div class=\"overflow-x-auto\">\n                            <table class=\"w-full text-left p-responsive border-collapse\">\n                                <thead class=\"border-b-2 border-gray-200\">\n                                    <tr>\n                                        <th class=\"py-2 pr-4 text-sm font-semibold text-gray-600\">Servicio<\/th>\n                                        <th class=\"py-2 px-4 text-sm font-semibold text-gray-600\">Precio Base<\/th>\n                                    <\/tr>\n                                <\/thead>\n                                <tbody>\n                                    <tr class=\"border-b border-gray-200\">\n                                        <td class=\"py-2 pr-4 text-gray-800\">Fotograf\u00eda<\/td>\n                                        <td class=\"py-2 px-4 text-gray-800\">80\u20ac<\/td>\n                                    <\/tr>\n                                    <tr class=\"border-b border-gray-200\">\n                                        <td class=\"py-2 pr-4 text-gray-800\">Video<\/td>\n                                        <td class=\"py-2 px-4 text-gray-800\">80\u20ac<\/td>\n                                    <\/tr>\n                                    <tr class=\"border-b border-gray-200\">\n                                        <td class=\"py-2 pr-4 text-gray-800\">Recorrido Virtual*<\/td>\n                                        <td class=\"py-2 px-4 text-gray-800\">80\u20ac<\/td>\n                                    <\/tr>\n                                <\/tbody>\n                            <\/table>\n                        <\/div>\n                        <p class=\"p-responsive force-text-color mt-4 text-xs italic\">\n                            *El servicio de Recorrido Virtual incluye 1 mes de hosting base.\n                        <\/p>\n                    <\/div>\n\n                    <div>\n                        <div class=\"flex items-center gap-2 mb-4\">\n                            <h2 class=\"h2-responsive font-bold\">Servicios Combinados<\/h2>\n                        <\/div>\n                        <div class=\"overflow-x-auto\">\n                            <table class=\"w-full text-left p-responsive border-collapse\">\n                                <thead class=\"border-b-2 border-gray-200\">\n                                    <tr>\n                                        <th class=\"py-2 pr-4 text-sm font-semibold text-gray-600\">Paquete<\/th>\n                                        <th class=\"py-2 px-4 text-sm font-semibold text-gray-600\">Precio Base<\/th>\n                                    <\/tr>\n                                <\/thead>\n                                <tbody>\n                                    <tr class=\"border-b border-gray-200\">\n                                        <td class=\"py-2 pr-4 text-gray-800\">Foto + Video (15% de descuento)<\/td>\n                                        <td class=\"py-2 px-4 text-gray-800\">136\u20ac<\/td>\n                                    <\/tr>\n                                    <tr class=\"border-b border-gray-200\">\n                                        <td class=\"py-2 pr-4 text-gray-800\">Pack Completo (25% de descuento)<br>(Foto + Video + Recorrido Virtual)<\/td>\n                                        <td class=\"py-2 px-4 text-gray-800\">180\u20ac<\/td>\n                                    <\/tr>\n                                <\/tbody>\n                            <\/table>\n                        <\/div>\n                    <\/div>\n\n                    <div>\n                        <div class=\"flex items-center gap-2 mb-4\">\n                            <h2 class=\"h2-responsive font-bold\">Ajustes por Metros Cuadrados<\/h2>\n                        <\/div>\n                        <div class=\"overflow-x-auto\">\n                            <table class=\"w-full text-left p-responsive border-collapse\">\n                                <thead class=\"border-b-2 border-gray-200\">\n                                    <tr>\n                                        <th class=\"py-2 pr-4 text-sm font-semibold text-gray-600\">Metros Cuadrados (m\u00b2)<\/th>\n                                        <th class=\"py-2 px-4 text-sm font-semibold text-gray-600\">Recargo por Servicio<\/th>\n                                    <\/tr>\n                                <\/thead>\n                                <tbody>\n                                    <tr class=\"border-b border-gray-200\">\n                                        <td class=\"py-2 pr-4 text-gray-800\">Hasta 100m\u00b2<\/td>\n                                        <td class=\"py-2 px-4 text-gray-800\">0\u20ac<\/td>\n                                    <\/tr>\n                                    <tr class=\"border-b border-gray-200\">\n                                        <td class=\"py-2 pr-4 text-gray-800\">101 \u2013 150m\u00b2<\/td>\n                                        <td class=\"py-2 px-4 text-gray-800\">+10\u20ac<\/td>\n                                    <\/tr>\n                                    <tr class=\"border-b border-gray-200\">\n                                        <td class=\"py-2 pr-4 text-gray-800\">151 \u2013 200m\u00b2<\/td>\n                                        <td class=\"py-2 px-4 text-gray-800\">+20\u20ac<\/td>\n                                    <\/tr>\n                                    <tr class=\"border-b border-gray-200\">\n                                        <td class=\"py-2 pr-4 text-gray-800\">201 \u2013 250m\u00b2<\/td>\n                                        <td class=\"py-2 px-4 text-gray-800\">+30\u20ac<\/td>\n                                    <\/tr>\n                                    <tr class=\"border-b border-gray-200\">\n                                        <td class=\"py-2 pr-4 text-gray-800\">251 \u2013 300m\u00b2<\/td>\n                                        <td class=\"py-2 px-4 text-gray-800\">+40\u20ac<\/td>\n                                    <\/tr>\n                                    <tr class=\"border-b border-gray-200\">\n                                        <td class=\"py-2 pr-4 text-gray-800\">301 \u2013 400m\u00b2<\/td>\n                                        <td class=\"py-2 px-4 text-gray-800\">+50\u20ac<\/td>\n                                    <\/tr>\n                                    <tr>\n                                        <td class=\"py-2 pr-4 text-gray-800\">M\u00e1s de 400m\u00b2<\/td>\n                                        <td class=\"py-2 px-4 text-gray-800\"><a href=\"https:\/\/wa.me\/34624698207\" class=\"text-blue-500 hover:text-blue-700\">Consulta<\/a><\/td>\n                                    <\/tr>\n                                <\/tbody>\n                            <\/table>\n                        <\/div>\n                    <\/div>\n\n                    <div>\n                        <div class=\"flex items-center gap-2 mb-4\">\n                            <h2 class=\"h2-responsive font-bold\">Servicios Adicionales<\/h2>\n                        <\/div>\n                        <div class=\"overflow-x-auto\">\n                            <table class=\"w-full text-left p-responsive border-collapse\">\n                                <thead class=\"border-b-2 border-gray-200\">\n                                    <tr>\n                                        <th class=\"py-2 pr-4 text-sm font-semibold text-gray-600\">Servicio<\/th>\n                                        <th class=\"py-2 px-4 text-sm font-semibold text-gray-600\">Precio<\/th>\n                                    <\/tr>\n                                <\/thead>\n                                <tbody>\n                                    <tr class=\"border-b border-gray-200\">\n                                        <td class=\"py-2 pr-4 text-gray-800\">Plano de Propiedad (opcional con Recorrido Virtual)<\/td>\n                                        <td class=\"py-2 px-4 text-gray-800\">+20\u20ac<\/td>\n                                    <\/tr>\n                                    <tr class=\"border-b border-gray-200\">\n                                        <td class=\"py-2 pr-4 text-gray-800\">Hosting Adicional de Recorrido Virtual<\/td>\n                                        <td class=\"py-2 px-4 text-gray-800\">+10\u20ac\/mes<\/td>\n                                    <\/tr>\n                                <\/tbody>\n                            <\/table>\n                        <\/div>\n                    <\/div>\n                    \n                    <div>\n                        <div class=\"flex items-center gap-2 mb-4\">\n                            <h2 class=\"h2-responsive font-bold\">Recargos por Ubicaci\u00f3n<\/h2>\n                        <\/div>\n                        <p class=\"p-responsive force-text-color mb-4\">\n                            Se aplican recargos seg\u00fan la distancia a la zona central de Madrid.\n                        <\/p>\n                        <div class=\"overflow-x-auto\">\n                            <table class=\"w-full text-left p-responsive border-collapse\">\n                                <thead class=\"border-b-2 border-gray-200\">\n                                    <tr>\n                                        <th class=\"py-2 pr-4 text-sm font-semibold text-gray-600\">Zona<\/th>\n                                        <th class=\"py-2 px-4 text-sm font-semibold text-gray-600\">Recargo<\/th>\n                                    <\/tr>\n                                <\/thead>\n                                <tbody>\n                                    <tr class=\"border-b border-gray-200\">\n                                        <td class=\"py-2 pr-4 text-gray-800\">Dentro de la M30<\/td>\n                                        <td class=\"py-2 px-4 text-gray-800\">0\u20ac<\/td>\n                                    <\/tr>\n                                    <tr class=\"border-b border-gray-200\">\n                                        <td class=\"py-2 pr-4 text-gray-800\">Dentro de la M40<\/td>\n                                        <td class=\"py-2 px-4 text-gray-800\">+10\u20ac<\/td>\n                                    <\/tr>\n                                    <tr class=\"border-b border-gray-200\">\n                                        <td class=\"py-2 pr-4 text-gray-800\">Dentro de la M50<\/td>\n                                        <td class=\"py-2 px-4 text-gray-800\">+20\u20ac<\/td>\n                                    <\/tr>\n                                    <tr>\n                                        <td class=\"py-2 pr-4 text-gray-800\">Fuera de la M50<\/td>\n                                        <td class=\"py-2 px-4 text-gray-800\"><a href=\"https:\/\/wa.me\/34624698207\" class=\"text-blue-500 hover:text-blue-700\">Consultar<\/a><\/td>\n                                    <\/tr>\n                                <\/tbody>\n                            <\/table>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Secci\u00f3n de Calculadora Principal (Pesta\u00f1a 2) -->\n            <div id=\"calculator-tab-content\" class=\"w-full bg-white shadow-xl rounded-2xl p-6 sm:p-8 md:p-10 transition-all duration-300 transform hover:scale-[1.01] hidden\">\n                <h1 class=\"h1-responsive font-bold mb-4 sm:mb-6 leading-tight\">Calcula tu Presupuesto<\/h1>\n                <p class=\"p-responsive force-text-color mb-8 leading-relaxed\">Selecciona tus servicios y caracter\u00edsticas de la propiedad para obtener una estimaci\u00f3n.<\/p>\n\n                <!-- Secci\u00f3n de Servicios -->\n                <h2 class=\"h2-responsive font-bold mb-4\">1. Selecciona tus Servicios<\/h2>\n                <div class=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-6 mb-8\">\n                    <div class=\"bg-gray-50 p-4 rounded-xl border border-gray-200 flex flex-col justify-between\">\n                        <label class=\"flex items-center space-x-2 cursor-pointer\">\n                            <input type=\"checkbox\" id=\"photoCheckbox\" class=\"form-checkbox h-5 w-5 text-blue-600 rounded focus:ring-blue-500\">\n                            <span class=\"p-responsive text-gray-700 font-medium\">Fotograf\u00eda<\/span>\n                        <\/label>\n                    <\/div>\n                    <div class=\"bg-gray-50 p-4 rounded-xl border border-gray-200 flex flex-col justify-between\">\n                        <label class=\"flex items-center space-x-2 cursor-pointer\">\n                            <input type=\"checkbox\" id=\"videoCheckbox\" class=\"form-checkbox h-5 w-5 text-blue-600 rounded focus:ring-blue-500\">\n                            <span class=\"p-responsive text-gray-700 font-medium\">Video<\/span>\n                        <\/label>\n                    <\/div>\n                    <div class=\"bg-gray-50 p-4 rounded-xl border border-gray-200 flex flex-col justify-between\">\n                        <label class=\"flex items-center space-x-2 cursor-pointer\">\n                            <input type=\"checkbox\" id=\"virtualTourCheckbox\" class=\"form-checkbox h-5 w-5 text-blue-600 rounded focus:ring-blue-500\">\n                            <span class=\"p-responsive text-gray-700 font-medium\">Recorrido Virtual<\/span>\n                        <\/label>\n                    <\/div>\n                <\/div>\n                <p class=\"small-text-responsive text-gray-500 -mt-6 mb-8\">(El servicio de Recorrido Virtual incluye 1 mes de hosting)<\/p>\n\n                <!-- Secci\u00f3n de Detalles y Extras -->\n                <h2 class=\"h2-responsive font-bold mb-4\">2. Detalles y Extras<\/h2>\n                <div class=\"space-y-6\">\n                    <!-- Metros Cuadrados -->\n                    <div>\n                        <label for=\"squareMeters\" class=\"p-responsive text-gray-700 font-medium block mb-2\">Metros Cuadrados de la Propiedad (m\u00b2)<\/label>\n                        <input type=\"number\" id=\"squareMeters\" placeholder=\"Ej: 120\" min=\"1\" class=\"w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition duration-150\">\n                        <details class=\"mt-4 p-responsive text-gray-600 bg-gray-50 rounded-lg p-4 border border-gray-200\">\n                            <summary class=\"font-medium cursor-pointer text-blue-600 hover:text-blue-700 transition duration-150 details-list-marker\">\u00bfC\u00f3mo se calculan los precios por metro cuadrado?<\/summary>\n                            <div class=\"mt-2 space-y-2 details-content-text\">\n                                <p>La tarifa base se aplica a propiedades de hasta 100m\u00b2. A partir de ah\u00ed, se a\u00f1aden recargos por tramo de metros cuadrados, aplicados a cada servicio contratado:<\/p>\n                                <ul class=\"list-disc list-inside space-y-1\">\n                                    <li>101-150m\u00b2: <span class=\"font-bold\">+10\u20ac<\/span> por servicio<\/li>\n                                    <li>151-200m\u00b2: <span class=\"font-bold\">+20\u20ac<\/span> por servicio<\/li>\n                                    <li>201-250m\u00b2: <span class=\"font-bold\">+30\u20ac<\/span> por servicio<\/li>\n                                    <li>251-300m\u00b2: <span class=\"font-bold\">+40\u20ac<\/span> por servicio<\/li>\n                                    <li>301-400m\u00b2: <span class=\"font-bold\">+50\u20ac<\/span> por servicio<\/li>\n                                    <li>M\u00e1s de 400m\u00b2: <a href=\"https:\/\/wa.me\/34624698207\" class=\"text-blue-500 hover:text-blue-700 underline\">Consulta<\/a><\/li>\n                                <\/ul>\n                            <\/div>\n                        <\/details>\n                    <\/div>\n\n                    <!-- Ubicaci\u00f3n -->\n                    <div>\n                        <label class=\"p-responsive text-gray-700 font-medium block mb-2\">Ubicaci\u00f3n<\/label>\n                        <div class=\"flex flex-col sm:flex-row gap-4\">\n                            <div class=\"flex-1 bg-gray-50 p-4 rounded-xl border border-gray-200\">\n                                <label class=\"flex items-center space-x-2 cursor-pointer\">\n                                    <input type=\"radio\" name=\"location\" value=\"m30\" checked class=\"form-radio h-4 w-4 text-blue-600 focus:ring-blue-500\">\n                                    <span class=\"p-responsive text-gray-700 font-medium\">Dentro de la M30<\/span>\n                                <\/label>\n                            <\/div>\n                            <div class=\"flex-1 bg-gray-50 p-4 rounded-xl border border-gray-200\">\n                                <label class=\"flex items-center space-x-2 cursor-pointer\">\n                                    <input type=\"radio\" name=\"location\" value=\"m40\" class=\"form-radio h-4 w-4 text-blue-600 focus:ring-blue-500\">\n                                    <span class=\"p-responsive text-gray-700 font-medium\">Dentro de la M40<\/span>\n                                    <span class=\"small-text-responsive text-gray-500 pl-1\">(+10\u20ac)<\/span>\n                                <\/label>\n                            <\/div>\n                            <div class=\"flex-1 bg-gray-50 p-4 rounded-xl border border-gray-200\">\n                                <label class=\"flex items-center space-x-2 cursor-pointer\">\n                                    <input type=\"radio\" name=\"location\" value=\"m50\" class=\"form-radio h-4 w-4 text-blue-600 focus:ring-blue-500\">\n                                    <span class=\"p-responsive text-gray-700 font-medium\">Dentro de la M50<\/span>\n                                    <span class=\"small-text-responsive text-gray-500 pl-1\">(+20\u20ac)<\/span>\n                                <\/label>\n                            <\/div>\n                        <\/div>\n                        <p class=\"small-text-responsive text-gray-600 mt-4 location-consult-text\">\n                            Para ubicaciones fuera de la M50, por favor <a href=\"https:\/\/wa.me\/34624698207\" class=\"text-blue-500 hover:text-blue-700 underline font-medium\">contacta al +34 624 69 82 07.<\/a>\n                        <\/p>\n                    <\/div>\n\n                    <!-- Opciones de Recorrido Virtual -->\n                    <div id=\"virtualTourOptions\" class=\"space-y-4 hidden\">\n                        <h3 class=\"h3-responsive text-blue-600 font-bold\">Opciones de Recorrido Virtual<\/h3>\n                        <div>\n                            <label for=\"hostingMonths\" class=\"p-responsive text-gray-700 font-medium block mb-2\">Meses de Hosting Adicionales (10\u20ac\/mes)<\/label>\n                            <input type=\"number\" id=\"hostingMonths\" min=\"0\" value=\"0\" class=\"w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition duration-150\">\n                        <\/div>\n                        <div class=\"bg-gray-50 p-4 rounded-xl border border-gray-200\">\n                            <label class=\"flex items-center space-x-2 cursor-pointer\">\n                                <input type=\"checkbox\" id=\"floorPlanCheckbox\" class=\"form-checkbox h-5 w-5 text-blue-600 rounded focus:ring-blue-500\">\n                                <span class=\"p-responsive text-gray-700 font-medium\">Incluir Plano de Propiedad<\/span>\n                                <span class=\"small-text-responsive text-gray-500 pl-1\">(+20\u20ac)<\/span>\n                            <\/label>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- Secci\u00f3n de Resumen del Presupuesto -->\n                <h2 class=\"h2-responsive font-bold mt-8 mb-4\">Resumen del Presupuesto<\/h2>\n                <div class=\"bg-gray-50 p-6 rounded-2xl shadow-inner space-y-3\">\n                    <div id=\"services-breakdown\" class=\"space-y-2 pb-2\">\n                        <!-- Aqu\u00ed se mostrar\u00e1n los servicios desglosados -->\n                    <\/div>\n                    \n                    <div class=\"flex justify-between p-responsive text-gray-800 border-t border-gray-300 pt-3\">\n                        <span>Subtotal Neto:<\/span>\n                        <span id=\"subtotalNet\">0.00 \u20ac<\/span>\n                    <\/div>\n                    <div id=\"floorPlanRow\" class=\"hidden flex justify-between p-responsive text-gray-800\">\n                        <span>Plano de Propiedad:<\/span>\n                        <span id=\"floorPlanCost\">+20.00 \u20ac<\/span>\n                    <\/div>\n                    <div id=\"hostingRow\" class=\"hidden flex justify-between p-responsive text-gray-800\">\n                        <span>Hosting Adicional:<\/span>\n                        <span id=\"hostingCost\">+0.00 \u20ac<\/span>\n                    <\/div>\n                    <div id=\"locationRow\" class=\"hidden flex justify-between p-responsive text-gray-800\">\n                        <span>Recargo por Ubicaci\u00f3n:<\/span>\n                        <span id=\"locationCost\">+0.00 \u20ac<\/span>\n                    <\/div>\n                    <div class=\"flex justify-between p-responsive text-gray-800 border-t border-gray-300 pt-3\">\n                        <span>Base Imponible:<\/span>\n                        <span id=\"baseImponible\">0.00 \u20ac<\/span>\n                    <\/div>\n                    <div class=\"flex justify-between p-responsive text-gray-800\">\n                        <span>Impuestos (IVA 21%):<\/span>\n                        <span id=\"ivaAmount\">+0.00 \u20ac<\/span>\n                    <\/div>\n                    <div class=\"flex justify-between p-responsive text-3xl font-bold text-blue-800 border-t-2 border-blue-200 pt-4 mt-4\">\n                        <span>Total Presupuesto:<\/span>\n                        <span id=\"totalPrice\">0.00 \u20ac<\/span>\n                    <\/div>\n                <\/div>\n\n                <p class=\"text-xs text-gray-500 mt-6 text-center\">\n                    *Servicios y tarifas calculadas en base a la ubicaci\u00f3n en Madrid. Todos los precios son sin IVA; se debe a\u00f1adir el 21% de IVA al total.\n                <\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n        document.addEventListener('DOMContentLoaded', () => {\n            \/\/ Constantes de precios\n            const PRICE_PHOTO = 80;\n            const PRICE_VIDEO = 80;\n            const PRICE_VIRTUAL_TOUR = 80;\n            const PRICE_FLOOR_PLAN = 20;\n            const PRICE_HOSTING_MONTH = 10;\n            const PRICE_M40_RECARGO = 10;\n            const PRICE_M50_RECARGO = 20;\n            const IVA_RATE = 0.21;\n\n            \/\/ Constantes para el descuento\n            const DISCOUNT_2_SERVICES = 0.15;\n            const DISCOUNT_3_SERVICES = 0.25;\n\n            \/\/ Elementos del DOM\n            const pricingTab = document.getElementById('pricingTab');\n            const calculatorTab = document.getElementById('calculatorTab');\n            const pricingContent = document.getElementById('pricing-tab-content');\n            const calculatorContent = document.getElementById('calculator-tab-content');\n            const photoCheckbox = document.getElementById('photoCheckbox');\n            const videoCheckbox = document.getElementById('videoCheckbox');\n            const virtualTourCheckbox = document.getElementById('virtualTourCheckbox');\n            const squareMetersInput = document.getElementById('squareMeters');\n            const locationRadios = document.querySelectorAll('input[name=\"location\"]');\n            const virtualTourOptions = document.getElementById('virtualTourOptions');\n            const hostingMonthsInput = document.getElementById('hostingMonths');\n            const floorPlanCheckbox = document.getElementById('floorPlanCheckbox');\n\n            const servicesBreakdownEl = document.getElementById('services-breakdown');\n            const subtotalNetEl = document.getElementById('subtotalNet');\n            const floorPlanRowEl = document.getElementById('floorPlanRow');\n            const floorPlanCostEl = document.getElementById('floorPlanCost');\n            const hostingRowEl = document.getElementById('hostingRow');\n            const hostingCostEl = document.getElementById('hostingCost');\n            const locationRowEl = document.getElementById('locationRow');\n            const locationCostEl = document.getElementById('locationCost');\n            const baseImponibleEl = document.getElementById('baseImponible');\n            const ivaAmountEl = document.getElementById('ivaAmount');\n            const totalPriceEl = document.getElementById('totalPrice');\n\n            const allInputs = [\n                photoCheckbox,\n                videoCheckbox,\n                virtualTourCheckbox,\n                squareMetersInput,\n                hostingMonthsInput,\n                floorPlanCheckbox,\n                ...locationRadios\n            ];\n\n            const showTab = (tabId) => {\n                if (tabId === 'pricing') {\n                    pricingContent.classList.remove('hidden');\n                    calculatorContent.classList.add('hidden');\n                    pricingTab.classList.add('tab-active');\n                    pricingTab.classList.remove('bg-gray-200', 'tab-inactive');\n                    calculatorTab.classList.remove('tab-active');\n                    calculatorTab.classList.add('bg-gray-200', 'tab-inactive');\n                } else {\n                    pricingContent.classList.add('hidden');\n                    calculatorContent.classList.remove('hidden');\n                    calculatorTab.classList.add('tab-active');\n                    calculatorTab.classList.remove('bg-gray-200', 'tab-inactive');\n                    pricingTab.classList.remove('tab-active');\n                    pricingTab.classList.add('bg-gray-200', 'tab-inactive');\n                }\n            };\n\n            const calculatePrice = () => {\n                let subtotalServices = 0;\n                let numServices = 0;\n                let discount = 0;\n                let floorPlanCost = 0;\n                let hostingCost = 0;\n                let locationCost = 0;\n                let baseImponible = 0;\n                let iva = 0;\n                let total = 0;\n\n                \/\/ Toggle visibility of virtual tour options\n                virtualTourOptions.style.display = virtualTourCheckbox.checked ? 'block' : 'none';\n\n                \/\/ Recargo por metros cuadrados\n                const squareMeters = parseInt(squareMetersInput.value);\n                let meterRecargo = 0;\n                if (!isNaN(squareMeters) && squareMeters > 100) {\n                    if (squareMeters >= 101 && squareMeters <= 150) {\n                        meterRecargo = 10;\n                    } else if (squareMeters >= 151 && squareMeters <= 200) {\n                        meterRecargo = 20;\n                    } else if (squareMeters >= 201 && squareMeters <= 250) {\n                        meterRecargo = 30;\n                    } else if (squareMeters >= 251 && squareMeters <= 300) {\n                        meterRecargo = 40;\n                    } else if (squareMeters >= 301 && squareMeters <= 400) {\n                        meterRecargo = 50;\n                    }\n                }\n\n                \/\/ Generar el desglose de servicios\n                servicesBreakdownEl.innerHTML = '';\n                if (photoCheckbox.checked) {\n                    numServices++;\n                    const servicePrice = PRICE_PHOTO + meterRecargo;\n                    subtotalServices += servicePrice;\n                    servicesBreakdownEl.innerHTML += `<div class=\"flex justify-between p-responsive text-gray-800\"><span>Fotograf\u00eda<\/span><span>${servicePrice.toFixed(2)} \u20ac<\/span><\/div>`;\n                }\n                if (videoCheckbox.checked) {\n                    numServices++;\n                    const servicePrice = PRICE_VIDEO + meterRecargo;\n                    subtotalServices += servicePrice;\n                    servicesBreakdownEl.innerHTML += `<div class=\"flex justify-between p-responsive text-gray-800\"><span>Video<\/span><span>${servicePrice.toFixed(2)} \u20ac<\/span><\/div>`;\n                }\n                if (virtualTourCheckbox.checked) {\n                    numServices++;\n                    const servicePrice = PRICE_VIRTUAL_TOUR + meterRecargo;\n                    subtotalServices += servicePrice;\n                    servicesBreakdownEl.innerHTML += `<div class=\"flex justify-between p-responsive text-gray-800\"><span>Recorrido Virtual<\/span><span>${servicePrice.toFixed(2)} \u20ac<\/span><\/div>`;\n                }\n\n                \/\/ Descuento por servicios combinados\n                if (numServices === 2) {\n                    discount = subtotalServices * DISCOUNT_2_SERVICES;\n                } else if (numServices >= 3) {\n                    discount = subtotalServices * DISCOUNT_3_SERVICES;\n                }\n                if (discount > 0) {\n                     servicesBreakdownEl.innerHTML += `<div class=\"flex justify-between p-responsive text-gray-800\"><span>Descuento Aplicado<\/span><span>-${discount.toFixed(2)} \u20ac<\/span><\/div>`;\n                }\n\n                const subtotalNet = subtotalServices - discount;\n\n                \/\/ Recargo por hosting\n                const hostingMonths = parseInt(hostingMonthsInput.value) || 0;\n                if (virtualTourCheckbox.checked && hostingMonths > 0) {\n                    hostingCost = hostingMonths * PRICE_HOSTING_MONTH;\n                    hostingRowEl.classList.remove('hidden');\n                } else {\n                    hostingRowEl.classList.add('hidden');\n                }\n                hostingCostEl.textContent = `+${hostingCost.toFixed(2)} \u20ac`;\n\n                \/\/ Recargo por plano de propiedad\n                if (virtualTourCheckbox.checked && floorPlanCheckbox.checked) {\n                    floorPlanCost = PRICE_FLOOR_PLAN;\n                    floorPlanRowEl.classList.remove('hidden');\n                } else {\n                    floorPlanRowEl.classList.add('hidden');\n                }\n                \n                floorPlanCostEl.textContent = `+${floorPlanCost.toFixed(2)} \u20ac`;\n\n                \/\/ Recargo por ubicaci\u00f3n\n                const location = document.querySelector('input[name=\"location\"]:checked').value;\n                if (location === 'm40') {\n                    locationCost = PRICE_M40_RECARGO;\n                } else if (location === 'm50') {\n                    locationCost = PRICE_M50_RECARGO;\n                }\n                \n                if (locationCost > 0) {\n                    locationRowEl.classList.remove('hidden');\n                } else {\n                    locationRowEl.classList.add('hidden');\n                }\n                locationCostEl.textContent = `+${locationCost.toFixed(2)} \u20ac`;\n                \n                baseImponible = subtotalNet + floorPlanCost + hostingCost + locationCost;\n                iva = baseImponible * IVA_RATE;\n                total = baseImponible + iva;\n\n                \/\/ Actualizar la interfaz\n                subtotalNetEl.textContent = `${subtotalNet.toFixed(2)} \u20ac`;\n                baseImponibleEl.textContent = `${baseImponible.toFixed(2)} \u20ac`;\n                ivaAmountEl.textContent = `+${iva.toFixed(2)} \u20ac`;\n                totalPriceEl.textContent = `${total.toFixed(2)} \u20ac`;\n            };\n\n            \/\/ A\u00f1adir event listeners a los botones de las pesta\u00f1as\n            pricingTab.addEventListener('click', () => showTab('pricing'));\n            calculatorTab.addEventListener('click', () => showTab('calculator'));\n\n            \/\/ A\u00f1adir event listeners a todos los inputs relevantes\n            allInputs.forEach(input => {\n                input.addEventListener('change', calculatePrice);\n                input.addEventListener('input', calculatePrice);\n            });\n            \n            \/\/ Llamar a calculatePrice al inicio para inicializar los valores\n            calculatePrice();\n        });\n    <\/script>\n<\/body>\n<\/html>\n\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Calculadora de Precios de Fotograf\u00eda Inmobiliaria Tarifario Calculadora Tarifario de Servicios de Fotograf\u00eda Inmobiliaria Este tarifario resume nuestros precios base y los ajustes aplicados a los servicios. Valores de referencia para Madrid. Los precios no incluyen IVA. Precios Base por Servicio Cada servicio tiene una tarifa base de 80\u20ac para propiedades de hasta 100m\u00b2. Servicio &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/carnevalefotografia.com\/index.php\/tarifas\/\" class=\"more-link\">Read more<span class=\"screen-reader-text\"> &#8220;TARIFAS&#8221;<\/span><\/a><\/p>\n","protected":false},"author":123457,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"pgc_sgb_lightbox_settings":"","inspiro_hide_title":false,"footnotes":""},"class_list":["post-1416","page","type-page","status-publish","hentry"],"featured_media_urls":[],"_links":{"self":[{"href":"https:\/\/carnevalefotografia.com\/index.php\/wp-json\/wp\/v2\/pages\/1416","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/carnevalefotografia.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/carnevalefotografia.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/carnevalefotografia.com\/index.php\/wp-json\/wp\/v2\/users\/123457"}],"replies":[{"embeddable":true,"href":"https:\/\/carnevalefotografia.com\/index.php\/wp-json\/wp\/v2\/comments?post=1416"}],"version-history":[{"count":18,"href":"https:\/\/carnevalefotografia.com\/index.php\/wp-json\/wp\/v2\/pages\/1416\/revisions"}],"predecessor-version":[{"id":1441,"href":"https:\/\/carnevalefotografia.com\/index.php\/wp-json\/wp\/v2\/pages\/1416\/revisions\/1441"}],"wp:attachment":[{"href":"https:\/\/carnevalefotografia.com\/index.php\/wp-json\/wp\/v2\/media?parent=1416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}