Interactive Guide: Arriving at Quang Ninh (Van Don) Airport https://cdn.tailwindcss.com Goal: Inform/Prepare. -> Viz/Method: Interactive HTML/CSS checklist. -> Interaction: Hover states on items. -> Justification: Breaks down a dense list into a scannable, user-friendly format. -> Library/Method: Tailwind CSS. – Report Info: Two distinct arrival processes (E-visa vs. VOA). -> Goal: Organize/Compare/Guide. -> Viz/Method: Dynamic visual flowchart. -> Interaction: User clicks a button to select their visa type, which triggers JS to highlight and display only the relevant steps. -> Justification: Visually and interactively clarifies the user’s specific path, making it far easier to understand than reading two separate blocks of text. -> Library/Method: HTML/Tailwind CSS, Vanilla JS. – Report Info: Benefits and details of the Expedited Entry Service. -> Goal: Persuade/Inform. -> Viz/Method: Card-based layout with icons. -> Interaction: Clickable call-to-action button. -> Justification: Presents key selling points in a visually appealing, easy-to-digest format. -> Library/Method: HTML/Tailwind CSS. – Report Info: Reasons to trust vietnamimmigration.org. -> Goal: Build Credibility. -> Viz/Method: List with external links and icons. -> Interaction: Links open in a new tab. -> Justification: Clearly presents credentials and provides proof through external validation. -> Library/Method: HTML/Tailwind CSS. –> body { font-family: ‘Inter’, sans-serif; background-color: #FDFBF8; color: #3f3f46; } @import url(‘https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap’); .nav-link { transition: color 0.3s; } .nav-link:hover { color: #d97706; } .btn-primary { background-color: #f59e0b; color: white; transition: background-color 0.3s; } .btn-primary:hover { background-color: #d97706; } .btn-secondary { background-color: #e5e7eb; color: #374151; transition: background-color 0.3s; } .btn-secondary.active { background-color: #d97706; color: white; box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); } .step { transition: all 0.5s ease-in-out; opacity: 0.4; transform: scale(0.95); filter: grayscale(80%); } .step.active { opacity: 1; transform: scale(1); filter: grayscale(0%); border-color: #f59e0b; box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -2px rgb(0 0 0 / 0.1); } .step-connector { transition: all 0.5s ease-in-out; opacity: 0.4; height: 2rem; width: 2px; background-color: #d1d5db; } .step-connector.active { opacity: 1; background-color: #f59e0b; } .smooth-scroll { scroll-behavior: smooth; }

A Seamless Arrival at

Quang Ninh (Van Don) Airport

Your interactive guide to navigating the airport with ease. Prepare for your trip, understand the process, and learn how to skip the queues.

Your Pre-Arrival Checklist

Ensure a smooth start to your Vietnam adventure by having these essentials ready before you land.

  • Valid Passport

    Must be valid for 6+ months with at least two blank pages.

  • Visa Documentation (Printed)

    Your E-visa approval letter or proof of visa-free eligibility.

  • For Visa-on-Arrival (VOA)

    Completed NA1 Form, one 4x6cm photo, and cash for stamping fee (US$25 single / US$50 multi-entry). No ATMs in the VOA area!

  • Accommodation Details

    Have the address of your first night’s stay handy (digital or print).

  • Customs Awareness

    Be aware of Vietnam’s customs regulations for currency, alcohol, etc.

Skip the Queue

Expedited Entry Service

Why wait in line after a long flight? Our VIP service escorts you through priority lanes, handles all VOA paperwork, and gets you on your way faster.

Save Significant Time

Bypass long queues at both the VOA counter and the main immigration checkpoint.

📄

Stress-Free Process

Our team handles all paperwork and procedures for you, perfect for VOA holders.

🤝

Personal VIP Escort

Be met upon arrival and guided through every step by our professional staff.

About Van Don Airport (VDO)

📍

Location

Doan Ket Commune, Van Don District. Approx. 60-90 minutes to Ha Long City.

🚌

Transport

Bus routes 14A & 14B, Taxis, and pre-booked private cars are available.

🏢

Terminal

A single, modern passenger terminal with 3 floors for arrivals and departures.

Book with Confidence

  • Over 15 years of experience (domain registered in 2008). [Verify]
  • 100% Money-Back Guarantee Policy for your peace of mind. [Details]
  • Secure payments via PayPal with Buyer Protection. [Learn More]
  • Highly rated by our customers. [See Reviews]

