PageSourceSearch

https://homestayhue.com.vn/contact

html homestayhue.com.vn collected 2026-09-24 12:45:39 UTC 68,201 bytes, 1,037 lines download raw bytes

1<!DOCTYPE html>
2<html lang="vi" class="scroll-smooth">
3<head>
4    <meta charset="utf-8">
5    <meta name="viewport" content="width=device-width, initial-scale=1">
6    <meta name="csrf-token" content="B5QQQGCXATpTdMS6sEf5QwRmMerKfNuYgWpmcdR0">
7    <meta name="zalo-platform-site-verification" content="OD2NT9xX0tHybP9reRmwGbMvd7gvpqadCJam" />
8    <title>Liên hệ - Homestay Huế | Homestay Huế</title>
9    <meta name="description" content="Hệ thống đặt phòng Homestay Huế uy tín. Tổng hợp hơn 500+ Homestay Huế giá rẻ, view đẹp gần sông Hương và Đại Nội. Đặt phòng nhanh chóng, giá tốt nhất 2026.">
10    <meta name="keywords" content="homestay huế, homestay hue, đặt phòng homestay huế, homestay huế giá rẻ, homestay huế view đẹp, villa huế.">
11    <meta property="og:title" content="Liên hệ - Homestay Huế | Homestay Huế">
12    <meta property="og:description" content="Hệ thống đặt phòng Homestay Huế uy tín. Tổng hợp hơn 500+ Homestay Huế giá rẻ, view đẹp gần sông Hương và Đại Nội. Đặt phòng nhanh chóng, giá tốt nhất 2026.">
13    <meta property="og:image" content="https://homestayhue.com.vn/images/og-default.jpg">
14    <meta property="og:type" content="website">
15    <meta property="og:locale" content="vi_VN">
16    <link rel="alternate" hreflang="en" href="https://homestayhue.com.vn/en/contact">
17    <link rel="alternate" hreflang="vi" href="https://homestayhue.com.vn">
18    <link rel="alternate" hreflang="x-default" href="https://homestayhue.com.vn">
19    <link rel="canonical" href="https://homestayhue.com.vn/contact">
20    <link rel="preconnect" href="https://fonts.googleapis.com">
21    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
22    <link href="https://fonts.googleapis.com/css2?family=Fraunces:opsz,[email protected],500;9..144,600;9..144,700&family=Manrope:wght@400;500;600;700;800&display=swap" rel="stylesheet">
23    <style>[x-cloak]{display:none!important;}</style>
24    
24<script defer src="https://cdn.jsdelivr.net/npm/@alpinejs/[email protected]/dist/cdn.min.js"></script>
24
25    
25<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/cdn.min.js"></script>
25
26    <link rel="icon" href="https://homestayhue.com.vn/favicon.ico" type="image/x-icon">
27    <link rel="preload" as="style" href="https://homestayhue.com.vn/build/assets/app-CST8oCF9.css" /><link rel="modulepreload" href="https://homestayhue.com.vn/build/assets/app-CdaJPnHn.js" /><link rel="stylesheet" href="https://homestayhue.com.vn/build/assets/app-CST8oCF9.css" />
27<script type="module" src="https://homestayhue.com.vn/build/assets/app-CdaJPnHn.js"></script>
27            
27<script type="application/ld+json">     {       "@context": "https://schema.org",       "@type": "BreadcrumbList",       "itemListElement": [         {           "@type": "ListItem",           "position": 1,           "name": "Trang chủ",           "item": "https://homestayhue.com.vn/"         },         {           "@type": "ListItem",           "position": 2,           "name": "Homestay Huế",           "item": "https://homestayhue.com.vn/vi"         }       ]     }     </script>
27 <!-- Google tag (gtag.js) -->
vendor: 64 bytes, line 27
27 <script async src="https://www.googletagmanager.com/gtag/js?id=
27G-4311DJQG43
vendor: 12 bytes, line 27
27"></script> 
27<script>   
vendor: 134 bytes, line 27
27window.dataLayer = window.dataLayer || [];   function gtag(){dataLayer.push(arguments);}   gtag('js', new Date());    gtag('config', '
27G-4311DJQG43
vendor: 4 bytes, line 27
27'); 
27</script>
27<script> function gtag_report_conversion(url) {   var callback = function () {     if (typeof(url) != 'undefined') {       window.location = url;     }   };   gtag('event', 'conversion', {       'send_to': 'AW-18007739434/QwcHCJ7n6YccEKqY4YpD',       'value': 1.0,       'currency': 'VND',       'event_callback': callback   });   return false; } </script>
27<!-- Google tag (gtag.js) -->
vendor: 64 bytes, line 27
27 <script async src="https://www.googletagmanager.com/gtag/js?id=
27AW-18007739434
vendor: 13 bytes, line 27
27"> </script> 
27<script>   
vendor: 134 bytes, line 27
27window.dataLayer = window.dataLayer || [];   function gtag(){dataLayer.push(arguments);}   gtag('js', new Date());    gtag('config', '
27AW-18007739434
vendor: 4 bytes, line 27
27'); 
27</script>
27<script type="application/ld+json"> {   "@context": "https://schema.org",   "@type": "Organization",   "@id": "https://homestayhue.com.vn/",   "name": "Homestay Hue",   "alternateName": "Homestay Hue – Nền Tảng Đặt Phòng Lưu Trú Tại Huế Uy Tín",   "url": "https://homestayhue.com.vn/",   "logo": "https://homestayhue.com.vn/storage/logo-homestay.png",   "image": "",   "description": "Homestay Hue là nền tảng kết nối du khách với các homestay và villa mang đậm dấu ấn văn hóa cố đô, từ nhà vườn truyền thống đến không gian nghỉ dưỡng ven sông. homestayhue.com.vn - Website được thiết kế hiện đại, dễ sá»­ dụng trên mọi thiết bị, giúp người dùng tìm kiếm và đặt phòng nhanh chóng. Bên cạnh đó, hệ thống luôn đảm bảo các chỗ nghỉ được kiểm duyệt thá»±c tế, cung cấp giá minh bạch và nhiều chính sách ưu đãi linh hoạt cho khách hàng. Đồng thời, Homestay Hue hỗ trợ khách hàng 24/7 với nhiều ngôn ngữ, mang đến trải nghiệm lưu trú trọn vẹn và tiện lợi.",   "telephone": "+84-826-606-808",   "email": "[email protected]",   "priceRange": "0",   "address": {     "@type": "PostalAddress",     "streetAddress": "CM1-25 Camelia, Ecogarden, Lê Đức Anh, Vỹ Dạ",     "addressLocality": "Huế",     "postalCode": "700000",     "addressCountry": "VN"   },   "openingHoursSpecification": {     "@type": "OpeningHoursSpecification",     "dayOfWeek": [       "Monday",       "Tuesday",       "Wednesday",       "Thursday",       "Friday",       "Saturday",       "Sunday"     ],     "opens": "00:00",     "closes": "23:59"   },   "sameAs": [     "https://x.com/Homestayhuecomv",      "https://www.facebook.com/homestayhue2026",     "https://www.instagram.com/homestayhue.2026/",     "https://www.tiktok.com/@homestayhue75",     "https://www.pinterest.com/Homestayhuecomvn/",     "https://www.youtube.com/@Homestayhuecomvn",     "https://profile.hatena.ne.jp/Homestayhuecomvn/",     "https://500px.com/p/homestayhuecomvn",     "https://pubhtml5.com/homepage/uxlul/",     "https://gravatar.com/homestayhuecomvn",     "https://qiita.com/Homestayhuecomvn",     "https://www.speedrun.com/users/Homestayhuecomvn",     "https://spiderum.com/nguoi-dung/Homestayhuecomvn"   ] } </script>
27
28
29</head>
30<body class="font-body text-text bg-background antialiased">
31    <div class="topbar relative bg-primary text-white text-sm hidden md:block" style="z-index: 60;">
32        <div class="container mx-auto px-4 py-2 flex items-center justify-between">
33            <div class="flex items-center gap-6">
34                <a href="tel:+84826606808" class="flex items-center gap-1 hover:text-secondary transition-colors">
35                    <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z"/></svg>
36                    +84 826 606 808
37                </a>
38                <a href="mailto:[email protected]" class="flex items-center gap-1 hover:text-secondary transition-colors">
39                    <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"/></svg>
40                    [email protected]
41                </a>
42            </div>
43            <div class="flex items-center gap-4">
44                <div class="relative" x-data="{ open: false }">
45                    <button @click="open = !open" class="flex items-center gap-1 hover:text-secondary transition-colors">
46                        <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9"/></svg>
47                        VI
48                        <svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/></svg>
49                    </button>
50                    <div x-cloak x-show="open" @click.away="open = false" x-transition class="absolute right-0 mt-2 w-40 bg-white rounded-lg shadow-lg py-1 z-50">
51                                                    <a href="https://homestayhue.com.vn/en/contact"
52                               class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 ">
53                                English
54                            </a>
55                                                    <a href="https://homestayhue.com.vn/vi/contact"
56                               class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 font-semibold bg-gray-50">
57                                Tiếng Việt
58                            </a>
59                                            </div>
60                </div>
61            </div>
62        </div>
63    </div>
64
65    <header class="sticky top-0 z-50 transition-all duration-300 bg-white/95 backdrop-blur-md shadow-sm"
66            x-data="{ scrolled: false, mobileMenu: false }"
67            x-init="window.addEventListener('scroll', () => { scrolled = window.scrollY > 50 })"
68            :class="{ 'bg-white/95 backdrop-blur-md shadow-sm': scrolled || mobileMenu, '': !scrolled && !mobileMenu }">
69        <div class="container mx-auto px-4">
70            <div class="flex items-center justify-between h-16 lg:h-20">
71                <a href="https://homestayhue.com.vn" class="flex items-center gap-2">
72                                            <img src="https://homestayhue.com.vn/storage/logo-homestay.png" alt="Homestay Huế" style="height: 44px; width: auto; object-fit: contain;" :class="scrolled || mobileMenu || !false ? '' : 'brightness-0 invert'">
73                                    </a>
74
75                <nav class="hidden lg:flex items-center gap-8">
76                    <a href="https://homestayhue.com.vn" class="font-medium transition-colors" :class="scrolled ? 'text-gray-800 hover:text-orange-600' : 'text-gray-800 hover:text-orange-600'">Trang chá»§</a>
77                    <a href="https://homestayhue.com.vn/properties" class="font-medium transition-colors" :class="scrolled ? 'text-gray-800 hover:text-orange-600' : 'text-gray-800 hover:text-orange-600'">Homestay</a>
78                    <a href="https://homestayhue.com.vn/properties?type=villa" class="font-medium transition-colors" :class="scrolled ? 'text-gray-800 hover:text-orange-600' : 'text-gray-800 hover:text-orange-600'">Villa</a>
79                    <a href="https://homestayhue.com.vn/about" class="font-medium transition-colors" :class="scrolled ? 'text-gray-800 hover:text-orange-600' : 'text-gray-800 hover:text-orange-600'">Về chúng tôi</a>
80                    <a href="https://homestayhue.com.vn/tin-tuc" class="font-medium transition-colors" :class="scrolled ? 'text-gray-800 hover:text-orange-600' : 'text-gray-800 hover:text-orange-600'">Tin tức</a>
81                    <a href="https://homestayhue.com.vn/contact" class="font-medium transition-colors" :class="scrolled ? 'text-gray-800 hover:text-orange-600' : 'text-gray-800 hover:text-orange-600'">Liên hệ</a>
82                </nav>
83
84                <div class="flex items-center gap-4">
85                    <a href="https://homestayhue.com.vn/properties" class="hidden sm:inline-flex items-center px-5 py-2.5 bg-accent text-white font-semibold rounded-xl hover:bg-accent/90 transition-all hover:scale-105 shadow-lg shadow-accent/25">
86                        Đặt ngay
87                    </a>
88                    <button @click="mobileMenu = !mobileMenu" class="lg:hidden p-2" :class="{ 'text-primary': scrolled || mobileMenu, 'text-white': !scrolled && !mobileMenu && false }">
89                        <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
90                            <path x-show="!mobileMenu" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/>
91                            <path x-show="mobileMenu" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
92                        </svg>
93                    </button>
94                </div>
95            </div>
96
97            <div x-cloak x-show="mobileMenu" x-transition:enter="transition ease-out duration-200" x-transition:enter-start="opacity-0 -translate-y-2" x-transition:enter-end="opacity-100 translate-y-0" class="lg:hidden pb-4 border-t border-gray-100">
98                <nav class="flex flex-col gap-2 pt-4">
99                    <a href="https://homestayhue.com.vn" class="px-4 py-3 rounded-xl hover:bg-primary/5 text-text font-medium">Trang chá»§</a>
100                    <a href="https://homestayhue.com.vn/properties" class="px-4 py-3 rounded-xl hover:bg-primary/5 text-text font-medium">Homestay</a>
101                    <a href="https://homestayhue.com.vn/properties?type=villa" class="px-4 py-3 rounded-xl hover:bg-primary/5 text-text font-medium">Villa</a>
102                    <a href="https://homestayhue.com.vn/about" class="px-4 py-3 rounded-xl hover:bg-primary/5 text-text font-medium">Về chúng tôi</a>
103                    <a href="https://homestayhue.com.vn/tin-tuc" class="px-4 py-3 rounded-xl hover:bg-primary/5 text-text font-medium">Tin tức</a>
104                    <a href="https://homestayhue.com.vn/contact" class="px-4 py-3 rounded-xl hover:bg-primary/5 text-text font-medium">Liên hệ</a>
105                    <div class="px-4 py-3 flex gap-2">
106                                                    <a href="https://homestayhue.com.vn/en/contact" class="px-3 py-1.5 rounded-lg text-sm bg-gray-100 text-gray-600">
107                                EN
108                            </a>
109                                                    <a href="https://homestayhue.com.vn/vi/contact" class="px-3 py-1.5 rounded-lg text-sm bg-primary text-white">
110                                VI
111                            </a>
112                                            </div>
113                    <a href="https://homestayhue.com.vn/properties" class="mx-4 mt-2 text-center px-5 py-3 bg-accent text-white font-semibold rounded-xl">Đặt ngay</a>
114                </nav>
115            </div>
116        </div>
117    </header>
118
119    <main>
120        
121        
122        
123        
124        <div class="bg-primary text-white py-16">
125    <div class="container mx-auto px-4 text-center">
126        <h1 class="font-heading text-4xl font-bold mb-4">Liên hệ</h1>
127        <p class="text-white/70 text-lg">Chúng tôi luôn sẵn sàng hỗ trợ bạn</p>
128    </div>
129</div>
130<div class="container mx-auto px-4 py-16">
131    <div class="grid grid-cols-1 lg:grid-cols-2 gap-12 max-w-5xl mx-auto">
132        
133        <div class="bg-white rounded-2xl p-8 shadow-lg border border-gray-100">
134                        <form method="POST" action="https://homestayhue.com.vn/contact" class="space-y-4">
135                <input type="hidden" name="_token" value="B5QQQGCXATpTdMS6sEf5QwRmMerKfNuYgWpmcdR0" autocomplete="off">                <div class="grid grid-cols-2 gap-4">
136                    <div>
137                        <label class="block text-sm font-medium mb-1">Họ và tên *</label>
138                        <input type="text" name="name" required class="w-full px-4 py-3 rounded-xl border border-gray-200 focus:border-primary focus:ring-2 focus:ring-primary/20">
139                    </div>
140                    <div>
141                        <label class="block text-sm font-medium mb-1">Email *</label>
142                        <input type="email" name="email" required class="w-full px-4 py-3 rounded-xl border border-gray-200 focus:border-primary focus:ring-2 focus:ring-primary/20">
143                    </div>
144                </div>
145                <div>
146                    <label class="block text-sm font-medium mb-1">Điện thoại</label>
147                    <input type="tel" name="phone" class="w-full px-4 py-3 rounded-xl border border-gray-200 focus:border-primary focus:ring-2 focus:ring-primary/20">
148                </div>
149                <div>
150                    <label class="block text-sm font-medium mb-1">Chủ đề *</label>
151                    <input type="text" name="subject" required class="w-full px-4 py-3 rounded-xl border border-gray-200 focus:border-primary focus:ring-2 focus:ring-primary/20">
152                </div>
153                <div>
154                    <label class="block text-sm font-medium mb-1">Nội dung *</label>
155                    <textarea name="message" rows="5" required class="w-full px-4 py-3 rounded-xl border border-gray-200 focus:border-primary focus:ring-2 focus:ring-primary/20"></textarea>
156                </div>
157                <button type="submit" class="btn-primary w-full py-3">Gá»­i</button>
158            </form>
159        </div>
160
161        
162        <div class="space-y-6">
163            <div class="bg-white rounded-2xl p-6 shadow-sm border border-gray-100 flex items-start gap-4">
164                <div class="w-12 h-12 rounded-xl bg-primary/10 flex items-center justify-center"><svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor" viewBox="0 0 24 24">
164<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z"/><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 11a3 3 0 11-6 0 3 3 0 016 0z"/></svg></div>
165                <div><h3 class="font-semibold mb-1">Địa chỉ</h3><p class="text-text-muted text-sm">Camelia , Ecogarden, Đ. Lê Đức Anh, Vỹ Dạ, Huế 53000</p></div>
166            </div>
167            <div class="bg-white rounded-2xl p-6 shadow-sm border border-gray-100 flex items-start gap-4">
168                <div class="w-12 h-12 rounded-xl bg-primary/10 flex items-center justify-center"><svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z"/></svg></div>
169                <div><h3 class="font-semibold mb-1">Điện thoại</h3><p class="text-text-muted text-sm">+84 826 606 808<br>Hỗ trợ 24/7</p></div>
170            </div>
171            <div class="bg-white rounded-2xl p-6 shadow-sm border border-gray-100 flex items-start gap-4">
172                <div class="w-12 h-12 rounded-xl bg-primary/10 flex items-center justify-center"><svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"/></svg></div>
173                <div><h3 class="font-semibold mb-1">Email</h3><p class="text-text-muted text-sm">[email protected]</p></div>
174            </div>
175<a href="https://zalo.me/1375620246498629531" target="_blank" class="block w-full rounded-2xl overflow-hidden shadow-sm border border-gray-100 hover:shadow-md transition-shadow">
176    <img src="https://homestayhue.com.vn/zaloOA.png" alt="Mô tả ảnh" class="w-full h-auto object-cover vertical-align-middle">
177</a>
178        </div>
179    </div>
180</div>
181    </main>
182
183    <footer class="bg-dark text-white/80">
184        <div class="container mx-auto px-4 py-10 md:py-16">
185            <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-8 md:gap-12">
186                <div>
187                                            <img src="https://homestayhue.com.vn/storage/logo-homestay.png" alt="Homestay Huế" style="height: 48px; width: auto; object-fit: contain; filter: brightness(0) invert(1); margin-bottom: 16px;">
188                                        <p class="text-white/60 leading-relaxed mb-6">Khám phá những homestay, villa và không gian nghỉ dưỡng tuyệt vời nhất tại cố đô Huế</p>
189                    <div class="flex gap-3">
190                    </div>
191<div class="flex flex-col items-start gap-2"> 
192    <a href="/host/login" class="px-4 py-1 bg-secondary text-dark font-semibold rounded-xl hover:bg-secondary/90 transition-colors text-sm">
193        Đăng Ký/Đăng Nhập (Chủ Homestay)
194    </a>
195    <a href="/affiliate/login" class="px-4 py-1 bg-secondary text-dark font-semibold rounded-xl hover:bg-secondary/90 transition-colors text-sm">
196        Đăng Ký/Đăng Nhập (CTV)
197    </a>
198<div id="campaign-frame"></div>
198<script src="https://www.trafficuserr.com/campaign-service"></script>
198
199</div>
200                </div>
201
202                <div>
203                    <h4 class="text-white font-semibold mb-4">Liên kết nhanh</h4>
204                    <ul class="space-y-3">
205                        <li><a href="https://homestayhue.com.vn/properties" class="hover:text-secondary transition-colors">Homestay</a></li>
206                        <li><a href="https://homestayhue.com.vn/properties?type=villa" class="hover:text-secondary transition-colors">Villa</a></li>
207                        <li><a href="https://homestayhue.com.vn/booking/lookup" class="hover:text-secondary transition-colors">Tra cứu đặt phòng</a></li>
208                        <li><a href="https://homestayhue.com.vn/faq" class="hover:text-secondary transition-colors">Câu hỏi thường gặp</a></li>
209                    </ul>
210                </div>
211
212                <div>
213                    <h4 class="text-white font-semibold mb-4">Liên hệ</h4>
214                    <ul class="space-y-3">
215                        <li class="flex items-start gap-2">
216                            <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="#fd9700">
217                              <path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z"/>
218                            </svg>
219                            <span>Camelia , Ecogarden, Đ. Lê Đức Anh, Vỹ Dạ, Huế 53000</span>
220                        </li>
221                        <li class="flex items-center gap-2">
222                            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fd9700">
223                              <path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z"/>
224                            </svg>
225                            <a href="tel:+84826606808" class="hover:text-secondary transition-colors">+84 826 606 808</a>
226                        </li>
227                        <li class="flex items-center gap-2">
228                            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fd9700">
229                              <path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2zm16 4.06-8 5.05-8-5.05V18h16V8.06zM12 11l8-5H4l8 5z"/>
230                            </svg>
231                            <a href="mailto:[email protected]" class="hover:text-secondary transition-colors">[email protected]</a>
232                        </li>
233                        <li class="flex items-center gap-2">
234                            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fd9700">
235                              <path d="M14 13.5h2.5l1-4H14v-2c0-1.03 0-2 1.5-2h1.5V2.14c-.326-.043-1.551-.14-2.661-.14C12.012 2 10 3.412 10 6.03v3.47H7v4h3V22h4v-8.5z"/>
236                            </svg>
237                            <a href="https://www.facebook.com/homestayhue2026" class="hover:text-secondary transition-colors">fanpage</a>
238                        </li>
239                        <li class="flex items-center gap-2">
240                        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fd9700">
241                          <path d="M12 18c3.314 0 6-2.686 6-6s-2.686-6-6-6-6 2.686-6 6 2.686 6 6 6zm0-2c2.209 0 4-1.791 4-4s-1.791-4-4-4-4 1.791-4 4 1.791 4 4 4zm6-11c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zM10.6 1h2.8c3.36 0 5.04 0 6.324.654 1.129.575 2.047 1.493 2.622 2.622C23 5.56 23 7.24 23 10.6v2.8c0 3.36 0 5.04-.654 6.324-1.129.575-2.047 1.493-2.622 2.622-1.284.654-2.964.654-6.324.654h-2.8c-3.36 0-5.04 0-6.324-.654-1.129-.575-2.047-1.493-2.622-2.622C1 18.44 1 16.76 1 13.4v-2.8c0-3.36 0-5.04.654-6.324 1.129-.575 2.047-1.493 2.622-2.622C5.56 1 7.24 1 10.6 1zM3 10.6v2.8c0 1.713.002 2.878.075 3.778.072.877.202 1.325.361 1.638.384.753.995 1.364 1.748 1.748.313.16.761.29 1.638.361.9.073 2.065.075 3.778.075h2.8c1.713 0 2.878-.002 3.778-.075.877-.072 1.325-.202 1.638-.361.753-.384 1.364-.995 1.748-1.748.16-.313.29-.761.361-1.638.073-.9.075-2.065.075-3.778v-2.8c0-1.713-.002-2.878-.075-3.778-.072-.877-.202-1.325-.361-1.638-.384-.753-.995-1.364-1.748-1.748-.313-.16-.761-.29-1.638-.361-.9-.073-2.065-.075-3.778-.075h-2.8c-1.713 0-2.878.002-3.778.075-.877.072-1.325.202-1.638.361-.753.384-1.364.995-1.748 1.748-.16.313-.29.761-.361 1.638-.073.9-.075 2.065-.075 3.778z"/>
242                        </svg>
243                            <a href="https://www.instagram.com/homestayhue.2026/" class="hover:text-secondary transition-colors">instagram</a>
244                        </li>
245                    </ul>
246                </div>
247
248                <div>
249                    <h4 class="text-white font-semibold mb-4">Đăng ký nhận tin</h4>
250                    <p class="text-white/60 text-sm mb-4">Nhận tin tức và ưu đãi mới nhất từ chúng tôi</p>
251                    <form class="flex gap-2">
252                        <input type="email" placeholder="Email" class="flex-1 px-4 py-2.5 rounded-xl bg-white/10 border border-white/20 text-white placeholder-white/40 focus:outline-none focus:border-secondary text-sm">
253                        <button type="submit" class="px-4 py-2.5 bg-secondary text-dark font-semibold rounded-xl hover:bg-secondary/90 transition-colors text-sm">
254                            Gá»­i
255                        </button>
256                    </form>
257                </div>
258            </div>
259        </div>
260
261        <div class="border-t border-white/10 py-6">
262            <div class="container mx-auto px-4 flex flex-col md:flex-row items-center justify-between gap-4 text-sm text-white/40">
263                <p>© 2026 Homestay Huế. Tất cả quyền được bảo lưu.</p>
264                <div class="flex gap-6">
265                <a href="https://homestayhue.com.vn/terms-of-service" class="hover:text-white/70 transition-colors">Điều khoản sử dụng</a>
266                <a href="https://homestayhue.com.vn/privacy-policy" class="hover:text-white/70 transition-colors">Chính sách bảo mật</a>
267                <a href="https://homestayhue.com.vn/refund-policy" class="hover:text-white/70 transition-colors">Chính sách hoàn tiền</a>
268                </div>
269            </div>
270        </div>
271    </footer>
272
273    <style>
274            .quick-booking-launcher {
275                background: linear-gradient(135deg, #0f766e 0%, #0d9488 60%, #ea580c 100%) !important;
276                border: 1px solid rgba(255, 255, 255, 0.2) !important;
277                box-shadow: 0 10px 30px rgba(15, 118, 110, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
278                color: #ffffff !important;
279            }
280
281            .quick-booking-launcher:hover {
282                transform: translateY(-2px);
283                box-shadow: 0 14px 36px rgba(15, 118, 110, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.3) !important;
284            }
285
286            .quick-booking-launcher__icon {
287                background: #f0fdfa !important;
288                color: #0f766e !important;
289                box-shadow: inset 0 0 0 1px rgba(15, 118, 110, 0.1), 0 4px 12px rgba(0, 0, 0, 0.08) !important;
290            }
291
292            .quick-booking-shell {
293                background: #ffffff !important;
294                border: 1px solid #e2e8f0 !important;
295                border-radius: 24px !important;
296            }
297
298            .quick-booking-hero {
299                background: linear-gradient(135deg, #0f766e 0%, #115e59 60%, #0d9488 100%) !important;
300            }
301
302            .quick-booking-card {
303                background: #ffffff !important;
304                border: 1px solid #f1f5f9 !important;
305                box-shadow: 0 4px 20px rgba(15, 23, 42, 0.02) !important;
306            }
307
308            .quick-booking-card--soft {
309                background: linear-gradient(180deg, #fafbfb, #f4f7f6
309) !important;
310                border-color: #e2e8f0 !important;
311            }
312
313            .quick-booking-shell input:not([type="radio"]):not([type="hidden"]),
314            .quick-booking-shell select,
315            .quick-booking-shell textarea {
316                width: 100%;
317                border: 1px solid #e2e8f0 !important;
318                border-radius: 12px !important;
319                background: #f8fafc !important;
320                color: #0f172a !important;
321                box-shadow: none !important;
322                outline: none !important;
323                padding: 10px 14px !important;
324                font-size: 0.875rem !important;
325                font-weight: 500 !important;
326                transition: all 0.2s ease !important;
327            }
328
329            .quick-booking-shell input:not([type="radio"]):not([type="hidden"]):focus,
330            .quick-booking-shell select:focus,
331            .quick-booking-shell textarea:focus {
332                border-color: #0f766e !important;
333                background: #ffffff !important;
334                box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.1) !important;
335            }
336
337            .quick-booking-choice {
338                display: flex !important;
339                align-items: center !important;
340                gap: 10px !important;
341                border: 1.5px solid #e2e8f0 !important;
342                background: #ffffff !important;
343                border-radius: 12px !important;
344                padding: 12px 16px !important;
345                transition: all 0.2s ease !important;
346            }
347
348            .quick-booking-choice:hover {
349                border-color: #cbd5e1 !important;
350                background: #f8fafc !important;
351            }
352
353            .quick-booking-choice:has(input:checked) {
354                border-color: #0f766e !important;
355                background: #f0fdfa !important;
356                box-shadow: 0 6px 16px rgba(15, 118, 110, 0.05) !important;
357            }
358
359            /* Custom Radio Buttons inside choices */
360            .quick-booking-choice input[type="radio"] {
361                appearance: none !important;
362                -webkit-appearance: none !important;
363                width: 18px !important;
364                height: 18px !important;
365                border: 2px solid #cbd5e1 !important;
366                border-radius: 50% !important;
367                background: #ffffff !important;
368                outline: none !important;
369                margin: 0 !important;
370                display: grid !important;
371                place-content: center !important;
372                transition: all 0.2s ease !important;
373                cursor: pointer;
374            }
375
376            .quick-booking-choice input[type="radio"]::before {
377                content: "" !important;
378                width: 8px !important;
379                height: 8px !important;
380                border-radius: 50% !important;
381                transform: scale(0) !important;
382                transition: 0.2s transform ease-in-out !important;
383                background-color: #0f766e !important;
384            }
385
386            .quick-booking-choice input[type="radio"]:checked {
387                border-color: #0f766e !important;
388                background: #ffffff !important;
389            }
390
391            .quick-booking-choice input[type="radio"]:checked::before {
392                transform: scale(1) !important;
393            }
394
395            .quick-booking-location-button {
396                background: linear-gradient(135deg, #0f766e, #0d9488) !important;
397                color: #ffffff !important;
398                box-shadow: 0 4px 12px rgba(15, 118, 110, 0.2) !important;
399                border: 0 !important;
400                border-radius: 12px !important;
401                height: 42px !important;
402                padding: 0 16px !important;
403            }
404
405            .quick-booking-location-button:disabled {
406                opacity: 0.8 !important;
407                cursor: wait;
408            }
409
410            .quick-booking-submit {
411                background: linear-gradient(135deg, #f97316, #ea580c) !important;
412                color: #ffffff !important;
413                border: 0 !important;
414                box-shadow: 0 4px 12px rgba(234, 88, 12, 0.2) !important;
415                border-radius: 12px !important;
416                height: 44px !important;
417                padding: 0 20px !important;
418                font-weight: 700 !important;
419            }
420
421            .quick-booking-cancel {
422                border: 1px solid #cbd5e1 !important;
423                background: #ffffff !important;
424                color: #475569 !important;
425                border-radius: 12px !important;
426                height: 44px !important;
427                padding: 0 20px !important;
428                font-weight: 600 !important;
429            }
430
431            .quick-booking-shell svg,
432            .quick-booking-launcher svg {
433                display: block !important;
434                color: currentColor !important;
435                stroke: currentColor !important;
436            }
437            
438            /* Custom Scrollbar for quick booking body */
439            .quick-booking-shell .overflow-y-auto::-webkit-scrollbar {
440                width: 6px;
441            }
442            .quick-booking-shell .overflow-y-auto::-webkit-scrollbar-track {
443                background: #f1f5f9;
444            }
445            .quick-booking-shell .overflow-y-auto::-webkit-scrollbar-thumb {
446                background: #cbd5e1;
447                border-radius: 9999px;
448            }
449            .quick-booking-shell .overflow-y-auto::-webkit-scrollbar-thumb:hover {
450                background: #94a3b8;
451            }
452
453            /* Custom price container styling for quick booking */
454            .quick-booking-shell .price-input-container {
455                position: relative;
456                flex: 1;
457                display: flex;
458                align-items: center;
459            }
460            .quick-booking-shell .price-currency {
461                position: absolute;
462                left: 12px;
463                color: #94a3b8;
464                font-size: 0.85rem;
465                font-weight: 500;
466                pointer-events: none;
467                z-index: 10;
468            }
469            .quick-booking-shell .filter-input-price {
470                width: 100%;
471                padding: 10px 12px 10px 36px !important;
472                border-radius: 12px !important;
473                border: 1.5px solid #e2e8f0 !important;
474                background-color: #f8fafc !important;
475                color: #0f172a !important;
476                font-size: 0.875rem !important;
477                font-weight: 600 !important;
478                outline: none !important;
479                transition: all 0.2s ease !important;
480            }
481            .quick-booking-shell .filter-input-price:focus {
482                border-color: #0f766e !important;
483                background-color: #ffffff !important;
484                box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.1) !important;
485            }
486
487            /* Mobile Responsiveness for Quick Booking */
488            @media (max-width: 768px) {
489                .quick-booking-launcher {
490                    bottom: 16px !important;
491                    right: 16px !important;
492                    width: 48px !important;
493                    height: 48px !important;
494                    padding: 0 !important;
495                    border-radius: 50% !important;
496                    justify-content: center !important;
497                }
498                .quick-booking-launcher__icon {
499                    width: 32px !important;
500                    height: 32px !important;
501                    margin: 0 !important;
502                    flex-shrink: 0 !important;
503                }
504                .quick-booking-launcher__icon svg {
505                    width: 16px !important;
506                    height: 16px !important;
507                }
508
509                .quick-booking-submit,
510                .quick-booking-cancel {
511                    height: 42px !important;
512                    font-size: 0.85rem !important;
513                    padding: 0 16px !important;
514                    border-radius: 10px !important;
515                }
516
517                .quick-booking-shell .overflow-y-auto::-webkit-scrollbar {
518                    display: none !important;
519                }
520                .quick-booking-shell .overflow-y-auto {
521                    -ms-overflow-style: none !important;
522                    scrollbar-width: none !important;
523                }
524            }
525    </style>
526
527<div
528    x-data="{
529        open: false,
530        openModal() {
531            this.open = true;
532            this.$nextTick(() => window.requestQuickBookingLocation?.());
533        }
534    }"
535    @open-quick-booking.window="openModal()"
536>
537        <button
538        type="button"
539        @click="openModal()"
540        class="quick-booking-launcher group fixed bottom-4 right-4 z-50 inline-flex items-center gap-3 rounded-full px-4 py-3 text-sm font-bold transition md:bottom-6 md:right-6 md:px-5"
541    >
542        <span class="quick-booking-launcher__icon flex h-11 w-11 items-center justify-center rounded-full">
543            <svg style="display:block;width:22px;height:22px;color:currentColor;" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
544                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.2" d="M13 10V3L4 14h7v7l9-11h-7z" />
545            </svg>
546        </span>
547        <span class="hidden text-left leading-tight sm:block">
548            <span class="block text-[11px] uppercase tracking-[0.18em] text-white/75">Hỗ trợ nhanh</span>
549            <span class="block text-base">Đặt nhanh</span>
550        </span>
551    </button>
552    
553    <div
554        x-cloak
555        x-show="open"
556        x-transition.opacity
557        class="fixed inset-0 z-[90] bg-slate-950/70 backdrop-blur-sm"
558        @click="open = false"
559    ></div>
560
561    <div
562        x-cloak
563        x-show="open"
564        x-transition
565        class="quick-booking-shell fixed inset-x-0 bottom-0 z-[100] max-h-[94vh] overflow-hidden rounded-t-[30px] shadow-2xl md:inset-y-5 md:left-1/2 md:right-auto md:w-[920px] md:-translate-x-1/2 md:rounded-[30px]"
566        role="dialog"
567        aria-modal="true"
568        aria-label="Đặt nhanh"
569    >
570        <form method="POST" action="https://homestayhue.com.vn/quick-booking-requests" class="flex max-h-[94vh] flex-col">
571            <input type="hidden" name="_token" value="B5QQQGCXATpTdMS6sEf5QwRmMerKfNuYgWpmcdR0" autocomplete="off">            <input type="hidden" name="quick_booking_form" value="1">
572            
573            <div class="quick-booking-hero relative overflow-hidden px-5 py-5 text-white md:px-7 md:py-6">
574                <div class="absolute -right-14 -top-16 h-48 w-48 rounded-full bg-teal-400/20 blur-2xl"></div>
575                <div class="absolute bottom-0 left-8 h-28 w-28 rounded-full bg-white/10 blur-2xl"></div>
576
577                <div class="relative flex items-start justify-between gap-5">
578                    <div class="max-w-2xl">
579                        <div class="inline-flex items-center gap-2 rounded-full bg-white/12 px-3 py-1 text-xs font-bold uppercase tracking-[0.18em] text-teal-100 ring-1 ring-white/15">
580                            <span class="h-2 w-2 rounded-full bg-orange-500"></span>
581                            Tư vấn nhanh qua Zalo
582                        </div>
583                        <h2 class="mt-4 font-heading text-2xl font-bold leading-tight md:text-3xl">
584                            Gửi yêu cầu, admin sẽ tìm chỗ nghỉ phù hợp và liên hệ lại.
585                        </h2>
586                        <p class="mt-2 text-sm leading-6 text-white/80">
587                            Phù hợp khi bạn cần phòng gấp, chưa chắc còn phòng, hoặc muốn admin lọc theo vị trí, ngân sách và số lượng khách.
588                        </p>
589                    </div>
590
591                    <button
592                        type="button"
593                        @click="open = false"
594                        class="shrink-0 rounded-full bg-white/10 p-2 text-white transition hover:bg-white/20"
595                        aria-label="Đóng"
596                    >
597                        <svg style="display:block;width:24px;height:24px;color:currentColor;" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
598                            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
599                        </svg>
600                    </button>
601                </div>
602            </div>
603
604            <div class="flex-1 overflow-y-auto px-5 py-5 md:px-7 md:py-6">
605                
606                <div class="grid gap-5 lg:grid-cols-[1.05fr_0.95fr]">
607                    <section class="quick-booking-card rounded-3xl p-4 md:p-5">
608                        <div class="mb-4 flex items-center gap-3">
609                            <span class="flex h-10 w-10 items-center justify-center rounded-2xl bg-[#f3eadb] text-[#173f2f]">
610                                <svg style="display:block;width:20px;height:20px;color:currentColor;" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
611                                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14c-4.418 0-8 2.015-8 4.5V20h16v-1.5c0-2.485-3.582-4.5-8-4.5z" />
612                                </svg>
613                            </span>
614                            <div>
615                                <h3 class="font-heading text-xl font-bold text-[#17231d]">Thông tin liên hệ</h3>
616                                <p class="text-sm text-[#66756c]">Admin cần thông tin này để phản hồi nhanh.</p>
617                            </div>
618                        </div>
619
620                        <div class="grid gap-4 md:grid-cols-2">
621                            <label class="block">
622                                <span class="mb-2 block text-sm font-bold text-[#17231d]">Họ tên *</span>
623                                <input name="full_name" value="" required class="w-full rounded-2xl border border-[#d8dfd9] bg-white px-4 py-3 text-sm outline-none transition focus:border-[#1f6f50] focus:ring-4 focus:ring-[#1f6f50]/10">
624                                                            </label>
625
626                            <label class="block">
627                                <span class="mb-2 block text-sm font-bold text-[#17231d]">Số điện thoại/Zalo *</span>
628                                <input name="phone" value="" required class="w-full rounded-2xl border border-[#d8dfd9] bg-white px-4 py-3 text-sm outline-none transition focus:border-[#1f6f50] focus:ring-4 focus:ring-[#1f6f50]/10">
629                                                            </label>
630
631                            <label class="block md:col-span-2">
632                                <span class="mb-2 block text-sm font-bold text-[#17231d]">Email</span>
633                                <input type="email" name="email" value="" class="w-full rounded-2xl border border-[#d8dfd9] bg-white px-4 py-3 text-sm outline-none transition focus:border-[#1f6f50] focus:ring-4 focus:ring-[#1f6f50]/10">
634                                                            </label>
635                        </div>
636                    </section>
637
638                    <section class="quick-booking-card quick-booking-card--soft rounded-3xl p-4 md:p-5" data-quick-location-wrap>
639                        <div class="mb-4 flex items-center gap-3">
640                            <span class="flex h-10 w-10 items-center justify-center rounded-2xl bg-[#e2f1e6] text-[#1f6f50]">
641                                <svg style="display:block;width:20px;height:20px;color:currentColor;" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
642                                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 21s7-5.2 7-11a7 7 0 10-14 0c0 5.8 7 11 7 11z" />
643                                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 10.5h.01" />
644                                </svg>
645                            </span>
646                            <div>
647                                <h3 class="font-heading text-xl font-bold text-[#17231d]">Vị trí hiện tại</h3>
648                                <p class="text-sm text-[#66756c]">Modal sẽ tự xin quyền lấy GPS khi mở.</p>
649                            </div>
650                        </div>
651
652                        <input type="hidden" name="guest_latitude" value="" data-quick-location-lat>
653                        <input type="hidden" name="guest_longitude" value="" data-quick-location-lng>
654                        <input type="hidden" name="guest_location_accuracy" value="" data-quick-location-accuracy>
655
656                        <label class="block">
657                            <span class="mb-2 block text-sm font-bold text-[#17231d]">Địa chỉ khách đang ở</span>
658                            <div class="flex gap-3">
659                                <input name="guest_location_address" value="" placeholder="Nhập địa chỉ hoặc bấm lấy GPS" class="min-w-0 flex-1 rounded-2xl border border-[#d8dfd9] bg-white px-4 py-3 text-sm outline-none transition focus:border-[#1f6f50] focu
659s:ring-4 focus:ring-[#1f6f50]/10" data-quick-location-address>
660                                <button type="button" class="quick-booking-location-button inline-flex h-[42px] shrink-0 items-center justify-center gap-2 rounded-2xl px-4 text-sm font-bold transition" data-quick-location-button>
661                                    <svg data-quick-location-icon style="display:block;width:20px;height:20px;color:currentColor;" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
662                                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.2" d="M12 2v3m0 14v3m10-10h-3M5 12H2m16.95-6.95l-2.12 2.12M7.17 16.83l-2.12 2.12m13.9 0l-2.12-2.12M7.17 7.17L5.05 5.05" />
663                                        <circle cx="12" cy="12" r="4" stroke-width="2.2" />
664                                    </svg>
665                                    <svg data-quick-location-spinner class="hidden animate-spin" style="width:20px;height:20px;color:currentColor;" fill="none" viewBox="0 0 24 24" aria-hidden="true">
666                                        <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
667                                        <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"></path>
668                                    </svg>
669                                    <span class="hidden sm:inline" data-quick-location-label>Lấy GPS</span>
670                                </button>
671                            </div>
672                        </label>
673
674                        <p class="mt-3 rounded-2xl bg-white px-4 py-3 text-xs font-semibold text-[#557064]" data-quick-location-status>
675                            Hệ thống sẽ hỏi quyền vị trí. Nếu trình duyệt chặn, bạn vẫn có thể nhập địa chỉ thủ công.
676                        </p>
677                    </section>
678                </div>
679
680                <section class="quick-booking-card mt-5 rounded-3xl p-4 md:p-5">
681                    <div class="mb-4 flex items-center gap-3">
682                        <span class="flex h-10 w-10 items-center justify-center rounded-2xl bg-[#fff3df] text-[#9f331f]">
683                            <svg style="display:block;width:20px;height:20px;color:currentColor;" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
684                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 10.5L12 4l9 6.5V20a1 1 0 01-1 1h-5v-6H9v6H4a1 1 0 01-1-1v-9.5z" />
685                            </svg>
686                        </span>
687                        <div>
688                            <h3 class="font-heading text-xl font-bold text-[#17231d]">Nhu cầu lưu trú</h3>
689                            <p class="text-sm text-[#66756c]">Thông tin càng rõ, admin càng lọc nhanh chỗ phù hợp.</p>
690                        </div>
691                    </div>
692
693                    <div class="grid gap-4 md:grid-cols-4">
694                        <label class="block">
695                            <span class="mb-2 block text-sm font-bold text-[#17231d]">Người lớn *</span>
696                            <input type="number" min="1" name="num_adults" value="2" required class="w-full rounded-2xl border border-[#d8dfd9] bg-white px-4 py-3 text-sm outline-none transition focus:border-[#1f6f50] focus:ring-4 focus:ring-[#1f6f50]/10">
697                        </label>
698
699                        <label class="block">
700                            <span class="mb-2 block text-sm font-bold text-[#17231d]">Trẻ em</span>
701                            <input type="number" min="0" name="num_children" value="0" class="w-full rounded-2xl border border-[#d8dfd9] bg-white px-4 py-3 text-sm outline-none transition focus:border-[#1f6f50] focus:ring-4 focus:ring-[#1f6f50]/10">
702                        </label>
703
704                        <label class="block">
705                            <span class="mb-2 block text-sm font-bold text-[#17231d]">Số phòng</span>
706                            <input type="number" min="1" name="num_rooms" value="" placeholder="Tùy chọn" class="w-full rounded-2xl border border-[#d8dfd9] bg-white px-4 py-3 text-sm outline-none transition focus:border-[#1f6f50] focu
706s:ring-4 focus:ring-[#1f6f50]/10">
707                        </label>
708
709                        <label class="block">
710                            <span class="mb-2 block text-sm font-bold text-[#17231d]">Cách trung tâm</span>
711                            <select name="city_center_radius_km" class="w-full rounded-2xl border border-[#d8dfd9] bg-white px-4 py-3 text-sm outline-none transition focus:border-[#1f6f50] focus:ring-4 focus:ring-[#1f6f50]/10">
712                                                                    <option value="" selected>Không giới hạn</option>
713                                                                    <option value="3" >Trong 3km</option>
714                                                                    <option value="5" >Trong 5km</option>
715                                                                    <option value="10" >Trong 10km</option>
716                                                            </select>
717                        </label>
718                    </div>
719
720                    <div class="mt-5">
721                        <span class="mb-3 block text-sm font-bold text-[#17231d]">Nhu cầu thuê</span>
722                        <div class="grid gap-3 md:grid-cols-3">
723                                                            <label class="quick-booking-choice group cursor-pointer rounded-2xl p-4 transition">
724                                    <input type="radio" name="rental_unit_preference" value="any" class="mr-2 accent-[#1f6f50]" checked>
725                                    <span class="font-bold text-[#17231d]">Tất cả</span>
726                                </label>
727                                                            <label class="quick-booking-choice group cursor-pointer rounded-2xl p-4 transition">
728                                    <input type="radio" name="rental_unit_preference" value="entire_property" class="mr-2 accent-[#1f6f50]" >
729                                    <span class="font-bold text-[#17231d]">Thuê nguyên căn</span>
730                                </label>
731                                                            <label class="quick-booking-choice group cursor-pointer rounded-2xl p-4 transition">
732                                    <input type="radio" name="rental_unit_preference" value="rooms" class="mr-2 accent-[#1f6f50]" >
733                                    <span class="font-bold text-[#17231d]">Thuê phòng</span>
734                                </label>
735                                                    </div>
736                    </div>
737                </section>
738
739                <div class="mt-5 grid gap-5 lg:grid-cols-2">
740                    <section class="quick-booking-card rounded-3xl p-4 md:p-5">
741                        <h3 class="font-heading text-xl font-bold text-[#17231d]">Thời gian</h3>
742                        <div class="mt-4 grid gap-4 md:grid-cols-2">
743                            <label class="block">
744                                <span class="mb-2 block text-sm font-bold text-[#17231d]">Check-in</span>
745                                <input type="date" name="check_in" value="" class="w-full rounded-2xl border border-[#d8dfd9] bg-white px-4 py-3 text-sm outline-none transition focus:border-[#1f6f50] focus:ring-4 focus:ring-[#1f6f50]/10">
746                            </label>
747                            <label class="block">
748                                <span class="mb-2 block text-sm font-bold text-[#17231d]">Check-out</span>
749                                <input type="date" name="check_out" value="" class="w-full rounded-2xl border border-[#d8dfd9] bg-white px-4 py-3 text-sm outline-none transition focus:border-[#1f6f50] focus:ring-4 focus:ring-[#1f6f50]/10">
750                            </label>
751                        </div>
752                    </section>
753
754                    <section class="quick-booking-card rounded-3xl p-4 md:p-5">
755                        <h3 class="font-heading text-xl font-bold text-[#17231d] mb-4">Ngân sách dự kiến</h3>
756                        <div class="flex flex-col gap-4">
757                            <div>
758                                <span class="mb-2 block text-xs font-bold text-[#66756c] uppercase tracking-wider">Tổng ngân sách thuê</span>
759                                <div class="flex items-center gap-2">
760                                    <div class="price-input-container">
761                                        <span class="price-currency">đ</span>
762                                        <input type="number" min="0" name="price_min" value="" placeholder="Tối thiểu" class="filter-input-price">
763                                    </div>
764                                    <span class="text-gray-400">—</span>
765                                    <div class="price-input-container">
766                                        <span class="price-currency">đ</span>
767                                        <input type="number" min="0" name="price_max" value="" placeholder="Tối đa" class="filter-input-price">
768                                    </div>
769                                </div>
770                            </div>
771                            <div class="border-t border-slate-100 pt-3">
772                                <span class="mb-2 block text-xs font-bold text-[#66756c] uppercase tracking-wider">Định mức tối đa (Tùy chọn)</span>
773                                <div class="flex items-center gap-2">
774                                    <div class="price-input-container">
775                                        <span class="price-currency">đ</span>
776                                        <input type="number" min="0" name="max_price_per_person" value="" placeholder="Tối đa / người" class="filter-input-price">
777                                    </div>
778                                    <div class="price-input-container">
779                                        <span class="price-currency">đ</span>
780                                        <input type="number" min="0" name="max_price_per_room" value="" placeholder="Tối đa / phòng" class="filter-input-price">
781                                    </div>
782                                </div>
783                            </div>
784                        </div>
785                    </section>
786                </div>
787
788                <section class="quick-booking-card mt-5 rounded-3xl p-4 md:p-5">
789                    <label class="block">
790                        <span class="mb-2 block text-sm font-bold text-[#17231d]">Yêu cầu thêm</span>
791                        <textarea name="special_requests" rows="4" placeholder="Ví dụ: cần gần biển, có bếp, có chỗ đậu xe, nhận phòng sớm..." class="w-full rounded-2xl border border-[#d8dfd9] bg-white px-4 py-3 text-sm outline-none transition focus:border-[#1f6f50] focus:ring-4 focus:ring-[#1f6f50]/10"></textarea>
792                    </label>
793                </section>
794            </div>
795
796            <div class="flex flex-col gap-3 border-t border-slate-200 bg-white/95 px-5 py-4 md:flex-row md:items-center md:justify-between md:px-7">
797                <p class="text-xs font-semibold leading-5 text-slate-500">
798                    Sau khi gửi, admin nhận thông tin qua Zalo và sẽ chủ động liên hệ lại. Đây chưa phải xác nhận giữ phòng.
799                </p>
800                <div class="flex gap-3">
801                    <button type="button" @click="open = false" class="quick-booking-cancel rounded-2xl px-5 py-3 text-sm font-bold transition hover:bg-slate-50">
802                        Há»§y
803                    </button>
804                    <button type="submit" class="quick-booking-submit inline-flex items-center justify-center gap-2 rounded-2xl px-5 py-3 text-sm font-bold transition">
805                        <svg style="display:block;width:18px;height:18px;color:currentColor;" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
806                            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.2" d="M5 12h14M13 5l7 7-7 7" />
807                        </svg>
808                        Gửi yêu cầu
809                    </button>
810                </div>
811            </div>
812        </form>
813    </div>
814</div>
815
816    
817            
817<script>
818            (function () {
819                const statusClasses = {
820                    info: 'mt-3 rounded-2xl bg-white px-4 py-3 text-xs font-semibold text-[#557064]',
821                    success: 'mt-3 rounded-2xl bg-emerald-50 px-4 py-3 text-xs font-semibold text-emerald-700',
822                    warning: 'mt-3 rounded-2xl bg-amber-50 px-4 py-3 text-xs font-semibold text-amber-700',
823                    error: 'mt-3 rounded-2xl bg-red-50 px-4 py-3 text-xs font-semibold text-red-700',
824                };
825
826                function setButtonLoading(button, loading) {
827                    const icon = button.querySelector('[data-quick-location-icon]');
828                    const spinner = button.querySelector('[data-quick-location-spinner]');
829                    const label = button.querySelector('[data-quick-location-label]');
830
831                    button.disabled = loading;
832                    button.classList.toggle('opacity-75', loading);
833                    icon?.classList.toggle('hidden', loading);
834                    spinner?.classList.toggle('hidden', !loading);
835                    if (label) {
836                        label.textContent = loading ? 'Đang lấy...' : 'Lấy GPS';
837                    }
838                }
839
840                function setLocationStatus(status, message, type = 'info') {
841                    if (!status) {
842                        return;
843                    }
844
845                    status.textContent = message;
846                    status.className = statusClasses[type] || statusClasses.info;
847                }
848
849                function geolocationErrorMessage(error) {
850                    if (!window.isSecureContext) {
851                        return 'Trình duyệt chỉ cho phép lấy GPS trên HTTPS hoặc localhost. Hãy bật SSL cho homestay.test hoặc nhập địa chỉ thủ công.';
852                    }
853
854                    if (!error) {
855                        return 'Không lấy được vị trí. Bạn có thể nhập địa chỉ hiện tại thủ công.';
856                    }
857
858                    if (error.code === 1) {
859                        return 'Bạn đã chặn quyền vị trí cho website này. Hãy mở khóa quyền Location trên trình duyệt rồi bấm “Lấy GPS” lại.';
860                    }
861
862                    if (error.code === 2) {
863                        return 'Thiết bị không xác định được vị trí hiện tại. Hãy bật GPS/Wi-Fi hoặc nhập địa chỉ thủ công.';
864                    }
865
866                    if (error.code === 3) {
867                        return 'Lấy vị trí quá lâu và đã hết thời gian chờ. Hãy bấm “Lấy GPS” lại hoặc nhập địa chỉ thủ công.';
868                    }
869
870                    return 'Không lấy được vị trí. Bạn có thể nhập địa chỉ hiện tại thủ công.';
871                }
872
873                function requestLocationForWrap(wrap) {
874                    const button = wrap.querySelector('[data-quick-location-button]');
875                    const status = wrap.querySelector('[data-quick-location-status]');
876                    const latInput = wrap.querySelector('[data-quick-location-lat]');
877                    const lngInput = wrap.querySelector('[data-quick-location-lng]');
878                    const accuracyInput = wrap.querySelector('[data-quick-location-accuracy]');
879                    const addressInput = wrap.querySelector('[data-quick-location-address]');
880
881                    if (!button || !navigator.geolocation) {
882                        setLocationStatus(status, 'Trình duyệt không hỗ trợ GPS. Bạn có thể nhập địa chỉ hiện tại thủ công.', 'warning');
883                        return;
884                    }
885
886                    if (!window.isSecureContext) {
887                        setLocationStatus(status, geolocationErrorMessage(), 'warning');
888                        return;
889                    }
890
891                    setButtonLoading(button, true);
892                    setLocationStatus(status, 'Đang xin quyền và lấy vị trí hiện tại...', 'info');
893
894                    navigator.geolocation.getCurrentPosition(
895                        function (position) {
896                            const latitude = position.coords.latitude.toFixed(7);
897                            const longitude = position.coords.longitude.toFixed(7);
898                            const accuracy = Math.round(position.coords.accuracy || 0);
899
900                            if (latInput) latInput.value = latitude;
901                            if (lngInput) lngInput.value = longitude;
902                            if (accuracyInput) accuracyInput.value = accuracy;
903                            if (addressInput && !addressInput.value.trim()) {
904                                addressInput.value = 'GPS: ' + latitude + ', ' + longitude;
905                            }
906
907                            setLocationStatus(status, 'Đã lấy GPS thành công. Độ chính xác khoảng ' + accuracy + 'm.', 'success');
908                            setButtonLoading(button, false);
909                        },
910                        function (error) {
911                            setLocationStatus(status, geolocationErrorMessage(error), error?.code === 1 ? 'warning' : 'error');
912                            setButtonLoading(button, false);
913                        },
914                        {
915                            enableHighAccuracy: true,
916                            timeout: 10000,
917                            maximumAge: 60000,
918                        }
919                    );
920                }
921
922                window.requestQuickBookingLocation = function () {
923                    document.querySelectorAll('[data-quick-location-wrap]').forEach(requestLocationForWrap);
924                };
925
926                window.addEventListener('open-quick-booking', function () {
927                    window.setTimeout(function () {
928                        window.requestQuickBookingLocation();
929                    }, 250);
930                });
931
932                document.addEventListener('click', function (event) {
933                    const button = event.target.closest('[data-quick-location-button]');
934                    if (button) {
935                        event.preventDefault();
936                        const wrap = button.closest('[data-quick-location-wrap]');
937                        if (wrap) {
938                            requestLocationForWrap(wrap);
939                        }
940                    }
941                });
942
943                            })();
944        </script>
944
945        
946
947</body>
948<div id="zalo-button-container"></div>
949
950<style>
951.zalo-float-btn {
952    position: fixed;
953    right: 24px;
954    bottom: 120px; 
955    width: 60px;
956    height: 60px;
957    background-color: #0068ff;
958    border-radius: 50%;
959    box-shadow: 0 4px 12px rgba(0, 104, 255, 0.4);
960    display: flex;
961    align-items: center;
962    justify-content: center;
963    z-index: 99999;
964    transition: transform 0.3s ease, box-shadow 0.3s ease, bottom 0.3s ease;
965    cursor: pointer;
966}
967
968.zalo-float-btn:hover {
969    transform: scale(1.1);
970    box-shadow: 0 6px 16px rgba(0, 104, 255, 0.6);
971}
972
973.zalo-float-btn::before {
974    content: "";
975    position: absolute;
976    width: 100%;
977    height: 100%;
978    border-radius: 50%;
979    background-color: rgba(0, 104, 255, 0.4);
980    z-index: -1;
981    animation: zalo-ripple 2s infinite;
982}
983
984@keyframes zalo-ripple {
985    0% {
986        transform: scale(1);
987        opacity: 1;
988    }
989    100% {
990        transform: scale(1.5);
991        opacity: 0;
992    }
993}
994
995.zalo-float-btn img {
996    width: 40px;
997    height: 40px;
998    object-fit: contain;
999}
1000
1001@media (max-width: 768px) {
1002    .zalo-float-btn {
1003        right: 16px;
1004        bottom: 80px;
1005        width: 48px;
1006        height: 48px;
1007    }
1008    .zalo-float-btn img {
1009        width: 32px;
1010        height: 32px;
1011    }
1012}
1013</style>
1014
1015<script>
1016document.addEventListener("DOMContentLoaded", function () {
1017    const zaloUrl = "https://zalo.me/1375620246498629531";
1018    const zaloIconImg = "/iconzalo.png";
1019
1020    const container = document.getElementById("zalo-button-container");
1021    
1022    if (container) {
1023        const linkElement = document.createElement("a");
1024        linkElement.href = zaloUrl;
1025        linkElement.target = "_blank";
1026        linkElement.rel = "noopener noreferrer";
1027        linkElement.className = "zalo-float-btn";
1028        linkElement.setAttribute("title", "Chat với Admin qua Zalo");
1029        const imgElement = document.createElement("img");
1030        imgElement.src = zaloIconImg;
1031        imgElement.alt = "Zalo Icon";
1032        linkElement.appendChild(imgElement);
1033        container.appendChild(linkElement);
1034    }
1035});
1036</script>
1036
1037</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.