{"id":803,"date":"2025-06-02T17:41:12","date_gmt":"2025-06-02T17:41:12","guid":{"rendered":"https:\/\/humbletaxi.it\/book-online\/"},"modified":"2025-07-29T11:12:55","modified_gmt":"2025-07-29T11:12:55","slug":"book-online","status":"publish","type":"page","link":"https:\/\/humbletaxi.it\/en\/book-online\/","title":{"rendered":"Book Online"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"803\" class=\"elementor elementor-803 elementor-111\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-deccab8 e-con-full e-flex e-con e-parent\" data-id=\"deccab8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-a5947ee e-con-full e-flex e-con e-child\" data-id=\"a5947ee\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a08c91b elementor-widget__width-initial animated-slow elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"a08c91b\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Book Online<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e0f09bc elementor-widget__width-initial animated-slow elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"e0f09bc\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Reliability, comfort and transparency. Always. <\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3b4c68f e-con-full e-flex e-con e-child\" data-id=\"3b4c68f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d92f5c0 elementor-align-right elementor-tablet-align-left elementor-widget elementor-widget-breadcrumbs\" data-id=\"d92f5c0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"breadcrumbs.default\">\n\t\t\t\t\t<p id=\"breadcrumbs\"><span><span><a href=\"https:\/\/humbletaxi.it\/en\/home\/\">Home<\/a><\/span><\/span><\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-131385a e-flex e-con-boxed e-con e-parent\" data-id=\"131385a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9c7619b elementor-widget elementor-widget-html\" data-id=\"9c7619b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n  \/* Il tuo CSS rimane invariato qui... *\/\r\n  #form-ncc {\r\n    font-family: Arial, sans-serif;\r\n    max-width: 1024px;\r\n    \/* Aumentata per layout a pi\u00f9 colonne complessi *\/\r\n    margin: 20px auto;\r\n    padding: 25px;\r\n    background-color: #f9f9f9;\r\n    border-radius: 8px;\r\n    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\r\n  }\r\n\r\n  #form-ncc label {\r\n    display: block;\r\n    margin-bottom: 8px;\r\n    font-weight: bold;\r\n    color: #333;\r\n  }\r\n\r\n  #form-ncc input[type=\"text\"],\r\n  #form-ncc input[type=\"tel\"],\r\n  #form-ncc input[type=\"email\"],\r\n  #form-ncc input[type=\"number\"],\r\n  #form-ncc input[type=\"date\"],\r\n  #form-ncc input[type=\"time\"],\r\n  #form-ncc select,\r\n  #form-ncc textarea {\r\n    width: 100%;\r\n    padding: 12px;\r\n    border: 1px solid #ddd;\r\n    border-radius: 4px;\r\n    box-sizing: border-box;\r\n    font-size: 16px;\r\n  }\r\n\r\n  #form-ncc input[type=\"text\"]:focus,\r\n  #form-ncc input[type=\"tel\"]:focus,\r\n  #form-ncc input[type=\"email\"]:focus,\r\n  #form-ncc input[type=\"number\"]:focus,\r\n  #form-ncc input[type=\"date\"]:focus,\r\n  #form-ncc input[type=\"time\"]:focus,\r\n  #form-ncc select:focus,\r\n  #form-ncc textarea:focus {\r\n    border-color: #007bff;\r\n    outline: none;\r\n    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, .25);\r\n  }\r\n\r\n  #form-ncc select {\r\n    appearance: none;\r\n    background-image: url('data:image\/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007bff%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E');\r\n    background-repeat: no-repeat;\r\n    background-position: right 12px center;\r\n    background-size: 12px;\r\n  }\r\n\r\n  \/* Per far funzionare il placeholder del select con 'required' *\/\r\n  #form-ncc select.select-placeholder {\r\n    \/* Modificato per usare una classe specifica *\/\r\n    color: #6c757d;\r\n    \/* Colore grigio per il testo del placeholder *\/\r\n  }\r\n\r\n\r\n  #form-ncc textarea {\r\n    resize: vertical;\r\n    min-height: 80px;\r\n  }\r\n\r\n  .form-row {\r\n    \/* Rimosso display:flex e gap da qui per applicarlo solo con media query *\/\r\n  }\r\n\r\n  .form-group {\r\n    width: 100%;\r\n    margin-bottom: 20px;\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  @media (min-width: 992px) {\r\n    .form-row {\r\n      display: flex;\r\n      flex-wrap: wrap;\r\n      gap: 20px;\r\n      margin-bottom: 0;\r\n      \/* Sovrascrive il margin-bottom di .form-group quando in flex *\/\r\n    }\r\n\r\n    .form-group.col-1-3 {\r\n      flex: 1 1 calc((100% - 40px) \/ 3);\r\n      min-width: 0;\r\n    }\r\n\r\n    .form-group.col-1-4 {\r\n      flex: 1 1 calc((100% - 60px) \/ 4);\r\n      min-width: 0;\r\n    }\r\n\r\n    .form-group.full-width {\r\n      flex-basis: 100%;\r\n    }\r\n\r\n    \/* Per evitare doppio margine quando .form-group \u00e8 dentro .form-row *\/\r\n    .form-row>.form-group {\r\n      margin-bottom: 0;\r\n      \/* Se il genitore \u00e8 form-row, il gruppo non ha margine inferiore *\/\r\n    }\r\n\r\n    \/* Aggiungiamo un margine inferiore al form-row stesso, tranne l'ultimo *\/\r\n    #form-ncc .form-row:not(:last-of-type) {\r\n      margin-bottom: 20px;\r\n    }\r\n\r\n  }\r\n\r\n  #form-ncc .checkbox-group {\r\n    display: flex;\r\n    align-items: center;\r\n  }\r\n\r\n  #form-ncc .checkbox-container .checkbox-group:not(:last-child) {\r\n    margin-bottom: 10px;\r\n  }\r\n\r\n  #form-ncc .checkbox-group input[type=\"checkbox\"] {\r\n    width: auto;\r\n    margin-right: 10px;\r\n    margin-bottom: 0;\r\n    transform: scale(1.2);\r\n  }\r\n\r\n  #form-ncc .checkbox-group label {\r\n    font-weight: normal;\r\n    margin-bottom: 0;\r\n  }\r\n\r\n  \/* NASCONDE COMPLETAMENTE LA SEZIONE DEI RISULTATI DEL CALCOLO *\/\r\n  #form-ncc .risultati-calcolo {\r\n    display: none;\r\n  }\r\n\r\n  #form-ncc button[type=\"submit\"] {\r\n    background-color: #007bff;\r\n    color: white;\r\n    padding: 12px 20px;\r\n    border: none;\r\n    border-radius: 4px;\r\n    cursor: pointer;\r\n    font-size: 16px;\r\n    font-weight: bold;\r\n    transition: background-color 0.2s ease-in-out;\r\n    width: 100%;\r\n  }\r\n\r\n  #form-ncc button[type=\"submit\"]:hover {\r\n    background-color: #0056b3;\r\n  }\r\n<\/style>\r\n\r\n\r\n<form id=\"form-ncc\" method=\"post\" action=\"\/ncc\/calc_ncc_standalone.php\">\r\n  <div class=\"form-row\">\r\n    <div class=\"form-group col-1-3\">\r\n      <label for=\"nome_completo\">Name and Surname \/ Company:<\/label>\r\n      <input type=\"text\" id=\"nome_completo\" name=\"nome_completo\" placeholder=\"E.g. John Smith \/ Company Name\" required=\"\">\r\n    <\/div>\r\n    <div class=\"form-group col-1-3\">\r\n      <label for=\"telefono\">Phone:<\/label>\r\n      <input type=\"tel\" id=\"telefono\" name=\"telefono\" placeholder=\"E.g. 3331234567\" required=\"\">\r\n    <\/div>\r\n    <div class=\"form-group col-1-3\">\r\n      <label for=\"email\">Email:<\/label>\r\n      <input type=\"email\" id=\"email\" name=\"email\" placeholder=\"E.g. john.smith@example.com\" required=\"\">\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"form-row\">\r\n    <div class=\"form-group col-1-3\">\r\n      <label for=\"partenza\">Departure Location:<\/label>\r\n      <input type=\"text\" name=\"partenza\" id=\"partenza\" placeholder=\"E.g. 1 Main Street, London\" required=\"\">\r\n    <\/div>\r\n    <div class=\"form-group col-1-3\">\r\n      <label for=\"arrivo\">Destination:<\/label>\r\n      <input type=\"text\" name=\"arrivo\" id=\"arrivo\" placeholder=\"E.g. Heathrow Airport\" required=\"\">\r\n    <\/div>\r\n    <div class=\"form-group col-1-3\">\r\n      <label for=\"veicolo\">Vehicle:<\/label>\r\n      <select name=\"veicolo\" id=\"veicolo\" required=\"\">\r\n        <option value=\"\" disabled selected hidden=\"\">Choose the type of vehicle...<\/option>\r\n        <option value=\"Vito|4:1.10|8:1.50|8\">Mercedes Vito (1-8 pax)<\/option>\r\n        <option value=\"ClasseV|4:1.50|7:1.70|7\">Mercedes V Class (1-7 pax)<\/option>\r\n      <\/select>\r\n      <small id=\"errore-veicolo\" style=\"color: red; display: none; font-size: 0.9em; margin-top: 5px;\">Invalid number of people for the selected vehicle.<\/small>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"form-row\">\r\n    <div class=\"form-group col-1-4\">\r\n      <label for=\"numero_persone\">Number of People:<\/label>\r\n      <input type=\"number\" id=\"numero_persone\" name=\"numero_persone\" min=\"1\" placeholder=\"E.g. 2\" required=\"\">\r\n    <\/div>\r\n    <div class=\"form-group col-1-4\">\r\n      <label for=\"giorno\">Day:<\/label>\r\n      <input type=\"date\" id=\"giorno\" name=\"giorno\" required=\"\">\r\n    <\/div>\r\n    <div class=\"form-group col-1-4\">\r\n      <label for=\"ora_servizio\">Service Time:<\/label>\r\n      <input type=\"time\" id=\"ora_servizio\" name=\"ora_servizio\" required=\"\">\r\n    <\/div>\r\n    <div class=\"form-group col-1-4\">\r\n      <label for=\"numero_treno_volo\">Train \/ Flight Number:<\/label>\r\n      <input type=\"text\" id=\"numero_treno_volo\" name=\"numero_treno_volo\" placeholder=\"E.g. FR9010 \/ AZ123 (Optional)\">\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"form-row\">\r\n    <div class=\"form-group full-width\">\r\n      <label for=\"messaggio\">Message:<\/label>\r\n      <textarea name=\"messaggio\" id=\"messaggio\" rows=\"4\" placeholder=\"Enter any additional requests here (Optional)\"><\/textarea>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"form-row\">\r\n    <div class=\"form-group full-width checkbox-container\">\r\n      <div class=\"checkbox-group\">\r\n        <input type=\"checkbox\" id=\"privacy\" name=\"privacy\" required=\"\">\r\n        <label for=\"privacy\">Your privacy is important! Check the box to accept our privacy policy <\/label>\r\n      <\/div>\r\n      <div class=\"checkbox-group\">\r\n        <input type=\"checkbox\" id=\"tos\" name=\"tos\" required=\"\">\r\n        <label for=\"tos\">Check the box to accept the terms and conditions of the service.<\/label>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"form-row\">\r\n    <div class=\"form-group full-width\">\r\n      <label for=\"captcha_answer\">Anti-Spam Verification: What is 2 + 2? (write the number) <\/label>\r\n      <input type=\"text\" id=\"captcha_answer\" name=\"captcha_answer\" placeholder=\"Enter your answer\" required=\"\">\r\n    <\/div>\r\n  <\/div>\r\n  <div class=\"form-row\">\r\n    <div class=\"form-group full-width\">\r\n      <div class=\"risultati-calcolo\">\r\n        <strong>Distance:<\/strong> <span id=\"km\"><\/span> km<br>        <strong>Price:<\/strong> \u20ac<span id=\"prezzo\"><\/span><br>        <strong>Travel time:<\/strong> <span id=\"durata\"><\/span>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"form-row\">\r\n    <div class=\"form-group full-width\">\r\n      <button type=\"submit\">Send request<\/button>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <input type=\"hidden\" name=\"distanza_km\" id=\"campo-km\">\r\n  <input type=\"hidden\" name=\"totale\" id=\"campo-prezzo\">\r\n  <input type=\"hidden\" name=\"tempo_percorrenza\" id=\"campo-durata\">\r\n<\/form>\r\n\r\n<div id=\"mappa\" style=\"width:100%; max-width:1024px; height:400px; margin:20px auto;\"><\/div>\r\n\r\n<script>\r\n  let directionsService, directionsRenderer, map;\r\n\r\n  function initMapNCC() {\r\n    directionsService = new google.maps.DirectionsService();\r\n    directionsRenderer = new google.maps.DirectionsRenderer();\r\n\r\n    map = new google.maps.Map(document.getElementById(\"mappa\"), {\r\n      center: {\r\n        lat: 41.9,\r\n        lng: 12.5\r\n      }, \/\/ Centro Italia (Roma)\r\n      zoom: 6\r\n    });\r\n\r\n    directionsRenderer.setMap(map);\r\n\r\n    const opt = {\r\n      types: ['geocode'],\r\n      componentRestrictions: {\r\n        country: 'it'\r\n      }\r\n    };\r\n    const partenzaInput = document.getElementById(\"partenza\");\r\n    const arrivoInput = document.getElementById(\"arrivo\");\r\n    if (partenzaInput) new google.maps.places.Autocomplete(partenzaInput, opt);\r\n    if (arrivoInput) new google.maps.places.Autocomplete(arrivoInput, opt);\r\n  }\r\n\r\n  function parseVehicleData(vehicleValue) {\r\n    if (!vehicleValue) return null;\r\n    const parts = vehicleValue.split('|');\r\n    if (parts.length < 2) return null; \/\/ Deve esserci almeno nome e capacit\u00e0 totale\r\n\r\n    const vehicleName = parts[0];\r\n    const maxCapacityOverall = parseInt(parts[parts.length - 1], 10);\r\n    const pricingTiers = [];\r\n\r\n    \/\/ Gli scaglioni sono tra il nome e la capacit\u00e0 totale\r\n    for (let i = 1; i < parts.length - 1; i++) {\r\n      const tierParts = parts[i].split(':');\r\n      if (tierParts.length === 2) {\r\n        pricingTiers.push({\r\n          maxPax: parseInt(tierParts[0], 10),\r\n          price: parseFloat(tierParts[1])\r\n        });\r\n      }\r\n    }\r\n    pricingTiers.sort((a, b) => a.maxPax - b.maxPax);\r\n    return {\r\n      vehicleName,\r\n      pricingTiers,\r\n      maxCapacityOverall\r\n    };\r\n  }\r\n\r\n  function getPriceForPassengers(vehicleData, numPassengers) {\r\n    if (!vehicleData || numPassengers <= 0 || isNaN(numPassengers)) return {\r\n      error: \"Numero passeggeri non valido.\"\r\n    };\r\n\r\n    if (numPassengers > vehicleData.maxCapacityOverall) {\r\n      return {\r\n        error: `Max ${vehicleData.maxCapacityOverall} passeggeri per ${vehicleData.vehicleName}.`\r\n      };\r\n    }\r\n\r\n    if (vehicleData.pricingTiers.length === 0 && numPassengers <= vehicleData.maxCapacityOverall) {\r\n      \/\/ Caso di veicolo senza scaglioni specifici ma con un prezzo unico (non previsto dal formato attuale ma gestibile)\r\n      \/\/ Qui assumiamo che se non ci sono scaglioni, ci sia un errore di configurazione o un formato non supportato.\r\n      \/\/ Per il formato \"nome|pax1:prezzo1|...|maxTot\", pricingTiers non dovrebbe essere vuoto se ci sono prezzi.\r\n      return {\r\n        error: \"Configurazione tariffe veicolo incompleta.\"\r\n      }\r\n    }\r\n\r\n    for (const tier of vehicleData.pricingTiers) {\r\n      if (numPassengers <= tier.maxPax) {\r\n        return {\r\n          pricePerKm: tier.price,\r\n          tierPax: tier.maxPax\r\n        };\r\n      }\r\n    }\r\n    \/\/ Questo non dovrebbe accadere se numPassengers <= vehicleData.maxCapacityOverall\r\n    \/\/ e gli scaglioni coprono fino a maxCapacityOverall.\r\n    return {\r\n      error: \"Tariffa non trovata per i passeggeri (controlla config veicolo).\"\r\n    };\r\n  }\r\n\r\n  function aggiornaPercorsoECosti() {\r\n    const partenza = document.getElementById(\"partenza\").value;\r\n    const arrivo = document.getElementById(\"arrivo\").value;\r\n    const veicoloSelect = document.getElementById(\"veicolo\");\r\n    const veicoloValue = veicoloSelect.value;\r\n    const numPersoneInput = document.getElementById(\"numero_persone\");\r\n    const numPersone = parseInt(numPersoneInput.value, 10);\r\n    const erroreVeicoloMsg = document.getElementById(\"errore-veicolo\");\r\n\r\n    erroreVeicoloMsg.style.display = 'none';\r\n    erroreVeicoloMsg.innerText = '';\r\n\r\n    let costoPerKm = null;\r\n    const vehicleData = parseVehicleData(veicoloValue);\r\n\r\n    if (vehicleData && numPersoneInput.value && !isNaN(numPersone) && numPersone > 0) {\r\n      const priceInfo = getPriceForPassengers(vehicleData, numPersone);\r\n      if (priceInfo && priceInfo.pricePerKm) {\r\n        costoPerKm = priceInfo.pricePerKm;\r\n      } else if (priceInfo && priceInfo.error) {\r\n        erroreVeicoloMsg.innerText = priceInfo.error;\r\n        erroreVeicoloMsg.style.display = 'block';\r\n        \/\/ Resetta solo il prezzo, non necessariamente il percorso\r\n        \/\/ Queste righe non sono pi\u00f9 necessarie se la sezione risultati-calcolo \u00e8 nascosta,\r\n        \/\/ ma le lascio per completezza se in futuro si volesse mostrare un errore nel prezzo in altro modo.\r\n        document.getElementById(\"prezzo\").innerText = \"N\/D\";\r\n        document.getElementById(\"campo-prezzo\").value = \"\";\r\n        return; \/\/ Interrompi qui se c'\u00e8 un errore con passeggeri\/veicolo\r\n      }\r\n    } else if (numPersoneInput.value && (isNaN(numPersone) || numPersone <= 0)) {\r\n      erroreVeicoloMsg.innerText = \"Numero persone non valido.\";\r\n      erroreVeicoloMsg.style.display = 'block';\r\n      \/\/ Queste righe non sono pi\u00f9 necessarie se la sezione risultati-calcolo \u00e8 nascosta.\r\n      document.getElementById(\"prezzo\").innerText = \"N\/D\";\r\n      document.getElementById(\"campo-prezzo\").value = \"\";\r\n      return;\r\n    }\r\n\r\n\r\n    \/\/ Se mancano partenza, arrivo o veicolo (quindi costoPerKm non calcolato)\r\n    \/\/ non fare la chiamata API per il percorso.\r\n    if (!partenza || !arrivo || !veicoloValue) {\r\n      \/\/ Queste righe non sono pi\u00f9 necessarie se la sezione risultati-calcolo \u00e8 nascosta.\r\n      document.getElementById(\"km\").innerText = \"\";\r\n      document.getElementById(\"prezzo\").innerText = \"\";\r\n      document.getElementById(\"durata\").innerText = \"\";\r\n      document.getElementById(\"campo-km\").value = \"\";\r\n      document.getElementById(\"campo-prezzo\").value = \"\";\r\n      document.getElementById(\"campo-durata\").value = \"\";\r\n      if (directionsRenderer) {\r\n        directionsRenderer.setDirections({\r\n          routes: []\r\n        });\r\n      }\r\n      return;\r\n    }\r\n\r\n    \/\/ Se manca il costoPerKm (es. num persone non ancora inserito o veicolo non selezionato)\r\n    \/\/ ma abbiamo partenza e arrivo, potremmo voler calcolare il percorso ma non il prezzo.\r\n    \/\/ Oppure, attendere che tutti i dati siano pronti.\r\n    \/\/ Per ora, se manca costoPerKm, non mostriamo il prezzo.\r\n\r\n    directionsService.route({\r\n      origin: partenza,\r\n      destination: arrivo,\r\n      travelMode: google.maps.TravelMode.DRIVING\r\n    }, function(response, status) {\r\n      if (status === 'OK') {\r\n        directionsRenderer.setDirections(response);\r\n        const leg = response.routes[0].legs[0];\r\n        const km = leg.distance.value \/ 1000;\r\n        const durata = leg.duration.text;\r\n\r\n        \/\/ Non mostriamo pi\u00f9 questi valori all'utente finale nel blocco .risultati-calcolo\r\n        \/\/ document.getElementById(\"km\").innerText = km.toFixed(2);\r\n        \/\/ document.getElementById(\"durata\").innerText = durata;\r\n\r\n        document.getElementById(\"campo-km\").value = km.toFixed(2);\r\n        document.getElementById(\"campo-durata\").value = durata;\r\n\r\n        if (costoPerKm !== null) {\r\n          const costoTotale = km * costoPerKm;\r\n          \/\/ Non mostriamo pi\u00f9 questi valori all'utente finale\r\n          \/\/ document.getElementById(\"prezzo\").innerText = costoTotale.toFixed(2);\r\n          document.getElementById(\"campo-prezzo\").value = costoTotale.toFixed(2);\r\n        } else {\r\n          \/\/ Non mostriamo pi\u00f9 questi valori all'utente finale\r\n          \/\/ document.getElementById(\"prezzo\").innerText = \"N\/D\";\r\n          document.getElementById(\"campo-prezzo\").value = \"\";\r\n        }\r\n      } else {\r\n        console.warn(\"Errore calcolo percorso:\", status);\r\n        \/\/ Non mostriamo pi\u00f9 questi valori all'utente finale\r\n        \/\/ document.getElementById(\"km\").innerText = \"N\/D\";\r\n        \/\/ document.getElementById(\"prezzo\").innerText = \"N\/D\";\r\n        \/\/ document.getElementById(\"durata\").innerText = \"Errore percorso\";\r\n\r\n        document.getElementById(\"campo-km\").value = \"\";\r\n        document.getElementById(\"campo-prezzo\").value = \"\";\r\n        document.getElementById(\"campo-durata\").value = \"\";\r\n        if (directionsRenderer) {\r\n          directionsRenderer.setDirections({\r\n            routes: []\r\n          });\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  document.addEventListener(\"DOMContentLoaded\", () => {\r\n    if (typeof google !== 'undefined' && typeof google.maps !== 'undefined') {\r\n      initMapNCC();\r\n    } else {\r\n      console.warn(\"Google Maps API non ancora caricata. Sar\u00e0 inizializzata da initMapNCCFallback.\");\r\n      window.initMapNCCFallback = initMapNCC;\r\n    }\r\n\r\n    ['partenza', 'arrivo', 'veicolo', 'numero_persone'].forEach(id => {\r\n      const element = document.getElementById(id);\r\n      if (element) {\r\n        const eventType = (element.tagName.toLowerCase() === 'input' && (element.type === 'text' || element.type === 'number' || element.type === 'email' || element.type === 'tel')) || element.tagName.toLowerCase() === 'textarea' ? 'input' : 'change';\r\n        element.addEventListener(eventType, aggiornaPercorsoECosti);\r\n      }\r\n    });\r\n\r\n    const veicoloSelect = document.getElementById('veicolo');\r\n\r\n    function styleSelectPlaceholder() {\r\n      if (veicoloSelect) { \/\/ Controlla se l'elemento esiste\r\n        if (!veicoloSelect.value) { \/\/ Se non c'\u00e8 un valore selezionato (quindi il placeholder \u00e8 attivo)\r\n          veicoloSelect.classList.add('select-placeholder');\r\n        } else {\r\n          veicoloSelect.classList.remove('select-placeholder');\r\n        }\r\n      }\r\n    }\r\n    if (veicoloSelect) {\r\n      styleSelectPlaceholder(); \/\/ Applica all'inizio\r\n      veicoloSelect.addEventListener('change', styleSelectPlaceholder);\r\n    }\r\n\r\n    \/\/ Forziamo un aggiornamento iniziale se ci sono gi\u00e0 valori (es. da autocomplete del browser o ricaricamento)\r\n    \/\/ ma solo se i campi principali per il calcolo del percorso hanno un valore\r\n    const partenzaInput = document.getElementById(\"partenza\");\r\n    const arrivoInput = document.getElementById(\"arrivo\");\r\n    if (partenzaInput && partenzaInput.value && arrivoInput && arrivoInput.value) {\r\n      aggiornaPercorsoECosti();\r\n    }\r\n\r\n  });\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-53adf98 e-flex e-con-boxed e-con e-parent\" data-id=\"53adf98\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-532cf12 elementor-widget__width-initial animated-slow elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"532cf12\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Why choose Humble Taxi<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c578fbd e-con-full e-flex e-con e-parent\" data-id=\"c578fbd\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-5c1b59c e-con-full e-flex e-con e-child\" data-id=\"5c1b59c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bc6e084 elementor-align-center elementor-widget elementor-widget-lottie\" data-id=\"bc6e084\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;source_json&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/humbletaxi.it\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/wired-outline-300-coins-euro-hover-jump-1.json&quot;,&quot;id&quot;:518,&quot;size&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;source&quot;:&quot;library&quot;},&quot;link_to&quot;:&quot;custom&quot;,&quot;custom_link&quot;:{&quot;url&quot;:&quot;#intro&quot;,&quot;is_external&quot;:&quot;&quot;,&quot;nofollow&quot;:&quot;&quot;,&quot;custom_attributes&quot;:&quot;&quot;},&quot;loop&quot;:&quot;yes&quot;,&quot;play_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0.5,&quot;sizes&quot;:[]},&quot;source&quot;:&quot;media_file&quot;,&quot;caption_source&quot;:&quot;none&quot;,&quot;trigger&quot;:&quot;arriving_to_viewport&quot;,&quot;viewport&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;start_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;end_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:100,&quot;sizes&quot;:[]},&quot;renderer&quot;:&quot;svg&quot;}\" data-widget_type=\"lottie.default\">\n\t\t\t\t\t<a class=\"e-lottie__container__link\" href=\"#intro\"><div class=\"e-lottie__container\"><div class=\"e-lottie__animation\"><\/div><\/div><\/a>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-48e27f5 animated-slow elementor-widget__width-initial elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"48e27f5\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Fixed price, no surprises<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-59f9e95 animated-slow elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"59f9e95\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>You only pay what we agree on: starting from \u20ac30, without taximeter and without hidden costs. Even in case of delays or traffic. <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-af3efd7 e-con-full e-flex e-con e-child\" data-id=\"af3efd7\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b1a0ac8 elementor-align-center elementor-widget elementor-widget-lottie\" data-id=\"b1a0ac8\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;source_json&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/humbletaxi.it\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/wired-outline-912-driver-driving-person-hover-pinch.json&quot;,&quot;id&quot;:519,&quot;size&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;source&quot;:&quot;library&quot;},&quot;loop&quot;:&quot;yes&quot;,&quot;play_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0.5,&quot;sizes&quot;:[]},&quot;source&quot;:&quot;media_file&quot;,&quot;caption_source&quot;:&quot;none&quot;,&quot;link_to&quot;:&quot;none&quot;,&quot;trigger&quot;:&quot;arriving_to_viewport&quot;,&quot;viewport&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;start_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;end_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:100,&quot;sizes&quot;:[]},&quot;renderer&quot;:&quot;svg&quot;}\" data-widget_type=\"lottie.default\">\n\t\t\t\t\t<div class=\"e-lottie__container\"><div class=\"e-lottie__animation\"><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a0c3cf7 animated-slow elementor-widget__width-initial elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"a0c3cf7\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Professional drivers<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2bdb9a7 animated-slow elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"2bdb9a7\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Experienced drivers, always punctual, with NCC license and deep knowledge of the area. Welcome with name sign directly at the airport exit. <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f4a5a0f e-con-full e-flex e-con e-child\" data-id=\"f4a5a0f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e2c7227 elementor-align-center elementor-widget elementor-widget-lottie\" data-id=\"e2c7227\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;source_json&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/humbletaxi.it\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/wired-outline-405-non-stop-24-h-hover-spin.json&quot;,&quot;id&quot;:520,&quot;size&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;source&quot;:&quot;library&quot;},&quot;loop&quot;:&quot;yes&quot;,&quot;play_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0.5,&quot;sizes&quot;:[]},&quot;source&quot;:&quot;media_file&quot;,&quot;caption_source&quot;:&quot;none&quot;,&quot;link_to&quot;:&quot;none&quot;,&quot;trigger&quot;:&quot;arriving_to_viewport&quot;,&quot;viewport&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;start_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;end_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:100,&quot;sizes&quot;:[]},&quot;renderer&quot;:&quot;svg&quot;}\" data-widget_type=\"lottie.default\">\n\t\t\t\t\t<div class=\"e-lottie__container\"><div class=\"e-lottie__animation\"><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c92189b animated-slow elementor-widget__width-initial elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"c92189b\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Service available 24\/7<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8e0e794 animated-slow elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"8e0e794\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Landing at dawn or in the middle of the night? No problem: we are operational 7 days a week, 24 hours a day, all year round. <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ea9e4b5 e-con-full e-flex e-con e-child\" data-id=\"ea9e4b5\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-08394ed elementor-align-center elementor-widget elementor-widget-lottie\" data-id=\"08394ed\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;source_json&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/humbletaxi.it\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/wired-outline-973-appointment-schedule-hover-click.json&quot;,&quot;id&quot;:521,&quot;size&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;source&quot;:&quot;library&quot;},&quot;loop&quot;:&quot;yes&quot;,&quot;play_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0.5,&quot;sizes&quot;:[]},&quot;source&quot;:&quot;media_file&quot;,&quot;caption_source&quot;:&quot;none&quot;,&quot;link_to&quot;:&quot;none&quot;,&quot;trigger&quot;:&quot;arriving_to_viewport&quot;,&quot;viewport&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;start_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;end_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:100,&quot;sizes&quot;:[]},&quot;renderer&quot;:&quot;svg&quot;}\" data-widget_type=\"lottie.default\">\n\t\t\t\t\t<div class=\"e-lottie__container\"><div class=\"e-lottie__animation\"><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-46ceff4 animated-slow elementor-widget__width-initial elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"46ceff4\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Simple and fast booking<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-28a7b2c animated-slow elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"28a7b2c\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Book your transfer in a few clicks, or via WhatsApp, phone or email. Quick confirmation and dedicated assistance. <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Reliability, comfort and transparency. Always. Name and Surname \/ Company: Phone: Email: Departure Location: Destination: Vehicle: Choose the type of vehicle&#8230;Mercedes Vito (1-8 pax)Mercedes V Class (1-7 pax) Invalid number of people for the selected vehicle. Number of People: Day: Service Time: Train \/ Flight Number: Message: Your privacy is important! Check the box to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-803","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Book Online - Humble Taxi NCC<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/humbletaxi.it\/en\/book-online\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Book Online - Humble Taxi NCC\" \/>\n<meta property=\"og:description\" content=\"Reliability, comfort and transparency. Always. Name and Surname \/ Company: Phone: Email: Departure Location: Destination: Vehicle: Choose the type of vehicle&#8230;Mercedes Vito (1-8 pax)Mercedes V Class (1-7 pax) Invalid number of people for the selected vehicle. Number of People: Day: Service Time: Train \/ Flight Number: Message: Your privacy is important! Check the box to [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/humbletaxi.it\/en\/book-online\/\" \/>\n<meta property=\"og:site_name\" content=\"Humble Taxi NCC\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-29T11:12:55+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/humbletaxi.it\\\/en\\\/book-online\\\/\",\"url\":\"https:\\\/\\\/humbletaxi.it\\\/en\\\/book-online\\\/\",\"name\":\"Book Online - Humble Taxi NCC\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/humbletaxi.it\\\/en\\\/#website\"},\"datePublished\":\"2025-06-02T17:41:12+00:00\",\"dateModified\":\"2025-07-29T11:12:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/humbletaxi.it\\\/en\\\/book-online\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/humbletaxi.it\\\/en\\\/book-online\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/humbletaxi.it\\\/en\\\/book-online\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/humbletaxi.it\\\/en\\\/home\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Book Online\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/humbletaxi.it\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/humbletaxi.it\\\/en\\\/\",\"name\":\"Humble Taxi NCC\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/humbletaxi.it\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Book Online - Humble Taxi NCC","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/humbletaxi.it\/en\/book-online\/","og_locale":"en_US","og_type":"article","og_title":"Book Online - Humble Taxi NCC","og_description":"Reliability, comfort and transparency. Always. Name and Surname \/ Company: Phone: Email: Departure Location: Destination: Vehicle: Choose the type of vehicle&#8230;Mercedes Vito (1-8 pax)Mercedes V Class (1-7 pax) Invalid number of people for the selected vehicle. Number of People: Day: Service Time: Train \/ Flight Number: Message: Your privacy is important! Check the box to [&hellip;]","og_url":"https:\/\/humbletaxi.it\/en\/book-online\/","og_site_name":"Humble Taxi NCC","article_modified_time":"2025-07-29T11:12:55+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/humbletaxi.it\/en\/book-online\/","url":"https:\/\/humbletaxi.it\/en\/book-online\/","name":"Book Online - Humble Taxi NCC","isPartOf":{"@id":"https:\/\/humbletaxi.it\/en\/#website"},"datePublished":"2025-06-02T17:41:12+00:00","dateModified":"2025-07-29T11:12:55+00:00","breadcrumb":{"@id":"https:\/\/humbletaxi.it\/en\/book-online\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/humbletaxi.it\/en\/book-online\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/humbletaxi.it\/en\/book-online\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/humbletaxi.it\/en\/home\/"},{"@type":"ListItem","position":2,"name":"Book Online"}]},{"@type":"WebSite","@id":"https:\/\/humbletaxi.it\/en\/#website","url":"https:\/\/humbletaxi.it\/en\/","name":"Humble Taxi NCC","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/humbletaxi.it\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/humbletaxi.it\/en\/wp-json\/wp\/v2\/pages\/803","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/humbletaxi.it\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/humbletaxi.it\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/humbletaxi.it\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/humbletaxi.it\/en\/wp-json\/wp\/v2\/comments?post=803"}],"version-history":[{"count":1,"href":"https:\/\/humbletaxi.it\/en\/wp-json\/wp\/v2\/pages\/803\/revisions"}],"predecessor-version":[{"id":804,"href":"https:\/\/humbletaxi.it\/en\/wp-json\/wp\/v2\/pages\/803\/revisions\/804"}],"wp:attachment":[{"href":"https:\/\/humbletaxi.it\/en\/wp-json\/wp\/v2\/media?parent=803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}