© 2024 Interactive Arrival Guide. Information provided by VietnamImmigration.org.

This is an informational tool. Please verify all travel requirements with official sources.

document.addEventListener(‘DOMContentLoaded’, () => { const btnEvisa = document.getElementById(‘btn-evisa’); const btnVoa = document.getElementById(‘btn-voa’); const voaOnlyElements = document.querySelectorAll(‘.voa-only’); const steps = { plane: document.getElementById(‘step-plane’), voaCounter: document.getElementById(‘step-voa-counter’), immigration: document.getElementById(‘step-immigration’), baggage: document.getElementById(‘step-baggage’), customs: document.getElementById(‘step-customs’), exit: document.getElementById(‘step-exit’), }; const connectors = { voaCounter: document.getElementById(‘connector-voa-counter’), immigration: document.getElementById(‘connector-immigration’), baggage: document.getElementById(‘connector-baggage’), customs: document.getElementById(‘connector-customs’), exit: document.getElementById(‘connector-exit’), } const titles = { immigration: document.getElementById(‘immigration-step-title’), baggage: document.getElementById(‘baggage-step-title’), customs: document.getElementById(‘customs-step-title’), exit: document.getElementById(‘exit-step-title’), } function updateFlow(type) { // Reset all Object.values(steps).forEach(step => step.classList.remove(‘active’)); Object.values(connectors).forEach(conn => conn.classList.remove(‘active’)); // Handle button active state btnEvisa.classList.remove(‘active’); btnVoa.classList.remove(‘active’); // Activate common first step steps.plane.classList.add(‘active’); if (type === ‘evisa’) { btnEvisa.classList.add(‘active’); voaOnlyElements.forEach(el => el.classList.add(‘hidden’)); titles.immigration.textContent = ‘2. Immigration Checkpoint’; titles.baggage.textContent = ‘3. Baggage Claim’; titles.customs.textContent = ‘4. Customs Check’; titles.exit.textContent = ‘5. Exit & Enjoy Vietnam!’; // Activate e-visa path setTimeout(() => connectors.immigration.classList.add(‘active’), 200); setTimeout(() => steps.immigration.classList.add(‘active’), 400); setTimeout(() => connectors.baggage.classList.add(‘active’), 600); setTimeout(() => steps.baggage.classList.add(‘active’), 800); setTimeout(() => connectors.customs.classList.add(‘active’), 1000); setTimeout(() => steps.customs.classList.add(‘active’), 1200); setTimeout(() => connectors.exit.classList.add(‘active’), 1400); setTimeout(() => steps.exit.classList.add(‘active’), 1600); } else if (type === ‘voa’) { btnVoa.classList.add(‘active’); voaOnlyElements.forEach(el => el.classList.remove(‘hidden’)); titles.immigration.textContent = ‘3. Immigration Checkpoint’; titles.baggage.textContent = ‘4. Baggage Claim’; titles.customs.textContent = ‘5. Customs Check’; titles.exit.textContent = ‘6. Exit & Enjoy Vietnam!’; // Activate VOA path setTimeout(() => connectors.voaCounter.classList.add(‘active’), 200); setTimeout(() => steps.voaCounter.classList.add(‘active’), 400); setTimeout(() => connectors.immigration.classList.add(‘active’), 600); setTimeout(() => steps.immigration.classList.add(‘active’), 800); setTimeout(() => connectors.baggage.classList.add(‘active’), 1000); setTimeout(() => steps.baggage.classList.add(‘active’), 1200); setTimeout(() => connectors.customs.classList.add(‘active’), 1400); setTimeout(() => steps.customs.classList.add(‘active’), 1600); setTimeout(() => connectors.exit.classList.add(‘active’), 1800); setTimeout(() => steps.exit.classList.add(‘active’), 2000); } } btnEvisa.addEventListener(‘click’, () => updateFlow(‘evisa’)); btnVoa.addEventListener(‘click’, () => updateFlow(‘voa’)); // Set initial state updateFlow(‘evisa’); // Smooth scrolling for nav links document.querySelectorAll(‘a[href^=”#”]’).forEach(anchor => { anchor.addEventListener(‘click’, function (e) { e.preventDefault(); document.querySelector(this.getAttribute(‘href’)).scrollIntoView({ behavior: ‘smooth’ }); }); }); });
evisa.vn Avatar

Published by