{"id":3083,"date":"2025-09-18T21:17:09","date_gmt":"2025-09-18T21:17:09","guid":{"rendered":"https:\/\/solcaravan.es\/estimate\/"},"modified":"2026-07-03T12:23:14","modified_gmt":"2026-07-03T12:23:14","slug":"kalkulator","status":"publish","type":"page","link":"https:\/\/solcaravan.es\/hu\/kalkulator\/","title":{"rendered":"Kalkul\u00e1tor"},"content":{"rendered":"<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\"><!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Campervan Rental Estimate<\/title>\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js\"><\/script>\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf-autotable\/3.5.25\/jspdf.plugin.autotable.min.js\"><\/script>\n    <style>\n        @import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700;800&display=swap');\n\n        body {\n            font-family: 'Inter', sans-serif;\n            background-color: #f3f4f6;\n            color: #1f2937;\n        }\n\n        ::-webkit-scrollbar { width: 8px; }\n        ::-webkit-scrollbar-thumb { background-color: #d1d5db; border-radius: 4px; }\n\n        .modal {\n            position: fixed;\n            z-index: 1000;\n            left: 0;\n            top: 0;\n            width: 100%;\n            height: 100%;\n            background-color: rgba(0, 0, 0, 0.7);\n            display: flex;\n            justify-content: center;\n            align-items: center;\n        }\n    <\/style>\n\n    <!--\n        Hand-written utility stylesheet replacing the Tailwind CDN build.\n        Covers exactly the utility classes used in this widget's markup.\n    -->\n    <style id=\"widget-utilities\">\n        *, *::before, *::after { box-sizing: border-box; }\n\n        [class~=\"flex\"] { display: flex; }\n        [class~=\"grid\"] { display: grid; }\n        [class~=\"hidden\"] { display: none; }\n        [class~=\"block\"] { display: block; }\n        [class~=\"flex-col\"] { flex-direction: column; }\n        [class~=\"flex-grow\"] { flex-grow: 1; }\n        [class~=\"items-center\"] { align-items: center; }\n        [class~=\"items-start\"] { align-items: flex-start; }\n        [class~=\"justify-center\"] { justify-content: center; }\n        [class~=\"justify-between\"] { justify-content: space-between; }\n        [class~=\"grid-cols-1\"] { grid-template-columns: repeat(1, minmax(0, 1fr)); }\n\n        [class~=\"max-w-4xl\"] { max-width: 56rem; }\n        [class~=\"w-full\"] { width: 100%; }\n        [class~=\"w-16\"] { width: 4rem; }\n        [class~=\"mx-auto\"] { margin-left: auto; margin-right: auto; }\n        [class~=\"ml-auto\"] { margin-left: auto; }\n\n        [class~=\"p-2\"] { padding: 0.5rem; }\n        [class~=\"p-4\"] { padding: 1rem; }\n        [class~=\"p-6\"] { padding: 1.5rem; }\n        [class~=\"px-6\"] { padding-left: 1.5rem; padding-right: 1.5rem; }\n        [class~=\"py-3\"] { padding-top: 0.75rem; padding-bottom: 0.75rem; }\n        [class~=\"pt-2\"] { padding-top: 0.5rem; }\n        [class~=\"pt-4\"] { padding-top: 1rem; }\n        [class~=\"pl-4\"] { padding-left: 1rem; }\n\n        [class~=\"mt-1\"] { margin-top: 0.25rem; }\n        [class~=\"mt-4\"] { margin-top: 1rem; }\n        [class~=\"mt-6\"] { margin-top: 1.5rem; }\n        [class~=\"mb-1\"] { margin-bottom: 0.25rem; }\n\n        [class~=\"gap-4\"] { gap: 1rem; }\n        [class~=\"gap-8\"] { gap: 2rem; }\n\n        [class~=\"space-y-2\"] > * + * { margin-top: 0.5rem; }\n        [class~=\"space-y-3\"] > * + * { margin-top: 0.75rem; }\n        [class~=\"space-y-4\"] > * + * { margin-top: 1rem; }\n        [class~=\"space-y-6\"] > * + * { margin-top: 1.5rem; }\n        [class~=\"space-y-8\"] > * + * { margin-top: 2rem; }\n        [class~=\"space-x-2\"] > * + * { margin-left: 0.5rem; }\n\n        [class~=\"text-xs\"] { font-size: 0.75rem; line-height: 1rem; }\n        [class~=\"text-sm\"] { font-size: 0.875rem; line-height: 1.25rem; }\n        [class~=\"text-lg\"] { font-size: 1.125rem; line-height: 1.75rem; }\n        [class~=\"text-xl\"] { font-size: 1.25rem; line-height: 1.75rem; }\n        [class~=\"text-3xl\"] { font-size: 1.875rem; line-height: 2.25rem; }\n        [class~=\"text-center\"] { text-align: center; }\n        [class~=\"text-right\"] { text-align: right; }\n        [class~=\"font-medium\"] { font-weight: 500; }\n        [class~=\"font-semibold\"] { font-weight: 600; }\n        [class~=\"font-bold\"] { font-weight: 700; }\n        [class~=\"font-extrabold\"] { font-weight: 800; }\n\n        [class~=\"text-white\"] { color: #ffffff; }\n        [class~=\"text-gray-500\"] { color: #6b7280; }\n        [class~=\"text-gray-600\"] { color: #4b5563; }\n        [class~=\"text-red-500\"] { color: #ef4444; }\n        [class~=\"text-green-600\"] { color: #16a34a; }\n        [class~=\"text-[#4B5563]\"] { color: #4B5563; }\n        [class~=\"text-[#6B7280]\"] { color: #6B7280; }\n        [class~=\"text-[#374151]\"] { color: #374151; }\n        [class~=\"text-[#FDE047]\"] { color: #FDE047; }\n\n        [class~=\"bg-white\"] { background-color: #ffffff; }\n        [class~=\"bg-yellow-50\"] { background-color: #fefce8; }\n        [class~=\"bg-gray-50\"] { background-color: #f9fafb; }\n        [class~=\"bg-green-50\"] { background-color: #f0fdf4; }\n        [class~=\"bg-[#4B5563]\"] { background-color: #4B5563; }\n        [class~=\"bg-[#FDE047]\"] { background-color: #FDE047; }\n\n        [class~=\"border\"] { border-width: 1px; border-style: solid; }\n        [class~=\"border-t\"] { border-top-width: 1px; border-top-style: solid; }\n        [class~=\"border-gray-200\"] { border-color: #e5e7eb; }\n        [class~=\"border-gray-300\"] { border-color: #d1d5db; }\n\n        [class~=\"rounded-lg\"] { border-radius: 0.5rem; }\n        [class~=\"rounded-xl\"] { border-radius: 0.75rem; }\n        [class~=\"rounded-2xl\"] { border-radius: 1rem; }\n        [class~=\"rounded-3xl\"] { border-radius: 1.5rem; }\n        [class~=\"rounded-full\"] { border-radius: 9999px; }\n\n        [class~=\"shadow\"] { box-shadow: 0 1px 3px rgba(0,0,0,0.1), 0 1px 2px rgba(0,0,0,0.06); }\n        [class~=\"shadow-md\"] { box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1); }\n        [class~=\"shadow-lg\"] { box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1); }\n        [class~=\"shadow-2xl\"] { box-shadow: 0 25px 50px -12px rgba(0,0,0,0.25); }\n        [class~=\"shadow-inner\"] { box-shadow: inset 0 2px 4px 0 rgba(0,0,0,0.05); }\n\n        [class~=\"cursor-pointer\"] { cursor: pointer; }\n        [class~=\"transition-all\"] { transition-property: all; transition-timing-function: cubic-bezier(0.4,0,0.2,1); }\n        [class~=\"transition-colors\"] { transition-property: color, background-color, border-color; transition-timing-function: cubic-bezier(0.4,0,0.2,1); }\n        [class~=\"duration-300\"] { transition-duration: 300ms; }\n\n        [class~=\"z-10\"] { z-index: 10; }\n\n        [class~=\"hover:shadow-xl\"]:hover { box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1); }\n        [class~=\"hover:bg-[#374151]\"]:hover { background-color: #374151; }\n        [class~=\"hover:bg-[#FCD34D]\"]:hover { background-color: #FCD34D; }\n\n        [class~=\"focus:ring-2\"][class~=\"focus:ring-[#FDE047]\"][class~=\"focus:border-transparent\"]:focus {\n            outline: none;\n            border-color: transparent;\n            box-shadow: 0 0 0 2px #FDE047;\n        }\n        [class~=\"focus:outline-none\"][class~=\"focus:ring-2\"][class~=\"focus:ring-[#FDE047]\"]:focus {\n            outline: none;\n            box-shadow: 0 0 0 2px #FDE047;\n        }\n\n        [class~=\"has-[:checked]:ring-4\"][class~=\"has-[:checked]:ring-[#FDE047]\"]:has(:checked) {\n            box-shadow: 0 0 0 4px #FDE047;\n        }\n        [class~=\"has-[:checked]:ring-2\"][class~=\"has-[:checked]:ring-gray-300\"]:has(:checked) {\n            box-shadow: 0 0 0 2px #d1d5db;\n        }\n        [class~=\"has-[:checked]:ring-4\"][class~=\"has-[:checked]:ring-green-300\"]:has(:checked) {\n            box-shadow: 0 0 0 4px #86efac;\n        }\n\n        @media (min-width: 640px) {\n            [class~=\"sm:grid-cols-2\"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }\n        }\n\n        @media (min-width: 768px) {\n            [class~=\"md:p-8\"] { padding: 2rem; }\n            [class~=\"md:p-10\"] { padding: 2.5rem; }\n            [class~=\"md:gap-12\"] { gap: 3rem; }\n            [class~=\"md:text-5xl\"] { font-size: 3rem; line-height: 1; }\n            [class~=\"md:text-2xl\"] { font-size: 1.5rem; line-height: 2rem; }\n            [class~=\"md:text-4xl\"] { font-size: 2.25rem; line-height: 2.5rem; }\n            [class~=\"md:flex-row\"] { flex-direction: row; }\n        }\n\n        @media print {\n            [class~=\"no-print\"] { display: none; }\n        }\n    <\/style>\n<\/head>\n<body class=\"p-4 md:p-8\">\n    <div class=\"max-w-4xl mx-auto bg-white p-6 md:p-10 rounded-3xl shadow-2xl space-y-8\">\n\n        <header class=\"text-center space-y-2\">\n            <h1 class=\"text-3xl md:text-5xl font-extrabold text-[#4B5563]\" data-i18n=\"heroTitle\">Your Campervan Adventure Awaits<\/h1>\n            <p class=\"text-lg text-[#6B7280]\" data-i18n=\"heroSubtitle\">Ready to hit the road? Use our instant price calculator to build your perfect trip and get a transparent estimate in seconds.<\/p>\n        <\/header>\n\n        <main class=\"grid grid-cols-1 gap-8 md:gap-12\">\n\n            <section id=\"input-section\" class=\"space-y-6\">\n\n                <div class=\"space-y-4\">\n                    <h2 class=\"text-xl md:text-2xl font-bold text-[#374151]\" data-i18n=\"step1Title\">1. Choose Your Van<\/h2>\n                    <p class=\"text-sm text-gray-500\" data-i18n=\"pricesGross\">Prices shown are gross (incl. VAT).<\/p>\n                    <div class=\"grid grid-cols-1 sm:grid-cols-2 gap-4\">\n                        <label class=\"flex items-center p-4 bg-yellow-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-4 has-[:checked]:ring-[#FDE047]\">\n                            <input type=\"radio\" name=\"van\" value=\"Duncan545\" data-low=\"75\" data-high=\"85\" data-prep=\"45\" data-clean=\"50\" data-min-low=\"3\" data-min-high=\"3\" class=\"hidden\" checked>\n                            <span class=\"font-semibold text-lg text-[#374151]\">Duncan545<\/span>\n                            <span class=\"ml-auto text-sm text-[#4B5563]\" id=\"price-duncan545\">75\u20ac-85\u20ac\/day gross<\/span>\n                        <\/label>\n                        <label class=\"flex items-center p-4 bg-yellow-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-4 has-[:checked]:ring-[#FDE047]\">\n                            <input type=\"radio\" name=\"van\" value=\"Duncan500\" data-low=\"65\" data-high=\"75\" data-prep=\"40\" data-clean=\"45\" data-min-low=\"3\" data-min-high=\"3\" class=\"hidden\">\n                            <span class=\"font-semibold text-lg text-[#374151]\">Duncan500<\/span>\n                            <span class=\"ml-auto text-sm text-[#4B5563]\" id=\"price-duncan500\">65\u20ac-75\u20ac\/day gross<\/span>\n                        <\/label>\n                         <label class=\"flex items-center p-4 bg-yellow-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-4 has-[:checked]:ring-[#FDE047]\">\n                            <input type=\"radio\" name=\"van\" value=\"Davis 590\" data-low=\"87\" data-high=\"96\" data-prep=\"45\" data-clean=\"50\" data-min-low=\"3\" data-min-high=\"3\" class=\"hidden\">\n                            <span class=\"font-semibold text-lg text-[#374151]\">Davis 590<\/span>\n                            <span class=\"ml-auto text-sm text-[#4B5563]\" id=\"price-davis590\">87\u20ac-96\u20ac\/day gross<\/span>\n                        <\/label>\n                        <label class=\"flex items-center p-4 bg-yellow-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-4 has-[:checked]:ring-[#FDE047]\">\n                            <input type=\"radio\" name=\"van\" value=\"Sunlight I68\" data-low=\"125\" data-high=\"148\" data-prep=\"60\" data-clean=\"65\" data-min-low=\"5\" data-min-high=\"7\" class=\"hidden\">\n                            <span class=\"font-semibold text-lg text-[#374151]\">Sunlight I68<\/span>\n                            <span class=\"ml-auto text-sm text-[#4B5563]\" id=\"price-sunlighti68\">125\u20ac-148\u20ac\/day gross<\/span>\n                        <\/label>\n                         <label class=\"flex items-center p-4 bg-yellow-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-4 has-[:checked]:ring-[#FDE047]\">\n                            <input type=\"radio\" name=\"van\" value=\"Etrusco A7300DB\" data-low=\"110\" data-high=\"128\" data-prep=\"60\" data-clean=\"65\" data-min-low=\"5\" data-min-high=\"7\" class=\"hidden\">\n                            <span class=\"font-semibold text-lg text-[#374151]\">Etrusco A7300DB<\/span>\n                            <span class=\"ml-auto text-sm text-[#4B5563]\" id=\"price-etruscoa7300db\">110\u20ac-128\u20ac\/day gross<\/span>\n                        <\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"space-y-4\">\n                    <h2 class=\"text-xl md:text-2xl font-bold text-[#374151]\" data-i18n=\"step2Title\">2. Select Your Dates<\/h2>\n                     <p class=\"text-sm text-gray-500\" id=\"season-info\">\n                        Duncan\/Davis: Low Season: 16.10. \u2013 31.05. | High Season: 01.06. \u2013 15.10.\n                        <br>\n                        Sunlight\/Etrusco: Low Season: 16.09. \u2013 31.05. (Min 5 days) | High Season: 01.06. \u2013 15.09. (Min 7 days)\n                    <\/p>\n                    <div class=\"grid grid-cols-1 sm:grid-cols-2 gap-4\">\n                         <div class=\"flex flex-col\">\n                            <label for=\"start-date\" class=\"text-sm font-medium text-gray-500 mb-1\" data-i18n=\"startDate\">Start Date<\/label>\n                            <input type=\"date\" id=\"start-date\" max=\"2027-07-31\" class=\"w-full p-4 border border-gray-300 rounded-xl focus:ring-2 focus:ring-[#FDE047] focus:border-transparent transition-colors\">\n                        <\/div>\n                        <div class=\"flex flex-col\">\n                            <label for=\"end-date\" class=\"text-sm font-medium text-gray-500 mb-1\" data-i18n=\"endDate\">End Date<\/label>\n                            <input type=\"date\" id=\"end-date\" max=\"2027-07-31\" class=\"w-full p-4 border border-gray-300 rounded-xl focus:ring-2 focus:ring-[#FDE047] focus:border-transparent transition-colors\">\n                        <\/div>\n                    <\/div>\n                     <p class=\"text-center font-bold text-lg text-[#374151]\"><span data-i18n=\"totalDays\">Total Days:<\/span> <span id=\"days-text\">0<\/span><\/p>\n                     <p id=\"days-error-message\" class=\"text-red-500 text-sm font-medium text-center hidden\"><\/p>\n                <\/div>\n\n                <div class=\"space-y-4\">\n                    <h2 class=\"text-xl md:text-2xl font-bold text-[#374151]\" data-i18n=\"pickupDropoffTitle\">Select your pick up and drop off hours<\/h2>\n                    <p class=\"text-sm font-medium text-gray-500\" data-i18n=\"pickupDropoffHint\">Fees depend on the day type (M-S or Sunday\/Holiday) and the time slot you select.<\/p>\n                    <div class=\"space-y-4\">\n\n                        <!-- PICK-UP -->\n                        <div class=\"space-y-3 p-4 bg-white rounded-xl shadow\">\n                            <h3 class=\"text-lg font-semibold text-[#4B5563]\" data-i18n=\"pickupTitle\">Pick-Up Time Slot:<\/h3>\n\n                            <label class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\">\n                                <input type=\"radio\" name=\"pickup-time\" data-slot-key=\"slotEarly\" data-fee=\"90.00\" class=\"hidden\">\n                                <span class=\"font-medium text-[#374151]\" data-i18n=\"slotEarly\">M \u2013 S 06:00\u201309:00<\/span>\n                                <span class=\"ml-auto text-sm text-[#4B5563]\">\u20ac90<\/span>\n                            <\/label>\n                             <label class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\">\n                                <input type=\"radio\" name=\"pickup-time\" data-slot-key=\"slotDay\" data-fee=\"0.00\" class=\"hidden\">\n                                <span class=\"font-medium text-[#374151]\" data-i18n=\"slotDay\">M \u2013 S 09:00\u201318:00<\/span>\n                                <span class=\"ml-auto text-sm text-[#4B5563]\" data-i18n=\"free\">Free<\/span>\n                            <\/label>\n                            <label class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\">\n                                <input type=\"radio\" name=\"pickup-time\" data-slot-key=\"slotLate\" data-fee=\"90.00\" class=\"hidden\">\n                                <span class=\"font-medium text-[#374151]\" data-i18n=\"slotLate\">M \u2013 S 18:00\u201324:00<\/span>\n                                <span class=\"ml-auto text-sm text-[#4B5563]\">\u20ac90<\/span>\n                            <\/label>\n                             <label class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\">\n                                <input type=\"radio\" name=\"pickup-time\" data-slot-key=\"slotSunday\" data-fee=\"90.00\" class=\"hidden\">\n                                <span class=\"font-medium text-[#374151]\" data-i18n=\"slotSunday\">Sunday & Public Holidays<\/span>\n                                <span class=\"ml-auto text-sm text-[#4B5563]\">\u20ac90<\/span>\n                            <\/label>\n                            <label class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\">\n                                <input type=\"radio\" name=\"pickup-time\" data-slot-key=\"slotUnknown\" data-fee=\"0.00\" class=\"hidden\" checked>\n                                <span class=\"font-medium text-[#374151]\" data-i18n=\"slotUnknown\">I don't know yet<\/span>\n                                <span class=\"ml-auto text-sm text-[#4B5563]\" data-i18n=\"free\">Free<\/span>\n                            <\/label>\n                        <\/div>\n\n                        <!-- DROP-OFF -->\n                        <div class=\"space-y-3 p-4 bg-white rounded-xl shadow\">\n                            <h3 class=\"text-lg font-semibold text-[#4B5563]\" data-i18n=\"dropoffTitle\">Drop-Off Time Slot:<\/h3>\n                             <label class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\">\n                                <input type=\"radio\" name=\"dropoff-time\" data-slot-key=\"slotEarly\" data-fee=\"90.00\" class=\"hidden\">\n                                <span class=\"font-medium text-[#374151]\" data-i18n=\"slotEarly\">M \u2013 S 06:00\u201309:00<\/span>\n                                <span class=\"ml-auto text-sm text-[#4B5563]\">\u20ac90<\/span>\n                            <\/label>\n                             <label class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\">\n                                <input type=\"radio\" name=\"dropoff-time\" data-slot-key=\"slotDay\" data-fee=\"0.00\" class=\"hidden\">\n                                <span class=\"font-medium text-[#374151]\" data-i18n=\"slotDay\">M \u2013 S 09:00\u201318:00<\/span>\n                                <span class=\"ml-auto text-sm text-[#4B5563]\" data-i18n=\"free\">Free<\/span>\n                            <\/label>\n                            <label class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\">\n                                <input type=\"radio\" name=\"dropoff-time\" data-slot-key=\"slotLate\" data-fee=\"90.00\" class=\"hidden\">\n                                <span class=\"font-medium text-[#374151]\" data-i18n=\"slotLate\">M \u2013 S 18:00\u201324:00<\/span>\n                                <span class=\"ml-auto text-sm text-[#4B5563]\">\u20ac90<\/span>\n                            <\/label>\n                             <label class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\">\n                                <input type=\"radio\" name=\"dropoff-time\" data-slot-key=\"slotSunday\" data-fee=\"90.00\" class=\"hidden\">\n                                <span class=\"font-medium text-[#374151]\" data-i18n=\"slotSunday\">Sunday & Public Holidays<\/span>\n                                <span class=\"ml-auto text-sm text-[#4B5563]\">\u20ac90<\/span>\n                            <\/label>\n                            <label class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\">\n                                <input type=\"radio\" name=\"dropoff-time\" data-slot-key=\"slotUnknown\" data-fee=\"0.00\" class=\"hidden\" checked>\n                                <span class=\"font-medium text-[#374151]\" data-i18n=\"slotUnknown\">I don't know yet<\/span>\n                                <span class=\"ml-auto text-sm text-[#4B5563]\" data-i18n=\"free\">Free<\/span>\n                            <\/label>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"space-y-4\">\n                    <h2 class=\"text-xl md:text-2xl font-bold text-[#374151]\" data-i18n=\"step3Title\">3. Your Kilometers<\/h2>\n                    <p class=\"text-sm font-medium text-gray-500\">\n                        <span data-i18n=\"kmsIncludedPrefix\">Your rental includes<\/span> <span id=\"included-kms\">0<\/span> <span data-i18n=\"kmsIncludedSuffix\">km for your trip (100 km per day).<\/span>\n                    <\/p>\n                    <div class=\"space-y-3\">\n                        <label class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\">\n                            <input type=\"radio\" name=\"km-option\" id=\"unlimitedkm-radio\" data-cost=\"28\" data-type=\"per-day\" class=\"hidden\">\n                            <span class=\"font-medium text-[#374151]\" data-i18n=\"unlimitedKm\">Unlimited kms<\/span>\n                            <span class=\"ml-auto text-sm text-[#4B5563]\">28\u20ac\/day<\/span>\n                        <\/label>\n                        <div class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\">\n                             <label for=\"extra-kms-radio\" class=\"flex items-center w-full cursor-pointer\">\n                                <input type=\"radio\" name=\"km-option\" id=\"extra-kms-radio\" class=\"hidden\" checked>\n                                <span class=\"font-medium text-[#374151]\" data-i18n=\"extraKmOption\">Add extra kms (300km block)<\/span>\n                                <div class=\"ml-auto flex items-center space-x-2\">\n                                    <span class=\"text-sm text-[#4B5563]\">50\u20ac\/block<\/span>\n                                    <input type=\"number\" id=\"extra-kms-count\" value=\"0\" min=\"0\" class=\"w-16 p-2 rounded-lg text-center bg-white border border-gray-300 focus:outline-none focus:ring-2 focus:ring-[#FDE047]\">\n                                <\/div>\n                            <\/label>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"space-y-4\" id=\"optional-extras-container\">\n                    <h2 class=\"text-xl md:text-2xl font-bold text-[#374151]\" data-i18n=\"step4Title\">4. Add Optional Extras<\/h2>\n\n                    <h3 class=\"text-lg font-semibold text-[#4B5563]\" data-i18n=\"specialPackages\">Special Packages<\/h3>\n                    <label class=\"flex items-start p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\" data-vans=\"Duncan545,Duncan500,Sunlight I68,Etrusco A7300DB,Davis 590\">\n                        <input type=\"checkbox\" id=\"beach-package\" data-cost=\"150\" data-type=\"flat\" class=\"mt-1 hidden\">\n                        <div class=\"flex flex-col flex-grow\">\n                            <span class=\"font-medium text-[#374151]\" data-i18n=\"beachPackageName\">Beach Package<\/span>\n                            <span class=\"text-xs text-gray-500\" data-i18n=\"beachPackageDesc\">1x SUP, 2 beach towels, camping set, ground-fixable sun umbrella, cooler box with ice pack<\/span>\n                        <\/div>\n                        <span class=\"ml-auto text-sm text-[#4B5563]\">\u20ac150<\/span>\n                    <\/label>\n                    <label class=\"flex items-start p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\" data-vans=\"Duncan545,Duncan500,Sunlight I68,Etrusco A7300DB,Davis 590\">\n                        <input type=\"checkbox\" id=\"trekking-package\" data-cost=\"150\" data-type=\"flat\" class=\"mt-1 hidden\">\n                        <div class=\"flex flex-col flex-grow\">\n                            <span class=\"font-medium text-[#374151]\" data-i18n=\"trekkingPackageName\">Trekking Package<\/span>\n                            <span class=\"text-xs text-gray-500\"><span data-i18n=\"trekkingPackageDescPrefix\">Includes: 2 bicycles, <\/span><span id=\"trekking-details\">bike rack, <\/span><span data-i18n=\"trekkingPackageDescSuffix\">2 bicycle bottles (gift), 2 beach towels, camping set<\/span><\/span>\n                        <\/div>\n                        <span class=\"ml-auto text-sm text-[#4B5563]\">\u20ac150<\/span>\n                    <\/label>\n\n                    <h3 class=\"text-lg font-semibold text-[#4B5563] mt-6\" data-i18n=\"individualItems\">Individual Items<\/h3>\n\n                    <label class=\"flex items-start p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\" data-vans=\"Duncan545,Duncan500,Sunlight I68,Etrusco A7300DB,Davis 590\">\n                        <input type=\"checkbox\" id=\"towel-set\" data-type=\"rent\" data-cost=\"20\" class=\"mt-1 hidden\">\n                        <div class=\"flex flex-col flex-grow\">\n                            <span class=\"font-medium text-[#374151]\"><span data-i18n=\"towelSet\">Towel set<\/span> (<span id=\"towel-set-desc\">1 large, 1 small\/person<\/span>)<\/span>\n                        <\/div>\n                        <span class=\"ml-auto text-sm text-[#4B5563]\"><span id=\"towel-set-price\">20\u20ac<\/span> <span data-i18n=\"rentSuffix\">\/rent<\/span><\/span>\n                    <\/label>\n\n                    <label class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\" data-vans=\"Duncan545,Duncan500,Sunlight I68,Etrusco A7300DB,Davis 590\">\n                        <input type=\"checkbox\" id=\"bedding-set\" data-type=\"rent\" data-cost=\"35\" class=\"hidden\">\n                        <span class=\"font-medium text-[#374151]\" data-i18n=\"beddingSet\">Bedding set<\/span>\n                        <span class=\"ml-auto text-sm text-[#4B5563]\"><span id=\"bedding-set-price\">35\u20ac<\/span> <span data-i18n=\"rentSuffix\">\/rent<\/span><\/span>\n                    <\/label>\n\n                    <label class=\"flex items-start p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\" data-vans=\"Duncan545,Duncan500,Sunlight I68,Etrusco A7300DB,Davis 590\">\n                        <input type=\"checkbox\" id=\"kitchen-set\" data-cost=\"0\" data-type=\"flat\" class=\"mt-1 hidden\">\n                        <div class=\"flex flex-col flex-grow\">\n                            <span class=\"font-medium text-[#374151]\" data-i18n=\"kitchenSet\">Kitchen set<\/span>\n                            <span class=\"text-xs text-gray-500\" data-i18n=\"kitchenSetDesc\">Includes cutlery, 2 pots, 1 frying pan, 3 types of plates, glasses, kitchen towel, dish sponge, dish soap<\/span>\n                        <\/div>\n                        <span class=\"ml-auto text-sm text-[#4B5563]\" data-i18n=\"free\">Free<\/span>\n                    <\/label>\n\n                    <label class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\" data-vans=\"Duncan545,Duncan500,Sunlight I68,Etrusco A7300DB,Davis 590\">\n                        <input type=\"checkbox\" id=\"child-seat\" data-cost=\"0\" data-type=\"flat\" class=\"hidden\">\n                        <span class=\"font-medium text-[#374151]\" data-i18n=\"childSeat\">Child seat<\/span>\n                        <span class=\"ml-auto text-sm text-[#4B5563]\" data-i18n=\"free\">Free<\/span>\n                    <\/label>\n\n                    <div class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\" data-vans=\"Duncan545,Duncan500,Sunlight I68,Etrusco A7300DB,Davis 590\">\n                        <label for=\"toilet-tablets\" class=\"flex items-center w-full cursor-pointer\">\n                            <input type=\"checkbox\" id=\"toilet-tablets\" data-cost=\"2\" data-type=\"piece\" class=\"hidden\">\n                            <span class=\"font-medium text-[#374151]\" data-i18n=\"toiletTablets\">Extra toilet tablets for camping WC<\/span>\n                            <div class=\"ml-auto flex items-center space-x-2\">\n                                <span class=\"text-sm text-[#4B5563]\">2<span data-i18n=\"perPiece\">\u20ac\/piece<\/span><\/span>\n                                <input type=\"number\" id=\"toilet-tablets-count\" value=\"0\" min=\"0\" class=\"w-16 p-2 rounded-lg text-center bg-white border border-gray-300 focus:outline-none focus:ring-2 focus:ring-[#FDE047] z-10\" onclick=\"event.stopPropagation()\">\n                            <\/div>\n                        <\/label>\n                    <\/div>\n\n                    <label class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\" data-vans=\"Duncan545,Duncan500,Davis 590\">\n                        <input type=\"checkbox\" id=\"bike-rack\" data-cost=\"15\" data-type=\"day\" data-max-cost=\"60\" class=\"hidden\">\n                        <span class=\"font-medium text-[#374151]\" data-i18n=\"bikeRack\">Bike rack<\/span>\n                        <span class=\"ml-auto text-sm text-[#4B5563]\" data-i18n=\"bikeRackPrice\">15\u20ac \/day (max 60\u20ac)<\/span>\n                    <\/label>\n\n                    <div class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\" data-vans=\"Duncan545,Duncan500,Sunlight I68,Etrusco A7300DB,Davis 590\">\n                        <label for=\"e-bike\" class=\"flex items-center w-full cursor-pointer\">\n                            <input type=\"checkbox\" id=\"e-bike\" data-cost=\"30\" data-type=\"qty-day\" class=\"hidden\">\n                            <span class=\"font-medium text-[#374151]\" data-i18n=\"ebike\">E-bike<\/span>\n                            <div class=\"ml-auto flex items-center space-x-2\">\n                                <span class=\"text-sm text-[#4B5563]\" data-i18n=\"ebikePrice\">30\u20ac \/day<\/span>\n                                <input type=\"number\" id=\"e-bike-count\" value=\"1\" min=\"1\" class=\"w-16 p-2 rounded-lg text-center bg-white border border-gray-300 focus:outline-none focus:ring-2 focus:ring-[#FDE047] z-10\" onclick=\"event.stopPropagation()\">\n                            <\/div>\n                        <\/label>\n                    <\/div>\n\n                    <div class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\" data-vans=\"Duncan545,Duncan500,Sunlight I68,Etrusco A7300DB,Davis 590\">\n                        <label for=\"bicycle\" class=\"flex items-center w-full cursor-pointer\">\n                            <input type=\"checkbox\" id=\"bicycle\" data-cost=\"10\" data-type=\"qty-day\" data-max-cost=\"50\" class=\"hidden\">\n                            <span class=\"font-medium text-[#374151]\" data-i18n=\"bicycle\">Bicycle<\/span>\n                            <div class=\"ml-auto flex items-center space-x-2\">\n                                <span class=\"text-sm text-[#4B5563]\" data-i18n=\"bicyclePrice\">10\u20ac \/day (max 50\u20ac)<\/span>\n                                <input type=\"number\" id=\"bicycle-count\" value=\"1\" min=\"1\" class=\"w-16 p-2 rounded-lg text-center bg-white border border-gray-300 focus:outline-none focus:ring-2 focus:ring-[#FDE047] z-10\" onclick=\"event.stopPropagation()\">\n                            <\/div>\n                        <\/label>\n                    <\/div>\n\n                    <label class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\" data-vans=\"Duncan545,Duncan500,Sunlight I68,Etrusco A7300DB,Davis 590\">\n                        <input type=\"checkbox\" id=\"sup\" data-cost=\"100\" data-type=\"rent\" class=\"hidden\">\n                        <span class=\"font-medium text-[#374151]\" data-i18n=\"sup\">SUP (Stand-Up Paddleboard)<\/span>\n                        <span class=\"ml-auto text-sm text-[#4B5563]\" data-i18n=\"supPrice\">100\u20ac \/rent<\/span>\n                    <\/label>\n\n                    <label class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\" data-vans=\"Duncan545,Duncan500,Davis 590\">\n                        <input type=\"checkbox\" id=\"extra-gas-bottle\" data-cost=\"27.90\" data-type=\"flat\" class=\"hidden\">\n                        <span class=\"font-medium text-[#374151]\" data-i18n=\"gasBottle\">Extra gas bottle (2.75 kg)<\/span>\n                        <span class=\"ml-auto text-sm text-[#4B5563]\">27,90\u20ac<\/span>\n                    <\/label>\n\n                    <label class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\" data-vans=\"Duncan545,Duncan500,Sunlight I68,Etrusco A7300DB,Davis 590\">\n                        <input type=\"checkbox\" id=\"camping-set\" data-cost=\"25.90\" data-type=\"flat\" class=\"hidden\">\n                        <span class=\"font-medium text-[#374151]\" data-i18n=\"campingSet\">Camping set (table + chairs)<\/span>\n                        <span class=\"ml-auto text-sm text-[#4B5563]\">25,90\u20ac<\/span>\n                    <\/label>\n\n                    <label class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\" data-vans=\"Duncan545,Duncan500,Davis 590\">\n                        <input type=\"checkbox\" id=\"pet-fee\" data-cost=\"100\" data-type=\"trip\" class=\"hidden\">\n                        <span class=\"font-medium text-[#374151]\" data-i18n=\"petFee\">Pet fee (max 15kg)<\/span>\n                        <span class=\"ml-auto text-sm text-[#4B5563]\" data-i18n=\"petFeePrice\">100\u20ac \/trip<\/span>\n                    <\/label>\n\n                    <label class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\" data-vans=\"Duncan500\">\n                        <input type=\"checkbox\" id=\"portable-toilet\" data-cost=\"40\" data-type=\"trip\" class=\"hidden\">\n                        <span class=\"font-medium text-[#374151]\" data-i18n=\"portableToilet\">Portable toilet<\/span>\n                        <span class=\"ml-auto text-sm text-[#4B5563]\" data-i18n=\"portableToiletPrice\">40\u20ac \/trip<\/span>\n                    <\/label>\n\n                    <label class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\" data-vans=\"Sunlight I68,Etrusco A7300DB\">\n                        <input type=\"checkbox\" id=\"portable-barbecue-grill\" data-cost=\"80\" data-type=\"trip\" class=\"hidden\">\n                        <span class=\"font-medium text-[#374151]\" data-i18n=\"bbqGrill\">Portable barbecue grill<\/span>\n                        <span class=\"ml-auto text-sm text-[#4B5563]\" data-i18n=\"bbqGrillPrice\">80\u20ac \/trip<\/span>\n                    <\/label>\n                <\/div>\n\n                <div class=\"space-y-4\">\n                    <h2 class=\"text-xl md:text-2xl font-bold text-[#374151]\" data-i18n=\"step5Title\">5. Choose Your Coverage Plan<\/h2>\n                    <div class=\"space-y-3\">\n                        <label class=\"flex items-center p-4 bg-gray-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-2 has-[:checked]:ring-gray-300\" id=\"basic-coverage-label\">\n                            <input type=\"radio\" name=\"coverage-plan\" value=\"Basic Coverage Plan\" data-plan=\"basic\" data-cost=\"0\" data-deposit=\"2000\" class=\"hidden\" checked>\n                            <div class=\"flex flex-col\">\n                                <span class=\"font-medium text-[#374151]\" data-i18n=\"basicPlanName\">Basic Coverage Plan<\/span>\n                                <span class=\"text-xs text-gray-500\" data-i18n=\"basicPlanDesc\">Includes mandatory insurance.<\/span>\n                            <\/div>\n                            <div class=\"ml-auto text-right\">\n                                <span class=\"text-sm font-bold text-[#4B5563]\" data-i18n=\"free\">Free<\/span>\n                                <span id=\"basic-deposit-label\" class=\"block text-xs text-gray-600 font-semibold\">2000\u20ac Deposit<\/span>\n                            <\/div>\n                        <\/label>\n                        <label class=\"flex items-center p-4 bg-green-50 rounded-xl cursor-pointer shadow-md transition-all duration-300 hover:shadow-xl has-[:checked]:ring-4 has-[:checked]:ring-green-300\" id=\"premium-coverage-label\">\n                            <input type=\"radio\" name=\"coverage-plan\" value=\"Premium Reduction Plan\" data-plan=\"premium\" data-cost=\"29.90\" data-type=\"per-day\" data-deposit=\"500\" class=\"hidden\">\n                            <div class=\"flex flex-col\">\n                                <span class=\"font-medium text-[#374151]\" data-i18n=\"premiumPlanName\">Premium Reduction Plan<\/span>\n                                <span class=\"text-xs text-gray-500\" data-i18n=\"premiumPlanDesc\">Reduces your liability and required deposit.<\/span>\n                            <\/div>\n                            <div class=\"ml-auto text-right\">\n                                <span class=\"text-sm font-bold text-[#4B5563]\">29,90\u20ac <span data-i18n=\"perDay\">\/day<\/span><\/span>\n                                <span class=\"block text-xs text-green-600 font-semibold\">500\u20ac <span data-i18n=\"depositSuffix\">Deposit<\/span><\/span>\n                            <\/div>\n                        <\/label>\n                    <\/div>\n                    <p class=\"text-center font-bold text-sm text-[#374151] pt-2\">\n                        <span data-i18n=\"requiredDeposit\">Required Security Deposit:<\/span> <span id=\"deposit-text-value\" class=\"text-gray-600\">1000,00\u20ac<\/span>\n                    <\/p>\n                <\/div>\n            <\/section>\n\n            <section id=\"estimate-section\" class=\"bg-gray-50 p-6 md:p-8 rounded-2xl shadow-inner space-y-6\">\n                <h2 class=\"text-xl md:text-2xl font-bold text-center text-[#374151]\" data-i18n=\"yourEstimate\">Your Estimate<\/h2>\n                 <div class=\"space-y-4\">\n                    <label for=\"passengers\" class=\"text-lg font-bold text-[#374151]\" data-i18n=\"numberOfPassengers\">Number of Passengers<\/label>\n                    <input type=\"number\" id=\"passengers\" value=\"1\" min=\"1\" class=\"w-full p-4 border border-gray-300 rounded-xl focus:ring-2 focus:ring-[#FDE047] focus:border-transparent transition-colors\">\n                <\/div>\n                <div id=\"breakdown\" class=\"text-sm text-[#4B5563] space-y-2\">\n                    <div class=\"flex justify-between\">\n                        <span><span data-i18n=\"vanRentalPrefix\">Van Rental (<\/span><span id=\"selected-van-text\">Duncan545<\/span><span data-i18n=\"vanRentalMid\">, <\/span><span id=\"days-breakdown-text\">0<\/span><span data-i18n=\"vanRentalSuffix\"> days)<\/span><\/span>\n                        <span id=\"van-cost\">0.00 \u20ac<\/span>\n                    <\/div>\n                    <div class=\"flex justify-between\">\n                        <span data-i18n=\"optionalExtras\">Optional Extras<\/span>\n                        <span id=\"extras-cost\">0.00 \u20ac<\/span>\n                    <\/div>\n                <\/div>\n                <div class=\"border-t border-gray-200 pt-4 mt-4 text-center\">\n                    <div class=\"flex justify-between items-center\">\n                        <span class=\"text-xl md:text-2xl font-bold text-[#374151]\" data-i18n=\"totalEstimate\">Total Estimate (Gross)<\/span>\n                        <span id=\"total-cost\" class=\"text-3xl md:text-4xl font-extrabold text-[#FDE047]\">0.00 \u20ac<\/span>\n                    <\/div>\n                <\/div>\n\n            <\/section>\n        <\/main>\n\n        <p class=\"text-sm text-center text-gray-500 mt-6 no-print\" data-i18n=\"disclaimer\">Send your inquiry without obligation. We will get back to you, once we confirm availability, we\u2019ll ask for a 30% deposit to finalise your reservation.<\/p>\n        <div class=\"flex flex-col md:flex-row justify-center items-center gap-4 mt-4 no-print\">\n            <button id=\"export-pdf-btn\" class=\"px-6 py-3 bg-[#4B5563] text-white font-bold rounded-full shadow-lg transition-all duration-300 hover:bg-[#374151] hover:shadow-xl\" data-i18n=\"downloadPdf\">\n                Download PDF Estimate\n            <\/button>\n            <button id=\"send-inquiry-btn\" class=\"px-6 py-3 bg-[#FDE047] text-[#374151] font-bold rounded-full shadow-lg transition-all duration-300 hover:bg-[#FCD34D] hover:shadow-xl\" data-i18n=\"sendInquiry\">\n                Send Inquiry\n            <\/button>\n        <\/div>\n        <p id=\"status-message\" class=\"mt-4 text-center text-sm text-gray-500 hidden\"><\/p>\n    <\/div>\n\n    <script>\n        \/\/ ============================================================\n        \/\/ TRANSLATION DICTIONARY (EN \/ ES \/ HU)\n        \/\/ Add a new language by copying one block and translating it.\n        \/\/ ============================================================\n        const I18N = {\n            en: {\n                heroTitle: \"Your Campervan Adventure Awaits\",\n                heroSubtitle: \"Ready to hit the road? Use our instant price calculator to build your perfect trip and get a transparent estimate in seconds.\",\n                step1Title: \"1. Choose Your Van\",\n                pricesGross: \"Prices shown are gross (incl. VAT).\",\n                vanPrices: {\n                    duncan545: \"75\u20ac-85\u20ac\/day gross\",\n                    duncan500: \"65\u20ac-75\u20ac\/day gross\",\n                    davis590: \"87\u20ac-96\u20ac\/day gross\",\n                    sunlighti68: \"125\u20ac-148\u20ac\/day gross\",\n                    etruscoa7300db: \"110\u20ac-128\u20ac\/day gross\"\n                },\n                step2Title: \"2. Select Your Dates\",\n                seasonInfoDuncan: \"Duncan\/Davis: Low Season: 16.10. \u2013 31.05. | High Season: 01.06. \u2013 15.10.\",\n                seasonInfoSunlight: \"Sunlight\/Etrusco: Low Season: 16.09. \u2013 31.05. (Min 5 days) | High Season: 01.06. \u2013 15.09. (Min 7 days)\",\n                startDate: \"Start Date\",\n                endDate: \"End Date\",\n                totalDays: \"Total Days:\",\n                minRentalError: (n) => `Minimum rental period is ${n} days.`,\n                pickupDropoffTitle: \"Select your pick up and drop off hours\",\n                pickupDropoffHint: \"Fees depend on the day type (M-S or Sunday\/Holiday) and the time slot you select.\",\n                pickupTitle: \"Pick-Up Time Slot:\",\n                dropoffTitle: \"Drop-Off Time Slot:\",\n                slotEarly: \"M \u2013 S 06:00\u201309:00\",\n                slotDay: \"M \u2013 S 09:00\u201318:00\",\n                slotLate: \"M \u2013 S 18:00\u201324:00\",\n                slotSunday: \"Sunday & Public Holidays\",\n                slotUnknown: \"I don't know yet\",\n                free: \"Free\",\n                step3Title: \"3. Your Kilometers\",\n                kmsIncludedPrefix: \"Your rental includes\",\n                kmsIncludedSuffix: \"km for your trip (100 km per day).\",\n                unlimitedKm: \"Unlimited kms\",\n                extraKmOption: \"Add extra kms (300km block)\",\n                step4Title: \"4. Add Optional Extras\",\n                specialPackages: \"Special Packages\",\n                beachPackageName: \"Beach Package\",\n                beachPackageDesc: \"1x SUP, 2 beach towels, camping set, ground-fixable sun umbrella, cooler box with ice pack\",\n                trekkingPackageName: \"Trekking Package\",\n                trekkingPackageDescPrefix: \"Includes: 2 bicycles, \",\n                trekkingPackageDescBikeRack: \"bike rack, \",\n                trekkingPackageDescSuffix: \"2 bicycle bottles (gift), 2 beach towels, camping set\",\n                individualItems: \"Individual Items\",\n                towelSet: \"Towel set\",\n                towelSetDescSmall: \"1 large, 1 small\/person\",\n                towelSetDescGeneral: \"General set\",\n                rentSuffix: \"\/rent\",\n                beddingSet: \"Bedding set\",\n                kitchenSet: \"Kitchen set\",\n                kitchenSetDesc: \"Includes cutlery, 2 pots, 1 frying pan, 3 types of plates, glasses, kitchen towel, dish sponge, dish soap\",\n                childSeat: \"Child seat\",\n                toiletTablets: \"Extra toilet tablets for camping WC\",\n                perPiece: \"\u20ac\/piece\",\n                pcsSuffix: \"pcs\",\n                bikeRack: \"Bike rack\",\n                bikeRackPrice: \"15\u20ac \/day (max 60\u20ac)\",\n                ebike: \"E-bike\",\n                ebikePrice: \"30\u20ac \/day\",\n                bicycle: \"Bicycle\",\n                bicyclePrice: \"10\u20ac \/day (max 50\u20ac)\",\n                sup: \"SUP (Stand-Up Paddleboard)\",\n                supPrice: \"100\u20ac \/rent\",\n                gasBottle: \"Extra gas bottle (2.75 kg)\",\n                campingSet: \"Camping set (table + chairs)\",\n                petFee: \"Pet fee (max 15kg)\",\n                petFeePrice: \"100\u20ac \/trip\",\n                portableToilet: \"Portable toilet\",\n                portableToiletPrice: \"40\u20ac \/trip\",\n                bbqGrill: \"Portable barbecue grill\",\n                bbqGrillPrice: \"80\u20ac \/trip\",\n                step5Title: \"5. Choose Your Coverage Plan\",\n                basicPlanName: \"Basic Coverage Plan\",\n                basicPlanDesc: \"Includes mandatory insurance.\",\n                premiumPlanName: \"Premium Reduction Plan\",\n                premiumPlanDesc: \"Reduces your liability and required deposit.\",\n                depositSuffix: \"Deposit\",\n                perDay: \"\/day\",\n                requiredDeposit: \"Required Security Deposit:\",\n                yourEstimate: \"Your Estimate\",\n                numberOfPassengers: \"Number of Passengers\",\n                vanRentalPrefix: \"Van Rental (\",\n                vanRentalMid: \", \",\n                vanRentalSuffix: \" days)\",\n                vanRentalWord: \"Van Rental\",\n                optionalExtras: \"Optional Extras\",\n                totalEstimate: \"Total Estimate (Gross)\",\n                disclaimer: \"Send your inquiry without obligation. We will get back to you, once we confirm availability, we\u2019ll ask for a 30% deposit to finalise your reservation.\",\n                downloadPdf: \"Download PDF Estimate\",\n                sendInquiry: \"Send Inquiry\",\n                scrollDown: \"Scroll down to complete your inquiry form!\",\n                handlingFee: \"Handling Fee\",\n                cleaningFee: \"Cleaning Fee\",\n                pickupFeeLabel: (slot) => `Pick-up Fee (${slot})`,\n                dropoffFeeLabel: (slot) => `Drop-off Fee (${slot})`,\n                extraKmsLabel: (n) => `Extra Kms (${n} x 300km)`,\n                unlimitedKmsLabel: \"Unlimited Kms\",\n                coverageLabel: (plan) => `Coverage: ${plan}`,\n                longTermDiscount: (n) => `Long-Term Discount (${n} free days)`,\n                pdfTitle: \"Campervan Rental Estimate\",\n                pdfGeneratedOn: \"Generated on:\",\n                pdfRental: (s, e, d) => `Rental: ${s} to ${e} (${d} Days)`,\n                pdfVanPax: (v, p) => `Van: ${v} | Passengers: ${p}`,\n                pdfDescCol: \"Description\",\n                pdfCostCol: \"Cost (Gross)\",\n                pdfBaseFee: \"Base Rental Fee\",\n                pdfTotalEstimate: (v) => `Total Estimate: ${v}`,\n                pdfDeposit: (v) => `Required Security Deposit: ${v}`,\n                pdfValidNote: \"Estimate valid for 30 days\"\n            },\n            es: {\n                heroTitle: \"Tu aventura en autocaravana te espera\",\n                heroSubtitle: \"\u00bfListo para la carretera? Usa nuestra calculadora instant\u00e1nea para planear tu viaje perfecto y obtener un presupuesto transparente en segundos.\",\n                step1Title: \"1. Elige tu veh\u00edculo\",\n                pricesGross: \"Los precios mostrados son brutos (IVA incluido).\",\n                vanPrices: {\n                    duncan545: \"75\u20ac-85\u20ac\/d\u00eda bruto\",\n                    duncan500: \"65\u20ac-75\u20ac\/d\u00eda bruto\",\n                    davis590: \"87\u20ac-96\u20ac\/d\u00eda bruto\",\n                    sunlighti68: \"125\u20ac-148\u20ac\/d\u00eda bruto\",\n                    etruscoa7300db: \"110\u20ac-128\u20ac\/d\u00eda bruto\"\n                },\n                step2Title: \"2. Selecciona tus fechas\",\n                seasonInfoDuncan: \"Duncan\/Davis: Temporada baja: 16.10. \u2013 31.05. | Temporada alta: 01.06. \u2013 15.10.\",\n                seasonInfoSunlight: \"Sunlight\/Etrusco: Temporada baja: 16.09. \u2013 31.05. (M\u00edn. 5 d\u00edas) | Temporada alta: 01.06. \u2013 15.09. (M\u00edn. 7 d\u00edas)\",\n                startDate: \"Fecha de inicio\",\n                endDate: \"Fecha de fin\",\n                totalDays: \"D\u00edas totales:\",\n                minRentalError: (n) => `El per\u00edodo m\u00ednimo de alquiler es de ${n} d\u00edas.`,\n                pickupDropoffTitle: \"Selecciona tu horario de recogida y devoluci\u00f3n\",\n                pickupDropoffHint: \"Las tarifas dependen del tipo de d\u00eda (L-S o domingo\/festivo) y de la franja horaria que elijas.\",\n                pickupTitle: \"Franja horaria de recogida:\",\n                dropoffTitle: \"Franja horaria de devoluci\u00f3n:\",\n                slotEarly: \"L \u2013 S 06:00\u201309:00\",\n                slotDay: \"L \u2013 S 09:00\u201318:00\",\n                slotLate: \"L \u2013 S 18:00\u201324:00\",\n                slotSunday: \"Domingos y festivos\",\n                slotUnknown: \"A\u00fan no lo s\u00e9\",\n                free: \"Gratis\",\n                step3Title: \"3. Tus kil\u00f3metros\",\n                kmsIncludedPrefix: \"Tu alquiler incluye\",\n                kmsIncludedSuffix: \"km para tu viaje (100 km por d\u00eda).\",\n                unlimitedKm: \"Kil\u00f3metros ilimitados\",\n                extraKmOption: \"A\u00f1adir km extra (bloque de 300 km)\",\n                step4Title: \"4. A\u00f1ade extras opcionales\",\n                specialPackages: \"Packs especiales\",\n                beachPackageName: \"Pack Playa\",\n                beachPackageDesc: \"1x SUP, 2 toallas de playa, kit de camping, sombrilla fijable al suelo, nevera port\u00e1til con placa de hielo\",\n                trekkingPackageName: \"Pack Trekking\",\n                trekkingPackageDescPrefix: \"Incluye: 2 bicicletas, \",\n                trekkingPackageDescBikeRack: \"portabicicletas, \",\n                trekkingPackageDescSuffix: \"2 botellas para bici (regalo), 2 toallas de playa, kit de camping\",\n                individualItems: \"Art\u00edculos individuales\",\n                towelSet: \"Set de toallas\",\n                towelSetDescSmall: \"1 grande, 1 peque\u00f1a\/persona\",\n                towelSetDescGeneral: \"Set general\",\n                rentSuffix: \"\/alquiler\",\n                beddingSet: \"Set de ropa de cama\",\n                kitchenSet: \"Kit de cocina\",\n                kitchenSetDesc: \"Incluye cubiertos, 2 ollas, 1 sart\u00e9n, 3 tipos de platos, vasos, pa\u00f1o de cocina, esponja y jab\u00f3n lavavajillas\",\n                childSeat: \"Silla infantil\",\n                toiletTablets: \"Pastillas extra para el WC de camping\",\n                perPiece: \"\u20ac\/unidad\",\n                pcsSuffix: \"uds\",\n                bikeRack: \"Portabicicletas\",\n                bikeRackPrice: \"15\u20ac \/d\u00eda (m\u00e1x. 60\u20ac)\",\n                ebike: \"Bicicleta el\u00e9ctrica\",\n                ebikePrice: \"30\u20ac \/d\u00eda\",\n                bicycle: \"Bicicleta\",\n                bicyclePrice: \"10\u20ac \/d\u00eda (m\u00e1x. 50\u20ac)\",\n                sup: \"SUP (tabla de remo)\",\n                supPrice: \"100\u20ac \/alquiler\",\n                gasBottle: \"Bombona de gas extra (2,75 kg)\",\n                campingSet: \"Kit de camping (mesa + sillas)\",\n                petFee: \"Tarifa mascota (m\u00e1x. 15 kg)\",\n                petFeePrice: \"100\u20ac \/viaje\",\n                portableToilet: \"V\u00e1ter port\u00e1til\",\n                portableToiletPrice: \"40\u20ac \/viaje\",\n                bbqGrill: \"Barbacoa port\u00e1til\",\n                bbqGrillPrice: \"80\u20ac \/viaje\",\n                step5Title: \"5. Elige tu plan de cobertura\",\n                basicPlanName: \"Plan de cobertura b\u00e1sica\",\n                basicPlanDesc: \"Incluye el seguro obligatorio.\",\n                premiumPlanName: \"Plan de reducci\u00f3n premium\",\n                premiumPlanDesc: \"Reduce tu responsabilidad y la fianza requerida.\",\n                depositSuffix: \"Fianza\",\n                perDay: \"\/d\u00eda\",\n                requiredDeposit: \"Fianza requerida:\",\n                yourEstimate: \"Tu presupuesto\",\n                numberOfPassengers: \"N\u00famero de pasajeros\",\n                vanRentalPrefix: \"Alquiler del veh\u00edculo (\",\n                vanRentalMid: \", \",\n                vanRentalSuffix: \" d\u00edas)\",\n                vanRentalWord: \"Alquiler del veh\u00edculo\",\n                optionalExtras: \"Extras opcionales\",\n                totalEstimate: \"Presupuesto total (bruto)\",\n                disclaimer: \"Env\u00eda tu solicitud sin compromiso. Nos pondremos en contacto contigo y, una vez confirmada la disponibilidad, te pediremos un dep\u00f3sito del 30% para formalizar tu reserva.\",\n                downloadPdf: \"Descargar presupuesto en PDF\",\n                sendInquiry: \"Enviar solicitud\",\n                scrollDown: \"\u00a1Despl\u00e1zate hacia abajo para completar tu formulario de solicitud!\",\n                handlingFee: \"Gastos de gesti\u00f3n\",\n                cleaningFee: \"Gastos de limpieza\",\n                pickupFeeLabel: (slot) => `Tarifa de recogida (${slot})`,\n                dropoffFeeLabel: (slot) => `Tarifa de devoluci\u00f3n (${slot})`,\n                extraKmsLabel: (n) => `Km extra (${n} x 300 km)`,\n                unlimitedKmsLabel: \"Kil\u00f3metros ilimitados\",\n                coverageLabel: (plan) => `Cobertura: ${plan}`,\n                longTermDiscount: (n) => `Descuento larga duraci\u00f3n (${n} d\u00edas gratis)`,\n                pdfTitle: \"Presupuesto de alquiler de autocaravana\",\n                pdfGeneratedOn: \"Generado el:\",\n                pdfRental: (s, e, d) => `Alquiler: ${s} a ${e} (${d} d\u00edas)`,\n                pdfVanPax: (v, p) => `Veh\u00edculo: ${v} | Pasajeros: ${p}`,\n                pdfDescCol: \"Descripci\u00f3n\",\n                pdfCostCol: \"Coste (bruto)\",\n                pdfBaseFee: \"Tarifa base de alquiler\",\n                pdfTotalEstimate: (v) => `Presupuesto total: ${v}`,\n                pdfDeposit: (v) => `Fianza requerida: ${v}`,\n                pdfValidNote: \"Presupuesto v\u00e1lido durante 30 d\u00edas\"\n            },\n            hu: {\n                heroTitle: \"V\u00e1rja \u00d6nt a lak\u00f3aut\u00f3s kaland\",\n                heroSubtitle: \"K\u00e9szen \u00e1ll az \u00fatra? Haszn\u00e1lja azonnali \u00e1rkalkul\u00e1torunkat, hogy megtervezze t\u00f6k\u00e9letes \u00fatj\u00e1t, \u00e9s p\u00e1r m\u00e1sodperc alatt \u00e1tl\u00e1that\u00f3 \u00e1raj\u00e1nlatot kapjon.\",\n                step1Title: \"1. V\u00e1lassza ki a j\u00e1rm\u0171vet\",\n                pricesGross: \"A felt\u00fcntetett \u00e1rak brutt\u00f3 \u00e1rak (\u00c1F\u00c1-val).\",\n                vanPrices: {\n                    duncan545: \"75\u20ac-85\u20ac\/nap brutt\u00f3\",\n                    duncan500: \"65\u20ac-75\u20ac\/nap brutt\u00f3\",\n                    davis590: \"87\u20ac-96\u20ac\/nap brutt\u00f3\",\n                    sunlighti68: \"125\u20ac-148\u20ac\/nap brutt\u00f3\",\n                    etruscoa7300db: \"110\u20ac-128\u20ac\/nap brutt\u00f3\"\n                },\n                step2Title: \"2. V\u00e1lassza ki az id\u0151pontokat\",\n                seasonInfoDuncan: \"Duncan\/Davis: Alacsony szezon: 10.16. \u2013 05.31. | F\u0151szezon: 06.01. \u2013 10.15.\",\n                seasonInfoSunlight: \"Sunlight\/Etrusco: Alacsony szezon: 09.16. \u2013 05.31. (Min. 5 nap) | F\u0151szezon: 06.01. \u2013 09.15. (Min. 7 nap)\",\n                startDate: \"Kezd\u0151 d\u00e1tum\",\n                endDate: \"Z\u00e1r\u00f3 d\u00e1tum\",\n                totalDays: \"Napok sz\u00e1ma \u00f6sszesen:\",\n                minRentalError: (n) => `A minim\u00e1lis b\u00e9rl\u00e9si id\u0151tartam ${n} nap.`,\n                pickupDropoffTitle: \"V\u00e1lassza ki az \u00e1tv\u00e9tel \u00e9s visszaad\u00e1s id\u0151pontj\u00e1t\",\n                pickupDropoffHint: \"A d\u00edjak a nap t\u00edpus\u00e1t\u00f3l (h\u00e9tk\u00f6znap\/szombat vagy vas\u00e1rnap\/\u00fcnnepnap) \u00e9s a kiv\u00e1lasztott id\u0151intervallumt\u00f3l f\u00fcggenek.\",\n                pickupTitle: \"\u00c1tv\u00e9teli id\u0151intervallum:\",\n                dropoffTitle: \"Visszaad\u00e1si id\u0151intervallum:\",\n                slotEarly: \"H \u2013 Szo 06:00\u201309:00\",\n                slotDay: \"H \u2013 Szo 09:00\u201318:00\",\n                slotLate: \"H \u2013 Szo 18:00\u201324:00\",\n                slotSunday: \"Vas\u00e1rnap \u00e9s \u00fcnnepnapok\",\n                slotUnknown: \"M\u00e9g nem tudom\",\n                free: \"Ingyenes\",\n                step3Title: \"3. Kilom\u00e9terek\",\n                kmsIncludedPrefix: \"A b\u00e9rl\u00e9s\",\n                kmsIncludedSuffix: \"km-t tartalmaz az \u00fatj\u00e1hoz (napi 100 km).\",\n                unlimitedKm: \"Korl\u00e1tlan km\",\n                extraKmOption: \"Extra km hozz\u00e1ad\u00e1sa (300 km-es csomag)\",\n                step4Title: \"4. Opcion\u00e1lis extr\u00e1k hozz\u00e1ad\u00e1sa\",\n                specialPackages: \"Speci\u00e1lis csomagok\",\n                beachPackageName: \"Strand csomag\",\n                beachPackageDesc: \"1x SUP, 2 strandt\u00f6r\u00f6lk\u00f6z\u0151, kempingfelszerel\u00e9s, f\u00f6ldbe r\u00f6gz\u00edthet\u0151 naperny\u0151, h\u0171t\u0151l\u00e1da hidegakkuval\",\n                trekkingPackageName: \"Trekking csomag\",\n                trekkingPackageDescPrefix: \"Tartalmaz: 2 ker\u00e9kp\u00e1r, \",\n                trekkingPackageDescBikeRack: \"ker\u00e9kp\u00e1rtart\u00f3, \",\n                trekkingPackageDescSuffix: \"2 ker\u00e9kp\u00e1ros kulacs (aj\u00e1nd\u00e9k), 2 strandt\u00f6r\u00f6lk\u00f6z\u0151, kempingfelszerel\u00e9s\",\n                individualItems: \"Egyedi t\u00e9telek\",\n                towelSet: \"T\u00f6r\u00f6lk\u00f6z\u0151k\u00e9szlet\",\n                towelSetDescSmall: \"1 nagy, 1 kicsi\/f\u0151\",\n                towelSetDescGeneral: \"\u00c1ltal\u00e1nos k\u00e9szlet\",\n                rentSuffix: \"\/b\u00e9rl\u00e9s\",\n                beddingSet: \"\u00c1gynem\u0171k\u00e9szlet\",\n                kitchenSet: \"Konyhai k\u00e9szlet\",\n                kitchenSetDesc: \"Tartalmaz ev\u0151eszk\u00f6z\u00f6ket, 2 fazekat, 1 serpeny\u0151t, 3 f\u00e9le t\u00e1ny\u00e9rt, poharakat, konyharuh\u00e1t, mosogat\u00f3szivacsot \u00e9s mosogat\u00f3szert\",\n                childSeat: \"Gyerek\u00fcl\u00e9s\",\n                toiletTablets: \"Extra tabletta a kemping WC-hez\",\n                perPiece: \"\u20ac\/darab\",\n                pcsSuffix: \"db\",\n                bikeRack: \"Ker\u00e9kp\u00e1rtart\u00f3\",\n                bikeRackPrice: \"15\u20ac \/nap (max. 60\u20ac)\",\n                ebike: \"E-bike\",\n                ebikePrice: \"30\u20ac \/nap\",\n                bicycle: \"Ker\u00e9kp\u00e1r\",\n                bicyclePrice: \"10\u20ac \/nap (max. 50\u20ac)\",\n                sup: \"SUP (\u00e1ll\u00f3sz\u00f6rf)\",\n                supPrice: \"100\u20ac \/b\u00e9rl\u00e9s\",\n                gasBottle: \"Extra g\u00e1zpalack (2,75 kg)\",\n                campingSet: \"Kempingfelszerel\u00e9s (asztal + sz\u00e9kek)\",\n                petFee: \"Kis\u00e1llat d\u00edj (max. 15 kg)\",\n                petFeePrice: \"100\u20ac \/\u00fat\",\n                portableToilet: \"Hordozhat\u00f3 WC\",\n                portableToiletPrice: \"40\u20ac \/\u00fat\",\n                bbqGrill: \"Hordozhat\u00f3 grills\u00fct\u0151\",\n                bbqGrillPrice: \"80\u20ac \/\u00fat\",\n                step5Title: \"5. V\u00e1lassza ki a biztos\u00edt\u00e1si csomagot\",\n                basicPlanName: \"Alap biztos\u00edt\u00e1si csomag\",\n                basicPlanDesc: \"Tartalmazza a k\u00f6telez\u0151 biztos\u00edt\u00e1st.\",\n                premiumPlanName: \"Pr\u00e9mium cs\u00f6kkentett \u00f6nr\u00e9sz csomag\",\n                premiumPlanDesc: \"Cs\u00f6kkenti a felel\u0151ss\u00e9g\u00e9t \u00e9s a sz\u00fcks\u00e9ges kauci\u00f3t.\",\n                depositSuffix: \"Kauci\u00f3\",\n                perDay: \"\/nap\",\n                requiredDeposit: \"Sz\u00fcks\u00e9ges kauci\u00f3:\",\n                yourEstimate: \"Az \u00d6n \u00e1raj\u00e1nlata\",\n                numberOfPassengers: \"Utasok sz\u00e1ma\",\n                vanRentalPrefix: \"J\u00e1rm\u0171 b\u00e9rl\u00e9s (\",\n                vanRentalMid: \", \",\n                vanRentalSuffix: \" nap)\",\n                vanRentalWord: \"J\u00e1rm\u0171 b\u00e9rl\u00e9s\",\n                optionalExtras: \"Opcion\u00e1lis extr\u00e1k\",\n                totalEstimate: \"V\u00e9g\u00f6sszeg (brutt\u00f3)\",\n                disclaimer: \"K\u00fcldje el \u00e9rdekl\u0151d\u00e9s\u00e9t k\u00f6telezetts\u00e9g n\u00e9lk\u00fcl. Felvessz\u00fck \u00d6nnel a kapcsolatot, \u00e9s a rendelkez\u00e9sre \u00e1ll\u00e1s meger\u0151s\u00edt\u00e9se ut\u00e1n a foglal\u00e1s v\u00e9gleges\u00edt\u00e9s\u00e9hez 30%-os el\u0151leget k\u00e9r\u00fcnk.\",\n                downloadPdf: \"\u00c1raj\u00e1nlat let\u00f6lt\u00e9se PDF-ben\",\n                sendInquiry: \"\u00c9rdekl\u0151d\u00e9s k\u00fcld\u00e9se\",\n                scrollDown: \"G\u00f6rgessen lejjebb az \u00e9rdekl\u0151d\u00e9si \u0171rlap kit\u00f6lt\u00e9s\u00e9hez!\",\n                handlingFee: \"Kezel\u00e9si d\u00edj\",\n                cleaningFee: \"Takar\u00edt\u00e1si d\u00edj\",\n                pickupFeeLabel: (slot) => `\u00c1tv\u00e9teli d\u00edj (${slot})`,\n                dropoffFeeLabel: (slot) => `Visszaad\u00e1si d\u00edj (${slot})`,\n                extraKmsLabel: (n) => `Extra km (${n} x 300 km)`,\n                unlimitedKmsLabel: \"Korl\u00e1tlan km\",\n                coverageLabel: (plan) => `Biztos\u00edt\u00e1s: ${plan}`,\n                longTermDiscount: (n) => `Hossz\u00fat\u00e1v\u00fa kedvezm\u00e9ny (${n} ingyenes nap)`,\n                pdfTitle: \"Lak\u00f3aut\u00f3 b\u00e9rl\u00e9si \u00e1raj\u00e1nlat\",\n                pdfGeneratedOn: \"L\u00e9trehozva:\",\n                pdfRental: (s, e, d) => `B\u00e9rl\u00e9s: ${s} \u2013 ${e} (${d} nap)`,\n                pdfVanPax: (v, p) => `J\u00e1rm\u0171: ${v} | Utasok: ${p}`,\n                pdfDescCol: \"Le\u00edr\u00e1s\",\n                pdfCostCol: \"K\u00f6lts\u00e9g (brutt\u00f3)\",\n                pdfBaseFee: \"Alap b\u00e9rleti d\u00edj\",\n                pdfTotalEstimate: (v) => `V\u00e9g\u00f6sszeg: ${v}`,\n                pdfDeposit: (v) => `Sz\u00fcks\u00e9ges kauci\u00f3: ${v}`,\n                pdfValidNote: \"Az \u00e1raj\u00e1nlat 30 napig \u00e9rv\u00e9nyes\"\n            }\n        };\n\n        \/\/ Detect the current WPML language from the page's <html lang=\"...\"> attribute\n        \/\/ (WPML sets this on every translated page, e.g. \"en-GB\", \"es-ES\", \"hu-HU\").\n        \/\/ Falls back to English if the language isn't one we have translations for.\n        function detectLanguage() {\n            const raw = ((document.documentElement && document.documentElement.lang) || 'en').toLowerCase();\n            if (raw.startsWith('es')) return 'es';\n            if (raw.startsWith('hu')) return 'hu';\n            return 'en';\n        }\n        const LANG = detectLanguage();\n        const T = I18N[LANG];\n\n        \/\/ Map of extra-item element IDs to their translation keys, so both the\n        \/\/ on-screen breakdown and the (always-English) inquiry summary can be\n        \/\/ built without depending on already-translated DOM text.\n        const ITEM_KEYS = {\n            'beach-package': 'beachPackageName',\n            'trekking-package': 'trekkingPackageName',\n            'towel-set': 'towelSet',\n            'bedding-set': 'beddingSet',\n            'kitchen-set': 'kitchenSet',\n            'child-seat': 'childSeat',\n            'toilet-tablets': 'toiletTablets',\n            'bike-rack': 'bikeRack',\n            'e-bike': 'ebike',\n            'bicycle': 'bicycle',\n            'sup': 'sup',\n            'extra-gas-bottle': 'gasBottle',\n            'camping-set': 'campingSet',\n            'pet-fee': 'petFee',\n            'portable-toilet': 'portableToilet',\n            'portable-barbecue-grill': 'bbqGrill'\n        };\n\n        function applyStaticTranslations() {\n            document.querySelectorAll('[data-i18n]').forEach(el => {\n                const key = el.dataset.i18n;\n                if (typeof T[key] === 'string') el.textContent = T[key];\n            });\n\n            \/\/ Composite \/ non-simple-string content\n            document.getElementById('season-info').innerHTML = `${T.seasonInfoDuncan}<br>${T.seasonInfoSunlight}`;\n\n            document.getElementById('price-duncan545').textContent = T.vanPrices.duncan545;\n            document.getElementById('price-duncan500').textContent = T.vanPrices.duncan500;\n            document.getElementById('price-davis590').textContent = T.vanPrices.davis590;\n            document.getElementById('price-sunlighti68').textContent = T.vanPrices.sunlighti68;\n            document.getElementById('price-etruscoa7300db').textContent = T.vanPrices.etruscoa7300db;\n\n            document.documentElement.setAttribute('data-widget-lang', LANG);\n        }\n\n        \/\/ --- Helper Function to format numbers ---\n        const formatCurrency = (amount) => {\n            return amount.toFixed(2).replace('.', ',') + ' \u20ac';\n        };\n\n        \/\/ --- Vans that get the reduced 1000 EUR basic deposit ---\n        const REDUCED_DEPOSIT_VANS = ['Duncan500', 'Duncan545', 'Davis 590'];\n\n        \/\/ --- Helper to compute the required deposit for a given van + coverage plan ---\n        const getRequiredDeposit = (vanName, coverageRadio) => {\n            const isBasic = coverageRadio.dataset.plan === 'basic';\n            if (isBasic && REDUCED_DEPOSIT_VANS.includes(vanName)) {\n                return 1000;\n            }\n            return parseFloat(coverageRadio.dataset.deposit);\n        };\n\n        \/\/ --- Helper for Season Determination ---\n        const isHighSeason = (date, vanName) => {\n            const month = date.getMonth();\n            const day = date.getDate();\n            const safeVanName = vanName || \"\";\n            const isDuncanGroup = safeVanName.startsWith('Duncan') || safeVanName === 'Davis 590';\n\n            if (isDuncanGroup) {\n                if (month > 5 && month < 9) return true;\n                if (month === 5 && day >= 1) return true;\n                if (month === 9 && day <= 15) return true;\n            } else {\n                if (month > 5 && month < 8) return true;\n                if (month === 5 && day >= 1) return true;\n                if (month === 8 && day <= 15) return true;\n            }\n            return false;\n        };\n\n        const calculateRentalPeriod = (startDate, endDate, vanName) => {\n            if (startDate.toString() === 'Invalid Date' || endDate.toString() === 'Invalid Date' || endDate < startDate) {\n                return { totalDays: 0, lowDays: 0, highDays: 0 };\n            }\n\n            const oneDay = 1000 * 60 * 60 * 24;\n            const diffDays = Math.round((endDate.getTime() - startDate.getTime()) \/ oneDay);\n            const totalDays = diffDays + 1;\n\n            let lowDays = 0;\n            let highDays = 0;\n            let currentDate = new Date(startDate);\n\n            while (currentDate.getTime() <= endDate.getTime()) {\n                if (isHighSeason(currentDate, vanName)) {\n                    highDays++;\n                } else {\n                    lowDays++;\n                }\n                currentDate.setDate(currentDate.getDate() + 1);\n            }\n            return { totalDays, lowDays, highDays };\n        };\n\n        const calculateDiscountDays = (totalDays, vanName) => {\n            const safeVanName = vanName || \"\";\n            if (safeVanName === 'Sunlight I68' || safeVanName === 'Etrusco A7300DB') return 0;\n            if (totalDays < 7) return 0;\n\n            let freeDays = 0;\n            if (totalDays >= 7 && totalDays < 12) freeDays = 1;\n            if (totalDays >= 12) freeDays = 2;\n            if (totalDays >= 21) {\n                freeDays = 3;\n                const daysAfter21 = totalDays - 21;\n                freeDays += Math.floor(daysAfter21 \/ 7);\n            }\n            return freeDays;\n        }\n\n        \/\/ --- DOM Elements ---\n        const vanRadios = document.querySelectorAll('input[name=\"van\"]');\n        const startDateInput = document.getElementById('start-date');\n        const endDateInput = document.getElementById('end-date');\n        const daysTextSpan = document.getElementById('days-text');\n        const daysBreakdownTextSpan = document.getElementById('days-breakdown-text');\n        const daysErrorMessage = document.getElementById('days-error-message');\n        const optionalItemsContainer = document.getElementById('optional-extras-container');\n        const pickupRadios = document.querySelectorAll('input[name=\"pickup-time\"]');\n        const dropoffRadios = document.querySelectorAll('input[name=\"dropoff-time\"]');\n        const kmOptionRadios = document.querySelectorAll('input[name=\"km-option\"]');\n        const coverageRadios = document.querySelectorAll('input[name=\"coverage-plan\"]');\n        const depositTextValueSpan = document.getElementById('deposit-text-value');\n        const basicDepositLabelSpan = document.getElementById('basic-deposit-label');\n        const breakdownDiv = document.getElementById('breakdown');\n        const vanCostSpan = document.getElementById('van-cost');\n        const extrasCostSpan = document.getElementById('extras-cost');\n        const totalCostSpan = document.getElementById('total-cost');\n        const selectedVanTextSpan = document.getElementById('selected-van-text');\n        const exportPdfBtn = document.getElementById('export-pdf-btn');\n        const sendInquiryBtn = document.getElementById('send-inquiry-btn');\n        const statusMessage = document.getElementById('status-message');\n        const toiletTabletsCountInput = document.getElementById('toilet-tablets-count');\n        const includedKmsSpan = document.getElementById('included-kms');\n        const extraKmsCountInput = document.getElementById('extra-kms-count');\n        const passengersInput = document.getElementById('passengers');\n        const premiumCoverageLabel = document.getElementById('premium-coverage-label');\n\n        function updateOptionalExtras(vanName) {\n            const allExtraContainers = document.querySelectorAll('#optional-extras-container > label, #optional-extras-container > div');\n            const safeVanName = vanName || \"\";\n            const isBigVan = safeVanName === 'Sunlight I68' || safeVanName === 'Etrusco A7300DB';\n\n            const towelSetDescSpan = document.getElementById('towel-set-desc');\n            const towelSetPriceSpan = document.getElementById('towel-set-price');\n            const beddingSetPriceSpan = document.getElementById('bedding-set-price');\n            const trekkingDetailsSpan = document.getElementById('trekking-details');\n            const towelSetInput = document.getElementById('towel-set');\n            const beddingSetInput = document.getElementById('bedding-set');\n\n            if (isBigVan) {\n                towelSetPriceSpan.textContent = '35\u20ac';\n                towelSetDescSpan.textContent = T.towelSetDescGeneral;\n                towelSetInput.dataset.cost = '35';\n                beddingSetPriceSpan.textContent = '60\u20ac';\n                beddingSetInput.dataset.cost = '60';\n                trekkingDetailsSpan.textContent = '';\n            } else {\n                towelSetPriceSpan.textContent = '20\u20ac';\n                towelSetDescSpan.textContent = T.towelSetDescSmall;\n                towelSetInput.dataset.cost = '20';\n                beddingSetPriceSpan.textContent = '35\u20ac';\n                beddingSetInput.dataset.cost = '35';\n                trekkingDetailsSpan.textContent = T.trekkingPackageDescBikeRack;\n            }\n\n            allExtraContainers.forEach(container => {\n                const vansData = container.dataset.vans;\n                if (!vansData) return;\n\n                const supportedVans = vansData.split(',').map(v => v.trim());\n                const isSupported = supportedVans.includes(safeVanName);\n                const input = container.querySelector('input[type=\"checkbox\"]');\n\n                if (isSupported) {\n                    container.classList.remove('hidden', 'opacity-50', 'pointer-events-none');\n                } else {\n                    container.classList.add('hidden', 'opacity-50', 'pointer-events-none');\n                    if (input && input.checked) input.checked = false;\n                    if (input && input.id === 'toilet-tablets') toiletTabletsCountInput.value = 0;\n                }\n            });\n        }\n\n        function calculateEstimate() {\n            const selectedVanRadio = document.querySelector('input[name=\"van\"]:checked');\n            const vanName = selectedVanRadio ? selectedVanRadio.value : \"\";\n            const startDate = new Date(startDateInput.value);\n            const endDate = new Date(endDateInput.value);\n            const { totalDays, lowDays, highDays } = calculateRentalPeriod(startDate, endDate, vanName);\n\n            const minLowDays = parseInt(selectedVanRadio.dataset.minLow, 10);\n            const minHighDays = parseInt(selectedVanRadio.dataset.minHigh, 10);\n            const minRequiredDays = highDays > 0 ? minHighDays : minLowDays;\n\n            if (totalDays < minRequiredDays) {\n                daysErrorMessage.textContent = T.minRentalError(minRequiredDays);\n                daysErrorMessage.classList.remove('hidden');\n                exportPdfBtn.disabled = true;\n                sendInquiryBtn.disabled = true;\n                return;\n            } else {\n                daysErrorMessage.classList.add('hidden');\n                exportPdfBtn.disabled = false;\n                sendInquiryBtn.disabled = false;\n            }\n\n            \/\/ Coverage Restriction\n            const isRestrictedVan = (vanName === 'Sunlight I68' || vanName === 'Etrusco A7300DB');\n            const premiumRadio = document.querySelector('input[name=\"coverage-plan\"][data-plan=\"premium\"]');\n            if (isRestrictedVan) {\n                if (premiumRadio && premiumRadio.checked) {\n                    document.querySelector('input[name=\"coverage-plan\"][data-plan=\"basic\"]').checked = true;\n                }\n                premiumCoverageLabel.classList.add('opacity-50', 'pointer-events-none');\n            } else {\n                premiumCoverageLabel.classList.remove('opacity-50', 'pointer-events-none');\n            }\n\n            const vanLowRate = parseFloat(selectedVanRadio.dataset.low);\n            const vanHighRate = parseFloat(selectedVanRadio.dataset.high);\n            const baseVanCost = (lowDays * vanLowRate) + (highDays * vanHighRate);\n\n            let extrasCost = 0;\n            const extrasBreakdown = [];    \/\/ shown on page \/ in PDF (current language)\n            const extrasBreakdownEN = [];  \/\/ sent to the inquiry form (always English)\n\n            const addLine = (displayName, enName, cost) => {\n                extrasBreakdown.push({ name: displayName, cost });\n                extrasBreakdownEN.push({ name: enName, cost });\n            };\n\n            const prepFee = parseFloat(selectedVanRadio.dataset.prep);\n            const cleanFee = parseFloat(selectedVanRadio.dataset.clean);\n            addLine(T.handlingFee, I18N.en.handlingFee, prepFee);\n            addLine(T.cleaningFee, I18N.en.cleaningFee, cleanFee);\n            extrasCost += (prepFee + cleanFee);\n\n            document.querySelectorAll('#optional-extras-container input[type=\"checkbox\"]').forEach(item => {\n                if (item.checked && !item.parentElement.classList.contains('hidden')) {\n                    const cost = parseFloat(item.dataset.cost);\n                    const type = item.dataset.type;\n                    const maxCost = parseFloat(item.dataset.maxCost) || Infinity;\n                    let extraItemCost = 0;\n                    const key = ITEM_KEYS[item.id];\n                    let displayName = T[key] || item.id;\n                    let enName = I18N.en[key] || item.id;\n\n                    switch (type) {\n                        case 'day': extraItemCost = Math.min(cost * totalDays, maxCost); break;\n                        case 'rent': case 'trip': case 'flat': extraItemCost = cost; break;\n                        case 'qty-day': {\n                            const count = parseInt(document.getElementById(item.id + '-count').value, 10) || 1;\n                            extraItemCost = Math.min(cost * totalDays, maxCost) * count;\n                            displayName += ` (x${count})`;\n                            enName += ` (x${count})`;\n                            break;\n                        }\n                        case 'piece': {\n                            const tabletCount = parseInt(toiletTabletsCountInput.value, 10);\n                            extraItemCost = cost * tabletCount;\n                            displayName += ` (${tabletCount} ${T.pcsSuffix})`;\n                            enName += ` (${tabletCount} ${I18N.en.pcsSuffix})`;\n                            break;\n                        }\n                    }\n                    extrasCost += extraItemCost;\n                    addLine(displayName, enName, extraItemCost);\n                }\n            });\n\n            \/\/ Time slots\n            const pickupRadio = document.querySelector('input[name=\"pickup-time\"]:checked');\n            const dropoffRadio = document.querySelector('input[name=\"dropoff-time\"]:checked');\n            const pickupFee = parseFloat(pickupRadio.dataset.fee);\n            const dropoffFee = parseFloat(dropoffRadio.dataset.fee);\n            if (pickupFee > 0) {\n                addLine(\n                    T.pickupFeeLabel(T[pickupRadio.dataset.slotKey]),\n                    I18N.en.pickupFeeLabel(I18N.en[pickupRadio.dataset.slotKey]),\n                    pickupFee\n                );\n            }\n            if (dropoffFee > 0) {\n                addLine(\n                    T.dropoffFeeLabel(T[dropoffRadio.dataset.slotKey]),\n                    I18N.en.dropoffFeeLabel(I18N.en[dropoffRadio.dataset.slotKey]),\n                    dropoffFee\n                );\n            }\n            extrasCost += (pickupFee + dropoffFee);\n\n            \/\/ Kilometers\n            const selectedKmOption = document.querySelector('input[name=\"km-option\"]:checked');\n            if (selectedKmOption) {\n                if (selectedKmOption.id === 'extra-kms-radio') {\n                    const count = parseInt(extraKmsCountInput.value, 10);\n                    if (count > 0) {\n                        const cost = count * 50;\n                        extrasCost += cost;\n                        addLine(T.extraKmsLabel(count), I18N.en.extraKmsLabel(count), cost);\n                    }\n                } else if (selectedKmOption.id === 'unlimitedkm-radio') {\n                    const cost = parseFloat(selectedKmOption.dataset.cost) * totalDays;\n                    extrasCost += cost;\n                    addLine(T.unlimitedKmsLabel, I18N.en.unlimitedKmsLabel, cost);\n                }\n            }\n\n            \/\/ Coverage\n            const coverage = document.querySelector('input[name=\"coverage-plan\"]:checked');\n            const coverageCost = coverage.dataset.type === 'per-day' ? parseFloat(coverage.dataset.cost) * totalDays : 0;\n            const planNameT = coverage.dataset.plan === 'basic' ? T.basicPlanName : T.premiumPlanName;\n            const planNameEN = coverage.dataset.plan === 'basic' ? I18N.en.basicPlanName : I18N.en.premiumPlanName;\n            if (coverageCost > 0) {\n                addLine(T.coverageLabel(planNameT), I18N.en.coverageLabel(planNameEN), coverageCost);\n            }\n            extrasCost += coverageCost;\n\n            \/\/ Deposit depends on both the selected van and the coverage plan\n            const requiredDeposit = getRequiredDeposit(vanName, coverage);\n            depositTextValueSpan.textContent = formatCurrency(requiredDeposit);\n\n            const basicDepositForVan = REDUCED_DEPOSIT_VANS.includes(vanName) ? 1000 : 2000;\n            basicDepositLabelSpan.textContent = `${basicDepositForVan}\u20ac ${T.depositSuffix}`;\n\n            \/\/ Discount\n            const freeDays = calculateDiscountDays(totalDays, vanName);\n            const discountValue = freeDays > 0 ? (baseVanCost \/ totalDays) * freeDays : 0;\n            if (discountValue > 0) {\n                addLine(T.longTermDiscount(freeDays), I18N.en.longTermDiscount(freeDays), -discountValue);\n            }\n\n            const finalTotal = baseVanCost + extrasCost - discountValue;\n\n            \/\/ UI Update\n            daysTextSpan.textContent = totalDays;\n            daysBreakdownTextSpan.textContent = totalDays;\n            selectedVanTextSpan.textContent = vanName;\n            vanCostSpan.textContent = formatCurrency(baseVanCost);\n            extrasCostSpan.textContent = formatCurrency(extrasCost - discountValue);\n            totalCostSpan.textContent = formatCurrency(finalTotal);\n            includedKmsSpan.textContent = totalDays * 100;\n\n            let breakdownHTML = `<div class=\"flex justify-between font-semibold\"><span>${T.vanRentalWord} (${vanName})<\/span><span>${formatCurrency(baseVanCost)}<\/span><\/div>`;\n            extrasBreakdown.forEach(item => {\n                breakdownHTML += `<div class=\"flex justify-between pl-4 text-sm ${item.cost < 0 ? 'text-green-600 font-bold' : 'text-gray-500'}\"><span>${item.name}<\/span><span>${item.cost === 0 ? T.free : formatCurrency(item.cost)}<\/span><\/div>`;\n            });\n            breakdownDiv.innerHTML = breakdownHTML;\n\n            \/\/ Inquiry summary bridge for Contact Form 7 \u2014 always English, for internal use\n            let summary = `--- TRIP DETAILS ---\\n`;\n            summary += `Van Selected: ${vanName}\\n`;\n            summary += `Dates: ${startDateInput.value} to ${endDateInput.value} (${totalDays} days)\\n`;\n            summary += `Passengers: ${passengersInput.value}\\n`;\n            summary += `Included Kms: ${totalDays * 100} km\\n\\n`;\n\n            summary += `--- COST BREAKDOWN ---\\n`;\n            summary += `Base Van Rental: ${formatCurrency(baseVanCost)}\\n`;\n\n            extrasBreakdownEN.forEach(item => {\n                summary += `${item.name}: ${item.cost === 0 ? 'Free' : formatCurrency(item.cost)}\\n`;\n            });\n\n            summary += `\\n--- FINAL ESTIMATE ---\\n`;\n            summary += `TOTAL ESTIMATE (Gross): ${formatCurrency(finalTotal)}\\n`;\n            summary += `REQUIRED DEPOSIT: ${formatCurrency(requiredDeposit)}\\n`;\n            summary += `Inquiry Language: ${LANG.toUpperCase()}\\n`;\n\n            const cf7Textarea = document.getElementById('estimate-summary-data');\n            if (cf7Textarea) {\n                cf7Textarea.value = summary;\n            }\n\n            return { vanName, totalDays, startDate: startDateInput.value, endDate: endDateInput.value, passengers: passengersInput.value, totalCost: finalTotal, deposit: requiredDeposit, breakdown: extrasBreakdown, baseCost: baseVanCost };\n        }\n\n        function handleExportPdf() {\n            const { jsPDF } = window.jspdf;\n            const doc = new jsPDF();\n            const est = calculateEstimate();\n\n            doc.setFontSize(22);\n            doc.text(T.pdfTitle, 105, 20, null, null, \"center\");\n\n            doc.setFontSize(10);\n            doc.setFont(\"helvetica\", \"normal\");\n            doc.text(`${T.pdfGeneratedOn} ${new Date().toLocaleDateString()}`, 105, 27, null, null, \"center\");\n\n            doc.setFontSize(12);\n            doc.text(T.pdfRental(est.startDate, est.endDate, est.totalDays), 20, 40);\n            doc.text(T.pdfVanPax(est.vanName, est.passengers), 20, 48);\n\n            const rows = est.breakdown.map(item => [item.name, item.cost === 0 ? T.free : formatCurrency(item.cost)]);\n            rows.unshift([T.pdfBaseFee, formatCurrency(est.baseCost)]);\n\n            doc.autoTable({\n                startY: 60,\n                head: [[T.pdfDescCol, T.pdfCostCol]],\n                body: rows,\n                headStyles: { fillColor: [253, 224, 71], textColor: [55, 65, 81] },\n            });\n\n            const finalY = doc.lastAutoTable.finalY;\n            doc.setFontSize(16);\n            doc.setFont(\"helvetica\", \"bold\");\n            doc.text(T.pdfTotalEstimate(formatCurrency(est.totalCost)), 20, finalY + 20);\n\n            doc.setFontSize(12);\n            doc.setFont(\"helvetica\", \"normal\");\n            doc.text(T.pdfDeposit(formatCurrency(est.deposit)), 20, finalY + 30);\n\n            doc.setFontSize(10);\n            doc.setTextColor(100);\n            doc.text(T.pdfValidNote, 20, finalY + 45);\n\n            doc.save(\"rental-estimate.pdf\");\n        }\n\n        function handleSendInquiry() {\n            calculateEstimate();\n            statusMessage.textContent = T.scrollDown;\n            statusMessage.classList.remove('hidden');\n            const cf7Form = document.querySelector('.wpcf7');\n            if (cf7Form) {\n                cf7Form.scrollIntoView({ behavior: 'smooth' });\n            } else {\n                window.scrollTo({ top: document.body.scrollHeight, behavior: 'smooth' });\n            }\n        }\n\n        document.addEventListener('DOMContentLoaded', () => {\n            applyStaticTranslations();\n\n            const today = new Date();\n            const tomorrow = new Date(today);\n            tomorrow.setDate(tomorrow.getDate() + 3);\n            startDateInput.valueAsDate = today;\n            endDateInput.valueAsDate = tomorrow;\n\n            updateOptionalExtras(document.querySelector('input[name=\"van\"]:checked').value);\n            calculateEstimate();\n\n            vanRadios.forEach(r => r.addEventListener('change', e => {\n                updateOptionalExtras(e.target.value);\n                calculateEstimate();\n            }));\n\n            [startDateInput, endDateInput, passengersInput, extraKmsCountInput, toiletTabletsCountInput].forEach(el => el.addEventListener('input', calculateEstimate));\n            optionalItemsContainer.addEventListener('change', calculateEstimate);\n            [...pickupRadios, ...dropoffRadios, ...kmOptionRadios, ...coverageRadios].forEach(r => r.addEventListener('change', calculateEstimate));\n\n            exportPdfBtn.addEventListener('click', handleExportPdf);\n            sendInquiryBtn.addEventListener('click', handleSendInquiry);\n        });\n    <\/script>\n<\/body>\n<\/html><\/div><div class=\"w-separator size_medium\"><\/div>\n<div class=\"wpcf7 no-js\" id=\"wpcf7-f2901-o1\" lang=\"hu-HU\" dir=\"ltr\" data-wpcf7-id=\"2901\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/hu\/wp-json\/wp\/v2\/pages\/3083#wpcf7-f2901-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Kapcsolatfelv\u00e9teli \u0171rlap\" novalidate=\"novalidate\" data-status=\"init\">\n<div style=\"display: none;\">\n<input type=\"hidden\" name=\"_wpcf7\" value=\"2901\" \/>\n<input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.0.6\" \/>\n<input type=\"hidden\" name=\"_wpcf7_locale\" value=\"hu_HU\" \/>\n<input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f2901-o1\" \/>\n<input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/>\n<input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/>\n<input type=\"hidden\" name=\"_wpcf7_recaptcha_response\" value=\"\" \/>\n<\/div>\n<div class=\"space-y-4 bg-white p-6 md:p-8 rounded-2xl shadow-md border border-gray-100 mt-8\">\n\t<h3 class=\"text-xl md:text-2xl font-bold text-gray-700 mb-4\">T\u00f6ltsd ki az \u0171rlapot\n\t<\/h3>\n\t<div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n\t\t<div class=\"flex flex-col\">\n\t\t\t<p><label class=\"text-sm font-medium text-gray-500 mb-1\">Neved *<\/label><span class=\"wpcf7-form-control-wrap\" data-name=\"your-name\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required w-full p-4 border border-gray-300 rounded-xl focusring-2 focusring-yellow-300 focusborder-transparent\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"your-name\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t\t<div class=\"flex flex-col\">\n\t\t\t<p><label class=\"text-sm font-medium text-gray-500 mb-1\">E-mail c\u00edm *<\/label><span class=\"wpcf7-form-control-wrap\" data-name=\"your-email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email w-full p-4 border border-gray-300 rounded-xl focusring-2 focusring-yellow-300 focusborder-transparent\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"email\" name=\"your-email\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"flex flex-col\">\n\t\t<p><label class=\"text-sm font-medium text-gray-500 mb-1\">Telefonsz\u00e1m *<\/label><span class=\"wpcf7-form-control-wrap\" data-name=\"your-phone\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-tel wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-tel w-full p-4 border border-gray-300 rounded-xl focusring-2 focusring-yellow-300 focusborder-transparent\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"tel\" name=\"your-phone\" \/><\/span>\n\t\t<\/p>\n\t<\/div>\n\n <!-- This hidden text area acts as the bridge to catch the JS data -->\n\t<div style=\"display: none;\">\n\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"estimate-summary-data\"><textarea cols=\"40\" rows=\"10\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea\" id=\"estimate-summary-data\" aria-invalid=\"false\" name=\"estimate-summary-data\"><\/textarea><\/span>\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"pt-4 text-center\">\n\t\t<p><input class=\"wpcf7-form-control wpcf7-submit has-spinner px-8 py-4 bg-yellow-300 text-gray-700 font-bold text-lg rounded-full shadow-lg transition-all duration-300 hoverbg-yellow-400 hovershadow-xl cursor-pointer\" type=\"submit\" value=\"\u00c9rdekl\u0151d\u00e9s k\u00fcld\u00e9se\" \/>\n\t\t<\/p>\n\t<\/div>\n<\/div><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n<\/div><\/div><\/div><\/div><\/section>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"content-type":"","footnotes":""},"class_list":["post-3083","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/solcaravan.es\/hu\/wp-json\/wp\/v2\/pages\/3083"}],"collection":[{"href":"https:\/\/solcaravan.es\/hu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/solcaravan.es\/hu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/solcaravan.es\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/solcaravan.es\/hu\/wp-json\/wp\/v2\/comments?post=3083"}],"version-history":[{"count":5,"href":"https:\/\/solcaravan.es\/hu\/wp-json\/wp\/v2\/pages\/3083\/revisions"}],"predecessor-version":[{"id":3088,"href":"https:\/\/solcaravan.es\/hu\/wp-json\/wp\/v2\/pages\/3083\/revisions\/3088"}],"wp:attachment":[{"href":"https:\/\/solcaravan.es\/hu\/wp-json\/wp\/v2\/media?parent=3083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}