It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

Source: https://citytransfers.eu

  1. <!DOCTYPE html>
  2. <html lang="en" dir="ltr">
  3. <head>
  4.    <!-- Google tag (gtag.js) -->
  5.    <script async src="https://www.googletagmanager.com/gtag/js?id=G-LB5SY611KC"></script>
  6.    <script>
  7.      window.dataLayer = window.dataLayer || [];
  8.      function gtag(){dataLayer.push(arguments);}
  9.      gtag('js', new Date());
  10.  
  11.      gtag('config', 'G-LB5SY611KC');
  12.    </script>
  13.    
  14.    <!-- SEO Optimized Meta Tags -->
  15.    <meta charset="UTF-8">
  16.    <meta name="viewport" content="width=device-width, initial-scale=1.0">
  17.    <title>City Transfers - Reliable City-to-City Transportation Services</title>
  18.    <meta name="description" content="City Transfers offers reliable and affordable city-to-city transportation services. Book your intercity ride today!">
  19.    <meta name="keywords" content="City Transfers, intercity transportation, city-to-city rides, reliable transport">
  20.    <meta property="og:title" content="City Transfers - Reliable City-to-City Transportation Services">
  21.    <meta property="og:description" content="City Transfers offers reliable and affordable city-to-city transportation services. Book your intercity ride today!">
  22.    <meta property="og:image" content="https://citytransfers.eu/logo.png">
  23.    <meta property="og:url" content="https://citytransfers.eu/">
  24.    <meta property="og:type" content="website">
  25.    <link rel="canonical" href="https://citytransfers.eu/">
  26.    <link rel="manifest" href="/manifest.json">
  27.    
  28.    <!-- Structured Data -->
  29.    <script type="application/ld+json">
  30.    {
  31.        "@context": "https://schema.org",
  32.        "@type": "WebSite",
  33.        "name": "City Transfers",
  34.        "url": "https://citytransfers.eu",
  35.        "potentialAction": {
  36.            "@type": "SearchAction",
  37.            "target": "https://citytransfers.eu/search?q={search_term_string}",
  38.            "query-input": "required name=search_term_string"
  39.        }
  40.    }
  41.    </script>
  42.  
  43.    <!-- External CSS and JS Files -->
  44.    <style>
  45. /* Reset default margins and paddings */
  46. * {
  47.    margin: 0;
  48.    padding: 0;
  49.    box-sizing: border-box;
  50. }
  51.  
  52. /* Styling the logo container */
  53. .logo-container {
  54.    display: flex;
  55.    align-items: center;
  56.    justify-content: center;
  57.    margin-bottom: 10px;
  58.    padding: 10px 0;
  59. }
  60.  
  61. /* Logo styling */
  62. .logo {
  63.    height: 50px;
  64.    margin-right: 10px;
  65. }
  66.  
  67. /* Text next to the logo */
  68. .logo-text {
  69.    font-size: 1.5rem;
  70.    font-weight: bold;
  71.    color: #333;
  72.    text-decoration: none;
  73. }
  74.  
  75. /* Make sure the text is not blue (for links) */
  76. .logo-link {
  77.    text-decoration: none;
  78.    color: inherit;
  79. }
  80.  
  81. /* Navigation Bar Styling */
  82. .navbar {
  83.    background-color: #333;
  84.    font-family: Arial, sans-serif;
  85. }
  86.  
  87. .navbar-container {
  88.    display: flex;
  89.    flex-wrap: nowrap;
  90.    align-items: center;
  91.    justify-content: center;
  92.    padding: 10px;
  93.    width: 100%;
  94. }
  95.  
  96. .navbar .tab {
  97.    color: white;
  98.    text-align: center;
  99.    padding: 10px 15px;
  100.    text-decoration: none;
  101.    margin: 0 5px;
  102. }
  103.  
  104. .navbar .tab:hover {
  105.    background-color: #ddd;
  106.    color: black;
  107. }
  108.  
  109. .navbar-toggle {
  110.    display: none;
  111.    background-color: #333;
  112.    color: white;
  113.    border: none;
  114.    padding: 10px 15px;
  115.    font-size: 18px;
  116.    cursor: pointer;
  117. }
  118.  
  119. /* Language Switcher Styling */
  120. .language-switcher {
  121.    display: flex;
  122.    align-items: center;
  123.    margin-left: 20px; /* Adjust spacing as needed */
  124. }
  125.  
  126. .language-switcher a {
  127.    margin: 0 5px;
  128.    display: inline-block;
  129.    transition: transform 0.2s;
  130. }
  131.  
  132. .language-switcher a:hover {
  133.    transform: scale(1.1); /* Slight zoom on hover */
  134. }
  135.  
  136. .language-switcher .flag-icon {
  137.    width: 24px; /* Adjust size as needed */
  138.    height: auto;
  139.    cursor: pointer;
  140.    border: 1px solid #ddd;
  141.    border-radius: 4px;
  142.    opacity: 0.6; /* Default opacity */
  143.    transition: opacity 0.3s, border 0.3s;
  144. }
  145.  
  146. .language-switcher .flag-icon:hover {
  147.    opacity: 1; /* Full opacity on hover */
  148. }
  149.  
  150. .flag-icon.active-lang {
  151.    border: 2px solid #007bff; /* Highlight color for active language */
  152.    opacity: 1;
  153. }
  154.  
  155. /* Mobile Menu Styling */
  156. @media screen and (max-width: 768px) {
  157.    .navbar-container {
  158.        flex-direction: column;
  159.        align-items: center;
  160.        display: none;
  161.        width: 100%;
  162.    }
  163.  
  164.    .navbar-container.active {
  165.        display: flex;
  166.    }
  167.  
  168.    .navbar .tab {
  169.        width: 100%;
  170.        text-align: left;
  171.        padding-left: 20px;
  172.        border-top: 1px solid #444;
  173.    }
  174.  
  175.    .navbar-toggle {
  176.        display: block;
  177.        width: 100%;
  178.        text-align: left;
  179.        border: none;
  180.        background-color: #333;
  181.    }
  182.  
  183.    /* Responsive Adjustments for Language Switcher */
  184.    .language-switcher {
  185.        margin-left: 0;
  186.        margin-top: 10px; /* Stack below navigation tabs */
  187.        position: absolute;
  188.        right: 15px; /* Move to the right */
  189.        top: 10px; /* Align at the top of the mobile navbar */
  190.    }
  191.  
  192.    .language-switcher a {
  193.        margin: 0 3px;
  194.    }
  195.  
  196.    .language-switcher .flag-icon {
  197.        width: 20px;
  198.    }
  199. }
  200.  
  201. /* Additional Styles for Cookie Banner */
  202. .cookie-banner a {
  203.    color: #0d6efd;
  204.    text-decoration: underline;
  205. }
  206.  
  207. .cookie-banner a:hover {
  208.    color: #0a58ca;
  209. }
  210.  
  211. .cookie-banner button {
  212.    margin-top: 10px;
  213. }
  214.  
  215. @media (min-width: 768px) {
  216.    .cookie-banner button {
  217.        margin-top: 0;
  218.    }
  219. }
  220.  
  221. /* Offers Beam Styling */
  222. .offers-beam {
  223.    background-color: #28a745;
  224.    color: white;
  225.    padding: 10px;
  226.    text-align: center;
  227.    font-weight: bold;
  228.    position: relative;
  229.    z-index: 1000;
  230.    display: none; /* Hidden by default */
  231.    opacity: 0; /* For seamless transition */
  232.    transition: opacity 0.5s ease-in-out; /* Smooth transition */
  233. }
  234.  
  235. .offers-beam.visible {
  236.    display: block;
  237.    opacity: 1;
  238. }
  239.  
  240. /* Registration Beam Styling */
  241. .register-beam {
  242.    background-color: #f7f7f7; /* Lighter background color */
  243.    padding: 8px 15px; /* Adjusted padding */
  244.    border: 1px solid #007bff; /* Border color */
  245.    border-radius: 4px; /* Slightly rounder corners */
  246.    margin: 15px auto; /* Center the beam */
  247.    width: 75%; /* Set width to 75% of the screen */
  248.    font-size: 0.85rem; /* Smaller font size */
  249.    display: flex; /* Use flexbox for horizontal alignment */
  250.    justify-content: center; /* Center the content */
  251.    align-items: center; /* Vertically center the content */
  252.    gap: 15px; /* Space between the text and button */
  253.    animation: pulse 2s infinite; /* Animation for attention */
  254. }
  255.  
  256. .register-beam p {
  257.    font-weight: 500; /* Reduced font weight */
  258.    color: #007bff; /* Blue text */
  259.    margin: 0; /* Remove default margin */
  260.    font-size: 0.85rem; /* Smaller text */
  261. }
  262.  
  263. .register-beam .btn {
  264.    font-size: 0.85rem; /* Smaller button text */
  265.    padding: 5px 10px; /* Smaller button padding */
  266. }
  267.  
  268. /* Animation Styles */
  269. @keyframes pulse {
  270.    0% { transform: scale(1); }
  271.    50% { transform: scale(1.05); }
  272.    100% { transform: scale(1); }
  273. }
  274.  
  275. /* Initially hide the install button */
  276. #install-pwa {
  277.    display: none; /* Hidden by default */
  278.    cursor: pointer;
  279.    background-color: #007bff;
  280.    color: white;
  281.    border: none;
  282.    padding: 5px 10px;
  283.    border-radius: 4px;
  284.    text-decoration: none;
  285.    font-size: 0.85rem;
  286. }
  287.  
  288. /* Optional: Add specific styles for the install button */
  289. #install-pwa:hover {
  290.    background-color: #0056b3;
  291.    color: white;
  292. }
  293.  
  294. /* Optional Styles for Language Switcher */
  295. .language-switcher {
  296.    display: flex;
  297.    align-items: center;
  298.    margin-left: 20px;
  299. }
  300.  
  301. .language-switcher a {
  302.    margin: 0 5px;
  303.    display: inline-block;
  304.    transition: transform 0.2s;
  305. }
  306.  
  307. .language-switcher a:hover {
  308.    transform: scale(1.1); /* Slight zoom on hover */
  309. }
  310.  
  311. .language-switcher .flag-icon {
  312.    width: 24px; /* Adjust size as needed */
  313.    height: auto;
  314.    cursor: pointer;
  315.    border: 1px solid #ddd;
  316.    border-radius: 4px;
  317.    opacity: 0.6;
  318.    transition: opacity 0.3s, border 0.3s;
  319. }
  320.  
  321. .language-switcher .flag-icon:hover {
  322.    opacity: 1;
  323. }
  324.  
  325. .flag-icon.active-lang {
  326.    border: 2px solid #007bff; /* Highlight color for active language */
  327.    opacity: 1;
  328. }
  329.  
  330. /* Lightbox Styling */
  331. .language-lightbox {
  332.    display: none; /* Hidden by default */
  333.    position: fixed;
  334.    top: 0;
  335.    left: 0;
  336.    width: 100%;
  337.    height: 100%;
  338.    background-color: rgba(0, 0, 0, 0.8); /* Semi-transparent background */
  339.    justify-content: center;
  340.    align-items: center;
  341.    z-index: 1000; /* Ensure it is on top of all other elements */
  342. }
  343.  
  344. .language-lightbox.active {
  345.    display: flex; /* Show when active */
  346. }
  347.  
  348. .lightbox-content {
  349.    background-color: white;
  350.    padding: 20px;
  351.    border-radius: 8px;
  352.    display: flex;
  353.    flex-direction: column;
  354.    align-items: center;
  355.    max-width: 90%; /* Ensure it doesn't take up too much space on larger screens */
  356.    width: 100%;
  357.    overflow-y: auto; /* Enable scrolling if the content overflows */
  358.    max-height: 90%; /* Set a maximum height for the lightbox content */
  359. }
  360.  
  361. /* Language options in a responsive grid layout */
  362. .lang-options {
  363.    display: grid;
  364.    grid-template-columns: repeat(3, 1fr); /* Default to 3 columns */
  365.    gap: 15px;
  366.    width: 100%;
  367.    justify-items: center;
  368. }
  369.  
  370. .lightbox-content a {
  371.    margin: 10px;
  372.    text-decoration: none;
  373.    font-size: 18px;
  374.    color: #333;
  375.    transition: color 0.3s;
  376. }
  377.  
  378. .lightbox-content a:hover {
  379.    color: #007bff; /* Highlight on hover */
  380. }
  381.  
  382. /* Adjust the grid layout for smaller screens */
  383. @media (max-width: 768px) {
  384.    .lightbox-content {
  385.        padding: 15px;
  386.        max-width: 85%; /* Reduce width for smaller screens */
  387.        margin: 0 15px; /* Add margin to prevent content from touching the sides */
  388.    }
  389.  
  390.    /* Stack language options in 2 columns on smaller screens */
  391.    .lang-options {
  392.        grid-template-columns: repeat(2, 1fr); /* Use 2 columns for mobile */
  393.    }
  394.  
  395.    .lightbox-content a {
  396.        font-size: 16px; /* Slightly smaller text for mobile */
  397.    }
  398. }
  399.  
  400. /* Stack the options in 1 column on very small screens (extra small devices) */
  401. @media (max-width: 480px) {
  402.    .lang-options {
  403.        grid-template-columns: 1fr; /* Use 1 column for extra small screens */
  404.    }
  405. }
  406.  
  407. /* Flag icon styling */
  408. .flag-icon {
  409.    width: 20px; /* Adjust size as needed */
  410.    height: auto;
  411.    margin-right: 10px; /* Space between the flag and the language text */
  412.    vertical-align: middle; /* Align the flag with the text */
  413. }
  414.  
  415.  
  416.    </style>
  417. </head>
  418. <body>
  419.  
  420. <!-- Cookie Consent Banner -->
  421. <div id="cookie-banner" class="cookie-banner fixed-bottom bg-light text-dark p-3 shadow-lg" style="display: none;">
  422.    <div class="container d-flex justify-content-between align-items-center flex-column flex-md-row">
  423.        <div class="mb-2 mb-md-0">
  424.            <strong>Cookie Notice:</strong> We use cookies to log you in and identify you to assign your rides and requests. By using our website, you agree to our <a href="/privacy-policy">Privacy Policy</a>.
  425.        </div>
  426.        <button id="accept-cookies" class="btn btn-primary">Accept</button>
  427.    </div>
  428. </div>
  429.  
  430. <!-- Header Section with Logo -->
  431. <header class="logo-container">
  432.    <a href="/" class="logo-link">
  433.        <img src="/logo.png" alt="City Transfers Logo" class="logo">
  434.    </a>
  435. </header>
  436.  
  437. <!-- Offers Beam Section -->
  438.  
  439. <!-- Navigation Bar -->
  440. <nav class="navbar">
  441.    <!-- Mobile Menu Toggle Button -->
  442.    <button class="navbar-toggle" onclick="toggleNavbar()">☰ Menu</button>
  443.    <div class="navbar-container">
  444.        <a class="tab" href="/">Home</a>
  445.        <a class="tab" href="/book-a-ride">Book a Ride</a>
  446.        <a class="tab" href="/services">Services</a>
  447.        <a class="tab" href="/blog">Blog</a>
  448.        <a class="tab" href="/login">Login</a>
  449.        <a class="tab" href="/register">Register</a>
  450.                <a class="tab" href="/#" id="install-pwa">Install App</a>
  451.  
  452. <!-- Language Switcher Section (Only Show Active Flag) -->
  453. <div class="language-switcher" id="open-lightbox">
  454.            <img src="/assets/flags/en.svg" alt="English" class="flag-icon active-lang">
  455.    </div>
  456.  
  457. <!-- Language Lightbox -->
  458. <div id="language-lightbox" class="language-lightbox">
  459.    <div class="lightbox-content">
  460.        <button class="close-lightbox" onclick="closeLightbox()">×</button>
  461.        <div class="lang-options">
  462.            <a href="/?lang=bg" class="lang-option">
  463.                <img src="/assets/flags/bg.svg" alt="Bulgarian Flag" class="flag-icon"> Бългaрски
  464.            </a> <!-- Bulgarian -->
  465.            <a href="/?lang=cs" class="lang-option">
  466.                <img src="/assets/flags/cz.svg" alt="Czech Flag" class="flag-icon"> Čeština
  467.            </a> <!-- Czech -->
  468.            <a href="/?lang=da" class="lang-option">
  469.                <img src="/assets/flags/dk.svg" alt="Danish Flag" class="flag-icon"> Dansk
  470.            </a> <!-- Danish -->
  471.            <a href="/?lang=de" class="lang-option">
  472.                <img src="/assets/flags/de.svg" alt="German Flag" class="flag-icon"> Deutsch
  473.            </a> <!-- German -->
  474.            <a href="/?lang=el" class="lang-option">
  475.                <img src="/assets/flags/gr.svg" alt="Greek Flag" class="flag-icon"> Ελληνικά
  476.            </a> <!-- Greek -->
  477.            <a href="/?lang=en" class="lang-option">
  478.                <img src="/assets/flags/en.svg" alt="English Flag" class="flag-icon"> English
  479.            </a> <!-- English -->
  480.            <a href="/?lang=es" class="lang-option">
  481.                <img src="/assets/flags/es.svg" alt="Spanish Flag" class="flag-icon"> Español
  482.            </a> <!-- Spanish -->
  483.            <a href="/?lang=fi" class="lang-option">
  484.                <img src="/assets/flags/fi.svg" alt="Finnish Flag" class="flag-icon"> Suomi
  485.            </a> <!-- Finnish -->
  486.            <a href="/?lang=fr" class="lang-option">
  487.                <img src="/assets/flags/fr.svg" alt="French Flag" class="flag-icon"> Français
  488.            </a> <!-- French -->
  489.            <a href="/?lang=hr" class="lang-option">
  490.                <img src="/assets/flags/hr.svg" alt="Croatian Flag" class="flag-icon"> Hrvatski
  491.            </a> <!-- Croatian -->
  492.            <a href="/?lang=hu" class="lang-option">
  493.                <img src="/assets/flags/hu.svg" alt="Hungarian Flag" class="flag-icon"> Magyar
  494.            </a> <!-- Hungarian -->
  495.            <a href="/?lang=it" class="lang-option">
  496.                <img src="/assets/flags/it.svg" alt="Italian Flag" class="flag-icon"> Italiano
  497.            </a> <!-- Italian -->
  498.            <a href="/?lang=nl" class="lang-option">
  499.                <img src="/assets/flags/nl.svg" alt="Dutch Flag" class="flag-icon"> Nederlands
  500.            </a> <!-- Dutch -->
  501.            <a href="/?lang=no" class="lang-option">
  502.                <img src="/assets/flags/no.svg" alt="Norwegian Flag" class="flag-icon"> Norsk
  503.            </a> <!-- Norwegian -->
  504.            <a href="/?lang=pl" class="lang-option">
  505.                <img src="/assets/flags/pl.svg" alt="Polish Flag" class="flag-icon"> Polski
  506.            </a> <!-- Polish -->
  507.            <a href="/?lang=pt" class="lang-option">
  508.                <img src="/assets/flags/pt.svg" alt="Portuguese Flag" class="flag-icon"> Português
  509.            </a> <!-- Portuguese -->
  510.            <a href="/?lang=ro" class="lang-option">
  511.                <img src="/assets/flags/ro.svg" alt="Romanian Flag" class="flag-icon"> Română
  512.            </a> <!-- Romanian -->
  513.            <a href="/?lang=ru" class="lang-option">
  514.                <img src="/assets/flags/xx.svg" alt="Russian Flag" class="flag-icon"> Русский
  515.            </a> <!-- Russian -->
  516.            <a href="/?lang=sk" class="lang-option">
  517.                <img src="/assets/flags/sk.svg" alt="Slovak Flag" class="flag-icon"> Slovenčina
  518.            </a> <!-- Slovak -->
  519.            <a href="/?lang=sl" class="lang-option">
  520.                <img src="/assets/flags/si.svg" alt="Slovenian Flag" class="flag-icon"> Slovenščina
  521.            </a> <!-- Slovenian -->
  522.            <a href="/?lang=sv" class="lang-option">
  523.                <img src="/assets/flags/se.svg" alt="Swedish Flag" class="flag-icon"> Svenska
  524.            </a> <!-- Swedish -->
  525.            <a href="/?lang=tr" class="lang-option">
  526.                <img src="/assets/flags/tr.svg" alt="Turkish Flag" class="flag-icon"> Türkçe
  527.            </a> <!-- Turkish -->
  528.            <a href="/?lang=uk" class="lang-option">
  529.                <img src="/assets/flags/ua.svg" alt="Ukrainian Flag" class="flag-icon"> Українська
  530.            </a> <!-- Ukrainian -->
  531.        </div>
  532.    </div>
  533. </div>
  534.  
  535.  
  536.  
  537.  
  538. <!-- JavaScript for Language Lightbox -->
  539. <script>
  540.    // Open the lightbox when flag is clicked
  541.    document.getElementById('open-lightbox').addEventListener('click', function(event) {
  542.        event.preventDefault();
  543.        document.getElementById('language-lightbox').classList.add('active');
  544.    });
  545.  
  546.    // Close the lightbox when the close button is clicked
  547.    function closeLightbox() {
  548.        document.getElementById('language-lightbox').classList.remove('active');
  549.    }
  550.  
  551.    // Close lightbox when clicking outside the content
  552.    document.getElementById('language-lightbox').addEventListener('click', function(event) {
  553.        if (event.target === this) {
  554.            closeLightbox();
  555.        }
  556.    });
  557. </script>
  558.    </div>
  559. </nav>
  560.  
  561. <!-- JavaScript for Toggle Functionality, PWA Install -->
  562. <script>
  563.    function toggleNavbar() {
  564.        var navbarContainer = document.querySelector('.navbar-container');
  565.        navbarContainer.classList.toggle('active');
  566.    }
  567.  
  568.    // Show the Offers beam when offers are available
  569.    document.addEventListener('DOMContentLoaded', function() {
  570.            });
  571.  
  572.    // PWA Install Logic
  573.    let deferredPrompt;
  574.  
  575.    // Listen for the beforeinstallprompt event
  576.    window.addEventListener('beforeinstallprompt', (e) => {
  577.        // Prevent the mini-infobar from appearing on mobile
  578.        e.preventDefault();
  579.        // Stash the event so it can be triggered later
  580.        deferredPrompt = e;
  581.        // Show the install button
  582.        const installButton = document.getElementById('install-pwa');
  583.        installButton.style.display = 'block'; // Ensure the button is visible
  584.        installButton.textContent = 'Install App';
  585.    });
  586.  
  587.    // Handle the install button click
  588.    document.getElementById('install-pwa').addEventListener('click', async (e) => {
  589.        e.preventDefault();
  590.        if (deferredPrompt) {
  591.            // Show the install prompt
  592.            deferredPrompt.prompt();
  593.            // Wait for the user to respond to the prompt
  594.            const { outcome } = await deferredPrompt.userChoice;
  595.            // Optionally, handle the response
  596.            if (outcome === 'accepted') {
  597.                console.log('User accepted the install prompt');
  598.            } else {
  599.                console.log('User dismissed the install prompt');
  600.            }
  601.            // Clear the deferredPrompt variable
  602.            deferredPrompt = null;
  603.        }
  604.    });
  605.  
  606.    // Optionally, hide the install button if the app is already installed
  607.    window.addEventListener('appinstalled', () => {
  608.        console.log('PWA was installed');
  609.        const installButton = document.getElementById('install-pwa');
  610.        installButton.style.display = 'none';
  611.    });
  612. </script>
  613.  
  614. <!-- Cookie Consent Script -->
  615. <script>
  616.    // Function to set a cookie
  617.    function setCookie(name, value, days) {
  618.        let expires = "";
  619.        if (days) {
  620.            const date = new Date();
  621.            date.setTime(date.getTime() + (days*24*60*60*1000));
  622.            expires = "; expires=" + date.toUTCString();
  623.        }
  624.        document.cookie = name + "=" + (value || "")  + expires + "; path=/";
  625.    }
  626.  
  627.    // Function to get a cookie
  628.    function getCookie(name) {
  629.        let nameEQ = name + "=";
  630.        let ca = document.cookie.split(';');
  631.        for(let i=0;i < ca.length;i++) {
  632.            let c = ca[i];
  633.            while (c.charAt(0)==' ') c = c.substring(1,c.length);
  634.            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  635.        }
  636.        return null;
  637.    }
  638.  
  639.    // Function to check consent and display banner if not accepted
  640.    function checkConsent() {
  641.        const consent = getCookie('cookie_consent');
  642.        if (!consent) {
  643.            document.getElementById('cookie-banner').style.display = 'block';
  644.        }
  645.    }
  646.  
  647.    // Function to accept cookies
  648.    function acceptCookies() {
  649.        setCookie('cookie_consent', 'accepted', 365);
  650.        document.getElementById('cookie-banner').style.display = 'none';
  651.    }
  652.  
  653.    // Event listener for the accept button
  654.    document.getElementById('accept-cookies').addEventListener('click', acceptCookies);
  655.  
  656.    // Check consent on page load
  657.    document.addEventListener('DOMContentLoaded', checkConsent);
  658. </script>
  659. </body>
  660. </html><!DOCTYPE html>
  661. <html lang="en">
  662. <head>
  663.    <meta charset="UTF-8">
  664.    <!-- Responsive Meta Tag -->
  665.    <meta name="viewport" content="width=device-width, initial-scale=1">
  666.    <link rel="manifest" href="/manifest.json">
  667.    <script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async=""></script>
  668.    <!-- Include Bootstrap 5 CSS from CDN -->
  669.    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
  670.    <!-- Include Bootstrap Icons (optional for visual enhancements) -->
  671.    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">
  672.    <!-- Custom CSS for additional styling -->
  673.    <style>
  674.        /* Custom styles for the larger input fields */
  675.        .large-input {
  676.            height: 60px; /* Adjust this value as needed */
  677.            padding: 0.375rem 0.75rem; /* Adjust padding if necessary */
  678.        }
  679.  
  680.        /* Added Section: Features */
  681.        .features-section {
  682.            padding: 60px 0;
  683.        }
  684.  
  685.        .features-section h2 {
  686.            text-align: center;
  687.            margin-bottom: 40px;
  688.        }
  689.  
  690.        .feature-item {
  691.            text-align: center;
  692.            padding: 20px;
  693.        }
  694.  
  695.        .feature-item i {
  696.            font-size: 3rem;
  697.            color: #0d6efd;
  698.            margin-bottom: 20px;
  699.        }
  700.  
  701.        /* Custom styles for the page */
  702.        .container-custom {
  703.            width: 90%;          /* Takes 90% of the screen width */
  704.            max-width: 1200px;    /* But will never exceed 1200px */
  705.            margin: 30px auto;
  706.            padding-bottom: 20px;
  707.        }
  708.  
  709.        /* Styling for the trip type navigation pills */
  710.        .trip-type-nav .nav-link {
  711.            border: 1px solid #dee2e6;
  712.            border-radius: 0;
  713.            color: #495057;
  714.            margin-right: 0.5rem;
  715.            cursor: pointer;
  716.        }
  717.  
  718.        .trip-type-nav .nav-link.active {
  719.            background-color: #0d6efd;
  720.            color: white;
  721.        }
  722.  
  723.        /* Map container to maintain aspect ratio */
  724.        .map-container {
  725.            width: 100%;
  726.            height: 0;
  727.            padding-bottom: 56.25%; /* 16:9 Aspect Ratio */
  728.            position: relative;
  729.        }
  730.  
  731.        #map {
  732.            position: absolute;
  733.            top: 0;
  734.            left: 0;
  735.            width: 100%;
  736.            height: 100%;
  737.        }
  738.  
  739.        /* Distance and duration information styling */
  740.        .info-container {
  741.            margin-top: 15px;
  742.            font-weight: bold;
  743.        }
  744.  
  745.        /* Loading spinner positioning */
  746.        #loading {
  747.            display: none;
  748.            text-align: center;
  749.            margin-top: 10px;
  750.        }
  751.  
  752.        /* Demo content section styling */
  753.        .demo-section {
  754.            padding: 40px 0 20px;
  755.        }
  756.  
  757.        .demo-section h2 {
  758.            margin-bottom: 30px;
  759.            text-align: center;
  760.        }
  761.  
  762.        /* Customer reviews card styling */
  763.        .review-card {
  764.            margin-bottom: 20px;
  765.        }
  766.  
  767.        /* Notice styling */
  768.        .notice {
  769.            margin-top: 15px;
  770.            padding: 10px;
  771.            background-color: #f8d7da;
  772.            color: #721c24;
  773.            border: 1px solid #f5c6cb;
  774.            border-radius: 5px;
  775.        }
  776.  
  777.        /* Responsive adjustments */
  778.        @media (max-width: 992px) {
  779.            /* Adjust map height for smaller screens */
  780.            .map-container {
  781.                padding-bottom: 75%; /* Adjust aspect ratio if needed */
  782.            }
  783.        }
  784.  
  785.        /* Additional styling for the form */
  786.        .form-section {
  787.            padding: 20px;
  788.            background-color: #ffffff;
  789.            border: 1px solid #dee2e6;
  790.            border-radius: 5px;
  791.            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  792.        }
  793.  
  794.        .form-section .form-label {
  795.            font-weight: 500;
  796.        }
  797.  
  798.        .form-section .required::after {
  799.            content: " *";
  800.            color: red;
  801.        }
  802.  
  803.        /* Adjust button styling */
  804.        .btn-primary {
  805.            background-color: #0d6efd;
  806.            border-color: #0d6efd;
  807.        }
  808.  
  809.        .btn-primary:hover {
  810.            background-color: #0b5ed7;
  811.            border-color: #0a58ca;
  812.        }
  813.  
  814.        .main-heading {
  815.            text-align: center;
  816.            font-size: 1.5rem;
  817.            font-weight: 700;
  818.            color: #343a40; /* Darker shade for contrast */
  819.            margin: 20px 0 20px;
  820.            line-height: 1.2;
  821.        }
  822.  
  823.        /* Smooth Scrolling */
  824.        html {
  825.            scroll-behavior: smooth;
  826.        }
  827.  
  828.        /* Custom Styling for Clickable Cards */
  829.        .clickable-card {
  830.            transition: transform 0.3s, box-shadow 0.3s;
  831.            cursor: pointer;
  832.        }
  833.  
  834.        .clickable-card:hover {
  835.            transform: translateY(-5px);
  836.            box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
  837.        }
  838.  
  839.        /* Ensure Links Do Not Have Underlines */
  840.        a.text-decoration-none {
  841.            text-decoration: none;
  842.        }
  843.  
  844.        /* Optional: Adjust Button Styling Inside Cards */
  845.        .clickable-card .btn-primary {
  846.            transition: background-color 0.3s, border-color 0.3s;
  847.        }
  848.  
  849.        .clickable-card .btn-primary:hover {
  850.            background-color: #0b5ed7;
  851.            border-color: #0a58ca;
  852.        }
  853.  
  854.        /* Responsive Adjustments for Smaller Screens */
  855.        @media (max-width: 576px) {
  856.            .clickable-card {
  857.                /* Any additional adjustments for mobile can go here */
  858.            }
  859.        }
  860.  
  861.        /* Extended City Transfers Section Styling */
  862.        .extended-city-transfers-section {
  863.            background-color: #f8f9fa; /* Light background for contrast */
  864.        }
  865.  
  866.        .extended-city-transfers-section h2,
  867.        .extended-city-transfers-section h3,
  868.        .extended-city-transfers-section h4,
  869.        .extended-city-transfers-section h5 {
  870.            color: #343a40; /* Dark gray for headings */
  871.        }
  872.  
  873.        .extended-city-transfers-section p {
  874.            color: #6c757d; /* Medium gray for text */
  875.            line-height: 1.6;
  876.        }
  877.  
  878.        .extended-city-transfers-section .highlight-item i {
  879.            font-size: 2.5rem;
  880.            color: #198754; /* Bootstrap's success color */
  881.        }
  882.  
  883.        .extended-city-transfers-section .highlight-item h4 {
  884.            font-size: 1.5rem;
  885.            margin-bottom: 10px;
  886.        }
  887.  
  888.        .extended-city-transfers-section .highlight-item p {
  889.            font-size: 1rem;
  890.        }
  891.  
  892.        .extended-city-transfers-section .service-detail i {
  893.            font-size: 2rem;
  894.            color: #198754; /* Bootstrap's success color */
  895.        }
  896.  
  897.        .extended-city-transfers-section .service-detail h4 {
  898.            font-size: 1.25rem;
  899.            margin-bottom: 5px;
  900.        }
  901.  
  902.        .extended-city-transfers-section .service-detail p {
  903.            font-size: 0.95rem;
  904.        }
  905.  
  906.        .extended-city-transfers-section .list-group-item {
  907.            border: none;
  908.            padding: 10px 0;
  909.        }
  910.  
  911.        .extended-city-transfers-section .list-group-item i {
  912.            font-size: 1.5rem;
  913.            color: #ffc107; /* Bootstrap's warning color */
  914.            margin-right: 15px;
  915.        }
  916.  
  917.        .extended-city-transfers-section .list-group-numbered {
  918.            counter-reset: item;
  919.        }
  920.  
  921.        .extended-city-transfers-section .list-group-numbered > li {
  922.            counter-increment: item;
  923.        }
  924.  
  925.        .extended-city-transfers-section .list-group-numbered > li::before {
  926.            content: counter(item) ". ";
  927.            font-weight: bold;
  928.            margin-right: 10px;
  929.        }
  930.  
  931.        .extended-city-transfers-section .testimonial-highlight blockquote {
  932.            font-style: italic;
  933.            background-color: #ffffff;
  934.            padding: 20px;
  935.            border-left: 5px solid #198754;
  936.            box-shadow: 0 2px 5px rgba(0,0,0,0.1);
  937.        }
  938.  
  939.        .extended-city-transfers-section .btn-success {
  940.            padding: 12px 30px;
  941.            font-size: 1.1rem;
  942.            border-radius: 25px;
  943.        }
  944.    </style>
  945.    
  946.    <!-- JavaScript for Google Maps and form interactions -->
  947.    <script>
  948.        let map, directionsService, directionsRenderer;
  949.        let autocompletePickup, autocompleteDropoff; // Declare globally
  950.  
  951.        // Initialize the Google Map
  952.        window.initMap = function() {
  953.            try {
  954.                directionsService = new google.maps.DirectionsService();
  955.                directionsRenderer = new google.maps.DirectionsRenderer();
  956.  
  957.                const defaultCenter = { lat: 51.1657, lng: 10.4515 }; // Centered on Germany
  958.  
  959.                map = new google.maps.Map(document.getElementById('map'), {
  960.                    zoom: 3,
  961.                    center: defaultCenter
  962.                });
  963.  
  964.                directionsRenderer.setMap(map);
  965.  
  966.                const inputPickup = document.getElementById('pickup');
  967.                const inputDropoff = document.getElementById('dropoff');
  968.  
  969.                // Autocomplete options (no types specified to allow various place types)
  970.                const options = {
  971.                    // types: ['geocode'] // Uncomment this if needed for geocoded results
  972.                };
  973.  
  974.                autocompletePickup = new google.maps.places.Autocomplete(inputPickup, options);
  975.                autocompleteDropoff = new google.maps.places.Autocomplete(inputDropoff, options);
  976.  
  977.                // Add event listeners to validate the place and calculate the route
  978.                autocompletePickup.addListener('place_changed', function () {
  979.                    const place = autocompletePickup.getPlace();
  980.                    if (!isAcceptablePlace(place)) {
  981.                        alert('Please select a specific pickup location (not a full city or country).');
  982.                        inputPickup.value = '';
  983.                    } else {
  984.                        calculateRoute();
  985.                    }
  986.                });
  987.  
  988.                autocompleteDropoff.addListener('place_changed', function () {
  989.                    const place = autocompleteDropoff.getPlace();
  990.                    if (!isAcceptablePlace(place)) {
  991.                        alert('Please select a specific dropoff location (not a full city or country).');
  992.                        inputDropoff.value = '';
  993.                    } else {
  994.                        calculateRoute();
  995.                    }
  996.                });
  997.  
  998.                // **New Addition: Check for pre-filled form data and calculate route if applicable**
  999.                            } catch (error) {
  1000.                console.error('Error initializing Google Maps:', error);
  1001.                alert('An error occurred while loading the map. Please refresh.');
  1002.            }
  1003.        }
  1004.  
  1005.        // Calculate and display the route on the map
  1006.        function calculateRoute() {
  1007.            const origin = document.getElementById('pickup').value;
  1008.            const destination = document.getElementById('dropoff').value;
  1009.  
  1010.            if (origin && destination) {
  1011.                // Show loading spinner
  1012.                document.getElementById('loading').style.display = 'block';
  1013.  
  1014.                const request = {
  1015.                    origin: origin,
  1016.                    destination: destination,
  1017.                    travelMode: 'DRIVING'
  1018.                };
  1019.  
  1020.                directionsService.route(request, function (result, status) {
  1021.                    // Hide loading spinner
  1022.                    document.getElementById('loading').style.display = 'none';
  1023.  
  1024.                    if (status === 'OK') {
  1025.                        directionsRenderer.setDirections(result);
  1026.  
  1027.                        const route = result.routes[0].legs[0];
  1028.                        document.getElementById('distance').innerText = 'Distance: ' + route.distance.text;
  1029.                        document.getElementById('duration').innerText = 'Duration: ' + route.duration.text;
  1030.  
  1031.                        // Populate hidden fields with route data for backend processing
  1032.                        document.getElementById('distance_hidden').value = route.distance.value;
  1033.                        document.getElementById('duration_hidden').value = route.duration.value;
  1034.  
  1035.                        document.getElementById('pickup_lat').value = route.start_location.lat();
  1036.                        document.getElementById('pickup_lng').value = route.start_location.lng();
  1037.                        document.getElementById('dropoff_lat').value = route.end_location.lat();
  1038.                        document.getElementById('dropoff_lng').value = route.end_location.lng();
  1039.                    } else {
  1040.                        console.error('Error fetching directions: ' + status);
  1041.                        alert('Could not display directions due to: ' + status);
  1042.                    }
  1043.                });
  1044.            }
  1045.        }
  1046.  
  1047.        // Function to check if the place is acceptable
  1048.        function isAcceptablePlace(place) {
  1049.            if (!place.types || !place.address_components) {
  1050.                return false;
  1051.            }
  1052.            const unacceptableTypes = ['country', 'locality']; // Exclude countries and full cities
  1053.            for (const type of place.types) {
  1054.                if (unacceptableTypes.includes(type)) {
  1055.                    return false;
  1056.                }
  1057.            }
  1058.            return true; // Acceptable place (e.g., sublocality, neighborhood, address)
  1059.        }
  1060.  
  1061.        // Function to handle trip type selection
  1062.        function selectTripType(tripType) {
  1063.            document.getElementById('trip_type').value = tripType;
  1064.  
  1065.            // References to containers
  1066.            const flightNumberContainer = document.getElementById('flight_number_container');
  1067.            const languageContainer = document.querySelector('#language').parentElement;
  1068.  
  1069.            const extraTimeContainer = document.getElementById('extra_time_container');
  1070.            const flightNumberRow = flightNumberContainer.parentElement;
  1071.            const flightNumberCol = flightNumberContainer;
  1072.            const flightNumberLabel = flightNumberContainer.querySelector('label');
  1073.  
  1074.            const noticeContainer = document.getElementById('notice_container');
  1075.            const eventTypeContainer = document.getElementById('event_type_container');
  1076.            const deliveryTypeContainer = document.getElementById('what_to_deliver_container');
  1077.            const weightContainer = document.getElementById('weight_container');
  1078.            const dimensionsContainer = document.getElementById('dimensions_container');
  1079.            const serviceTypeContainer = document.getElementById('service_type_container');
  1080.  
  1081.            const adultsField = document.getElementById('adults').closest('.row'); // Get the parent row of the adults field
  1082.            const kidsField = document.getElementById('kids_with_child_seats').closest('.row'); // Get the parent row of the kids field
  1083.  
  1084.            // Get references to the 'Additional Information' field and label
  1085.            const additionalInfoField = document.getElementById('additional_info');
  1086.            const additionalInfoLabel = document.getElementById('additional_info_label');
  1087.  
  1088.            // Determine whether to make 'Additional Information' required
  1089.            if (tripType === 'Sightseeing Tour' ||
  1090.                tripType === 'Event Ride' ||
  1091.                tripType === 'Courier Service') {
  1092.                additionalInfoField.setAttribute('required', 'required');
  1093.                additionalInfoLabel.classList.add('required');
  1094.            } else {
  1095.                additionalInfoField.removeAttribute('required');
  1096.                additionalInfoLabel.classList.remove('required');
  1097.            }
  1098.  
  1099.            // Change the placeholder text based on the trip type
  1100.            if (tripType === 'Sightseeing Tour') {
  1101.                additionalInfoField.placeholder = 'Please specify your plans or the places you would like to visit...';
  1102.            } else if (tripType === 'Event Ride') {
  1103.                additionalInfoField.placeholder = 'Please provide your plans or details about the event...';
  1104.            } else if (tripType === 'Courier Service') {
  1105.                additionalInfoField.placeholder = 'Please provide quantity, details and special instructions for the delivery...';
  1106.            } else {
  1107.                additionalInfoField.placeholder = 'Specify your ride details (optional)...';
  1108.            }
  1109.  
  1110.            if (tripType === 'Chauffeur Service' ||
  1111.                tripType === 'Transfer Service') {
  1112.                flightNumberContainer.style.display = 'block'; // Show Flight Number field
  1113.                languageContainer.classList.remove('col-md-12');
  1114.                languageContainer.classList.add('col-md-6');
  1115.            } else {
  1116.                flightNumberContainer.style.display = 'none'; // Hide Flight Number field
  1117.                languageContainer.classList.remove('col-md-6');
  1118.                languageContainer.classList.add('col-md-12');
  1119.            }
  1120.  
  1121.            if (tripType === 'Event Ride') {
  1122.                eventTypeContainer.style.display = 'block'; // Show event type field
  1123.            } else {
  1124.                eventTypeContainer.style.display = 'none'; // Hide event type field
  1125.            }
  1126.  
  1127.            if (tripType === 'Courier Service') {
  1128.                deliveryTypeContainer.style.display = 'block'; // Show Delivery Type field
  1129.                weightContainer.style.display = 'block'; // Show Weight field
  1130.                dimensionsContainer.style.display = 'block'; // Show Dimensions field
  1131.                serviceTypeContainer.style.display = 'block'; // Show Service Type field
  1132.                adultsField.style.display = 'none'; // Hide Adults field
  1133.                kidsField.style.display = 'none'; // Hide Kids field
  1134.            } else {
  1135.                deliveryTypeContainer.style.display = 'none'; // Hide Delivery Type field
  1136.                weightContainer.style.display = 'none'; // Hide Weight field
  1137.                dimensionsContainer.style.display = 'none'; // Hide Dimensions field
  1138.                serviceTypeContainer.style.display = 'none'; // Hide Service Type field
  1139.                adultsField.style.display = 'flex'; // Show Adults field
  1140.                kidsField.style.display = 'flex'; // Show Kids field
  1141.            }
  1142.  
  1143.            if (tripType === 'Chauffeur Service' ||
  1144.                tripType === 'Sightseeing Tour' ||
  1145.                tripType === 'Event Ride') {
  1146.                extraTimeContainer.style.display = 'block'; // Show Extra Time field
  1147.            } else {
  1148.                extraTimeContainer.style.display = 'none'; // Hide Extra Time field
  1149.            }
  1150.  
  1151.            // Show the notice for Sightseeing Tour
  1152.            if (tripType === 'Sightseeing Tour') {
  1153.                noticeContainer.style.display = 'block'; // Show notice
  1154.            } else {
  1155.                noticeContainer.style.display = 'none'; // Hide notice
  1156.            }
  1157.  
  1158.            // Optionally, expand the additional fields when a trip type is selected
  1159.            // Removed as fields are always visible
  1160.        }
  1161.  
  1162.        // Function to handle setting current location for a given field (pickup or dropoff)
  1163.        function setCurrentLocation(fieldType) {
  1164.            if (navigator.geolocation) {
  1165.                navigator.geolocation.getCurrentPosition(function(position) {
  1166.                    const lat = position.coords.latitude;
  1167.                    const lng = position.coords.longitude;
  1168.  
  1169.                    // Use Google Maps Geocoder to convert coordinates to an address
  1170.                    const geocoder = new google.maps.Geocoder();
  1171.                    const latlng = { lat: lat, lng: lng };
  1172.  
  1173.                    geocoder.geocode({ location: latlng }, function(results, status) {
  1174.                        if (status === 'OK') {
  1175.                            if (results[0]) {
  1176.                                // Set the address in the respective input field
  1177.                                if (fieldType === 'pickup') {
  1178.                                    document.getElementById('pickup').value = results[0].formatted_address;
  1179.                                    // Trigger the place_changed event for pickup
  1180.                                    google.maps.event.trigger(autocompletePickup, 'place_changed');
  1181.                                } else if (fieldType === 'dropoff') {
  1182.                                    document.getElementById('dropoff').value = results[0].formatted_address;
  1183.                                    // Trigger the place_changed event for dropoff
  1184.                                    google.maps.event.trigger(autocompleteDropoff, 'place_changed');
  1185.                                }
  1186.                            } else {
  1187.                                alert('No results found for your location.');
  1188.                            }
  1189.                        } else {
  1190.                            alert('Geocoder failed due to: ' + status);
  1191.                        }
  1192.                    });
  1193.                }, function(error) {
  1194.                    switch(error.code) {
  1195.                        case error.PERMISSION_DENIED:
  1196.                            alert('Location access was denied by the user.');
  1197.                            break;
  1198.                        case error.POSITION_UNAVAILABLE:
  1199.                            alert('Location information is unavailable.');
  1200.                            break;
  1201.                        case error.TIMEOUT:
  1202.                            alert('The request to get your location timed out.');
  1203.                            break;
  1204.                        case error.UNKNOWN_ERROR:
  1205.                            alert('An unknown error occurred while fetching your location.');
  1206.                            break;
  1207.                    }
  1208.                });
  1209.            } else {
  1210.                alert('Geolocation is not supported by your browser.');
  1211.            }
  1212.        }
  1213.  
  1214.        // Function to handle trip type selection
  1215.        // (Existing function remains unchanged)
  1216.  
  1217.        document.addEventListener('DOMContentLoaded', function () {
  1218.            // Handle trip type navigation clicks
  1219.            const tripTypeNavLinks = document.querySelectorAll('.trip-type-nav .nav-link');
  1220.            tripTypeNavLinks.forEach(function(link) {
  1221.                link.addEventListener('click', function() {
  1222.                    // Remove active class from all links
  1223.                    tripTypeNavLinks.forEach(function(l) { l.classList.remove('active'); });
  1224.                    // Add active class to the clicked link
  1225.                    this.classList.add('active');
  1226.                    // Set the trip type
  1227.                    const tripType = this.textContent.trim();
  1228.                    selectTripType(tripType);
  1229.                });
  1230.            });
  1231.  
  1232.            // Automatically select "Transfer Service" on page load
  1233.            const initialTripType = 'Transfer Service';
  1234.            document.getElementById('trip_type').value = initialTripType; // Set the hidden input value
  1235.            selectTripType(initialTripType); // This will set the initial state correctly
  1236.  
  1237.            // Handle form auto-expansion when Dropoff is filled
  1238.            const dropoffField = document.getElementById('dropoff');
  1239.            dropoffField.addEventListener('blur', function() {
  1240.                if (dropoffField.value.trim() !== '') {
  1241.                    // autoExpandForm(); // Uncomment if necessary
  1242.                }
  1243.            });
  1244.  
  1245.            // Add event listeners for current location buttons <!-- Added -->
  1246.            document.getElementById('pickup-current-location-btn').addEventListener('click', function() {
  1247.                setCurrentLocation('pickup');
  1248.            });
  1249.  
  1250.            document.getElementById('dropoff-current-location-btn').addEventListener('click', function() {
  1251.                setCurrentLocation('dropoff');
  1252.            });
  1253.  
  1254.            // If form data exists (for non-logged-in users after redirect), pre-fill the form
  1255.            // **This is now handled inside initMap(), so it's removed from here**
  1256.        });
  1257.    </script>
  1258.  
  1259.    <script>
  1260.      if (typeof navigator.serviceWorker !== 'undefined') {
  1261.        navigator.serviceWorker.register('sw.js')
  1262.      }
  1263.    </script>
  1264.  
  1265.    <script>
  1266.    // Fetch OneSignal player ID and store it in the hidden input field
  1267.    OneSignal.push(function() {
  1268.        OneSignal.getUserId(function(playerId) {
  1269.            document.getElementById('player_id').value = playerId;
  1270.        });
  1271.    });
  1272.    </script>
  1273. </head>
  1274. <body>
  1275.  
  1276.    <!-- Main Content Container -->
  1277.    <div class="container-custom">
  1278.  
  1279.        <!-- Display Success or Error Messages -->
  1280.                
  1281.    
  1282.  
  1283.    <!-- Notice for booking prompt -->
  1284.    <div class="alert alert-info text-center mb-4">
  1285.        <strong>Book Your Ride Now!</strong> Fill out the form below to get a free quote.    </div>
  1286.  
  1287.  
  1288.        <!-- Trip Type Selection Navigation Pills -->
  1289.        <ul class="nav nav-pills mb-4 justify-content-center trip-type-nav" id="tripTypeTabs" role="tablist">
  1290.            <li class="nav-item">
  1291.                <a class="nav-link active" id="transfer-tab" role="tab" aria-controls="transfer" aria-selected="true" onclick="selectTripType('Transfer Service')">Transfer Service</a>
  1292.            </li>
  1293.            <li class="nav-item">
  1294.                <a class="nav-link" id="chauffeur-tab" role="tab" aria-controls="chauffeur" aria-selected="false" onclick="selectTripType('Chauffeur Service')">Chauffeur Service</a>
  1295.            </li>
  1296.            <li class="nav-item">
  1297.                <a class="nav-link" id="sightseeing-tab" role="tab" aria-controls="sightseeing" aria-selected="false" onclick="selectTripType('Sightseeing Tour')">Sightseeing Tour</a>
  1298.            </li>
  1299.            <li class="nav-item">
  1300.                <a class="nav-link" id="event-tab" role="tab" aria-controls="event" aria-selected="false" onclick="selectTripType('Event Ride')">Event Ride</a>
  1301.            </li>
  1302.            <li class="nav-item">
  1303.                <a class="nav-link" id="courier-tab" role="tab" aria-controls="courier" aria-selected="false" onclick="selectTripType('Courier Service')">Courier Service</a>
  1304.            </li>
  1305.        </ul>
  1306.  
  1307.  
  1308.        <!-- Notice for Sightseeing Tour -->
  1309.        <div id="notice_container" class="notice" style="display: none;">
  1310.            Meals or entrance tickets not included. Chauffeur only.        </div>
  1311.  
  1312.        <!-- Form and Map Section using Bootstrap Grid -->
  1313.        <div class="row">
  1314.            <!-- Ride Request Form Column -->
  1315.            <div class="col-lg-7 mb-4">
  1316.                <div class="form-section">
  1317.                    <form id="ride_form" action="/submit_ride.php" method="POST">
  1318.  
  1319.                        <!-- CSRF Token -->
  1320.                        <input type="hidden" name="csrf_token" value="f50d340b5bdbe8827609d5af446af0bc099f5448c2285962eb25cf169ef502b8">
  1321.  
  1322.                        <!-- Hidden input for customer_id or cookie_id -->
  1323.                                                    <input type="hidden" name="cookie_id" value="0">
  1324.                        
  1325.                        <!-- Hidden input for OneSignal player ID -->
  1326.                        <input type="hidden" name="player_id" id="player_id" value="">
  1327.  
  1328.                        <!-- Hidden input to store selected trip type -->
  1329.                        <input type="hidden" id="trip_type" name="trip_type" value="Transfer Service">
  1330.  
  1331.                        <!-- Pickup Location Field -->
  1332.                        <div class="mb-3">
  1333.                            <label for="pickup" class="form-label required">Pickup Location</label>
  1334.                            <div class="input-group">
  1335.                                <input type="text" class="form-control large-input" id="pickup" name="pickup_location_name" placeholder="Location, Airport, Hotel..." required value="">
  1336.                                <button type="button" class="btn btn-outline-secondary" id="pickup-current-location-btn" title="">
  1337.                                    <i class="bi bi-geo-alt"></i>
  1338.                                </button>
  1339.                            </div>
  1340.                        </div>
  1341.  
  1342.                        <!-- Dropoff Location Field -->
  1343.                        <div class="mb-3">
  1344.                            <label for="dropoff" class="form-label required">Dropoff Location</label>
  1345.                            <div class="input-group">
  1346.                                <input type="text" class="form-control large-input" id="dropoff" name="dropoff_location_name" placeholder="Location, Airport, Hotel..." required value="">
  1347.                                <button type="button" class="btn btn-outline-secondary" id="dropoff-current-location-btn" title="">
  1348.                                    <i class="bi bi-geo-alt"></i>
  1349.                                </button>
  1350.                            </div>
  1351.                        </div>
  1352.  
  1353.                        <!-- Trip Date and Time -->
  1354.                        <div class="row mb-3">
  1355.                            <div class="col-md-6">
  1356.                                <label for="trip_date" class="form-label required">Trip Date</label>
  1357.                                <input type="date" class="form-control" id="trip_date" name="trip_date" required min="2024-11-22" max="2025-11-22" value="">
  1358.                            </div>
  1359.                            <div class="col-md-6">
  1360.                                <label for="trip_time" class="form-label required">Trip Time</label>
  1361.                                <select class="form-select" id="trip_time" name="trip_time" required>
  1362.                                    <option value="" disabled selected>Select Time</option>
  1363.                                    <option value="00:00" >00:00</option><option value="00:15" >00:15</option><option value="00:30" >00:30</option><option value="00:45" >00:45</option><option value="01:00" >01:00</option><option value="01:15" >01:15</option><option value="01:30" >01:30</option><option value="01:45" >01:45</option><option value="02:00" >02:00</option><option value="02:15" >02:15</option><option value="02:30" >02:30</option><option value="02:45" >02:45</option><option value="03:00" >03:00</option><option value="03:15" >03:15</option><option value="03:30" >03:30</option><option value="03:45" >03:45</option><option value="04:00" >04:00</option><option value="04:15" >04:15</option><option value="04:30" >04:30</option><option value="04:45" >04:45</option><option value="05:00" >05:00</option><option value="05:15" >05:15</option><option value="05:30" >05:30</option><option value="05:45" >05:45</option><option value="06:00" >06:00</option><option value="06:15" >06:15</option><option value="06:30" >06:30</option><option value="06:45" >06:45</option><option value="07:00" >07:00</option><option value="07:15" >07:15</option><option value="07:30" >07:30</option><option value="07:45" >07:45</option><option value="08:00" >08:00</option><option value="08:15" >08:15</option><option value="08:30" >08:30</option><option value="08:45" >08:45</option><option value="09:00" >09:00</option><option value="09:15" >09:15</option><option value="09:30" >09:30</option><option value="09:45" >09:45</option><option value="10:00" >10:00</option><option value="10:15" >10:15</option><option value="10:30" >10:30</option><option value="10:45" >10:45</option><option value="11:00" >11:00</option><option value="11:15" >11:15</option><option value="11:30" >11:30</option><option value="11:45" >11:45</option><option value="12:00" >12:00</option><option value="12:15" >12:15</option><option value="12:30" >12:30</option><option value="12:45" >12:45</option><option value="13:00" >13:00</option><option value="13:15" >13:15</option><option value="13:30" >13:30</option><option value="13:45" >13:45</option><option value="14:00" >14:00</option><option value="14:15" >14:15</option><option value="14:30" >14:30</option><option value="14:45" >14:45</option><option value="15:00" >15:00</option><option value="15:15" >15:15</option><option value="15:30" >15:30</option><option value="15:45" >15:45</option><option value="16:00" >16:00</option><option value="16:15" >16:15</option><option value="16:30" >16:30</option><option value="16:45" >16:45</option><option value="17:00" >17:00</option><option value="17:15" >17:15</option><option value="17:30" >17:30</option><option value="17:45" >17:45</option><option value="18:00" >18:00</option><option value="18:15" >18:15</option><option value="18:30" >18:30</option><option value="18:45" >18:45</option><option value="19:00" >19:00</option><option value="19:15" >19:15</option><option value="19:30" >19:30</option><option value="19:45" >19:45</option><option value="20:00" >20:00</option><option value="20:15" >20:15</option><option value="20:30" >20:30</option><option value="20:45" >20:45</option><option value="21:00" >21:00</option><option value="21:15" >21:15</option><option value="21:30" >21:30</option><option value="21:45" >21:45</option><option value="22:00" >22:00</option><option value="22:15" >22:15</option><option value="22:30" >22:30</option><option value="22:45" >22:45</option><option value="23:00" >23:00</option><option value="23:15" >23:15</option><option value="23:30" >23:30</option><option value="23:45" >23:45</option>                                </select>
  1364.                            </div>
  1365.                        </div>
  1366.  
  1367.                        <!-- Number of Passengers and Suitcases -->
  1368.                        <div class="row mb-3">
  1369.                            <div class="col-md-4">
  1370.                                <label for="adults" class="form-label required">Adults</label>
  1371.                                <input type="number" class="form-control" id="adults" name="adults" required min="1" value="1">
  1372.                            </div>
  1373.                            <div class="col-md-4">
  1374.                                <label for="kids_with_child_seats" class="form-label">Kids</label>
  1375.                                <input type="number" class="form-control" id="kids_with_child_seats" name="kids_with_child_seats" min="0" value="0">
  1376.                            </div>
  1377.                            <div class="col-md-4">
  1378.                                <label for="suitcases" class="form-label">Suitcases</label>
  1379.                                <input type="number" class="form-control" id="suitcases" name="suitcases" min="0" value="0">
  1380.                            </div>
  1381.                        </div>
  1382.  
  1383.                        <!-- Flight Number and Preferred Language Fields in One Row -->
  1384.                        <div class="row mb-3">
  1385.                            <!-- Flight Number Field (Only for Transfer Service and Chauffeur Service) -->
  1386.                            <div class="col-md-6" id="flight_number_container" style="display: none;">
  1387.                                <label for="flight_number" class="form-label">Flight Number</label>
  1388.                                <input type="text" class="form-control large-input" id="flight_number" name="flight_number" placeholder="e.g., LH1234" value="">
  1389.                            </div>
  1390.  
  1391.                            <!-- Preferred Language -->
  1392.                            <div class="col-md-6">
  1393.                                <label for="language" class="form-label">Preferred Language</label>
  1394.                                <select class="form-select large-input" id="language" name="language">
  1395.                                    <option value="English" >English</option>
  1396.                                    <option value="Español" >Español</option>
  1397.                                    <option value="Deutsch" >Deutsch</option>
  1398.                                    <option value="Français" >Français</option>
  1399.                                    <option value="Italiano" >Italiano</option>
  1400.                                    <option value="Português" >Português</option>
  1401.                                    <option value="中文" >中文</option>
  1402.                                    <option value="日本語" >日本語</option>
  1403.                                    <option value="한국어" >한국어</option>
  1404.                                    <option value="Русский" >Русский</option>
  1405.                                    <option value="العربية" >العربية</option>
  1406.                                    <option value="हिन्दी" >हिन्दी</option>
  1407.                                    <option value="Türkçe" >Türkçe</option>
  1408.                                    <option value="Nederlands" >Nederlands</option>
  1409.                                    <option value="Polski" >Polski</option>
  1410.                                    <option value="Svenska" >Svenska</option>
  1411.                                    <option value="Ελληνικά" >Ελληνικά</option>
  1412.                                    <option value="Tiếng Việt" >Tiếng Việt</option>
  1413.                                    <option value="ไทย" >ไทย</option>
  1414.                                    <option value="Українська" >Українська</option>
  1415.                                    <!-- Add more languages as needed -->
  1416.                                </select>
  1417.                            </div>
  1418.                        </div>
  1419.  
  1420.                        <!-- Event Type Field (Only for Event Ride) -->
  1421.                        <div class="row mb-3" id="event_type_container" style="display: none;">
  1422.                            <div class="col-md-12">
  1423.                                <label for="event_type" class="form-label">Event Type</label>
  1424.                                <select class="form-select" id="event_type" name="event_type">
  1425.                                    <option value="" disabled selected>Select Event Type</option>
  1426.                                    <option value="Wedding" >Wedding</option>
  1427.                                    <option value="Corporate Event" >Corporate Event</option>
  1428.                                    <option value="Prom" >Prom</option>
  1429.                                    <option value="Special Occasion (Birthday, Anniversary,...)" >Special Occasion (Birthday, Anniversary,...)</option>
  1430.                                    <option value="Concerts or Sports Event" >Concerts or Sports Event</option>
  1431.                                    <option value="Funeral" >Funeral</option>
  1432.                                    <option value="Private Party" >Private Party</option>
  1433.                                </select>
  1434.                            </div>
  1435.                        </div>
  1436.  
  1437.                        <!-- Delivery Type Field (Only for Courier Service) -->
  1438.                        <div class="row mb-3" id="what_to_deliver_container" style="display: none;">
  1439.                            <div class="col-md-12">
  1440.                                <label for="what_to_deliver" class="form-label">What to Deliver</label>
  1441.                                <select class="form-select" id="what_to_deliver" name="what_to_deliver">
  1442.                                    <option value="" disabled>Select Delivery Type</option>
  1443.                                    <option value="Documents" >Documents</option>
  1444.                                    <option value="Parcels and Packages" >Parcels and Packages</option>
  1445.                                    <option value="Medical Supplies" >Medical Supplies</option>
  1446.                                    <option value="Food and Beverages" >Food and Beverages</option>
  1447.                                    <option value="E-commerce Orders" >E-commerce Orders</option>
  1448.                                    <option value="Floral Arrangements" >Floral Arrangements</option>
  1449.                                    <option value="Specialty Items" >Specialty Items</option>
  1450.                                    <option value="Furniture and Appliances" >Furniture and Appliances</option>
  1451.                                    <option value="Valuable Goods" >Valuable Goods</option>
  1452.                                    <option value="Samples and Prototypes" >Samples and Prototypes</option>
  1453.                                    <option value="Pets" >Pets</option>
  1454.                                </select>
  1455.                            </div>
  1456.                        </div>
  1457.  
  1458.                        <!-- Weight Field (Only for Courier Service) -->
  1459.                        <div class="row mb-3" id="weight_container" style="display: none;">
  1460.                            <div class="col-md-6">
  1461.                                <label for="weight" class="form-label">Weight (kg)</label>
  1462.                                <input type="number" class="form-control" id="weight" name="weight" min="0" step="0.1" value="">
  1463.                            </div>
  1464.                        </div>
  1465.  
  1466.                        <!-- Dimensions Field (Only for Courier Service) -->
  1467.                        <div class="row mb-3" id="dimensions_container" style="display: none;">
  1468.                            <div class="col-md-4">
  1469.                                <label for="length" class="form-label">Length (cm)</label>
  1470.                                <input type="number" class="form-control" id="length" name="length" min="0" step="0.1" value="">
  1471.                            </div>
  1472.                            <div class="col-md-4">
  1473.                                <label for="width" class="form-label">Width (cm)</label>
  1474.                                <input type="number" class="form-control" id="width" name="width" min="0" step="0.1" value="">
  1475.                            </div>
  1476.                            <div class="col-md-4">
  1477.                                <label for="height" class="form-label">Height (cm)</label>
  1478.                                <input type="number" class="form-control" id="height" name="height" min="0" step="0.1" value="">
  1479.                            </div>
  1480.                        </div>
  1481.  
  1482.                       <!-- Service Type Field (Only for Courier Service) -->
  1483.                        <div class="row mb-3" id="service_type_container" style="display: none;">
  1484.                            <div class="col-md-12">
  1485.                                <label for="service_type" class="form-label">Service Type</label>
  1486.                                <select class="form-select" id="service_type" name="service_type">
  1487.                                    <option value="" disabled selected>Select Service Type</option>
  1488.                                    <option value="Standard" selected>Standard</option>
  1489.                                    <option value="Express" >Express</option>
  1490.                                </select>
  1491.                            </div>
  1492.                        </div>
  1493.  
  1494.                        <!-- Extra Time Field -->
  1495.                        <div class="mb-3" id="extra_time_container" style="display: none;">
  1496.                            <label for="extra_time" class="form-label">Extra Time (hours)</label>
  1497.                            <select class="form-select" id="extra_time" name="extra_time">
  1498.                                <option value="" disabled selected>Select Extra Time</option>
  1499.                                                                    <option value="1" >
  1500.                                        1 hour                                    </option>
  1501.                                                                    <option value="2" >
  1502.                                        2 hours                                    </option>
  1503.                                                                    <option value="3" >
  1504.                                        3 hours                                    </option>
  1505.                                                                    <option value="4" >
  1506.                                        4 hours                                    </option>
  1507.                                                                    <option value="5" >
  1508.                                        5 hours                                    </option>
  1509.                                                                    <option value="6" >
  1510.                                        6 hours                                    </option>
  1511.                                                                    <option value="7" >
  1512.                                        7 hours                                    </option>
  1513.                                                                    <option value="8" >
  1514.                                        8 hours                                    </option>
  1515.                                                                    <option value="9" >
  1516.                                        9 hours                                    </option>
  1517.                                                                    <option value="10" >
  1518.                                        10 hours                                    </option>
  1519.                                                            </select>
  1520.                        </div>
  1521.  
  1522.                        <!-- Additional Information Field -->
  1523.                        <div class="mb-3">
  1524.                            <label for="additional_info" class="form-label" id="additional_info_label">Additional Information</label>
  1525.                            <textarea class="form-control" id="additional_info" name="additional_info" rows="3" placeholder="Specify your ride details if necessary..."></textarea>
  1526.                        </div>
  1527.  
  1528.                        <!-- Email Field -->
  1529.                        <div class="mb-3">
  1530.                            <label for="email" class="form-label required">Email</label>
  1531.                            <input type="email" class="form-control" id="email" name="email" placeholder="Enter your email" required value="">
  1532.                        </div>
  1533.  
  1534.                        <!-- Hidden Fields for Geolocation and Route Data -->
  1535.                        <input type="hidden" id="pickup_lat" name="pickup_lat" value="">
  1536.                        <input type="hidden" id="pickup_lng" name="pickup_lng" value="">
  1537.                        <input type="hidden" id="dropoff_lat" name="dropoff_lat" value="">
  1538.                        <input type="hidden" id="dropoff_lng" name="dropoff_lng" value="">
  1539.                        <input type="hidden" id="distance_hidden" name="distance" value="">
  1540.                        <input type="hidden" id="duration_hidden" name="duration" value="">
  1541.  
  1542.                        <!-- Submit Button -->
  1543.                        <button type="submit" class="btn btn-primary w-100">Submit Ride Request</button>
  1544.                    </form>
  1545.                </div>
  1546.            </div>
  1547.  
  1548.            <!-- Google Map Column -->
  1549.            <div class="col-lg-5 mb-4">
  1550.                <div class="map-section">
  1551.                    <div class="map-container mb-3">
  1552.                        <div id="map"></div>
  1553.                    </div>
  1554.                    <div class="info-container">
  1555.                        <p id="distance"></p>
  1556.                        <p id="duration"></p>
  1557.                    </div>
  1558.                </div>
  1559.            </div>
  1560.        </div>
  1561.  
  1562.    <!-- Include Google Maps JavaScript API with your API key -->
  1563.    <script
  1564.        src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBE52aHVR7LvfQE7KqA1P9l8h3LjOwDfVo&libraries=places&callback=initMap&v=weekly"
  1565.        async
  1566.        defer
  1567.    ></script>
  1568.  
  1569.        <!-- Loading Spinner -->
  1570.        <div id="loading" class="text-center my-3">
  1571.            <div class="spinner-border" role="status">
  1572.                <span class="visually-hidden">Loading...</span>
  1573.            </div>
  1574.        </div>
  1575.  
  1576.  
  1577.  
  1578.    </div>
  1579.    </div>
  1580.  
  1581. </body>
  1582. </html>
  1583. <!DOCTYPE html>
  1584. <html lang="en" dir="ltr">
  1585. <head>
  1586.    <meta charset="UTF-8">
  1587.    <!-- Responsive Meta Tag -->
  1588.    <meta name="viewport" content="width=device-width, initial-scale=1">
  1589.    <link rel="manifest" href="/manifest.json">
  1590.    <script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async=""></script>
  1591.    <!-- Include Bootstrap 5 CSS from CDN -->
  1592.    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
  1593.    <!-- Include Bootstrap Icons (optional for visual enhancements) -->
  1594.    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">
  1595.    <!-- Custom CSS for additional styling -->
  1596.    <style>
  1597.        /* Custom styles for the larger input fields */
  1598.        .large-input {
  1599.            height: 60px; /* Adjust this value as needed */
  1600.            padding: 0.375rem 0.75rem; /* Adjust padding if necessary */
  1601.        }
  1602.  
  1603.        /* Added Section: Features */
  1604.        .features-section {
  1605.            padding: 60px 0;
  1606.        }
  1607.  
  1608.        .features-section h2 {
  1609.            text-align: center;
  1610.            margin-bottom: 40px;
  1611.        }
  1612.  
  1613.        .feature-item {
  1614.            text-align: center;
  1615.            padding: 20px;
  1616.        }
  1617.  
  1618.        .feature-item i {
  1619.            font-size: 3rem;
  1620.            color: #0d6efd;
  1621.            margin-bottom: 20px;
  1622.        }
  1623.  
  1624.        /* Custom styles for the page */
  1625.        .container-custom {
  1626.            width: 90%;          /* Takes 90% of the screen width */
  1627.            max-width: 1200px;    /* But will never exceed 1200px */
  1628.            margin: 30px auto;
  1629.            padding-bottom: 20px;
  1630.        }
  1631.  
  1632.        /* Styling for the trip type navigation pills */
  1633.        .trip-type-nav .nav-link {
  1634.            border: 1px solid #dee2e6;
  1635.            border-radius: 0;
  1636.            color: #495057;
  1637.            margin-right: 0.5rem;
  1638.            cursor: pointer;
  1639.        }
  1640.  
  1641.        .trip-type-nav .nav-link.active {
  1642.            background-color: #0d6efd;
  1643.            color: white;
  1644.        }
  1645.  
  1646.        /* Map container to maintain aspect ratio */
  1647.        .map-container {
  1648.            width: 100%;
  1649.            height: 0;
  1650.            padding-bottom: 56.25%; /* 16:9 Aspect Ratio */
  1651.            position: relative;
  1652.        }
  1653.  
  1654.        #map {
  1655.            position: absolute;
  1656.            top: 0;
  1657.            left: 0;
  1658.            width: 100%;
  1659.            height: 100%;
  1660.        }
  1661.  
  1662.        /* Distance and duration information styling */
  1663.        .info-container {
  1664.            margin-top: 15px;
  1665.            font-weight: bold;
  1666.        }
  1667.  
  1668.        /* Loading spinner positioning */
  1669.        #loading {
  1670.            display: none;
  1671.            text-align: center;
  1672.            margin-top: 10px;
  1673.        }
  1674.  
  1675.        /* Demo content section styling */
  1676.        .demo-section {
  1677.            padding: 40px 0 20px;
  1678.        }
  1679.  
  1680.        .demo-section h2 {
  1681.            margin-bottom: 30px;
  1682.            text-align: center;
  1683.        }
  1684.  
  1685.        /* Customer reviews card styling */
  1686.        .review-card {
  1687.            margin-bottom: 20px;
  1688.        }
  1689.  
  1690.        /* Notice styling */
  1691.        .notice {
  1692.            margin-top: 15px;
  1693.            padding: 10px;
  1694.            background-color: #f8d7da;
  1695.            color: #721c24;
  1696.            border: 1px solid #f5c6cb;
  1697.            border-radius: 5px;
  1698.        }
  1699.  
  1700.        /* Responsive adjustments */
  1701.        @media (max-width: 992px) {
  1702.            /* Adjust map height for smaller screens */
  1703.            .map-container {
  1704.                padding-bottom: 75%; /* Adjust aspect ratio if needed */
  1705.            }
  1706.        }
  1707.  
  1708.        /* Additional styling for the form */
  1709.        .form-section {
  1710.            padding: 20px;
  1711.            background-color: #ffffff;
  1712.            border: 1px solid #dee2e6;
  1713.            border-radius: 5px;
  1714.            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  1715.        }
  1716.  
  1717.        .form-section .form-label {
  1718.            font-weight: 500;
  1719.        }
  1720.  
  1721.        .form-section .required::after {
  1722.            content: " *";
  1723.            color: red;
  1724.        }
  1725.  
  1726.        /* Adjust button styling */
  1727.        .btn-primary {
  1728.            background-color: #0d6efd;
  1729.            border-color: #0d6efd;
  1730.        }
  1731.  
  1732.        .btn-primary:hover {
  1733.            background-color: #0b5ed7;
  1734.            border-color: #0a58ca;
  1735.        }
  1736.  
  1737.        .main-heading {
  1738.            text-align: center;
  1739.            font-size: 1.5rem;
  1740.            font-weight: 700;
  1741.            color: #343a40; /* Darker shade for contrast */
  1742.            margin: 20px 0 20px;
  1743.            line-height: 1.2;
  1744.        }
  1745.  
  1746.        /* Smooth Scrolling */
  1747.        html {
  1748.            scroll-behavior: smooth;
  1749.        }
  1750.  
  1751.        /* Custom Styling for Clickable Cards */
  1752.        .clickable-card {
  1753.            transition: transform 0.3s, box-shadow 0.3s;
  1754.            cursor: pointer;
  1755.        }
  1756.  
  1757.        .clickable-card:hover {
  1758.            transform: translateY(-5px);
  1759.            box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
  1760.        }
  1761.  
  1762.        /* Ensure Links Do Not Have Underlines */
  1763.        a.text-decoration-none {
  1764.            text-decoration: none;
  1765.        }
  1766.  
  1767.        /* Optional: Adjust Button Styling Inside Cards */
  1768.        .clickable-card .btn-primary {
  1769.            transition: background-color 0.3s, border-color 0.3s;
  1770.        }
  1771.  
  1772.        .clickable-card .btn-primary:hover {
  1773.            background-color: #0b5ed7;
  1774.            border-color: #0a58ca;
  1775.        }
  1776.  
  1777.        /* Responsive Adjustments for Smaller Screens */
  1778.        @media (max-width: 576px) {
  1779.            .clickable-card {
  1780.                /* Any additional adjustments for mobile can go here */
  1781.            }
  1782.        }
  1783.  
  1784.        /* Extended City Transfers Section Styling */
  1785.        .extended-city-transfers-section {
  1786.            background-color: #f8f9fa; /* Light background for contrast */
  1787.        }
  1788.  
  1789.        .extended-city-transfers-section h2,
  1790.        .extended-city-transfers-section h3,
  1791.        .extended-city-transfers-section h4,
  1792.        .extended-city-transfers-section h5 {
  1793.            color: #343a40; /* Dark gray for headings */
  1794.        }
  1795.  
  1796.        .extended-city-transfers-section p {
  1797.            color: #6c757d; /* Medium gray for text */
  1798.            line-height: 1.6;
  1799.        }
  1800.  
  1801.        .extended-city-transfers-section .highlight-item i {
  1802.            font-size: 2.5rem;
  1803.            color: #198754; /* Bootstrap's success color */
  1804.        }
  1805.  
  1806.        .extended-city-transfers-section .highlight-item h4 {
  1807.            font-size: 1.5rem;
  1808.            margin-bottom: 10px;
  1809.        }
  1810.  
  1811.        .extended-city-transfers-section .highlight-item p {
  1812.            font-size: 1rem;
  1813.        }
  1814.  
  1815.        .extended-city-transfers-section .service-detail i {
  1816.            font-size: 2rem;
  1817.            color: #198754; /* Bootstrap's success color */
  1818.        }
  1819.  
  1820.        .extended-city-transfers-section .service-detail h4 {
  1821.            font-size: 1.25rem;
  1822.            margin-bottom: 5px;
  1823.        }
  1824.  
  1825.        .extended-city-transfers-section .service-detail p {
  1826.            font-size: 0.95rem;
  1827.        }
  1828.  
  1829.        .extended-city-transfers-section .list-group-item {
  1830.            border: none;
  1831.            padding: 10px 0;
  1832.        }
  1833.  
  1834.        .extended-city-transfers-section .list-group-item i {
  1835.            font-size: 1.5rem;
  1836.            color: #ffc107; /* Bootstrap's warning color */
  1837.            margin-right: 15px;
  1838.        }
  1839.  
  1840.        .extended-city-transfers-section .list-group-numbered {
  1841.            counter-reset: item;
  1842.        }
  1843.  
  1844.        .extended-city-transfers-section .list-group-numbered > li {
  1845.            counter-increment: item;
  1846.        }
  1847.  
  1848.        .extended-city-transfers-section .list-group-numbered > li::before {
  1849.            content: counter(item) ". ";
  1850.            font-weight: bold;
  1851.            margin-right: 10px;
  1852.        }
  1853.  
  1854.        .extended-city-transfers-section .testimonial-highlight blockquote {
  1855.            font-style: italic;
  1856.            background-color: #ffffff;
  1857.            padding: 20px;
  1858.            border-left: 5px solid #198754;
  1859.            box-shadow: 0 2px 5px rgba(0,0,0,0.1);
  1860.        }
  1861.  
  1862.        .extended-city-transfers-section .btn-success {
  1863.            padding: 12px 30px;
  1864.            font-size: 1.1rem;
  1865.            border-radius: 25px;
  1866.        }
  1867.    </style>
  1868.  
  1869.    <script>
  1870.      if (typeof navigator.serviceWorker !== 'undefined') {
  1871.        navigator.serviceWorker.register('sw.js')
  1872.      }
  1873.    </script>
  1874.  
  1875.    <script>
  1876.    // Fetch OneSignal player ID and store it in the hidden input field
  1877.    OneSignal.push(function() {
  1878.        OneSignal.getUserId(function(playerId) {
  1879.            var playerIdInput = document.getElementById('player_id');
  1880.            if (playerIdInput) {
  1881.                playerIdInput.value = playerId;
  1882.            }
  1883.        });
  1884.    });
  1885.    </script>
  1886. </head>
  1887. <body>
  1888.  
  1889.    <!-- Main Content Container -->
  1890.    <div class="container-custom">
  1891.  
  1892.    <!-- Destinations Subsection -->
  1893.    <div class="mb-5">
  1894.        <h3 class="text-center mb-4">Where We Transport You To</h3>
  1895.        <div class="row justify-content-center">
  1896.            <!-- Destination 1 -->
  1897.            <div class="col-md-4 mb-4">
  1898.                <a href="#tripTypeTabs" class="text-decoration-none">
  1899.                    <div class="card h-100 shadow-sm clickable-card">
  1900.                        <img src="assets/images/destination1.jpg" class="card-img-top" alt="City Center">
  1901.                        <div class="card-body text-center">
  1902.                            <h5 class="card-title">City Center</h5>
  1903.                            <p class="card-text">Explore the heart of the city with our reliable and comfortable transfer services.</p>
  1904.                        </div>
  1905.                    </div>
  1906.                </a>
  1907.            </div>
  1908.            <!-- Destination 2 -->
  1909.            <div class="col-md-4 mb-4">
  1910.                <a href="#tripTypeTabs" class="text-decoration-none">
  1911.                    <div class="card h-100 shadow-sm clickable-card">
  1912.                        <img src="assets/images/destination2.jpg" class="card-img-top" alt="Airport Transfers">
  1913.                        <div class="card-body text-center">
  1914.                            <h5 class="card-title">Airport Transfers</h5>
  1915.                            <p class="card-text">Seamless and timely transfers to and from the airport, ensuring you never miss a flight.</p>
  1916.                        </div>
  1917.                    </div>
  1918.                </a>
  1919.            </div>
  1920.            <!-- Destination 3 -->
  1921.            <div class="col-md-4 mb-4">
  1922.                <a href="#tripTypeTabs" class="text-decoration-none">
  1923.                    <div class="card h-100 shadow-sm clickable-card">
  1924.                        <img src="assets/images/destination3.jpg" class="card-img-top" alt="Business Hubs">
  1925.                        <div class="card-body text-center">
  1926.                            <h5 class="card-title">Business Hubs</h5>
  1927.                            <p class="card-text">Efficient transportation to major business districts for your corporate needs.</p>
  1928.                        </div>
  1929.                    </div>
  1930.                </a>
  1931.            </div>
  1932.            <!-- Destination 4: ...and Many More -->
  1933.            <div class="col-md-4 mb-4">
  1934.                <a href="#tripTypeTabs" class="text-decoration-none">
  1935.                    <div class="card h-100 shadow-sm clickable-card">
  1936.                        <div class="card-body text-center">
  1937.                            <h5 class="card-title">...and Many More</h5>
  1938.                            <p class="card-text">We cover a wide range of destinations to meet all your transportation needs.</p>
  1939.                            <button class="btn btn-primary mt-3">Request a ride</button>
  1940.                        </div>
  1941.                    </div>
  1942.                </a>
  1943.            </div>
  1944.            <!-- Add more destinations as needed -->
  1945.        </div>
  1946.    </div>
  1947.  
  1948.    <!-- Services Subsection -->
  1949.    <div>
  1950.        <h3 class="text-center mb-4">Our Services</h3>
  1951.        <div class="row justify-content-center">
  1952.            <!-- Service 1 -->
  1953.            <div class="col-md-4 mb-4">
  1954.                <a href="#tripTypeTabs" class="text-decoration-none">
  1955.                    <div class="card h-100 shadow-sm clickable-card text-center">
  1956.                        <div class="card-body d-flex flex-column align-items-center">
  1957.                            <i class="bi bi-car-front-fill display-4 text-primary mb-3"></i>
  1958.                            <h5 class="card-title">Transfer Service</h5>
  1959.                            <p class="card-text">Reliable and comfortable transfers for individuals and groups to various destinations.</p>
  1960.                        </div>
  1961.                    </div>
  1962.                </a>
  1963.            </div>
  1964.            <!-- Service 2 -->
  1965.            <div class="col-md-4 mb-4">
  1966.                <a href="#tripTypeTabs" class="text-decoration-none">
  1967.                    <div class="card h-100 shadow-sm clickable-card text-center">
  1968.                        <div class="card-body d-flex flex-column align-items-center">
  1969.                            <i class="bi bi-people-fill display-4 text-primary mb-3"></i>
  1970.                            <h5 class="card-title">Chauffeur Service</h5>
  1971.                            <p class="card-text">Professional chauffeur-driven services for a luxurious and stress-free travel experience.</p>
  1972.                        </div>
  1973.                    </div>
  1974.                </a>
  1975.            </div>
  1976.            <!-- Service 3 -->
  1977.            <div class="col-md-4 mb-4">
  1978.                <a href="#tripTypeTabs" class="text-decoration-none">
  1979.                    <div class="card h-100 shadow-sm clickable-card text-center">
  1980.                        <div class="card-body d-flex flex-column align-items-center">
  1981.                            <i class="bi bi-binoculars-fill display-4 text-primary mb-3"></i>
  1982.                            <h5 class="card-title">Sightseeing Tours</h5>
  1983.                            <p class="card-text">Discover the city&#039;s landmarks and hidden gems with our personalized sightseeing tours.</p>
  1984.                        </div>
  1985.                    </div>
  1986.                </a>
  1987.            </div>
  1988.            <!-- Service 4 -->
  1989.            <div class="col-md-4 mb-4">
  1990.                <a href="#tripTypeTabs" class="text-decoration-none">
  1991.                    <div class="card h-100 shadow-sm clickable-card text-center">
  1992.                        <div class="card-body d-flex flex-column align-items-center">
  1993.                            <i class="bi bi-calendar-event-fill display-4 text-primary mb-3"></i>
  1994.                            <h5 class="card-title">Event Rides</h5>
  1995.                            <p class="card-text">Specialized transportation services for weddings, corporate events, and other special occasions.</p>
  1996.                        </div>
  1997.                    </div>
  1998.                </a>
  1999.            </div>
  2000.            <!-- Service 5 -->
  2001.            <div class="col-md-4 mb-4">
  2002.                <a href="#tripTypeTabs" class="text-decoration-none">
  2003.                    <div class="card h-100 shadow-sm clickable-card text-center">
  2004.                        <div class="card-body d-flex flex-column align-items-center">
  2005.                            <i class="bi bi-box-seam display-4 text-primary mb-3"></i>
  2006.                            <h5 class="card-title">Courier Service</h5>
  2007.                            <p class="card-text">Fast and secure courier services for delivering documents, parcels, and more across the city.</p>
  2008.                        </div>
  2009.                    </div>
  2010.                </a>
  2011.            </div>
  2012.            <!-- Add more services as needed -->
  2013.        </div>
  2014.    </div>
  2015.  
  2016.    <!-- Added Section: Features -->
  2017.    <section class="features-section">
  2018.        <h2>Why Choose City Transfers?</h2>
  2019.        <div class="row">
  2020.            <div class="col-md-4">
  2021.                <div class="feature-item text-center">
  2022.                    <i class="bi bi-clock display-4"></i>
  2023.                    <h4>Punctuality Guaranteed</h4>
  2024.                    <p>We ensure timely pickups and drop-offs so you never miss an important appointment.</p>
  2025.                </div>
  2026.            </div>
  2027.            <div class="col-md-4">
  2028.                <div class="feature-item text-center">
  2029.                    <i class="bi bi-people display-4"></i>
  2030.                    <h4>Professional Drivers</h4>
  2031.                    <p>Our drivers are trained, courteous, and committed to providing the best service.</p>
  2032.                </div>
  2033.            </div>
  2034.            <div class="col-md-4">
  2035.                <div class="feature-item text-center">
  2036.                    <i class="bi bi-car-front-fill display-4"></i>
  2037.                    <h4>Modern Fleet</h4>
  2038.                    <p>Travel in comfort and style with our well-maintained and modern vehicles.</p>
  2039.                </div>
  2040.            </div>
  2041.            <div class="col-md-4">
  2042.                <div class="feature-item text-center">
  2043.                    <i class="bi bi-geo-alt-fill display-4"></i>
  2044.                    <h4>Wide Coverage</h4>
  2045.                    <p>We cover all major areas in the city, ensuring you get where you need to go.</p>
  2046.                </div>
  2047.            </div>
  2048.            <div class="col-md-4">
  2049.                <div class="feature-item text-center">
  2050.                    <i class="bi bi-wallet2 display-4"></i>
  2051.                    <h4>Affordable Pricing</h4>
  2052.                    <p>Get top-notch service without breaking the bank. Competitive rates for all our services.</p>
  2053.                </div>
  2054.            </div>
  2055.            <div class="col-md-4">
  2056.                <div class="feature-item text-center">
  2057.                    <i class="bi bi-shield-lock-fill display-4"></i>
  2058.                    <h4>Safety First</h4>
  2059.                    <p>Your safety is our priority. All our vehicles undergo regular maintenance and safety checks.</p>
  2060.                </div>
  2061.            </div>
  2062.        </div>
  2063.    </section>
  2064.    <!-- End of Added Section: Features -->
  2065.  
  2066.    <!-- Added Section: Testimonials Carousel -->
  2067.    <section class="testimonials-section my-5">
  2068.        <h2 class="mb-4 text-center">What Our Customers Say</h2>
  2069.        <div id="testimonialsCarousel" class="carousel slide" data-bs-ride="carousel">
  2070.            <div class="carousel-inner">
  2071.                <!-- Testimonial 1 -->
  2072.                <div class="carousel-item active">
  2073.                    <div class="row justify-content-center">
  2074.                        <div class="col-md-8">
  2075.                            <div class="card review-card">
  2076.                                <div class="card-body text-center">
  2077.                                    <h5 class="card-title">Liora Richter</h5>
  2078.                                    <h6 class="card-subtitle mb-2 text-muted">★★★★★</h6>
  2079.                                    <p class="card-text">&quot;City Transfers provided excellent service. The driver was punctual and the car was spotless. Highly recommended!&quot;</p>
  2080.                                </div>
  2081.                            </div>
  2082.                        </div>
  2083.                    </div>
  2084.                </div>
  2085.                <!-- Testimonial 2 -->
  2086.                <div class="carousel-item">
  2087.                    <div class="row justify-content-center">
  2088.                        <div class="col-md-8">
  2089.                            <div class="card review-card">
  2090.                                <div class="card-body text-center">
  2091.                                    <h5 class="card-title">Ines Petrovic</h5>
  2092.                                    <h6 class="card-subtitle mb-2 text-muted">★★★★☆</h6>
  2093.                                    <p class="card-text">&quot;Smooth and comfortable ride. The booking process was straightforward and the staff was very helpful.&quot;</p>
  2094.                                </div>
  2095.                            </div>
  2096.                        </div>
  2097.                    </div>
  2098.                </div>
  2099.                <!-- Testimonial 3 -->
  2100.                <div class="carousel-item">
  2101.                    <div class="row justify-content-center">
  2102.                        <div class="col-md-8">
  2103.                            <div class="card review-card">
  2104.                                <div class="card-body text-center">
  2105.                                    <h5 class="card-title">Arvid Lindström</h5>
  2106.                                    <h6 class="card-subtitle mb-2 text-muted">★★★★★</h6>
  2107.                                    <p class="card-text">&quot;Exceptional service from start to finish. I&#039;ll definitely use City Transfers for my next trip.&quot;</p>
  2108.                                </div>
  2109.                            </div>
  2110.                        </div>
  2111.                    </div>
  2112.                </div>
  2113.                <!-- Add more testimonials as needed -->
  2114.            </div>
  2115.            <button class="carousel-control-prev" type="button" data-bs-target="#testimonialsCarousel" data-bs-slide="prev">
  2116.                <span class="carousel-control-prev-icon" aria-hidden="true"></span>
  2117.                <span class="visually-hidden">Previous</span>
  2118.            </button>
  2119.            <button class="carousel-control-next" type="button" data-bs-target="#testimonialsCarousel" data-bs-slide="next">
  2120.                <span class="carousel-control-next-icon" aria-hidden="true"></span>
  2121.                <span class="visually-hidden">Next</span>
  2122.            </button>
  2123.        </div>
  2124.    </section>
  2125.    <!-- End of Added Section: Testimonials Carousel -->
  2126.  
  2127.    <!-- Added Section: FAQ -->
  2128.    <section class="faq-section">
  2129.        <h2>Frequently Asked Questions</h2>
  2130.        <div class="accordion" id="faqAccordion">
  2131.            <!-- FAQ Item 1 -->
  2132.            <div class="accordion-item">
  2133.                <h2 class="accordion-header" id="faqHeading1">
  2134.                    <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#faqCollapse1" aria-expanded="true" aria-controls="faqCollapse1">
  2135.                        How do I book a ride?                    </button>
  2136.                </h2>
  2137.                <div id="faqCollapse1" class="accordion-collapse collapse show" aria-labelledby="faqHeading1" data-bs-parent="#faqAccordion">
  2138.                    <div class="accordion-body">
  2139.                        You can book a ride by filling out the form above with your pickup and dropoff locations, selecting your trip type, and providing additional details. Once submitted, our team will confirm your booking.                    </div>
  2140.                </div>
  2141.            </div>
  2142.            <!-- FAQ Item 2 -->
  2143.            <div class="accordion-item">
  2144.                <h2 class="accordion-header" id="faqHeading2">
  2145.                    <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faqCollapse2" aria-expanded="false" aria-controls="faqCollapse2">
  2146.                        What payment methods do you accept?                    </button>
  2147.                </h2>
  2148.                <div id="faqCollapse2" class="accordion-collapse collapse" aria-labelledby="faqHeading2" data-bs-parent="#faqAccordion">
  2149.                    <div class="accordion-body">
  2150.                        We accept various payment methods including credit/debit cards, PayPal, and cash. You can choose your preferred payment method during the booking process.                    </div>
  2151.                </div>
  2152.            </div>
  2153.            <!-- FAQ Item 3 -->
  2154.            <div class="accordion-item">
  2155.                <h2 class="accordion-header" id="faqHeading3">
  2156.                    <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faqCollapse3" aria-expanded="false" aria-controls="faqCollapse3">
  2157.                        Can I modify or cancel my booking?                    </button>
  2158.                </h2>
  2159.                <div id="faqCollapse3" class="accordion-collapse collapse" aria-labelledby="faqHeading3" data-bs-parent="#faqAccordion">
  2160.                    <div class="accordion-body">
  2161.                        Yes, you can modify or cancel your booking up to 24 hours before the scheduled trip. Please contact our support team to assist you with any changes.                    </div>
  2162.                </div>
  2163.            </div>
  2164.            <!-- Add more FAQ items as needed -->
  2165.        </div>
  2166.        <div class="text-center mt-4">
  2167.            <a href="#tripTypeTabs" class="btn btn-primary btn-lg">Book Your Ride Now</a>
  2168.        </div>
  2169.    </section>
  2170.    <!-- End of Added Section: FAQ -->
  2171.  
  2172.    <!-- Demo Content Section -->
  2173.    <div class="demo-section">
  2174.        <h2>About City Transfers</h2>
  2175.        <div class="row">
  2176.            <div class="col-md-6 mb-3">
  2177.                <img src="assets/images/service_overview.jpg" alt="City Transfers Service" class="img-fluid rounded">
  2178.            </div>
  2179.            <div class="col-md-6 mb-3">
  2180.                <div class="ratio ratio-16x9">
  2181.                    <iframe src="https://www.youtube.com/embed/v7Kl0xennjQ" title="City Transfers Promotional Video" allowfullscreen loading="lazy"></iframe>
  2182.                </div>
  2183.            </div>
  2184.        </div>
  2185.    </div>
  2186.  
  2187.    <!-- Extended City Transfers Information Section -->
  2188.    <section class="extended-city-transfers-section py-5 bg-light">
  2189.        <div class="container">
  2190.            <!-- Section Header -->
  2191.            <h2 class="text-center mb-4">Experience Premium City Transfers with Us</h2>
  2192.            
  2193.            <!-- Introduction Paragraph -->
  2194.            <p class="text-center mb-5">
  2195.                At City Transfers, we redefine urban transportation by combining reliability, comfort, and exceptional customer service. Our mission is to provide seamless transfer experiences tailored to your unique needs, ensuring you reach your destination safely and on time. Whether it&#039;s a business meeting, airport transfer, or a leisurely city tour, our comprehensive services cater to every aspect of your journey.            </p>
  2196.            
  2197.            <!-- Service Highlights -->
  2198.            <div class="row mb-5">
  2199.                <!-- Highlight 1: Comprehensive Coverage -->
  2200.                <div class="col-md-6 mb-4">
  2201.                    <div class="highlight-item d-flex">
  2202.                        <i class="bi bi-map-fill display-4 text-success me-3"></i>
  2203.                        <div>
  2204.                            <h4>Comprehensive Coverage</h4>
  2205.                            <p>
  2206.                                We operate globally, offering seamless city-to-city rides across a wide range of destinations. No matter where you’re headed, City Transfers is your trusted partner for reliable and convenient transportation.                            </p>
  2207.                        </div>
  2208.                    </div>
  2209.                </div>
  2210.                <!-- Highlight 2: Easy Booking Process -->
  2211.                <div class="col-md-6 mb-4">
  2212.                    <div class="highlight-item d-flex">
  2213.                        <i class="bi bi-calendar-check-fill display-4 text-success me-3"></i>
  2214.                        <div>
  2215.                            <h4>Easy Booking Process</h4>
  2216.                            <p>
  2217.                                Our user-friendly booking system allows you to schedule your transfers effortlessly. Whether you prefer booking online, via our mobile app, or through a phone call, we make sure the process is smooth and convenient.                            </p>
  2218.                        </div>
  2219.                    </div>
  2220.                </div>
  2221.                <!-- Highlight 3: Transparent Pricing -->
  2222.                <div class="col-md-6 mb-4">
  2223.                    <div class="highlight-item d-flex">
  2224.                        <i class="bi bi-currency-dollar display-4 text-success me-3"></i>
  2225.                        <div>
  2226.                            <h4>Transparent Pricing</h4>
  2227.                            <p>
  2228.                                No hidden fees or unexpected charges. Our pricing is clear and competitive, providing you with excellent value for top-tier transportation services.                            </p>
  2229.                        </div>
  2230.                    </div>
  2231.                </div>
  2232.                <!-- Highlight 4: Advanced Fleet Management -->
  2233.                <div class="col-md-6 mb-4">
  2234.                    <div class="highlight-item d-flex">
  2235.                        <i class="bi bi-speedometer2 display-4 text-success me-3"></i>
  2236.                        <div>
  2237.                            <h4>Advanced Fleet Management</h4>
  2238.                            <p>
  2239.                                Our modern fleet is equipped with the latest technology to ensure safety, efficiency, and comfort. From GPS tracking to in-car amenities, we prioritize your experience every step of the way.                            </p>
  2240.                        </div>
  2241.                    </div>
  2242.                </div>
  2243.            </div>
  2244.            
  2245.            <!-- Our Commitment Section -->
  2246.            <div class="row mb-5">
  2247.                <div class="col-md-12">
  2248.                    <h3 class="mb-3">Our Commitment to You</h3>
  2249.                    <p>
  2250.                        At City Transfers, our commitment goes beyond just providing transportation. We strive to build lasting relationships with our clients by offering personalized services, maintaining the highest standards of safety and professionalism, and continuously improving our offerings based on your feedback.                    </p>
  2251.                    <ul class="list-group list-group-flush">
  2252.                        <li class="list-group-item d-flex align-items-center">
  2253.                            <i class="bi bi-star-fill me-3 text-warning"></i>
  2254.                            <span><strong>Customer Satisfaction:</strong> Your satisfaction is our priority. We listen to your needs and tailor our services to meet and exceed your expectations.</span>
  2255.                        </li>
  2256.                        <li class="list-group-item d-flex align-items-center">
  2257.                            <i class="bi bi-people-fill me-3 text-warning"></i>
  2258.                            <span><strong>Experienced Team:</strong> Our team of experienced drivers and support staff are dedicated to ensuring a pleasant and hassle-free experience for you.</span>
  2259.                        </li>
  2260.                        <li class="list-group-item d-flex align-items-center">
  2261.                            <i class="bi bi-shield-lock-fill me-3 text-warning"></i>
  2262.                            <span><strong>Safety Assurance:</strong> We adhere to strict safety protocols and regularly inspect our vehicles to provide you with a secure journey.</span>
  2263.                        </li>
  2264.                    </ul>
  2265.                </div>
  2266.            </div>
  2267.            
  2268.            <!-- How It Works Section -->
  2269.            <div class="row mb-5">
  2270.                <div class="col-md-12">
  2271.                    <h3 class="mb-3">How It Works</h3>
  2272.                    <p>
  2273.                        At City Transfers, we ensure that securing your transportation is seamless and tailored to your specific needs. Here&#039;s how our process works:                    </p>
  2274.                    <ol class="list-group list-group-numbered">
  2275.                        <li class="list-group-item">
  2276.                            <strong>Submit Your Request:</strong> Fill out our detailed request form with your trip details, including pickup and dropoff locations, date, time, and any special requirements.                        </li>
  2277.                        <li class="list-group-item">
  2278.                            <strong>Receive Multiple Offers:</strong> Our network of chauffeurs and partners worldwide receive your request and send you personalized offers tailored to your needs.                        </li>
  2279.                        <li class="list-group-item">
  2280.                            <strong>Choose Your Preferred Offer:</strong> Review the offers you receive and select the one that best fits your preferences and budget.                        </li>
  2281.                        <li class="list-group-item">
  2282.                            <strong>Confirm Your Booking:</strong> Once you&#039;ve selected an offer, confirm your booking through our platform. You&#039;ll receive a confirmation email or SMS with all the necessary details.                        </li>
  2283.                        <li class="list-group-item">
  2284.                            <strong>Enjoy Your Transfer:</strong> On the scheduled date and time, our professional driver will arrive at your specified location, ready to provide you with a comfortable and safe journey to your destination.                        </li>
  2285.                    </ol>
  2286.                    <p class="mt-3">
  2287.                        This streamlined process ensures that you receive the best possible service tailored to your individual needs, without any hassle.                    </p>
  2288.                </div>
  2289.            </div>
  2290.            
  2291.            <!-- Fleet Overview Section -->
  2292.            <div class="row mb-5">
  2293.                <div class="col-md-12">
  2294.                    <h3 class="mb-3">Our Fleet</h3>
  2295.                    <p>
  2296.                        Our diverse fleet of vehicles is designed to cater to all your transportation needs, whether you&#039;re traveling solo or with a group. Each vehicle is meticulously maintained and equipped with modern amenities to ensure a comfortable and enjoyable ride.                    </p>
  2297.                    <div class="row">
  2298.                        <!-- Fleet Vehicle 1 -->
  2299.                        <div class="col-md-4 mb-4">
  2300.                            <div class="card h-100 shadow-sm">
  2301.                                <img src="assets/images/fleet_sedan.jpg" class="card-img-top" alt="Luxury Sedan">
  2302.                                <div class="card-body">
  2303.                                    <h5 class="card-title">Luxury Sedan</h5>
  2304.                                    <p class="card-text">Perfect for solo travelers or couples seeking comfort and elegance during their transfer.</p>
  2305.                                </div>
  2306.                            </div>
  2307.                        </div>
  2308.                        <!-- Fleet Vehicle 2 -->
  2309.                        <div class="col-md-4 mb-4">
  2310.                            <div class="card h-100 shadow-sm">
  2311.                                <img src="assets/images/fleet_suv.jpg" class="card-img-top" alt="Spacious SUV">
  2312.                                <div class="card-body">
  2313.                                    <h5 class="card-title">Spacious SUV</h5>
  2314.                                    <p class="card-text">Ideal for families or groups requiring more space and additional luggage capacity.</p>
  2315.                                </div>
  2316.                            </div>
  2317.                        </div>
  2318.                        <!-- Fleet Vehicle 3 -->
  2319.                        <div class="col-md-4 mb-4">
  2320.                            <div class="card h-100 shadow-sm">
  2321.                                <img src="assets/images/fleet_van.jpg" class="card-img-top" alt="Comfortable Van">
  2322.                                <div class="card-body">
  2323.                                    <h5 class="card-title">Comfortable Van</h5>
  2324.                                    <p class="card-text">Best suited for large groups, corporate events, or transporting multiple passengers with ease.</p>
  2325.                                </div>
  2326.                            </div>
  2327.                        </div>
  2328.                    </div>
  2329.                </div>
  2330.            </div>
  2331.            
  2332.            <!-- Environmental Responsibility Section -->
  2333.            <div class="row mb-5">
  2334.                <div class="col-md-12">
  2335.                    <h3 class="mb-3">Environmental Responsibility</h3>
  2336.                    <p>
  2337.                        We are committed to reducing our carbon footprint and promoting sustainable transportation. Our fleet includes eco-friendly vehicles that minimize emissions without compromising on performance or comfort. By choosing City Transfers, you&#039;re contributing to a greener and more sustainable environment.                    </p>
  2338.                </div>
  2339.            </div>
  2340.            
  2341.            <!-- Call-to-Action -->
  2342.            <div class="text-center mt-5">
  2343.                <a href="#tripTypeTabs" class="btn btn-success btn-lg">Reserve Your Transfer Today</a>
  2344.            </div>
  2345.        </div>
  2346.    </section>
  2347.  
  2348.    </div>
  2349.    </div>
  2350.  
  2351.    <!-- Include the footer for non-logged-in users -->
  2352.    <!-- Footer Section -->
  2353. <footer class="bg-light text-center text-lg-start">
  2354.    <div class="container p-4">
  2355.        <!-- Grid layout -->
  2356.        <div class="row">
  2357.            <!-- Company Description with Keyword Carousel -->
  2358.            <div class="col-lg-4 col-md-6 mb-4 mb-md-0">
  2359.                <h5 class="text-uppercase">City Transfers</h5>
  2360.                <p>
  2361.                    City Transfers offers reliable and comfortable transportation services for individuals and groups. Whether you&#039;re traveling for business or leisure, our professional drivers ensure a smooth and pleasant journey.                </p>
  2362.                
  2363.                <!-- Keyword Carousel Start -->
  2364.                                    <div id="keywordCarousel" class="carousel slide mt-4" data-bs-ride="carousel" data-bs-interval="6000">
  2365.                        <div class="carousel-inner">
  2366.                                                            <div class="carousel-item active">
  2367.                                    <div class="d-flex justify-content-center flex-wrap">
  2368.                                        <a href="/book-a-ride" class="badge bg-secondary m-1 text-decoration-none">Comfortable transfers to airport</a><a href="/book-a-ride" class="badge bg-secondary m-1 text-decoration-none">Chauffeur service for hotels</a><a href="/book-a-ride" class="badge bg-secondary m-1 text-decoration-none">Private chauffeur for business meetings</a>                                    </div>
  2369.                                </div>
  2370.                                                            <div class="carousel-item">
  2371.                                    <div class="d-flex justify-content-center flex-wrap">
  2372.                                        <a href="/book-a-ride" class="badge bg-secondary m-1 text-decoration-none">Private driver for business trips</a><a href="/book-a-ride" class="badge bg-secondary m-1 text-decoration-none">Luxury chauffeur car hire</a><a href="/book-a-ride" class="badge bg-secondary m-1 text-decoration-none">Airport transfer booking</a>                                    </div>
  2373.                                </div>
  2374.                                                            <div class="carousel-item">
  2375.                                    <div class="d-flex justify-content-center flex-wrap">
  2376.                                        <a href="/book-a-ride" class="badge bg-secondary m-1 text-decoration-none">Luxury private car hire for airport</a><a href="/book-a-ride" class="badge bg-secondary m-1 text-decoration-none">Chauffeur for airport drop-off</a><a href="/book-a-ride" class="badge bg-secondary m-1 text-decoration-none">Affordable city chauffeur services</a>                                    </div>
  2377.                                </div>
  2378.                                                            <div class="carousel-item">
  2379.                                    <div class="d-flex justify-content-center flex-wrap">
  2380.                                        <a href="/book-a-ride" class="badge bg-secondary m-1 text-decoration-none">Chauffeur for private trips</a><a href="/book-a-ride" class="badge bg-secondary m-1 text-decoration-none">Chauffeur for sightseeing tours</a><a href="/book-a-ride" class="badge bg-secondary m-1 text-decoration-none">Reliable car hire</a>                                    </div>
  2381.                                </div>
  2382.                                                            <div class="carousel-item">
  2383.                                    <div class="d-flex justify-content-center flex-wrap">
  2384.                                        <a href="/book-a-ride" class="badge bg-secondary m-1 text-decoration-none">Exclusive chauffeur services</a><a href="/book-a-ride" class="badge bg-secondary m-1 text-decoration-none">Taxi service for group travel</a><a href="/book-a-ride" class="badge bg-secondary m-1 text-decoration-none">Hotel airport shuttle</a>                                    </div>
  2385.                                </div>
  2386.                                                    </div>
  2387.                                                    <button class="carousel-control-prev" type="button" data-bs-target="#keywordCarousel" data-bs-slide="prev">
  2388.                                <span class="carousel-control-prev-icon" aria-hidden="true"></span>
  2389.                                <span class="visually-hidden">Previous</span>
  2390.                            </button>
  2391.                            <button class="carousel-control-next" type="button" data-bs-target="#keywordCarousel" data-bs-slide="next">
  2392.                                <span class="carousel-control-next-icon" aria-hidden="true"></span>
  2393.                                <span class="visually-hidden">Next</span>
  2394.                            </button>
  2395.                                            </div>
  2396.                                <!-- Keyword Carousel End -->
  2397.            </div>
  2398.            
  2399.            <!-- Useful Links -->
  2400.            <div class="col-lg-4 col-md-6 mb-4 mb-md-0">
  2401.                <h5 class="text-uppercase">Useful Links</h5>
  2402.                <div class="row">
  2403.                    <!-- First Sub-Column -->
  2404.                    <div class="col-6">
  2405.                        <ul class="list-unstyled">
  2406.                            <li>
  2407.                                <a href="/services" class="text-dark">Our Services</a>
  2408.                            </li>
  2409.                            <li>
  2410.                                <a href="/blog" class="text-dark">Blog</a>
  2411.                            </li>
  2412.                            <li>
  2413.                                <a href="/partners" class="text-dark">Our Partners</a>
  2414.                            </li>
  2415.                            <li>
  2416.                                <a href="/about-us" class="text-dark">About Us</a>
  2417.                            </li>
  2418.                            <li>
  2419.                                <a href="/contact" class="text-dark">Contact</a>
  2420.                            </li>
  2421.                        </ul>
  2422.                    </div>
  2423.                    <!-- Second Sub-Column -->
  2424.                    <div class="col-6">
  2425.                        <ul class="list-unstyled">
  2426.                            <li>
  2427.                                <a href="/faq" class="text-dark">FAQ</a>
  2428.                            </li>
  2429.                            <li>
  2430.                                <a href="/terms" class="text-dark">Terms &amp; Conditions</a>
  2431.                            </li>
  2432.                            <li>
  2433.                                <a href="/privacy-policy" class="text-dark">Privacy Policy</a>
  2434.                            </li>
  2435.                            <li>
  2436.                                <a href="/imprint" class="text-dark">Imprint</a>
  2437.                            </li>
  2438.                        </ul>
  2439.                    </div>
  2440.                </div>
  2441.                <!-- Become a Carrier Button -->
  2442.                <div class="text-center mt-3">
  2443.                    <a href="/become-a-carrier" class="btn btn-primary btn-lg">Chauffeur Registration</a>
  2444.                </div>
  2445.            </div>
  2446.            
  2447.            <!-- Contact Information -->
  2448.            <div class="col-lg-4 col-md-12 mb-4 mb-md-0">
  2449.                <h5 class="text-uppercase">Contact Us</h5>
  2450.                <ul class="list-unstyled">
  2451.                    <li>
  2452.                        <i class="bi bi-telephone-fill"></i> +49 171 2323439                    </li>
  2453.                    <li>
  2454.                        <i class="bi bi-envelope-fill"></i> info@citytransfers.eu                    </li>
  2455.                    <li>
  2456.                        <i class="bi bi-clock-fill"></i> Mon-Fri: 8 AM - 8 PM                    </li>
  2457.                </ul>
  2458.                
  2459.                <!-- Payment Methods -->
  2460.                <div class="mt-4">
  2461.                    <h6 class="text-uppercase text-center">We Accept</h6>
  2462.                    <div class="d-flex justify-content-center">
  2463.                        <div class="row row-cols-2 row-cols-sm-3 row-cols-md-4 row-cols-lg-4 g-3 mt-2">
  2464.                            <div class="col">
  2465.                                <img src="/assets/images/payments/stripe.svg" alt="Stripe" class="img-fluid" style="width:50px;">
  2466.                            </div>
  2467.                            <div class="col">
  2468.                                <img src="/assets/images/payments/visa.svg" alt="Visa" class="img-fluid" style="width:50px;">
  2469.                            </div>
  2470.                            <div class="col">
  2471.                                <img src="/assets/images/payments/mastercard.svg" alt="Mastercard" class="img-fluid" style="width:50px;">
  2472.                            </div>
  2473.                            <div class="col">
  2474.                                <img src="/assets/images/payments/amex.svg" alt="American Express" class="img-fluid" style="width:50px;">
  2475.                            </div>
  2476.                            <div class="col">
  2477.                                <img src="/assets/images/payments/google-pay.svg" alt="Google Pay" class="img-fluid" style="width:50px;">
  2478.                            </div>
  2479.                            <div class="col">
  2480.                                <img src="/assets/images/payments/apple-pay.svg" alt="Apple Pay" class="img-fluid" style="width:50px;">
  2481.                            </div>
  2482.                            <div class="col">
  2483.                                <img src="/assets/images/payments/paypal.svg" alt="Paypal" class="img-fluid" style="width:50px;">
  2484.                            </div>
  2485.                            <div class="col">
  2486.                                <img src="/assets/images/payments/klarna.svg" alt="Klarna" class="img-fluid" style="width:50px;">
  2487.                            </div>
  2488.                        </div>
  2489.                    </div>
  2490.                </div>
  2491.            </div>
  2492.        </div>
  2493.    </div>
  2494.    
  2495.    <!-- Social Media Links -->
  2496.    <div class="text-center p-3" style="background-color: rgba(0, 0, 0, 0.05);">
  2497.        <a href="https://tiktok.com/@City.Transfers" class="text-dark me-4" target="_blank" rel="noopener noreferrer">
  2498.            <i class="bi bi-tiktok" style="font-size: 1.5rem;"></i>
  2499.        </a>
  2500.        <a href="https://instagram.com/citytransfers.eu" class="text-dark me-4" target="_blank" rel="noopener noreferrer">
  2501.            <i class="bi bi-instagram" style="font-size: 1.5rem;"></i>
  2502.        </a>
  2503.        <a href="https://youtube.com/@citytransfers-eu" class="text-dark me-4" target="_blank" rel="noopener noreferrer">
  2504.            <i class="bi bi-youtube" style="font-size: 1.5rem;"></i>
  2505.        </a>
  2506.        <a href="https://play.google.com/store/apps/details?id=com.citytransfers.eu" class="text-dark me-4" target="_blank" rel="noopener noreferrer">
  2507.            <i class="bi bi-google-play" style="font-size: 1.5rem;"></i>
  2508.        </a>
  2509.    </div>
  2510.    
  2511.    <!-- Copyright -->
  2512.    <div class="text-center p-3 bg-dark text-white">
  2513.        © 2024 City Transfers. All rights reserved.
  2514.    </div>
  2515. </footer>
  2516. <!-- End of Footer Section -->
  2517.  
  2518. <!-- Include Bootstrap 5 JS Bundle (if not already included in the header) -->
  2519. <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
  2520. </body>
  2521. </html>
  2522.  
  2523.    <!-- Include Bootstrap 5 JS from CDN (required for components like carousel and accordion) -->
  2524.    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
  2525. </body>
  2526. </html>
  2527.  
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda