{"id":11048,"date":"2018-03-23T10:56:00","date_gmt":"2018-03-23T03:56:00","guid":{"rendered":"https:\/\/www.asiasafari-laos.com\/hotels-and-accommodation-in-laos\/hotel-in-vientiane\/"},"modified":"2026-09-05T19:08:58","modified_gmt":"2026-09-05T12:08:58","slug":"hotel-in-vientiane","status":"publish","type":"page","link":"https:\/\/www.asiasafari-laos.com\/en\/hotels-and-accommodation-in-laos\/hotel-in-vientiane\/","title":{"rendered":"Hotel in Vientiane"},"content":{"rendered":"<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:0px;--awb-padding-bottom:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:calc( 1200px + 0px );margin-left: calc(-0px \/ 2 );margin-right: calc(-0px \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-blend:overlay;--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:0px;--awb-margin-bottom-large:0px;--awb-spacing-left-large:0px;--awb-width-medium:100%;--awb-spacing-right-medium:0px;--awb-spacing-left-medium:0px;--awb-width-small:100%;--awb-spacing-right-small:0px;--awb-spacing-left-small:0px;\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\"><link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/leaflet\/1.9.4\/leaflet.min.css\">\n<style>.asfh{\n    --vert:#a6ba52; --vert-fonce:#617b33; --vert-moyen:#6f8d3a;\n    --ink:#333333; --muted:#747474; --line:#e0dede; --footer:#3a3a3a;\n    --serif:\"Alegreya\", Georgia, \"Times New Roman\", serif;\n    --sans:\"Cabin\", Arial, sans-serif;\n    --shadow:0 4px 18px rgba(51,51,51,.10);\n  }\n.asfh *{box-sizing:border-box; margin:0; padding:0}\n.asfh{font-family:var(--sans); color:var(--muted); background:#fff; font-size:18px; line-height:1.6}\n.asfh a{color:var(--vert-fonce)}\n.asfh .wrap{max-width:1200px; margin:0 auto; padding:0 20px}\n\n\n.asfh .topbar{background:var(--vert); color:#fff; font-size:14px}\n.asfh .topbar .wrap{display:flex; align-items:center; justify-content:space-between; min-height:45px; flex-wrap:wrap; gap:10px}\n.asfh .topbar b{font-weight:700}\n.asfh .topbar .socials{display:flex; gap:16px}\n.asfh .topbar .socials a{color:#fff; text-decoration:none; font-size:15px; opacity:.95}\n.asfh .topbar .socials a:hover{opacity:1}\n.asfh .siteheader{background:#fff}\n.asfh .siteheader .wrap{display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:106px; flex-wrap:wrap}\n.asfh .logo img{height:58px; display:block}\n.asfh nav.mainmenu{display:flex; align-items:center; gap:26px; flex-wrap:wrap}\n.asfh nav.mainmenu a{font-family:var(--sans); font-size:15px; font-weight:600; letter-spacing:.3px; text-transform:uppercase; color:var(--ink); text-decoration:none}\n.asfh nav.mainmenu a:hover{color:var(--vert-fonce)}\n.asfh nav.mainmenu a.btn-devis{background:var(--vert-fonce); color:#fff; padding:11px 20px; border-radius:2px}\n.asfh nav.mainmenu a.btn-devis:hover{background:var(--vert-moyen); color:#fff}\n.asfh .flag{width:26px; height:26px; border-radius:50%; overflow:hidden; display:block; border:1px solid var(--line)}\n.asfh .flag img{width:100%; height:100%; object-fit:cover; display:block}\n.asfh .crumbs{background:var(--vert); color:#fff; font-size:15px}\n.asfh .crumbs .wrap{min-height:40px; display:flex; align-items:center; justify-content:center; text-align:center}\n.asfh .crumbs a{color:#fff; text-decoration:none}\n.asfh .crumbs a:hover{text-decoration:underline}\n.asfh .crumbs .sep{opacity:.75; margin:0 8px}\n.asfh .sharebar{position:fixed; left:0; top:42%; z-index:900; display:flex; flex-direction:column}\n.asfh .sharebar a{width:40px; height:36px; background:var(--vert); color:#fff; display:flex; align-items:center; justify-content:center; text-decoration:none; font-size:15px; font-weight:700; border-bottom:1px solid rgba(255,255,255,.35)}\n.asfh .sharebar a:hover{background:var(--vert-fonce)}\n@media(max-width:900px){.asfh .sharebar{display:none}}\n.asfh .pagehead{text-align:center; padding:44px 20px 0}\n.asfh .pagehead img.motif{height:52px; margin-bottom:14px}\n.asfh h1{font-family:var(--serif); font-size:42px; font-weight:700; letter-spacing:-.5px; color:var(--ink); line-height:1.15; margin:6px 0 12px}\n.asfh .intro{max-width:1030px; margin:14px auto 0; color:var(--muted); font-size:18px; line-height:1.6; text-align:center}\n.asfh .intro b{color:var(--ink); font-weight:700}\n.asfh .sep-dash{max-width:1160px; margin:34px auto 0; border-top:1px dashed var(--line)}\n.asfh .filterbar{position:sticky; top:0; z-index:500; background:rgba(255,255,255,.97); border-bottom:1px dashed var(--line); padding:16px 0; margin-top:26px}\n.asfh .chips{display:flex; gap:10px; flex-wrap:wrap; align-items:center}\n.asfh .chip{font-family:var(--sans); border:2px solid var(--vert); background:#fff; color:var(--vert-fonce); font-size:14px; font-weight:600; letter-spacing:.3px; text-transform:uppercase; padding:9px 20px; border-radius:2px; cursor:pointer; transition:.16s}\n.asfh .chip:hover{background:#f4f7e8}\n.asfh .chip.active{background:var(--vert); color:#fff}\n.asfh .chips .hint{margin-left:auto; font-size:15px; color:var(--muted)}\n.asfh h2.section-title{font-family:var(--sans); font-size:34px; font-weight:700; color:var(--ink); margin:44px 0 6px}\n.asfh .section-sub{color:var(--muted); margin:8px 0 26px; font-size:17px}\n.asfh .grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(348px,1fr)); gap:26px}\n.asfh .card{background:#fff; border:1px solid var(--line); border-radius:4px; overflow:hidden; box-shadow:var(--shadow); display:flex; flex-direction:column; transition:transform .16s, box-shadow .16s}\n.asfh .card:hover{transform:translateY(-3px); box-shadow:0 10px 26px rgba(51,51,51,.16)}\n.asfh .ph{position:relative; height:225px; overflow:hidden; background:#e8ebdd}\n.asfh .ph img{width:100%; height:100%; object-fit:cover; display:block}\n.asfh .ph .fallback{width:100%; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; color:#fff; font-family:var(--serif)}\n.asfh .ph .fallback b{font-size:44px; font-weight:700; letter-spacing:3px; line-height:1}\n.asfh .ph .fallback i{font-family:var(--sans); font-style:normal; font-size:11.5px; opacity:.85; margin-top:8px; letter-spacing:.4px}\n.asfh .ph .credit{position:absolute; top:12px; left:12px; font-size:10.5px; background:rgba(255,255,255,.92); color:#555; padding:3px 9px; border-radius:2px; max-width:70%}\n.asfh .ph .badge-cat.avec-credit{top:auto; bottom:46px}\n.asfh .ph .namebar{position:absolute; left:0; right:0; bottom:0; background:rgba(166,186,82,.88); padding:9px 14px; text-align:center}\n.asfh .ph .namebar span{font-family:var(--serif); font-weight:700; font-size:25px; color:#fff; line-height:1.2; text-shadow:0 1px 2px rgba(0,0,0,.18)}\n.asfh .badge-cat{position:absolute; top:12px; left:12px; background:var(--vert-fonce); color:#fff; font-family:var(--sans); font-size:11.5px; font-weight:700; letter-spacing:.6px; text-transform:uppercase; padding:5px 12px; border-radius:2px}\n.asfh .badge-note{position:absolute; top:12px; right:12px; background:#fff; border:1px solid var(--line); border-radius:3px; padding:7px 10px 6px; text-align:center; box-shadow:0 2px 10px rgba(0,0,0,.18); min-width:64px}\n.asfh .badge-note .val{font-family:var(--serif); font-weight:700; font-size:23px; line-height:1; color:var(--vert-fonce)}\n.asfh .badge-note .val em{font-style:normal; font-size:12px; font-weight:500; color:var(--muted)}\n.asfh .badge-note .src{display:block; font-family:var(--sans); font-size:10.5px; color:var(--muted); margin-top:3px}\n.asfh .badge-note.none{background:#f3f3f1}\n.asfh .badge-note.none .val{font-family:var(--sans); font-size:12.5px; font-weight:600; color:var(--muted); padding:3px 0}\n.asfh .body{padding:20px 22px 22px; display:flex; flex-direction:column; flex:1}\n.asfh .stars{color:var(--vert); font-size:15px; letter-spacing:2px}\n.asfh .loc{font-family:var(--sans); font-size:15px; color:var(--muted); margin:4px 0 10px}\n.asfh .loc::before{content:\"\ud83d\udccd \"}\n.asfh .desc{font-size:16px; line-height:1.6; color:var(--muted); flex:1}\n.asfh .tags{display:flex; flex-wrap:wrap; gap:7px; margin:14px 0 3px}\n.asfh .tag{background:#f4f7e8; color:var(--vert-fonce); font-size:13px; font-weight:600; padding:3px 10px; border-radius:2px; border:1px solid #dde6c2}\n.asfh .sources{display:flex; flex-wrap:wrap; gap:6px; margin:0 0 12px}\n.asfh .src-pill{display:inline-flex; align-items:baseline; gap:5px; font-size:12.5px; padding:3px 9px; border-radius:2px; border:1px solid var(--line); background:#fafaf8; color:var(--muted)}\n.asfh .src-pill b{font-weight:700; color:var(--ink); font-size:13.5px}\n.asfh .src-pill i{font-style:normal; color:#9a9a9a; font-size:11.5px}\n.asfh .src-pill.todo{background:#fdf6e3; border-color:#ecdfb0; color:#9a8436}\n.asfh .src-pill.todo b{color:#9a8436; font-weight:600}\n.asfh .links{display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; padding-top:15px; border-top:1px dashed var(--line)}\n.asfh .lnk{display:inline-flex; align-items:center; gap:6px; font-size:13.5px; font-weight:600; text-decoration:none; color:var(--muted); background:#f7f7f5; border:1px solid var(--line); padding:6px 11px; border-radius:2px; transition:.14s}\n.asfh .lnk:hover{background:#f4f7e8; color:var(--vert-fonce); border-color:var(--vert)}\n.asfh .cta{display:block; text-align:center; margin-top:15px; background:var(--vert); color:#fff; text-decoration:none; font-weight:700; font-size:14px; letter-spacing:.6px; text-transform:uppercase; padding:14px; border-radius:2px; transition:.14s}\n.asfh .cta:hover{background:var(--vert-fonce)}\n.asfh .legende{border:1px dashed var(--line); background:#fafaf8; border-radius:4px; padding:20px 24px; margin:30px 0 0; font-size:16px; color:var(--muted); line-height:1.65}\n.asfh .legende b{color:var(--ink)}\n.asfh .legende .formule{display:inline-block; background:#fff; border:1px solid var(--line); border-radius:2px; padding:2px 9px; font-size:15px; color:#555; margin:0 2px}\n.asfh #mapwrap{margin:48px 0 20px}\n.asfh #map{height:470px; border-radius:4px; border:1px solid var(--line); box-shadow:var(--shadow)}\n.asfh .map-note{font-size:15px; color:var(--muted); margin-top:10px}\n.asfh .leaflet-popup-content{font-family:var(--sans)}\n.asfh .faq{margin-top:50px}\n.asfh .faq h3{font-family:var(--serif); font-size:23px; font-weight:700; color:var(--ink); margin:26px 0 6px}\n.asfh .faq p{font-size:17px}\n.asfh .devis{background:var(--vert-fonce); color:#fff; text-align:center; padding:46px 20px; margin-top:54px}\n.asfh .devis h5{font-family:var(--serif); font-size:32px; font-weight:700; margin-bottom:8px; color:#fff !important}\n.asfh .devis a.btn{display:inline-block; margin-top:18px; background:#fff; color:var(--vert-fonce); font-family:var(--sans); font-weight:700; font-size:14px; letter-spacing:.6px; text-transform:uppercase; text-decoration:none; padding:14px 32px; border-radius:2px}\n.asfh .devis a.btn:hover{background:#f4f7e8}\n\n\n\n\n\n.asfh footer.sitefooter{background:var(--footer); color:#bbb; text-align:center; padding:26px 20px; font-size:15px}\n.asfh footer.sitefooter b{color:#fff}\n@media(max-width:760px){.asfh h1{font-size:30px}\n.asfh .devis h5{font-size:25px}\n.asfh nav.mainmenu{gap:14px}\n.asfh .logo img{height:46px}\n.asfh .ph .namebar span{font-size:22px}}<\/style>\n<div class=\"asfh\">\n<div class=\"pagehead\">\n  <img decoding=\"async\" class=\"motif\" src=\"https:\/\/www.asiasafari-laos.com\/wp-content\/uploads\/2018\/06\/MOTIFS4.png\" alt=\"Lao green ethnic motif\" onerror=\"this.style.display='none'\">\n  <h1>Hotels in Vientiane<\/h1>\n  <p class=\"intro\">Discover our <b>2026<\/b> selection of hotels in Vientiane, from the large international hotels to the small houses of charm. Based here for more than 25 years, we know every property first-hand \u2014 the rooms, the teams, the breakfasts. Every trip is <b>tailor-made<\/b>, so we book the address that fits your plans and your budget.<\/p>\n  <div class=\"sep-dash\"><\/div>\n<\/div>\n<div class=\"filterbar\">\n  <div class=\"wrap chips\" id=\"chips\">\n    <button class=\"chip active\" data-f=\"all\">All hotels<\/button>\n    <button class=\"chip\" data-f=\"luxe\">\u2605\u2605\u2605\u2605\u2605 Luxury<\/button>\n    <button class=\"chip\" data-f=\"charme\">Boutique & Charm<\/button>\n    <button class=\"chip\" data-f=\"confort\">\u2605\u2605\u2605\u2605 Comfort<\/button>\n    <button class=\"chip\" data-f=\"essentiel\">\u2605\u2605\u2605 Essentials<\/button>\n    <span class=\"hint\" id=\"count\"><\/span>\n  <\/div>\n<\/div>\n<main class=\"wrap\">\n  <div class=\"grid\" id=\"grid\"><\/div>\n\n  <div class=\"legende\">\n    <b>How to read the score.<\/b> The figure shown on the photo is an <b>average of published online reviews<\/b>, converted to a 10-point scale and\n    weighted by how many reviews each platform holds \u2014 4.4\/5 from 900 Google reviews counts for far more than 4.8\/5 from 20 TripAdvisor reviews.\n    <span class=\"formule\">TripAdvisor and Google (out of 5) \u00d7 2 \u2192 out of 10<\/span>\n    Each source is listed under the hotel name so you can check it yourself.\n    <br><br>\n    <b>Facebook and hotel websites are excluded from the calculation<\/b>: Facebook replaced its 5-point score with a recommendation percentage, and hotels do not publish ratings on their own sites. Their links remain available on every card.\n  <\/div>\n\n  <div id=\"mapwrap\">\n    <h2 class=\"section-title\">Where are they?<\/h2>\n    <p class=\"section-sub\">Most of our hotels sit on the Mekong riverfront or inside the historic centre of Vientiane.<\/p>\n    <div id=\"map\"><\/div>\n    <p class=\"map-note\">Exact positions (Booking data) for Crowne Plaza, Amari, DoubleTree, Souphattra Heritage, La Seine and Mintra; positions to be confirmed for Settha Palace, Lao Poet, Lao Plaza and Eastin.<\/p>\n  <\/div>\n\n  <div class=\"faq\">\n    <h2 class=\"section-title\">Choosing where to stay in Vientiane<\/h2>\n\n    <h3>How many nights should you plan?<\/h3>\n    <p>One or two. Vientiane is a capital you take at walking pace: Pha That Luang, Wat Sisaket, the COPE Visitor Centre and sunset over the Mekong fill a comfortable day. A second night makes sense if you arrive on a long-haul flight and want to start the trip rested, or if you are heading south to Champasak and would rather not rush the morning.<\/p>\n\n    <h3>Riverside or city centre?<\/h3>\n    <p>On Quai Fa Ngum you get the Mekong at your feet, the sunset and the night market. In the centre, around Samsenthai Road and That Dam, you are closer to the temples, the museums and the restaurants. Nothing is far: the two areas are ten minutes apart on foot.<\/p>\n\n    <h3>What does a good hotel cost in Vientiane?<\/h3>\n    <p>Less than in most South-East Asian capitals. A well-run four-star room sits in the mid range, and the international five-star properties remain accessible by regional standards. We book at contracted agency rates, usually below the published online prices \u2014 ask us for a comparison.<\/p>\n\n    <h3>When is the best time to come?<\/h3>\n    <p>November to February is the pleasant season: dry, and mild in the evenings. March to May is hot, and the Mekong drops to its lowest level. The rains, from June to September, come as short heavy showers rather than all-day downpours, and the river regains its full width \u2014 Boun Ok Phansa, the boat racing festival in October, is one of the best moments of the year to be in town.<\/p>\n\n    <h3>How do you get to Vientiane?<\/h3>\n    <p>Wattay International Airport is fifteen minutes from the centre, with connections through Bangkok, Hanoi, Kuala Lumpur and Singapore. The high-speed train puts Vang Vieng an hour away and Luang Prabang two hours away, and the Friendship Bridge links the city to Nong Khai in Thailand. Asia Safari arranges every transfer, and English-speaking guides are available on request.<\/p>\n  <\/div>\n\n  \n<\/main>\n<div class=\"devis\">\n  <h5>Thinking of discovering Laos?<\/h5>\n  <div>Every trip is tailor-made \u2014 accommodation chosen carefully around what you want.<\/div>\n  <a class=\"btn\" href=\"https:\/\/www.asiasafari-laos.com\/en\/contact-asia-safari-laos-agency\/\" target=\"_blank\" rel=\"noopener\">Request a free quote<\/a>\n<\/div>\n<\/div>\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/leaflet\/1.9.4\/leaflet.min.js\"><\/script>\n<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/maplibre-gl\/5.24.0\/maplibre-gl.min.css\">\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/maplibre-gl\/5.24.0\/maplibre-gl.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/@maplibre\/maplibre-gl-leaflet@0.1.4\/dist\/leaflet-maplibre-gl.js\"><\/script>\n<script>\nfunction asfhStart(){\n\n\/* Ratings collected 28\/07\/2026 (Booking dated 26\/07). Mintra collected 28\/08\/2026. Nothing invented. *\/\nconst HOTELS = [\n {\n  id:\"crowne\", cat:\"confort\", name:\"Crowne Plaza Vientiane\", stars:5,\n  notes:{ booking:{v:9.2,n:517}, ta:{v:4.7,n:513}, google:{v:4.6,n:2023} },\n  loc:\"20 Samsenthai Road \u2014 city centre\", coords:[17.969751,102.596702],\n  desc:\"The benchmark international hotel: 198 rooms, a pool with a view, a club lounge and one of the best breakfasts in town. The obvious choice for a first or last night in Laos.\",\n  tags:[\"Pool\",\"Spa\",\"Club Lounge\",\"Fitness centre\"],\n  img:\"https:\/\/www.asiasafari-laos.com\/wp-content\/uploads\/2026\/08\/hotel-crowne-plaza-vientiane-piscine.webp\",\n  credit:\"\u00a9 Crowne Plaza Vientiane \/ IHG \u2014 official site\",\n  site:\"https:\/\/www.ihg.com\/crowneplaza\/hotels\/us\/en\/vientiane\/vtecp\/hoteldetail\",\n  ta:\"https:\/\/www.tripadvisor.com\/Hotel_Review-g293950-d9452594-Reviews-Crowne_Plaza_Vientiane-Vientiane_Vientiane_Prefecture.html\",\n  fb:\"https:\/\/www.facebook.com\/search\/top?q=Crowne%20Plaza%20Vientiane\",\n  booking:\"https:\/\/www.booking.com\/hotel\/la\/vientiane-vientiane.html\"\n },\n {\n  id:\"amari\", cat:\"confort\", name:\"Amari Vientiane\", stars:5,\n  notes:{ booking:{v:9.1,n:552}, ta:{v:4.8,n:83}, google:{v:4.7,n:624} },\n  loc:\"Quai Chao Fa Ngum \u2014 100 m from the Mekong\", coords:[17.964929,102.600123],\n  desc:\"The newcomer (2024) that has already collected awards: 248 rooms in contemporary Lao design, an infinity pool, the Stellar rooftop and the night market right at the door.\",\n  tags:[\"Infinity pool\",\"Rooftop bar\",\"Breeze Spa\",\"Mekong view\"],\n  img:\"https:\/\/www.asiasafari-laos.com\/wp-content\/uploads\/2026\/08\/hotel-amari-vientiane.jpg\",\n  credit:\"\u00a9 Amari Vientiane \u2014 official site\",\n  site:\"https:\/\/www.amari.com\/vientiane\",\n  ta:\"https:\/\/www.tripadvisor.com\/Search?q=Amari%20Vientiane\",\n  fb:\"https:\/\/www.facebook.com\/AmariVientianeLaos\",\n  booking:\"https:\/\/www.booking.com\/hotel\/la\/amari-vientiane.html\"\n },\n {\n  id:\"doubletree\", cat:\"confort\", name:\"DoubleTree by Hilton Vientiane\", stars:5,\n  notes:{ booking:{v:9,n:333}, ta:{v:4.8,n:74}, google:{v:4.6,n:253} },\n  loc:\"Manthatourath Road \u2014 embassy district\", coords:[17.964548,102.60641],\n  desc:\"The first Hilton address in Laos: 188 rooms facing the city or the Mekong, a rooftop pool, the Origin restaurant and the famous warm cookie on arrival.\",\n  tags:[\"Rooftop pool\",\"Origin restaurant\",\"Sports bar\",\"Hilton standard\"],\n  img:\"https:\/\/www.hilton.com\/im\/en\/VTEVLDI\/21942499\/poa-2850-edit.jpg?impolicy=crop&cw=5000&ch=2799&gravity=NorthWest&xposition=0&yposition=267&rw=768&rh=430\",\n  credit:\"\u00a9 DoubleTree by Hilton \u2014 official site\",\n  site:\"https:\/\/www.hilton.com\/en\/hotels\/vtevldi-doubletree-vientiane\/\",\n  ta:\"https:\/\/www.tripadvisor.com\/Search?q=DoubleTree%20Hilton%20Vientiane\",\n  fb:\"https:\/\/www.facebook.com\/search\/top?q=DoubleTree%20by%20Hilton%20Vientiane\",\n  booking:\"https:\/\/www.booking.com\/hotel\/la\/doubletree-by-hilton-vientiane.html\"\n },\n {\n  id:\"souphattra\", cat:\"luxe\", name:\"Souphattra Heritage Vientiane\", stars:5,\n  notes:{ booking:{v:9.1,n:138}, ta:{v:4.9,n:92}, google:{v:4.8,n:67} },\n  loc:\"Quai Fa Ngum \u2014 facing the Mekong\", coords:[17.964464,102.603757],\n  desc:\"Colonial elegance revisited, right on the riverfront: a saltwater pool, Lao cooking classes and a free shuttle. Intimate luxury, internationally awarded.\",\n  tags:[\"Colonial chic\",\"Saltwater pool\",\"Cooking class\",\"Mekong front\"],\n  img:\"https:\/\/www.asiasafari-laos.com\/wp-content\/uploads\/2026\/08\/hotel-souphattra-heritage-vientiane.jpg\",\n  credit:\"\u00a9 Souphattra Heritage \u2014 official site\",\n  site:\"https:\/\/souphattra.com\/heritage-vientiane\/\",\n  ta:\"https:\/\/www.tripadvisor.com\/Search?q=Souphattra%20Heritage%20Vientiane\",\n  fb:\"https:\/\/www.facebook.com\/souphattraheritagevientiane\/\",\n  booking:\"https:\/\/www.booking.com\/hotel\/la\/souphattra-heritage-vientiane.html\"\n },\n {\n  id:\"settha\", cat:\"charme\", name:\"Settha Palace Hotel\", stars:5,\n  notes:{ booking:{v:null,n:null}, ta:{v:4.2,n:521}, google:{v:4.4,n:264} },\n  loc:\"Rue Pangkham \u2014 historic centre, near That Dam\", coords:[17.96896,102.60156],\n  desc:\"Vientiane's historic palace (1932), restored in full French colonial style: period furniture, a tropical garden and a pool lined with frangipani trees. An institution.\",\n  tags:[\"Colonial 1932\",\"Tropical garden\",\"Pool\",\"Institution\"],\n  img:\"https:\/\/www.asiasafari-laos.com\/wp-content\/uploads\/2026\/08\/hotel-settha-palace-vientiane.jpg\",\n  credit:\"\u00a9 Settha Palace Hotel \u2014 official site\",\n  site:\"https:\/\/www.setthapalace.com\/\",\n  ta:\"https:\/\/www.tripadvisor.com\/Hotel_Review-g293950-d307702-Reviews-Settha_Palace_Hotel-Vientiane_Vientiane_Prefecture.html\",\n  fb:\"https:\/\/www.facebook.com\/search\/top?q=Settha%20Palace%20Hotel\",\n  booking:\"https:\/\/www.booking.com\/searchresults.html?ss=Settha+Palace+Hotel+Vientiane\"\n },\n {\n  id:\"laopoet\", cat:\"charme\", name:\"Lao Poet Hotel\", stars:4,\n  notes:{ booking:{v:null,n:null}, ta:{v:4.6,n:340}, google:{v:4.5,n:353} },\n  loc:\"Rue Hengbounnoy \u2014 150 m from the National Museum\", coords:[17.96702,102.60310],\n  desc:\"Run by the team behind the celebrated Satri House in Luang Prabang: 55 rooms in 1930s Indochine style, original artwork, and a rooftop infinity pool looking out over the temple roofs.\",\n  tags:[\"Boutique hotel\",\"Rooftop pool\",\"Indochine style\",\"Spa & sauna\"],\n  img:\"https:\/\/www.secret-retreats.com\/wp-content\/uploads\/2018\/09\/secret-retreats-laos-poet-hotel-facility-pool.jpg\",\n  site:\"https:\/\/www.laopoethotel.com\/\",\n  ta:\"https:\/\/www.tripadvisor.com\/Hotel_Review-g293950-d15120607-Reviews-Lao_Poet_Hotel-Vientiane_Vientiane_Prefecture.html\",\n  fb:\"https:\/\/www.facebook.com\/LaoPoetVientiane\/\",\n  booking:\"https:\/\/www.booking.com\/searchresults.html?ss=Lao+Poet+Hotel+Vientiane\"\n },\n {\n  id:\"laseine\", cat:\"charme\", name:\"La Seine Hotel by Burasari\", stars:5,\n  notes:{ booking:{v:9.1,n:322}, ta:{v:4.8,n:213}, google:{v:4.7,n:339} },\n  loc:\"160 Quai Fa Ngum \u2014 Mekong riverfront\", coords:[17.965799,102.596822],\n  desc:\"37 Art Deco rooms inspired by Parisian living, on the riverfront: a remarkable wine cellar, the Red Rose Bar and balconies over the water. The refuge of romantics and epicureans.\",\n  tags:[\"Boutique hotel\",\"Wine cellar\",\"Mekong view\",\"Art Deco\"],\n  img:\"https:\/\/www.asiasafari-laos.com\/wp-content\/uploads\/2026\/08\/hotel-la-seine-vientiane.jpg\",\n  credit:\"\u00a9 La Seine Hotel by Burasari \u2014 official site\",\n  site:\"https:\/\/www.laseinehotels.com\/\",\n  ta:\"https:\/\/www.tripadvisor.com\/Hotel_Review-g293950-d15512131-Reviews-La_Seine_Hotel_by_Burasari-Vientiane_Vientiane_Prefecture.html\",\n  fb:\"https:\/\/www.facebook.com\/laseinehotelvientiane\/\",\n  booking:\"https:\/\/www.booking.com\/hotel\/la\/la-seine-by-burasari.html\"\n },\n {\n  id:\"eastin\", cat:\"essentiel\", name:\"Eastin Hotel Vientiane\", stars:4,\n  notes:{ booking:{v:8.7,n:null}, ta:{v:4.6,n:201}, google:{v:4.7,n:1162} },\n  loc:\"Khaemkong Road \u2014 riverfront, 5 min from the centre\", coords:[17.9528,102.5765],\n  desc:\"The best value on the river: a fourth-floor pool with a view, a 360\u00b0 sky bar, gardens and a generous breakfast. Exactly right for a one or two-night stopover.\",\n  tags:[\"Pool\",\"Sky bar\",\"Good value\",\"Free parking\"],\n  img:\"https:\/\/www.asiasafari-laos.com\/wp-content\/uploads\/2026\/08\/hotel-eastin-vientiane.jpg\",\n  site:\"https:\/\/www.eastinhotelsresidences.com\/eastinvientianelaos\",\n  ta:\"https:\/\/www.tripadvisor.com\/Hotel_Review-g293950-d25177853-Reviews-Eastin_Hotel_Vientiane-Vientiane_Vientiane_Prefecture.html\",\n  fb:\"https:\/\/www.facebook.com\/search\/top?q=Eastin%20Hotel%20Vientiane\",\n  booking:\"https:\/\/www.booking.com\/hotel\/la\/eastin-vientiane-laos.html\"\n },\n {\n  id:\"mintra\", cat:\"essentiel\", name:\"Mintra Hotel\", stars:4,\n  notes:{ booking:{v:8.9,n:676}, ta:{v:null,n:null}, google:{v:4.6,n:241} },\n  loc:\"Rue Nokeokoummane \u2014 right downtown\",  coords:[17.964294,102.605493],\n  desc:\"The modern address downtown: contemporary rooms, a rooftop pool looking over the roofs of Vientiane, a spa and an airport shuttle. A safe bet, much appreciated by our travellers.\",\n  tags:[\"Rooftop pool\",\"Spa\",\"Downtown\",\"Airport shuttle\"],\n  img:\"https:\/\/www.asiasafari-laos.com\/wp-content\/uploads\/2026\/08\/hotel-mintra-vientiane-piscine-rooftop.jpg\",\n  credit:\"\u00a9 Mintra Hotel \u2014 official site\",\n  site:\"https:\/\/mintrahotelvientiane.com\/\",\n  ta:\"https:\/\/www.tripadvisor.com\/Hotel_Review-g293950-d27164370-Reviews-Mintra_Hotel-Vientiane_Vientiane_Prefecture.html\",\n  fb:\"https:\/\/www.facebook.com\/Mintrahotel\/\",\n  booking:\"https:\/\/www.booking.com\/hotel\/la\/mintra-vientiane.html\"\n },\n {\n  id:\"laoplaza\", cat:\"confort\", name:\"Lao Plaza Hotel\", stars:5,\n  notes:{ booking:{v:null,n:null}, ta:{v:3.9,n:371}, google:{v:4.3,n:780} },\n  loc:\"63 Samsenthai Road \u2014 right downtown\", coords:[17.9658,102.6045],\n  desc:\"The institution: the first five-star hotel in Laos (1997), in the very centre of town. A saltwater outdoor pool with sauna and jacuzzi, three restaurants and large rooms. A safe, well-located choice at a reasonable price.\",\n  tags:[\"Since 1997\",\"Saltwater pool\",\"3 restaurants\",\"Downtown\"],\n  img:\"https:\/\/www.asiasafari-laos.com\/wp-content\/uploads\/2026\/08\/hotel-lao-plaza-vientiane.jpg\",\n  credit:\"\u00a9 Lao Plaza Hotel \u2014 official site\",\n  site:\"https:\/\/www.laoplazahotel.com\/\",\n  fb:\"https:\/\/www.facebook.com\/laoplazahotel\",\n  ta:\"https:\/\/www.tripadvisor.com\/Search?q=Lao%20Plaza%20Hotel%20Vientiane\",\n  booking:\"https:\/\/www.booking.com\/searchresults.html?ss=Lao+Plaza+Hotel+Vientiane\"\n }\n];\n\nconst CATS = {luxe:\"\u2605\u2605\u2605\u2605\u2605 Luxury\", charme:\"Boutique & Charm\", confort:\"\u2605\u2605\u2605\u2605 Comfort\", essentiel:\"\u2605\u2605\u2605 Essentials\"};\nconst CATCOLORS = {luxe:\"#617b33\", charme:\"#a6ba52\", confort:\"#6f8d3a\", essentiel:\"#8fa763\"};\nconst SRC_LABEL = {booking:\"Booking\", ta:\"TripAdvisor\", google:\"Google\"};\nconst SRC_SCALE = {booking:10, ta:5, google:5};\nconst POIDS_DEFAUT = 100;\nconst grid = document.getElementById('grid');\n\nfunction moyenne(h){\n  let somme = 0, poids = 0, sources = 0;\n  for (const k of [\"booking\",\"ta\",\"google\"]){\n    const s = h.notes[k];\n    if (!s || s.v == null) continue;\n    const sur10 = SRC_SCALE[k] === 5 ? s.v * 2 : s.v;\n    const p = s.n != null ? s.n : POIDS_DEFAUT;\n    somme += sur10 * p; poids += p; sources++;\n  }\n  return sources ? { val: somme \/ poids, sources } : null;\n}\nfunction fmt(x){ return x.toFixed(1); }\n\nfunction badgeNote(h){\n  const m = moyenne(h);\n  if (!m) return `<div class=\"badge-note none\"><div class=\"val\">Ratings<br>to come<\/div><\/div>`;\n  return `<div class=\"badge-note\">\n      <div class=\"val\">${fmt(m.val)}<em>\/10<\/em><\/div>\n      <span class=\"src\">${m.sources} source${m.sources > 1 ? \"s\" : \"\"}<\/span>\n    <\/div>`;\n}\nfunction pillsSources(h){\n  const out = [];\n  for (const k of [\"booking\",\"ta\",\"google\"]){\n    const s = h.notes[k];\n    if (s && s.v != null){\n      const val = SRC_SCALE[k] === 5 ? `${fmt(s.v)}\/5` : `${fmt(s.v)}\/10`;\n      const avis = s.n != null ? `<i>${s.n} reviews<\/i>` : `<i>count unknown<\/i>`;\n      out.push(`<span class=\"src-pill\">${SRC_LABEL[k]} <b>${val}<\/b> ${avis}<\/span>`);\n    } else {\n      out.push(`<span class=\"src-pill todo\">${SRC_LABEL[k]} <b>to be collected<\/b><\/span>`);\n    }\n  }\n  return `<div class=\"sources\">${out.join('')}<\/div>`;\n}\nfunction mapsUrl(h){ return \"https:\/\/www.google.com\/maps\/search\/?api=1&query=\" + encodeURIComponent(h.name + \" Vientiane\"); }\nfunction initiales(n){ return n.split(' ').filter(w=>w.length>2).map(w=>w[0]).slice(0,3).join(''); }\n\nfunction card(h){\n  const el = document.createElement('article');\n  el.className = 'card'; el.dataset.cat = h.cat;\n  const repli = `<div class=\"fallback\" style=\"background:linear-gradient(135deg,${CATCOLORS[h.cat]},#333)\"><b>${initiales(h.name)}<\/b><i>PHOTO TO BE SUPPLIED BY THE HOTEL<\/i><\/div>`;\n  const visuel = h.img\n    ? `<img decoding=\"async\" src=\"${h.img}\" alt=\"${h.name}, Vientiane\" loading=\"lazy\" referrerpolicy=\"no-referrer\">`\n    : repli;\n  el.innerHTML = `\n    <div class=\"ph\">\n      ${visuel}\n      ${h.credit ? `<span class=\"credit\">${h.credit}<\/span>` : \"\"}\n      <span class=\"badge-cat${h.credit ? \" avec-credit\" : \"\"}\">${CATS[h.cat]}<\/span>\n      ${badgeNote(h)}\n      <div class=\"namebar\"><span>${h.name}<\/span><\/div>\n    <\/div>\n    <div class=\"body\">\n      <div class=\"stars\">${\"\u2605\".repeat(h.stars)}${\"\u2606\".repeat(5-h.stars)}<\/div>\n      <div class=\"loc\">${h.loc}<\/div>\n      ${pillsSources(h)}\n      <p class=\"desc\">${h.desc}<\/p>\n      <div class=\"tags\">${h.tags.map(t=>`<span class=\"tag\">${t}<\/span>`).join('')}<\/div>\n      <div class=\"links\">\n        ${h.site ? `<a class=\"lnk\" href=\"${h.site}\" target=\"_blank\" rel=\"noopener\">\ud83c\udf10 Official site<\/a>` : \"\"}\n        <a class=\"lnk\" href=\"${h.ta}\" target=\"_blank\" rel=\"noopener\">\ud83e\udd89 TripAdvisor<\/a>\n        <a class=\"lnk\" href=\"${h.fb}\" target=\"_blank\" rel=\"noopener\">\ud83d\udcd8 Facebook<\/a>\n        <a class=\"lnk\" href=\"${mapsUrl(h)}\" target=\"_blank\" rel=\"noopener\">\ud83d\uddfa\ufe0f Google Maps<\/a>\n        <a class=\"lnk\" href=\"${h.booking}\" target=\"_blank\" rel=\"noopener\">\ud83c\udfe8 Booking<\/a>\n      <\/div>\n      <a class=\"cta\" href=\"https:\/\/www.asiasafari-laos.com\/en\/contact-asia-safari-laos-agency\/\" target=\"_blank\" rel=\"noopener\">\uff0b Add it to my tailor-made trip<\/a>\n    <\/div>`;\n  const cta = el.querySelector('.cta');\n  if (cta) { const KEY='asf_sel_hotels';\n    const lire=()=>{try{return JSON.parse(localStorage.getItem(KEY))||[]}catch(e){return[]}};\n    const dedans=()=>lire().indexOf(h.name)>=0;\n    const maj=()=>{ cta.textContent = dedans() ? \"\u2713 Added \u2014 complete my request\" : \"\uff0b Add it to my tailor-made trip\"; };\n    maj();\n    cta.addEventListener('click', function(ev){ if(!dedans()){ ev.preventDefault(); try{ const s=lire(); s.push(h.name); localStorage.setItem(KEY, JSON.stringify(s)); }catch(e){} maj(); } });\n  }\n  const im = el.querySelector('.ph img');\n  if (im) im.addEventListener('error', function(){\n    const c = el.querySelector('.ph .credit'); if (c) c.remove();\n    const b = el.querySelector('.ph .badge-cat'); if (b) b.classList.remove('avec-credit');\n    im.outerHTML = repli;\n  });\n  return el;\n}\n\nHOTELS.sort((a,b)=>{ const ma=moyenne(a), mb=moyenne(b); return (mb?mb.val:0)-(ma?ma.val:0); });\nHOTELS.forEach(h => grid.appendChild(card(h)));\n\nconst map = L.map('map');\n\/\/ --- Fond de carte v2 (05\/09\/2026) : vectoriel OpenFreeMap + relief AWS, style maison \u00ab sable & olive \u00bb ; repli raster CARTO\/Esri si WebGL absent ou echec ---\nconst ASF_STYLE={\"version\":8,\"name\":\"Asia Safari \u2014 sable & olive\",\"sources\":{\"omt\":{\"type\":\"vector\",\"url\":\"https:\/\/tiles.openfreemap.org\/planet\"},\"dem\":{\"type\":\"raster-dem\",\"encoding\":\"terrarium\",\"tileSize\":256,\"maxzoom\":15,\"tiles\":[\"https:\/\/s3.amazonaws.com\/elevation-tiles-prod\/terrarium\/{z}\/{x}\/{y}.png\"],\"attribution\":\"Relief : Mapzen \/ AWS Terrain Tiles\"}},\"sprite\":\"https:\/\/tiles.openfreemap.org\/sprites\/ofm_f384\/ofm\",\"glyphs\":\"https:\/\/tiles.openfreemap.org\/fonts\/{fontstack}\/{range}.pbf\",\"layers\":[{\"id\":\"background\",\"type\":\"background\",\"paint\":{\"background-color\":\"#f2efe6\"}},{\"id\":\"landcover-wood\",\"type\":\"fill\",\"source\":\"omt\",\"source-layer\":\"landcover\",\"filter\":[\"==\",[\"get\",\"class\"],\"wood\"],\"paint\":{\"fill-color\":\"#dde2c4\",\"fill-opacity\":[\"interpolate\",[\"linear\"],[\"zoom\"],8,0.55,12,0.8,15,0.9],\"fill-antialias\":false}},{\"id\":\"landcover-grass\",\"type\":\"fill\",\"source\":\"omt\",\"source-layer\":\"landcover\",\"filter\":[\"in\",[\"get\",\"class\"],[\"literal\",[\"grass\",\"wetland\"]]],\"paint\":{\"fill-color\":\"#e7ead3\",\"fill-opacity\":0.8,\"fill-antialias\":false}},{\"id\":\"landcover-farmland\",\"type\":\"fill\",\"source\":\"omt\",\"source-layer\":\"landcover\",\"filter\":[\"==\",[\"get\",\"class\"],\"farmland\"],\"paint\":{\"fill-color\":\"#ece9d8\",\"fill-opacity\":0.8,\"fill-antialias\":false}},{\"id\":\"landcover-sand\",\"type\":\"fill\",\"source\":\"omt\",\"source-layer\":\"landcover\",\"filter\":[\"==\",[\"get\",\"class\"],\"sand\"],\"paint\":{\"fill-color\":\"#ede6d0\",\"fill-antialias\":false}},{\"id\":\"landuse-urban\",\"type\":\"fill\",\"source\":\"omt\",\"source-layer\":\"landuse\",\"filter\":[\"in\",[\"get\",\"class\"],[\"literal\",[\"residential\",\"suburb\",\"neighbourhood\",\"quarter\",\"commercial\",\"retail\",\"industrial\"]]],\"paint\":{\"fill-color\":\"#e9e5d9\",\"fill-opacity\":[\"interpolate\",[\"linear\"],[\"zoom\"],10,0.5,14,0.7]}},{\"id\":\"landuse-green\",\"type\":\"fill\",\"source\":\"omt\",\"source-layer\":\"landuse\",\"filter\":[\"in\",[\"get\",\"class\"],[\"literal\",[\"cemetery\",\"pitch\",\"playground\",\"stadium\",\"garden\",\"golf_course\"]]],\"paint\":{\"fill-color\":\"#dfe4c9\",\"fill-opacity\":0.7}},{\"id\":\"park\",\"type\":\"fill\",\"source\":\"omt\",\"source-layer\":\"park\",\"paint\":{\"fill-color\":\"#d9dfbf\",\"fill-opacity\":[\"interpolate\",[\"linear\"],[\"zoom\"],8,0.35,14,0.55]}},{\"id\":\"hillshade\",\"type\":\"hillshade\",\"source\":\"dem\",\"paint\":{\"hillshade-exaggeration\":[\"interpolate\",[\"linear\"],[\"zoom\"],6,0.35,12,0.5,15,0.3],\"hillshade-shadow-color\":\"#6f6d55\",\"hillshade-highlight-color\":\"#ffffff\",\"hillshade-accent-color\":\"#8e9a63\",\"hillshade-illumination-direction\":315}},{\"id\":\"water\",\"type\":\"fill\",\"source\":\"omt\",\"source-layer\":\"water\",\"filter\":[\"!=\",[\"get\",\"brunnel\"],\"tunnel\"],\"paint\":{\"fill-color\":\"#c9dce3\",\"fill-antialias\":true}},{\"id\":\"waterway\",\"type\":\"line\",\"source\":\"omt\",\"source-layer\":\"waterway\",\"filter\":[\"!=\",[\"get\",\"brunnel\"],\"tunnel\"],\"layout\":{\"line-cap\":\"round\"},\"paint\":{\"line-color\":\"#c9dce3\",\"line-width\":[\"interpolate\",[\"linear\"],[\"zoom\"],8,0.6,12,1.4,16,3]}},{\"id\":\"aeroway-area\",\"type\":\"fill\",\"source\":\"omt\",\"source-layer\":\"aeroway\",\"minzoom\":11,\"filter\":[\"==\",[\"geometry-type\"],\"Polygon\"],\"paint\":{\"fill-color\":\"#e8e4d8\",\"fill-opacity\":0.8}},{\"id\":\"aeroway-runway\",\"type\":\"line\",\"source\":\"omt\",\"source-layer\":\"aeroway\",\"minzoom\":11,\"filter\":[\"all\",[\"==\",[\"geometry-type\"],\"LineString\"],[\"==\",[\"get\",\"class\"],\"runway\"]],\"paint\":{\"line-color\":\"#e2ddcf\",\"line-width\":[\"interpolate\",[\"linear\"],[\"zoom\"],11,2,14,10,17,40]}},{\"id\":\"aeroway-taxiway\",\"type\":\"line\",\"source\":\"omt\",\"source-layer\":\"aeroway\",\"minzoom\":12,\"filter\":[\"all\",[\"==\",[\"geometry-type\"],\"LineString\"],[\"==\",[\"get\",\"class\"],\"taxiway\"]],\"paint\":{\"line-color\":\"#e2ddcf\",\"line-width\":[\"interpolate\",[\"linear\"],[\"zoom\"],12,1,16,5]}},{\"id\":\"building\",\"type\":\"fill\",\"source\":\"omt\",\"source-layer\":\"building\",\"minzoom\":14,\"paint\":{\"fill-color\":\"#e4dfd2\",\"fill-outline-color\":\"#d6d0c0\",\"fill-opacity\":[\"interpolate\",[\"linear\"],[\"zoom\"],14,0.5,16,0.9]}},{\"id\":\"road-path\",\"type\":\"line\",\"source\":\"omt\",\"source-layer\":\"transportation\",\"minzoom\":13,\"filter\":[\"in\",[\"get\",\"class\"],[\"literal\",[\"path\",\"track\"]]],\"paint\":{\"line-color\":\"#c8c1ad\",\"line-width\":[\"interpolate\",[\"linear\"],[\"zoom\"],13,0.6,17,1.6],\"line-dasharray\":[2,2]}},{\"id\":\"road-minor-casing\",\"type\":\"line\",\"source\":\"omt\",\"source-layer\":\"transportation\",\"minzoom\":14,\"filter\":[\"in\",[\"get\",\"class\"],[\"literal\",[\"minor\",\"service\"]]],\"layout\":{\"line-cap\":\"round\",\"line-join\":\"round\"},\"paint\":{\"line-color\":\"#dcd6c6\",\"line-width\":[\"interpolate\",[\"linear\"],[\"zoom\"],14,1.6,17,5,19,14]}},{\"id\":\"road-minor\",\"type\":\"line\",\"source\":\"omt\",\"source-layer\":\"transportation\",\"minzoom\":12,\"filter\":[\"in\",[\"get\",\"class\"],[\"literal\",[\"minor\",\"service\"]]],\"layout\":{\"line-cap\":\"round\",\"line-join\":\"round\"},\"paint\":{\"line-color\":\"#fbfaf5\",\"line-width\":[\"interpolate\",[\"linear\"],[\"zoom\"],12,0.6,14,1,17,3.6,19,11]}},{\"id\":\"road-secondary-casing\",\"type\":\"line\",\"source\":\"omt\",\"source-layer\":\"transportation\",\"minzoom\":10,\"filter\":[\"in\",[\"get\",\"class\"],[\"literal\",[\"secondary\",\"tertiary\"]]],\"layout\":{\"line-cap\":\"round\",\"line-join\":\"round\"},\"paint\":{\"line-color\":\"#d8d2c2\",\"line-width\":[\"interpolate\",[\"linear\"],[\"zoom\"],10,1.4,14,3.4,17,9]}},{\"id\":\"road-secondary\",\"type\":\"line\",\"source\":\"omt\",\"source-layer\":\"transportation\",\"minzoom\":9,\"filter\":[\"in\",[\"get\",\"class\"],[\"literal\",[\"secondary\",\"tertiary\"]]],\"layout\":{\"line-cap\":\"round\",\"line-join\":\"round\"},\"paint\":{\"line-color\":\"#ffffff\",\"line-width\":[\"interpolate\",[\"linear\"],[\"zoom\"],9,0.6,10,0.8,14,2.2,17,7]}},{\"id\":\"road-primary-casing\",\"type\":\"line\",\"source\":\"omt\",\"source-layer\":\"transportation\",\"minzoom\":8,\"filter\":[\"in\",[\"get\",\"class\"],[\"literal\",[\"primary\",\"trunk\",\"motorway\"]]],\"layout\":{\"line-cap\":\"round\",\"line-join\":\"round\"},\"paint\":{\"line-color\":\"#d3ccb9\",\"line-width\":[\"interpolate\",[\"linear\"],[\"zoom\"],8,1.6,12,3.2,14,4.6,17,12]}},{\"id\":\"road-primary\",\"type\":\"line\",\"source\":\"omt\",\"source-layer\":\"transportation\",\"minzoom\":6,\"filter\":[\"in\",[\"get\",\"class\"],[\"literal\",[\"primary\",\"trunk\",\"motorway\"]]],\"layout\":{\"line-cap\":\"round\",\"line-join\":\"round\"},\"paint\":{\"line-color\":\"#fdfcf8\",\"line-width\":[\"interpolate\",[\"linear\"],[\"zoom\"],6,0.5,8,0.9,12,2,14,3.2,17,9.5]}},{\"id\":\"rail\",\"type\":\"line\",\"source\":\"omt\",\"source-layer\":\"transportation\",\"minzoom\":10,\"filter\":[\"==\",[\"get\",\"class\"],\"rail\"],\"paint\":{\"line-color\":\"#c6bfac\",\"line-width\":[\"interpolate\",[\"linear\"],[\"zoom\"],10,0.8,16,2],\"line-dasharray\":[3,3]}},{\"id\":\"boundary-country\",\"type\":\"line\",\"source\":\"omt\",\"source-layer\":\"boundary\",\"filter\":[\"all\",[\"==\",[\"get\",\"admin_level\"],2],[\"!=\",[\"get\",\"maritime\"],1]],\"paint\":{\"line-color\":\"#b5ad99\",\"line-width\":[\"interpolate\",[\"linear\"],[\"zoom\"],4,0.8,10,1.6]}},{\"id\":\"boundary-region\",\"type\":\"line\",\"source\":\"omt\",\"source-layer\":\"boundary\",\"minzoom\":6,\"filter\":[\"all\",[\"==\",[\"get\",\"admin_level\"],4],[\"!=\",[\"get\",\"maritime\"],1]],\"paint\":{\"line-color\":\"#c6bfab\",\"line-width\":[\"interpolate\",[\"linear\"],[\"zoom\"],6,0.5,12,1.2],\"line-dasharray\":[4,3]}},{\"id\":\"water-label-point\",\"type\":\"symbol\",\"source\":\"omt\",\"source-layer\":\"water_name\",\"minzoom\":8,\"filter\":[\"all\",[\"==\",[\"geometry-type\"],\"Point\"],[\"has\",\"name:latin\"]],\"layout\":{\"text-field\":[\"coalesce\",[\"get\",\"name:latin\"],[\"get\",\"name_en\"],[\"get\",\"name\"]],\"text-font\":[\"Noto Sans Italic\"],\"text-size\":[\"interpolate\",[\"linear\"],[\"zoom\"],8,11,14,13],\"symbol-placement\":\"point\",\"text-letter-spacing\":0.05},\"paint\":{\"text-color\":\"#6f8b98\",\"text-halo-color\":\"#f2efe6\",\"text-halo-width\":1.2}},{\"id\":\"water-label-line\",\"type\":\"symbol\",\"source\":\"omt\",\"source-layer\":\"water_name\",\"minzoom\":8,\"filter\":[\"all\",[\"==\",[\"geometry-type\"],\"LineString\"],[\"has\",\"name:latin\"]],\"layout\":{\"text-field\":[\"coalesce\",[\"get\",\"name:latin\"],[\"get\",\"name_en\"],[\"get\",\"name\"]],\"text-font\":[\"Noto Sans Italic\"],\"text-size\":[\"interpolate\",[\"linear\"],[\"zoom\"],8,11,14,13],\"symbol-placement\":\"line\",\"text-letter-spacing\":0.05},\"paint\":{\"text-color\":\"#6f8b98\",\"text-halo-color\":\"#f2efe6\",\"text-halo-width\":1.2}},{\"id\":\"waterway-label\",\"type\":\"symbol\",\"source\":\"omt\",\"source-layer\":\"waterway\",\"minzoom\":12,\"filter\":[\"all\",[\"has\",\"name\"],[\"has\",\"name:latin\"]],\"layout\":{\"text-field\":[\"coalesce\",[\"get\",\"name:latin\"],[\"get\",\"name_en\"],[\"get\",\"name\"]],\"text-font\":[\"Noto Sans Italic\"],\"text-size\":11,\"symbol-placement\":\"line\"},\"paint\":{\"text-color\":\"#6f8b98\",\"text-halo-color\":\"#f2efe6\",\"text-halo-width\":1.2}},{\"id\":\"road-label\",\"type\":\"symbol\",\"source\":\"omt\",\"source-layer\":\"transportation_name\",\"minzoom\":14,\"filter\":[\"all\",[\"in\",[\"get\",\"class\"],[\"literal\",[\"primary\",\"secondary\",\"tertiary\",\"minor\",\"trunk\"]]],[\"has\",\"name:latin\"]],\"layout\":{\"text-field\":[\"coalesce\",[\"get\",\"name:latin\"],[\"get\",\"name_en\"],[\"get\",\"name\"]],\"text-font\":[\"Noto Sans Regular\"],\"text-size\":[\"interpolate\",[\"linear\"],[\"zoom\"],14,9.5,17,11],\"symbol-placement\":\"line\",\"text-letter-spacing\":0.03},\"paint\":{\"text-color\":\"#8c8878\",\"text-halo-color\":\"#ffffff\",\"text-halo-width\":1.2}},{\"id\":\"poi-label\",\"type\":\"symbol\",\"source\":\"omt\",\"source-layer\":\"poi\",\"minzoom\":14,\"filter\":[\"all\",[\"all\",[\"in\",[\"get\",\"class\"],[\"literal\",[\"place_of_worship\",\"attraction\",\"museum\",\"monument\",\"castle\"]]],[\"has\",\"name\"]],[\"has\",\"name:latin\"]],\"layout\":{\"text-field\":[\"coalesce\",[\"get\",\"name:latin\"],[\"get\",\"name_en\"],[\"get\",\"name\"]],\"text-font\":[\"Noto Sans Regular\"],\"text-size\":10,\"text-max-width\":7,\"text-transform\":\"uppercase\",\"text-letter-spacing\":0.08,\"text-anchor\":\"top\",\"text-offset\":[0,0.2]},\"paint\":{\"text-color\":\"#7b775f\",\"text-halo-color\":\"#f2efe6\",\"text-halo-width\":1.4}},{\"id\":\"aerodrome-label\",\"type\":\"symbol\",\"source\":\"omt\",\"source-layer\":\"aerodrome_label\",\"minzoom\":10,\"layout\":{\"text-field\":[\"coalesce\",[\"get\",\"name:latin\"],[\"get\",\"name_en\"],[\"get\",\"name\"]],\"text-font\":[\"Noto Sans Regular\"],\"text-size\":10,\"text-max-width\":7,\"text-transform\":\"uppercase\",\"text-letter-spacing\":0.1},\"paint\":{\"text-color\":\"#6f6c5f\",\"text-halo-color\":\"#f2efe6\",\"text-halo-width\":1.4},\"filter\":[\"has\",\"name:latin\"]},{\"id\":\"peak-label\",\"type\":\"symbol\",\"source\":\"omt\",\"source-layer\":\"mountain_peak\",\"minzoom\":11,\"filter\":[\"all\",[\"has\",\"name\"],[\"has\",\"name:latin\"]],\"layout\":{\"text-field\":[\"coalesce\",[\"get\",\"name:latin\"],[\"get\",\"name_en\"],[\"get\",\"name\"]],\"text-font\":[\"Noto Sans Italic\"],\"text-size\":10,\"text-max-width\":7},\"paint\":{\"text-color\":\"#8a8672\",\"text-halo-color\":\"#f2efe6\",\"text-halo-width\":1.2}},{\"id\":\"place-village\",\"type\":\"symbol\",\"source\":\"omt\",\"source-layer\":\"place\",\"minzoom\":10,\"filter\":[\"all\",[\"in\",[\"get\",\"class\"],[\"literal\",[\"village\",\"hamlet\",\"suburb\",\"quarter\",\"neighbourhood\",\"island\"]]],[\"has\",\"name:latin\"]],\"layout\":{\"text-field\":[\"coalesce\",[\"get\",\"name:latin\"],[\"get\",\"name_en\"],[\"get\",\"name\"]],\"text-font\":[\"Noto Sans Regular\"],\"text-size\":[\"interpolate\",[\"linear\"],[\"zoom\"],10,9.5,14,12],\"text-max-width\":7,\"text-letter-spacing\":0.02},\"paint\":{\"text-color\":\"#6e6b5d\",\"text-halo-color\":\"#f2efe6\",\"text-halo-width\":1.4}},{\"id\":\"place-town\",\"type\":\"symbol\",\"source\":\"omt\",\"source-layer\":\"place\",\"minzoom\":6,\"filter\":[\"all\",[\"==\",[\"get\",\"class\"],\"town\"],[\"has\",\"name:latin\"]],\"layout\":{\"text-field\":[\"coalesce\",[\"get\",\"name:latin\"],[\"get\",\"name_en\"],[\"get\",\"name\"]],\"text-font\":[\"Noto Sans Regular\"],\"text-size\":[\"interpolate\",[\"linear\"],[\"zoom\"],6,10,12,13,15,15],\"text-transform\":\"uppercase\",\"text-letter-spacing\":0.12,\"text-max-width\":7},\"paint\":{\"text-color\":\"#57544a\",\"text-halo-color\":\"#f2efe6\",\"text-halo-width\":1.6}},{\"id\":\"place-city\",\"type\":\"symbol\",\"source\":\"omt\",\"source-layer\":\"place\",\"minzoom\":4,\"filter\":[\"all\",[\"==\",[\"get\",\"class\"],\"city\"],[\"has\",\"name:latin\"]],\"layout\":{\"text-field\":[\"coalesce\",[\"get\",\"name:latin\"],[\"get\",\"name_en\"],[\"get\",\"name\"]],\"text-font\":[\"Noto Sans Bold\"],\"text-size\":[\"interpolate\",[\"linear\"],[\"zoom\"],4,11,10,14,14,15],\"text-transform\":\"uppercase\",\"text-letter-spacing\":0.16,\"text-max-width\":7},\"paint\":{\"text-color\":\"#4f4d44\",\"text-halo-color\":\"#f2efe6\",\"text-halo-width\":1.8}},{\"id\":\"place-country\",\"type\":\"symbol\",\"source\":\"omt\",\"source-layer\":\"place\",\"maxzoom\":8,\"filter\":[\"all\",[\"==\",[\"get\",\"class\"],\"country\"],[\"has\",\"name:latin\"]],\"layout\":{\"text-field\":[\"coalesce\",[\"get\",\"name:latin\"],[\"get\",\"name_en\"],[\"get\",\"name\"]],\"text-font\":[\"Noto Sans Bold\"],\"text-size\":[\"interpolate\",[\"linear\"],[\"zoom\"],2,11,7,16],\"text-transform\":\"uppercase\",\"text-letter-spacing\":0.2},\"paint\":{\"text-color\":\"#7b7869\",\"text-halo-color\":\"#f2efe6\",\"text-halo-width\":1.6}}]};\nfunction fondRaster(){\nconst fondCarte=L.tileLayer('https:\/\/{s}.basemaps.cartocdn.com\/rastertiles\/voyager\/{z}\/{x}\/{y}{r}.png?key=cb1_2xvy_1_5e84dd003228d6d15afd9664',{attribution:'\u00a9 <a href=\"https:\/\/www.openstreetmap.org\/copyright\" rel=\"noopener\">OpenStreetMap<\/a> \u00b7 \u00a9 <a href=\"https:\/\/carto.com\/attributions\" rel=\"noopener\">CARTO<\/a>',subdomains:'abcd',maxZoom:19}).addTo(map);\n\/\/ fond de secours automatique (05\/09\/2026) : si CARTO ne repond plus (retrait du raster annonce), bascule sur Esri World Topo\nlet fondErreurs=0; fondCarte.on('tileerror',function(){ if(++fondErreurs>=4 && !map.fondSecours){ map.fondSecours=true; map.removeLayer(fondCarte); L.tileLayer('https:\/\/server.arcgisonline.com\/ArcGIS\/rest\/services\/World_Topo_Map\/MapServer\/tile\/{z}\/{y}\/{x}',{attribution:'Tiles \u00a9 Esri \u00b7 \u00a9 OpenStreetMap',maxZoom:19}).addTo(map); } });\n}\nlet asfWebgl=false; try{ const asfCv=document.createElement('canvas'); asfWebgl=!!(window.WebGLRenderingContext&&(asfCv.getContext('webgl')||asfCv.getContext('experimental-webgl'))); }catch(e){}\nif(asfWebgl && window.maplibregl && L.maplibreGL){\n  try{\n    const fondVecteur=L.maplibreGL({style:ASF_STYLE}).addTo(map);\n    let asfPret=false, asfErr=0, asfVis=0;\n    function asfRepli(){ if(map.fondSecours) return; map.fondSecours=true; try{ map.removeLayer(fondVecteur); }catch(e){} fondRaster(); }\n    const asfNudge=setInterval(function(){\n      const g=fondVecteur._glMap;\n      if(g && !g.__asfHooked){ g.__asfHooked=true; window.asfCarte={map:map,vecteur:fondVecteur}; g.once('load',function(){ g.resize(); }); g.once('idle',function(){ asfPret=true; }); g.on('error',function(){ if(!asfPret && ++asfErr>=3) asfRepli(); }); }\n      if(asfPret){ clearInterval(asfNudge); return; }\n      if(document.visibilityState==='hidden') return; \/* onglet en arriere-plan : le navigateur gele le rendu (requestAnimationFrame), on ne compte pas ce temps *\/\n      asfVis++;\n      if(g){ if(asfVis<=6) g.resize(); g.triggerRepaint(); }\n      if(asfVis>30){ clearInterval(asfNudge); asfRepli(); } \/* 15 s visibles sans rendu : repli raster *\/\n    },500);\n  }catch(e){ fondRaster(); }\n} else { fondRaster(); }\nconst markers = {};\nHOTELS.forEach(h => {\n  const m = L.circleMarker(h.coords, {radius:10, color:\"#fff\", weight:2, fillColor:CATCOLORS[h.cat], fillOpacity:.95}).addTo(map);\n  const mo = moyenne(h);\n  m.bindPopup(`<b>${h.name}<\/b><br>${CATS[h.cat]}<br>${mo ? \"Average: \" + fmt(mo.val) + \"\/10 (\" + mo.sources + \" source\" + (mo.sources>1?\"s\":\"\") + \")\" : \"Ratings to come\"}<br><a href=\"${mapsUrl(h)}\" target=\"_blank\">Check on Google Maps \u2197<\/a>`);\n  m.bindTooltip(h.name, {direction:'top', offset:[0,-8]});\n  markers[h.id] = m;\n});\nmap.fitBounds(L.latLngBounds(HOTELS.map(h => h.coords)).pad(0.15));\n\nconst chips = document.querySelectorAll('.chip');\nconst count = document.getElementById('count');\nfunction applyFilter(f){\n  let n = 0;\n  document.querySelectorAll('.card').forEach(c => {\n    const show = (f === 'all' || c.dataset.cat === f);\n    c.style.display = show ? '' : 'none';\n    if (show) n++;\n  });\n  HOTELS.forEach(h => {\n    const show = (f === 'all' || h.cat === f);\n    if (show) { markers[h.id].addTo(map); } else { map.removeLayer(markers[h.id]); }\n  });\n  count.textContent = n + (n > 1 ? \" hotels shown\" : \" hotel shown\");\n}\nchips.forEach(ch => ch.addEventListener('click', () => {\n  chips.forEach(c => c.classList.remove('active'));\n  ch.classList.add('active');\n  applyFilter(ch.dataset.f);\n}));\napplyFilter('all');\n\n\/* Structured data: hotel list + breadcrumb. Deliberately WITHOUT aggregateRating. *\/\nconst ld = {\n  \"@context\":\"https:\/\/schema.org\",\n  \"@graph\":[\n    { \"@type\":\"BreadcrumbList\", \"itemListElement\":[\n      {\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.asiasafari-laos.com\/en\/\"},\n      {\"@type\":\"ListItem\",\"position\":2,\"name\":\"Hotels and accommodation in Laos\",\"item\":\"https:\/\/www.asiasafari-laos.com\/en\/hotels-and-accommodation-in-laos\/\"},\n      {\"@type\":\"ListItem\",\"position\":3,\"name\":\"Hotels in Vientiane\"}\n    ]},\n    { \"@type\":\"ItemList\", \"name\":\"Selected hotels in Vientiane\",\n      \"itemListElement\": HOTELS.map((h,i)=>({\n        \"@type\":\"ListItem\",\"position\":i+1,\n        \"item\":{ \"@type\":\"Hotel\",\"name\":h.name,\n          \"address\":{\"@type\":\"PostalAddress\",\"addressLocality\":\"Vientiane\",\"addressCountry\":\"LA\"},\n          \"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":h.coords[0],\"longitude\":h.coords[1]} }\n      })) }\n  ]\n};\nconst sc = document.createElement('script');\nsc.type = 'application\/ld+json';\nsc.textContent = JSON.stringify(ld);\ndocument.head.appendChild(sc);\n\n}\n(function w(){ if (window.L && document.getElementById(\"map\") && ((window.maplibregl && L.maplibreGL) || (window.asfW=(window.asfW||0)+1)>30)) { asfhStart(); } else { setTimeout(w, 200); } })();\n<\/script><\/div><\/div><\/div><\/div>\n<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-2 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:60px;--awb-padding-bottom:20px;--awb-margin-bottom:0px;--awb-background-color:#ffffff;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1248px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_3 1_3 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:33.333333333333%;--awb-margin-top-large:0px;--awb-spacing-right-large:5.76%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:5.76%;--awb-width-medium:33.333333333333%;--awb-spacing-right-medium:5.76%;--awb-spacing-left-medium:5.76%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-1\"><h3>Follow our adventures<\/h3>\n<\/div><div class=\"fusion-social-links fusion-social-links-1\" style=\"--awb-margin-top:0px;--awb-margin-right:0px;--awb-margin-bottom:0px;--awb-margin-left:0px;--awb-box-border-top:0px;--awb-box-border-right:0px;--awb-box-border-bottom:0px;--awb-box-border-left:0px;--awb-icon-colors-hover:var(--awb-color4);--awb-box-colors-hover:var(--awb-color1);--awb-box-border-color:var(--awb-color3);--awb-box-border-color-hover:var(--awb-color4);\"><div class=\"fusion-social-networks color-type-custom\"><div class=\"fusion-social-networks-wrapper\"><a class=\"fusion-social-network-icon fusion-tooltip fusion-facebook awb-icon-facebook\" style=\"color:#617b33;font-size:16px;\" data-placement=\"top\" data-title=\"Facebook\" data-toggle=\"tooltip\" title=\"Facebook\" aria-label=\"facebook\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/www.facebook.com\/profile.php?id=61592004980322\"><\/a><a class=\"fusion-social-network-icon fusion-tooltip fusion-instagram awb-icon-instagram\" style=\"color:#617b33;font-size:16px;\" data-placement=\"top\" data-title=\"Instagram\" data-toggle=\"tooltip\" title=\"Instagram\" aria-label=\"instagram\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/www.instagram.com\/asiasafarilaos\/\"><\/a><\/div><\/div><\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-2 fusion_builder_column_1_3 1_3 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:33.333333333333%;--awb-margin-top-large:0px;--awb-spacing-right-large:5.76%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:5.76%;--awb-width-medium:33.333333333333%;--awb-spacing-right-medium:5.76%;--awb-spacing-left-medium:5.76%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-2\"><h3>Subscribe to the Newsletter<\/h3>\n<\/div><div class=\"fusion-text fusion-text-3\"><p>Subscribe to our newsletter to receive all our travel news.<\/p>\n<\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-3 fusion_builder_column_1_3 1_3 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:33.333333333333%;--awb-margin-top-large:0px;--awb-spacing-right-large:5.76%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:5.76%;--awb-width-medium:33.333333333333%;--awb-spacing-right-medium:5.76%;--awb-spacing-left-medium:5.76%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-4\">\n<div class=\"wpcf7 no-js\" id=\"wpcf7-f11212-o1\" lang=\"en-US\" dir=\"ltr\" data-wpcf7-id=\"11212\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/en\/wp-json\/wp\/v2\/pages\/11048#wpcf7-f11212-o1\" method=\"post\" class=\"wpcf7-form init b269799e6677 cmatic-disconn cmatic-aud-0 cmatic-mapd0-0 cmatic-098112 cmatic-sent-0 cmatic-total-0\" aria-label=\"Contact form\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"11212\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.7\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en_US\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f11212-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/><input type=\"hidden\" name=\"_wpcf7cf_hidden_group_fields\" value=\"[]\" \/><input type=\"hidden\" name=\"_wpcf7cf_hidden_groups\" value=\"[]\" \/><input type=\"hidden\" name=\"_wpcf7cf_visible_groups\" value=\"[]\" \/><input type=\"hidden\" name=\"_wpcf7cf_repeaters\" value=\"[]\" \/><input type=\"hidden\" name=\"_wpcf7cf_steps\" value=\"{}\" \/><input type=\"hidden\" name=\"_wpcf7cf_options\" value=\"{&quot;form_id&quot;:11212,&quot;conditions&quot;:[],&quot;settings&quot;:{&quot;animation&quot;:&quot;yes&quot;,&quot;animation_intime&quot;:200,&quot;animation_outtime&quot;:200,&quot;conditions_ui&quot;:&quot;normal&quot;,&quot;notice_dismissed&quot;:false,&quot;repeater_remove_button&quot;:&quot;bottom&quot;,&quot;notice_dismissed_update-cf7-6.1.4&quot;:true}}\" \/>\n<\/fieldset>\n<div class=\"alignform\">\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"YOUR EMAIL\" value=\"\" type=\"email\" name=\"your-email\" \/><\/span>\n<\/div>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-name\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"FIRST NAME LAST NAME\" value=\"\" type=\"text\" name=\"your-name\" \/><\/span>\n<span class=\"wpcf7-form-control-wrap recaptcha\" data-name=\"recaptcha\"><span class=\"wpcf7-form-control wpcf7-recaptcha g-recaptcha\"><\/span><\/span>\n<input class=\"wpcf7-form-control wpcf7-submit has-spinner\" type=\"submit\" value=\"Send\" \/><div class=\"fusion-alert alert custom alert-custom fusion-alert-center wpcf7-response-output fusion-alert-capitalize awb-alert-native-link-color alert-dismissable awb-alert-close-boxed\" style=\"--awb-border-top-left-radius:0px;--awb-border-top-right-radius:0px;--awb-border-bottom-left-radius:0px;--awb-border-bottom-right-radius:0px;\" role=\"alert\"><div class=\"fusion-alert-content-wrapper\"><span class=\"fusion-alert-content\"><\/span><\/div><button type=\"button\" class=\"close toggle-alert\" data-dismiss=\"alert\" aria-label=\"Close\">&times;<\/button><\/div>\n<\/form>\n<\/div>\n\n<\/div><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":11036,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"100-width.php","meta":{"footnotes":""},"class_list":["post-11048","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Hotels in Vientiane, Laos \u2013 Our 2026 Selection | Asia Safari<\/title>\n<meta name=\"description\" content=\"Our 2026 selection of hotels in Vientiane, from 3-star to 5-star: ratings verified across 3 platforms, map and advice from a local agency in Laos.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.asiasafari-laos.com\/en\/hotels-and-accommodation-in-laos\/hotel-in-vientiane\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Hotels in Vientiane, Laos \u2013 Our 2026 Selection | Asia Safari\" \/>\n<meta property=\"og:description\" content=\"Our 2026 selection of hotels in Vientiane, from 3-star to 5-star: ratings verified across 3 platforms, map and advice from a local agency in Laos.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.asiasafari-laos.com\/en\/hotels-and-accommodation-in-laos\/hotel-in-vientiane\/\" \/>\n<meta property=\"og:site_name\" content=\"Asia Safari Experience Laos - Travel Agency\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/profile.php?id=61592004980322\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-05T12:08:58+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"37 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.asiasafari-laos.com\\\/en\\\/hotels-and-accommodation-in-laos\\\/hotel-in-vientiane\\\/\",\"url\":\"https:\\\/\\\/www.asiasafari-laos.com\\\/en\\\/hotels-and-accommodation-in-laos\\\/hotel-in-vientiane\\\/\",\"name\":\"Hotels in Vientiane, Laos \u2013 Our 2026 Selection | Asia Safari\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.asiasafari-laos.com\\\/en\\\/#website\"},\"datePublished\":\"2018-03-23T03:56:00+00:00\",\"dateModified\":\"2026-09-05T12:08:58+00:00\",\"description\":\"Our 2026 selection of hotels in Vientiane, from 3-star to 5-star: ratings verified across 3 platforms, map and advice from a local agency in Laos.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.asiasafari-laos.com\\\/en\\\/hotels-and-accommodation-in-laos\\\/hotel-in-vientiane\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.asiasafari-laos.com\\\/en\\\/hotels-and-accommodation-in-laos\\\/hotel-in-vientiane\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.asiasafari-laos.com\\\/en\\\/hotels-and-accommodation-in-laos\\\/hotel-in-vientiane\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.asiasafari-laos.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Hotels and Accommodation in Laos\",\"item\":\"https:\\\/\\\/www.asiasafari-laos.com\\\/en\\\/hotels-and-accommodation-in-laos\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Hotel in Vientiane\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.asiasafari-laos.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.asiasafari-laos.com\\\/en\\\/\",\"name\":\"Asia Safari Experience Laos - Travel Agency\",\"description\":\"Authentic, tailor-made travel in Laos and South-East Asia\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.asiasafari-laos.com\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.asiasafari-laos.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.asiasafari-laos.com\\\/en\\\/#organization\",\"name\":\"Asia Safari Laos\",\"url\":\"https:\\\/\\\/www.asiasafari-laos.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.asiasafari-laos.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.asiasafari-laos.com\\\/wp-content\\\/uploads\\\/2019\\\/02\\\/LOGO_ASAFLAOS.jpg\",\"contentUrl\":\"https:\\\/\\\/www.asiasafari-laos.com\\\/wp-content\\\/uploads\\\/2019\\\/02\\\/LOGO_ASAFLAOS.jpg\",\"width\":400,\"height\":100,\"caption\":\"Asia Safari Laos\"},\"image\":{\"@id\":\"https:\\\/\\\/www.asiasafari-laos.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/profile.php?id=61592004980322\",\"https:\\\/\\\/www.instagram.com\\\/asiasafarilaos\\\/\"],\"telephone\":\"+85621243446\",\"email\":\"laos@asiasafari-laos.com\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Hotels in Vientiane, Laos \u2013 Our 2026 Selection | Asia Safari","description":"Our 2026 selection of hotels in Vientiane, from 3-star to 5-star: ratings verified across 3 platforms, map and advice from a local agency in Laos.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.asiasafari-laos.com\/en\/hotels-and-accommodation-in-laos\/hotel-in-vientiane\/","og_locale":"en_US","og_type":"article","og_title":"Hotels in Vientiane, Laos \u2013 Our 2026 Selection | Asia Safari","og_description":"Our 2026 selection of hotels in Vientiane, from 3-star to 5-star: ratings verified across 3 platforms, map and advice from a local agency in Laos.","og_url":"https:\/\/www.asiasafari-laos.com\/en\/hotels-and-accommodation-in-laos\/hotel-in-vientiane\/","og_site_name":"Asia Safari Experience Laos - Travel Agency","article_publisher":"https:\/\/www.facebook.com\/profile.php?id=61592004980322","article_modified_time":"2026-09-05T12:08:58+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"37 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.asiasafari-laos.com\/en\/hotels-and-accommodation-in-laos\/hotel-in-vientiane\/","url":"https:\/\/www.asiasafari-laos.com\/en\/hotels-and-accommodation-in-laos\/hotel-in-vientiane\/","name":"Hotels in Vientiane, Laos \u2013 Our 2026 Selection | Asia Safari","isPartOf":{"@id":"https:\/\/www.asiasafari-laos.com\/en\/#website"},"datePublished":"2018-03-23T03:56:00+00:00","dateModified":"2026-09-05T12:08:58+00:00","description":"Our 2026 selection of hotels in Vientiane, from 3-star to 5-star: ratings verified across 3 platforms, map and advice from a local agency in Laos.","breadcrumb":{"@id":"https:\/\/www.asiasafari-laos.com\/en\/hotels-and-accommodation-in-laos\/hotel-in-vientiane\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.asiasafari-laos.com\/en\/hotels-and-accommodation-in-laos\/hotel-in-vientiane\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.asiasafari-laos.com\/en\/hotels-and-accommodation-in-laos\/hotel-in-vientiane\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.asiasafari-laos.com\/en\/"},{"@type":"ListItem","position":2,"name":"Hotels and Accommodation in Laos","item":"https:\/\/www.asiasafari-laos.com\/en\/hotels-and-accommodation-in-laos\/"},{"@type":"ListItem","position":3,"name":"Hotel in Vientiane"}]},{"@type":"WebSite","@id":"https:\/\/www.asiasafari-laos.com\/en\/#website","url":"https:\/\/www.asiasafari-laos.com\/en\/","name":"Asia Safari Experience Laos - Travel Agency","description":"Authentic, tailor-made travel in Laos and South-East Asia","publisher":{"@id":"https:\/\/www.asiasafari-laos.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.asiasafari-laos.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.asiasafari-laos.com\/en\/#organization","name":"Asia Safari Laos","url":"https:\/\/www.asiasafari-laos.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.asiasafari-laos.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.asiasafari-laos.com\/wp-content\/uploads\/2019\/02\/LOGO_ASAFLAOS.jpg","contentUrl":"https:\/\/www.asiasafari-laos.com\/wp-content\/uploads\/2019\/02\/LOGO_ASAFLAOS.jpg","width":400,"height":100,"caption":"Asia Safari Laos"},"image":{"@id":"https:\/\/www.asiasafari-laos.com\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=61592004980322","https:\/\/www.instagram.com\/asiasafarilaos\/"],"telephone":"+85621243446","email":"laos@asiasafari-laos.com"}]}},"_links":{"self":[{"href":"https:\/\/www.asiasafari-laos.com\/en\/wp-json\/wp\/v2\/pages\/11048","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.asiasafari-laos.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.asiasafari-laos.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.asiasafari-laos.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.asiasafari-laos.com\/en\/wp-json\/wp\/v2\/comments?post=11048"}],"version-history":[{"count":14,"href":"https:\/\/www.asiasafari-laos.com\/en\/wp-json\/wp\/v2\/pages\/11048\/revisions"}],"predecessor-version":[{"id":13050,"href":"https:\/\/www.asiasafari-laos.com\/en\/wp-json\/wp\/v2\/pages\/11048\/revisions\/13050"}],"up":[{"embeddable":true,"href":"https:\/\/www.asiasafari-laos.com\/en\/wp-json\/wp\/v2\/pages\/11036"}],"wp:attachment":[{"href":"https:\/\/www.asiasafari-laos.com\/en\/wp-json\/wp\/v2\/media?parent=11048"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}