PageSourceSearch

https://20beauty.com.hk/

html 20beauty.com.hk collected 2026-10-03 23:18:53 UTC 135,410 bytes, 2,538 lines download raw bytes

1<!doctype html>
2<html>
3
4<head>
5
6    <!-- Google Tag Manager -->
7<!-- 
7<script>
vendor: 450 bytes, lines 7-21
7
8  (function(w, d, s, l, i) {
9    w[l] = w[l] || [];
10    w[l].push({
11      'gtm.start': new Date().getTime(),
12      event: 'gtm.js'
13    });
14    var f = d.getElementsByTagName(s)[0],
15      j = d.createElement(s),
16      dl = l != 'dataLayer' ? '&l=' + l : '';
17    j.async = true;
18    j.src =
19      'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
20    f.parentNode.insertBefore(j, f);
21  })(window, document, 'script', 'dataLayer', '
21GTM-KS8K99B
vendor: 5 bytes, line 21
21');
22</script>
22 -->
23<!-- End Google Tag Manager -->
24<!-- Total traffic of all branding for this GTM -->
25<!-- stats_h.php already Added -->
26
27<!-- Google Tag Manager -->
28<!-- 
28<script>
vendor: 331 bytes, lines 28-32
28(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
29new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
30j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
31'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
32})(window,document,'script','dataLayer','
32GTM-T4FPDT7
vendor: 3 bytes, line 32
32');
32</script>
32 -->
33<!-- End Google Tag Manager -->
34<!-- Requested by Yanly, 2022-6-20 -->
35
36<!-- Google Tag Manager -->
37<script>
vendor: 450 bytes, lines 37-51
37
38  (function(w, d, s, l, i) {
39    w[l] = w[l] || [];
40    w[l].push({
41      'gtm.start': new Date().getTime(),
42      event: 'gtm.js'
43    });
44    var f = d.getElementsByTagName(s)[0],
45      j = d.createElement(s),
46      dl = l != 'dataLayer' ? '&l=' + l : '';
47    j.async = true;
48    j.src =
49      'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
50    f.parentNode.insertBefore(j, f);
51  })(window, document, 'script', 'dataLayer', '
51GTM-MRRW6VS
vendor: 5 bytes, line 51
51');
52</script>
52
53<!-- End Google Tag Manager -->
54<!-- Requested by Jessica, 2025-7-16 -->
55
56<!-- <noscript><img height="1" width="1" style="display:none" src=https://www.facebook.com/tr?id=532491535639227&ev=PageView&noscript=1
57/></noscript> -->
58<!-- End Meta Pixel Code -->
59<!-- Requested by Nicky, 2023-2-15 -->
60
61<!-- Google tag (gtag.js) -->
62<!-- 
62<script async src=https://www.googletagmanager.com/gtag/js?id=G-YENKXPQCY9></script>
vendor: 2 bytes, line 62
62
63<script>
vendor: 130 bytes, lines 64-67
64window.dataLayer = window.dataLayer || [];
65function gtag(){dataLayer.push(arguments);}
66gtag('js', new Date());
67gtag('config', '
67G-YENKXPQCY9
vendor: 5 bytes, line 67
67');
68</script>
68 -->
69<!-- Requested by Nicky, 2023-2-16 -->
70
71<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 71-72
71
72<script async src="https://www.googletagmanager.com/gtag/js?id=
72G-LPD60FS341
vendor: 13 bytes, line 72
72"></script>
73<script>
74  
vendor: 151 bytes, lines 74-81
74window.dataLayer = window.dataLayer || [];
75
76  function gtag() {
77    dataLayer.push(arguments);
78  }
79  gtag('js', new Date());
80
81  gtag('config', '
81G-LPD60FS341
vendor: 5 bytes, line 81
81');
82</script>
82
83<!-- Requested by Jessica, 2025-7-16 -->
84
85<script>
86  window.addEventListener("load", function(event) {
87    if (window.location.href.includes("thx?id=")) {
88      gtag('event', 'CompleteRegistration', {
89        'method': 'Google'
90      });
91    }
92  });
93</script>
93
94<!-- Added by Ronald, 2023-7-1 -->
95
96<!-- Meta Pixel Code -->
97<!-- 
97<script>
vendor: 408 bytes, lines 97-106
97
98!function(f,b,e,v,n,t,s)
99{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
100n.callMethod.apply(n,arguments):n.queue.push(arguments)};
101if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
102n.queue=[];t=b.createElement(e);t.async=!0;
103t.src=v;s=b.getElementsByTagName(e)[0];
104s.parentNode.insertBefore(t,s)}(window, document,'script',
105'https://connect.facebook.net/en_US/fbevents.js');
106fbq('init', '
1061175251526955733
vendor: 32 bytes, lines 106-107
106');
107fbq('track', 'PageView');
108</script>
108
109<noscript><img height="1" width="1" style="display:none"
110src="https://www.facebook.com/tr?id=1175251526955733&ev=PageView&noscript=1"
111/></noscript> -->
112<!-- End Meta Pixel Code -->
113<!-- Requested by Rachel, 2024-07-15 -->
114
115<!-- Meta Pixel Code -->
116<script>
vendor: 545 bytes, lines 116-135
116
117  ! function(f, b, e, v, n, t, s) {
118    if (f.fbq) return;
119    n = f.fbq = function() {
120      n.callMethod ?
121        n.callMethod.apply(n, arguments) : n.queue.push(arguments)
122    };
123    if (!f._fbq) f._fbq = n;
124    n.push = n;
125    n.loaded = !0;
126    n.version = '2.0';
127    n.queue = [];
128    t = b.createElement(e);
129    t.async = !0;
130    t.src = v;
131    s = b.getElementsByTagName(e)[0];
132    s.parentNode.insertBefore(t, s)
133  }(window, document, 'script',
134    'https://connect.facebook.net/en_US/fbevents.js');
135  fbq('init', '
135532491535639227
vendor: 34 bytes, lines 135-136
135');
136  fbq('track', 'PageView');
137</script>
137
138<noscript><img height="1" width="1" style="display:none" src=https://www.facebook.com/tr?id=532491535639227&ev=PageView&noscript=1 /></noscript>
139<!-- End Meta Pixel Code -->
140<!-- Requested by Nicky, 2023-2-15 -->
141
142<!-- Meta Pixel Code -->
143<script>
vendor: 545 bytes, lines 143-162
143
144  ! function(f, b, e, v, n, t, s) {
145    if (f.fbq) return;
146    n = f.fbq = function() {
147      n.callMethod ?
148        n.callMethod.apply(n, arguments) : n.queue.push(arguments)
149    };
150    if (!f._fbq) f._fbq = n;
151    n.push = n;
152    n.loaded = !0;
153    n.version = '2.0';
154    n.queue = [];
155    t = b.createElement(e);
156    t.async = !0;
157    t.src = v;
158    s = b.getElementsByTagName(e)[0];
159    s.parentNode.insertBefore(t, s)
160  }(window, document, 'script',
161    'https://connect.facebook.net/en_US/fbevents.js');
162  fbq('init', '
1622469630220087970
vendor: 34 bytes, lines 162-163
162');
163  fbq('track', 'PageView');
164</script>
164
165<noscript><img height="1" width="1" style="display:none"
166    src="https://www.facebook.com/tr?id=2469630220087970&ev=PageView&noscript=1" /></noscript>
167<!-- End Meta Pixel Code -->
168<!-- Requested by Jessica, 2024-07-15 -->
169    <!-- Google Tag Manager --> <!-- Requested by S.L., 2021-10-5 -->
170    
170<script>
vendor: 568 bytes, lines 170-184
170
171        (function(w, d, s, l, i) {
172            w[l] = w[l] || [];
173            w[l].push({
174                'gtm.start': new Date().getTime(),
175                event: 'gtm.js'
176            });
177            var f = d.getElementsByTagName(s)[0],
178                j = d.createElement(s),
179                dl = l != 'dataLayer' ? '&l=' + l : '';
180            j.async = true;
181            j.src =
182                'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
183            f.parentNode.insertBefore(j, f);
184        })(window, document, 'script', 'dataLayer', '
184GTM-T4FPDT7
vendor: 9 bytes, lines 184-185
184');
185    
185</script>
185
186    <!-- End Google Tag Manager -->
187
188    <meta charset="utf-8">
189    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
190    <meta name="description" content="10年激光脫毛經驗,國際認可原廠培訓激光脫毛治療師。全線採用美國權威CANDELA GentleLASE Pro-755nm激光脫毛儀器。立即登記免費體驗,享受專業極緻脫毛體驗。">
191    <meta property="og:image" itemprop="image" content="https://20beauty.com.hk/images/banner/banner-serviceplan-armpit-vline888-03-sq.jpg">
192    <meta property="og:image:secure_url" itemprop="image" content="https://20beauty.com.hk/images/banner/banner-serviceplan-armpit-vline888-03-sq.jpg">
193
194    <meta name="google-site-verification" content="qjfNkE9fooaa6SzoG437_dzN2yJepU21NwAHo6qkVCE" /> <!-- Added by S.L., 2021-9-21 -->
195
196    <title>20BEAUTY|No.1 激光脫毛首選|80萬人次脫毛見證</title>
197
198    <link href="images/favicon.png" type="image/x-icon" rel="shortcut icon">
199    <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css">
200    <link href="css/init.css" rel="stylesheet" type="text/css">
201    <link href="js/wow/animate.css" rel="stylesheet" type="text/css">
202    <link href="js/slick/slick.css" rel="stylesheet" type="text/css">
203    <link href="js/slick/slick-theme.css" rel="stylesheet" type="text/css">
204    <link href="js/datedropper3/datedropper.css" rel="stylesheet" type="text/css">
205    <link href="js/fancybox/jquery.fancybox.min.css" rel="stylesheet" type="text/css">
206
207    
207<script src="js/jquery/jquery-2.0.3.min.js" type="text/javascript"></script>
207
208    
208<script src="js/essentials/essentials.js" type="text/javascript"></script>
208
209    
209<script src="js/wow/wow.min.js" type="text/javascript"></script>
209
210    
210<script src="js/slick/slick.min.js" type="text/javascript"></script>
210
211    
211<script src="js/datedropper3/datedropper.js" type="text/javascript"></script>
211
212    
212<script src="js/hoursController/hoursController.js" type="text/javascript"></script>
212
213    
213<script src="js/formOperation/formOperation.js" type="text/javascript"></script>
213
214    
214<script src="js/marquee/marquee.js" type="text/javascript"></script>
214
215    
215<script src="js/fancybox/jquery.fancybox.min.js" type="text/javascript"></script>
215
216
217    <style type="text/css">
218        #banner-main {
219            background-image: url(images/banner/banner-homepage-01.jpg);
220            background-size: cover;
221            background-position: center center;
222            height: 345px;
223        }
224
225        /* sm */
226        @media (min-width: 768px) {
227            #banner-main {
228                background-image: url(images/banner/banner-homepage-01.jpg);
229                background-size: cover;
230                background-position: center center;
231                height: 500px;
232            }
233        }
234
235        /* md */
236        @media (min-width: 992px) {}
237
238        /* lg */
239        @media (min-width: 1200px) {}
240
241        .fancybox-content {
242            padding: 0;
243        }
244    </style>
245
246    
246<script type="text/javascript">
247        $(function() {
248            $.essentials({
249                whatsapp: 'component/icon-whatsapp-web-homepage/',
250            });
251            $.formOperation();
252            new WOW().init();
253
254            $('.xs-slider-container').slick({
255                arrows: false,
256                dots: true,
257                centerMode: true,
258                centerPadding: '24px',
259                infinite: false,
260                mobileFirst: true,
261                responsive: [{
262                    breakpoint: 480,
263                    settings: "unslick"
264                }]
265            });
266
267            $(document).ajaxStop(function() {
268                headerHeight = $('header').outerHeight();
269                var stickyBarHeight = $('#sticky-bar').outerHeight();
270                console.log('ajaxStop Header Height: ' + headerHeight + 'px');
271                $('#header_comparison').css({
272                    'position': 'sticky',
273                    'top': headerHeight + stickyBarHeight,
274                    'background-color': 'rgba(255,255,255,1)',
275                    // 'border-bottom':'0'
276                });
277
278                $('#sticky-bar').css({
279                    'position': 'sticky',
280                    'top': headerHeight,
281                });
282
283                $('#sticky-bar .sticky-bar').css({
284                    'backdrop-filter': 'blur(20px)',
285                    '-webkit-backdrop-filter': 'blur(20px)',
286                    // 'border-bottom':'1px solid rgba(100,100,100,0.15)',
287                    'border-bottom': '1px solid rgba(255,255,255,0.25)',
288                    // 'border-top':'1px solid rgba(100,100,100,0.15)',
289                    // 'background-color':'rgba(255,255,255,0.85)'
290                    'background-color': 'rgba(229, 144, 144, 0.4)'
291                });
292            });
293
294            $('#banner-slider').slick({
295                arrow: false,
296                dots: true,
297                autoplay: true,
298                autoplaySpeed: 5000
299            });
300
301            $('marquee').marquee();
302
303            // Session Storage (Popup)
304            // if(sessionStorage) {
305            //     if(!sessionStorage.getItem('popyet') || sessionStorage.getItem('popyet') !== 'popped'){
306            //         setTimeout(function(){ 
307            //             $.fancybox.open({
308            //                 src: '#pop'
309            //             });
310            //             sessionStorage.setItem('popyet', 'popped');
311            //             console.log('"popyet" has just set to "popped"');
312            //         }, 2000);
313            //     }
314            //     if(sessionStorage.getItem('popyet') == 'popped') {
315            //         console.log('The Up is already POPPED');
316            //     }
317            // }
318
319            // Offer Banner
320            // Import JSON
321            function getData(url) {
322                var data;
323                $.ajax({
324                    async: false, //thats the trick
325                    url: url,
326                    dataType: 'json',
327                    cache: false,
328                    success: function(response) {
329                        data = response;
330                    }
331                });
332                return data;
333            }
334
335            var json = getData('js/data/data_other_offer.json');
336
337            console.log('JSON Data:');
338            console.log(json);
339
340            // Filling Banners' Content
341            var totalBanner = $('.offer-banner').length;
342
343            for (i = 0; i < totalBanner; i++) {
344                var promotion = $('.offer-banner').eq(i).attr('data-promotion');
345                console.log("Promotion: " + promotion);
346
347                for (y = 0; y < json.length; y++) {
348                    if (json[y]['id'] == promotion) {
349                        console.log('Title: ' + json[y]['title']);
350
351                        $('.offer-banner').eq(i).attr('href', json[y]['url']);
352
353                        if ($('.offer-banner').eq(i).attr('data-grid') == 'sq') {
354                            $('.offer-banner').eq(i).css({
355                                'background-image': 'url(' + json[y]['thumb_sq'] + ')'
356                            });
357                        } else {
358                            $('.offer-banner').eq(i).css({
359                                'background-image': 'url(' + json[y]['thumb'] + ')'
360                            });
361                        }
362
363
364                        $('.offer-banner').eq(i).find('[data-offer-title]').html(json[y]['title']);
365                        $('.offer-banner').eq(i).find('[data-offer-subtitle]').html(json[y]['subtitle']);
366                    }
367                }
368
369                console.log('*********');
370            }
371
372            $.hoursController();
373        });
374    </script>
374
375    
375<script>
376function isValidEmailAddress(emailAddress) {
377    var pattern = /^([a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)*|"((([ \t]*\r\n)?[ \t]+)?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*(([ \t]*\r\n)?[ \t]+)?")@(([a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i;
378    return pattern.test(emailAddress);
379}
380</script>
380<style>
381    .grecaptcha-badge {
382        display: none;
383    }
384</style>
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425  <!-- Google Tag Manager (RT / All in one gtg) -->
426  
426<script>
vendor: 339 bytes, lines 426-430
426(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
427  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
428  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
429  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
430  })(window,document,'script','dataLayer','
430GTM-KS8K99B
vendor: 3 bytes, line 430
430');
430</script>
430
431  <!-- End Google Tag Manager -->
vendor: 65 bytes, lines 431-432
431
432<script src="https://www.recaptcha.net/recaptcha/api.js?render=
4326Leqgh4iAAAAAJnAOhZNhxjxZiGkkpJyNVB3CD_u
vendor: 23 bytes, line 432
432&lang=zh-TW"></script>
433<script>window.__geetestV4ScriptRequested = true;</script>
vendor: 1 bytes, line 433
433
434<script src="https://static.geetest.com/v4/gt4.js"></script>
434
435    <meta name="facebook-domain-verification" content="m99wyywogztgswc74zw4rtnhz9qelb" />
436</head>
437
438<body>
439
440    
441<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 441-442
441
442<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
442GTM-MRRW6VS
vendor: 83 bytes, lines 442-443
442"
443height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
444<!-- End Google Tag Manager (noscript) -->
445        <!-- Google Tag Manager (noscript) (RT / All in one gtg) -->
vendor: 73 bytes, lines 445-446
445
446    <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
446GTM-KS8K99B
vendor: 93 bytes, lines 446-448
446"
447    height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
448    
448<!-- End Google Tag Manager (noscript) -->
449
450
451
452
453
454
455    <!-- Google Tag Manager (noscript) --> <!-- Requested by S.L., 2021-10-5 -->
vendor: 73 bytes, lines 455-456
455
456    <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
456GTM-T4FPDT7
vendor: 101 bytes, lines 456-458
456"
457            height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
458    
458<!-- End Google Tag Manager (noscript) -->
459
460    <main>
461        <!-- Sticky Bar/ -->
462        <section id="sticky-bar" style="z-index: 30;">
463            <div class="container ">
464                <div class="sticky-bar ha_center_xs pad_xs_s_y pad_sm_m_y">
465                    <marquee class="noto-sans-hk-regular f-2-xs f-3-sm" scrollamount="2">(迎新大獎賞)新客戶首次購買任何合資格療程,即可賺得50%醫美療程價值回贈!&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;新客戶網上預付即送全效淨白嫩肌身體護理乙次。</marquee>
466                </div>
467            </div>
468        </section>
469        <!-- /Sticky Bar -->
470
471        <!-- Banner Section/ -->
472        <section id="banner_container" class="container">
473            <div id="banner-slider">
474                <div>
475                    <a href="fullface3000">
476                        <picture>
477                            <source media="(min-width: 992px)" srcset="images/banner/banner-fullface3000-01-d.jpg">
478                            <source media="(min-width: 768px)" srcset="images/banner/banner-fullface3000-01-d.jpg">
479                            <img src="images/banner/banner-fullface3000-01-m.jpg" class="w-100-xs">
480                        </picture>
481                    </a>
482                </div>
483
484                <!-- <div>
485                    <a href="lgpromo888">
486                        <picture>
487                            <source media="(min-width: 992px)" srcset="images/banner/banner-lgpromo888-01-d.jpg">
488                            <source media="(min-width: 768px)" srcset="images/banner/banner-lgpromo888-01-d.jpg">
489                            <img src="images/banner/banner-lgpromo888-01-m.jpg" class="w-100-xs">
490                        </picture>
491                    </a>
492                </div> -->
493
494
495
496                <!-- <div>
497                    <a href="promotion-Leg">
498                    <picture>
499                        <source media="(min-width: 992px)" srcset="images/banner/banner-promotion-leg-01-d.jpg">
500                        <source media="(min-width: 768px)" srcset="images/banner/banner-promotion-leg-01-d.jpg">
501                        <img src="images/banner/banner-promotion-leg-01-m.jpg" class="w-100-xs">
502                    </picture>
503                    </a>
504                </div> -->
505
506                <!-- <div>
507                    <a href="promotion-body">
508                        <picture>
509                            <source media="(min-width: 992px)" srcset="images/banner/banner-promotion-body-01-d.jpg">
510                            <source media="(min-width: 768px)" srcset="images/banner/banner-promotion-body-01-d.jpg">
511                            <img src="images/banner/banner-promotion-body-01-m.jpg" class="w-100-xs" alt="All In One全身激光脫毛 HK$ 19,800起">
512                        </picture>
513                    </a>
514                </div> -->
515
516                <!-- <div>
517                    <a href="student_promo">
518                        <picture>
519                            <source media="(min-width: 992px)" srcset="images/banner/banner-student_promo-04-d.jpg">
520                            <source media="(min-width: 768px)" srcset="images/banner/banner-student_promo-04-d.jpg">
521                            <img src="images/banner/banner-student_promo-04-m.jpg" class="w-100-xs" alt="學生激光脫毛專享  HK$ 388/6次">
522                        </picture>
523                    </a>
524                </div> -->
525
526                <!--                 <div>
527                    <a href="serviceplan380">
528                        <picture>
529                            <source media="(min-width: 992px)" srcset="images/banner/banner-serviceplan380-02-d.jpg">
530                            <source media="(min-width: 768px)" srcset="images/banner/banner-serviceplan380-02-d.jpg">
531                            <img src="images/banner/banner-serviceplan380-02-m.jpg" class="w-100-xs" alt="HK$ 380全身任選一個部位">
532                        </picture>
533                    </a>
534                </div> -->
535
536                <!-- <div>
537                    <a href="NOACNE暗瘡療程">
538                        <picture>
539                            <source media="(min-width: 992px)" srcset="images/banner/banner-offer-noacne-01-d.jpg">
540                            <source media="(min-width: 768px)" srcset="images/banner/banner-offer-noacne-01-d.jpg">
541                            <img src="images/banner/banner-offer-noacne-01-m.jpg" class="w-100-xs" alt="No Acne 還原肌療程 HK$388">
542                        </picture>
543                    </a>
544                </div> -->
545
546                <div>
547                    <a href="AcneProCure">
548                        <picture>
549                            <source media="(min-width: 992px)" srcset="images/banner/banner-acne-pro-cure-01-d.jpg">
550                            <source media="(min-width: 768px)" srcset="images/banner/banner-acne-pro-cure-01-d.jpg">
551                            <img src="images/banner/banner-acne-pro-cure-01-m.jpg" class="w-100-xs">
552                        </picture>
553                    </a>
554                </div>
555            </div>
556        </section>
557        <!-- /Banner Section -->
558
559        <!-- <br> -->
560
561        <!-- Promotion/ -->
562        <section>
563            <div class="container">
564                <div class="ha_center_xs h-separator">
565                    <h3><span class="bg_white pad_xs_m_l pad_xs_m_r">精選優惠</span></h3>
566                </div>
567
568                <br>
569
570                <div class="xs-slider-container g-container-xs g-tmpcol-4-sm g-gap-6-xs">
571                    <!-- Grid/ -->
572                    <a href="armpit-bikinioffer" class="block_xs link_noline link_black grid-item mar_xs_m_b mar_sm_0_b relative g-2-sm banner wow fadeInUp" style="background-image:url(images/banner/banner-bikini-02.jpg);">
573                        <div class="grid-item-mask">
574                            <div class="flex_container_md alignitems_center_md">
575                                <div class="flex_1_md mar_xs_m_r nowrap font_xs_l" data-offer-title>雙腋&times;比堅尼</div>
576                                <div class="font_md_l" data-offer-subtitle>激光脫毛&bull;HK$ 4,400<small>起</small></div>
577                            </div>
578                        </div>
579                    </a>
580                    <!-- /Grid -->
581
582                    <!-- Grid/ -->
583                    <a href="offer-thermatrix" class="block_xs grid-item g-2-sm relative mar_xs_m_b mar_sm_0_b banner link_noline link_black wow fadeInUp" data-wow-delay="0.1s" style="background-image:url(images/banner/banner-offer-thermatrix-01-d.jpg);">
584                        <div class="grid-item-mask">
585                            <div class="flex_container_md alignitems_center_md">
586                                <div class="flex_1_md mar_xs_m_r nowrap font_xs_l" data-offer-title>
586AI膠原BB再生槍</div>
587                                <div class="font_md_l" data-offer-subtitle>HK$ 388</div>
588                            </div>
589                        </div>
590                    </a>
591                    <!-- /Grid -->
592
593                    <!-- Grid/ -->
594                    <!-- <a href="javascript:void(0);" class="block_xs link_noline link_black grid-item mar_xs_m_b mar_sm_0_b relative g-2-sm banner offer-banner wow fadeInUp" data-wow-delay="0.2s" data-promotion="promotion-arm">
595                        <div class="grid-item-mask">
596                            <div class="flex_container_md alignitems_center_md">
597                                <div class="flex_1_md mar_xs_m_r nowrap font_xs_l" data-offer-title>Title</div>
598                                <div class="font_md_l" data-offer-subtitle>Subtitle</div>
599                            </div>
600                        </div>
601                    </a> -->
602                    <!-- /Grid -->
603
604                    <!-- Grid/ -->
605                    <!-- <a href="javascript:void(0);" class="block_xs link_noline link_black grid-item mar_xs_m_b mar_sm_0_b relative g-2-sm banner offer-banner wow fadeInUp" data-wow-delay="0.3s" data-promotion="promotion-leg">
606                        <div class="grid-item-mask">
607                            <div class="flex_container_md alignitems_center_md">
608                                <div class="flex_1_md mar_xs_m_r nowrap font_xs_l" data-offer-title>Title</div>
609                                <div class="font_md_l" data-offer-subtitle>Subtitle</div>
610                            </div>
611                        </div>
612                    </a> -->
613                    <!-- /Grid -->
614                </div>
615            </div>
616        </section>
617        <!-- /Promotion -->
618
619        <br>
620
621        <!-- Movie Section/ -->
622        <!-- <section>
623            <div class="container">
624                <div class="ha_center_xs h-separator">
625                    <div class="inblk_xs bg_white">
626                        <h3><span class="bg_white pad_xs_m_l pad_xs_m_r">IN LOVE WITH YOU</span></h3>
627                        <h3><span class="bg_white pad_xs_m_l pad_xs_m_r">光淨美肌 炫亮如初</span></h3>
628                    </div>
629                </div>
630
631                <div class="pad_xs_xxl_y">
632                    <video poster="movies/branding.jpg" controls playsinline class="w-100-xs">
633                        <source src="movies/branding-03.mp4" type="video/mp4">
634                        Your browser does not support the video tag.
635                    </video>
636                </div>
637            </div>
638        </section> -->
639        <!-- /Movie Section -->
640
641        <!-- <br> -->
642
643        <!-- Category/ -->
644        <section>
645            <div class="container">
646                <div class="ha_center_xs h-separator">
647                    <h3><span class="bg_white pad_xs_m_l pad_xs_m_r">激光脫毛收費</span></h3>
648                </div>
649
650                <br>
651                <div class="g-container-xs g-tmpcol-3-sm g-gap-6-xs">
652                    <!-- Grid/ -->
653                    <a href="serviceplan-face" class="relative link_noline link_black block_xs grid-item banner" style="background-image:url(images/banner/banner-face-01.jpg);">
654                        <div class="grid-item-mask flex_container_xs alignitems_center_xs">
655                            <div class="wow fadeIn">
656                                <div class="font_md_l">臉部</div>
657                                <div class="font_xs_s">上唇</div>
658                            </div>
659                            <div class="wow fadeInUp" data-wow-delay="0.15s">
660                                <div class="font_md_xl">HK$ 3,000</div>
661                            </div>
662                        </div>
663                    </a>
664                    <!-- /Grid -->
665
666                    <!-- Grid/ -->
667                    <a href="serviceplan-hairline" class="grid-item relative block_xs link_noline link_black banner" style="background-image:url(images/banner/banner-hairline-01.jpg);">
668                        <div class="grid-item-mask flex_container_xs alignitems_center_xs">
669                            <div class="wow fadeIn">
670                                <div class="font_md_l">髮線</div>
671                                <div class="font_xs_s">髮鬢</div>
672                            </div>
673                            <div class="wow fadeInUp" data-wow-delay="0.15s">
674                                <div class="font_md_xl">HK$ 4,500</div>
675
676                            </div>
677                        </div>
678                    </a>
679                    <!-- /Grid -->
680
681                    <!-- Grid/ -->
682                    <a href="serviceplan-armpit" class="grid-item relative block_xs link_noline link_black banner" style="background-image:url(images/banner/banner-armpit-03.jpg);">
683                        <div class="grid-item-mask flex_container_xs alignitems_center_xs">
684                            <div class="wow fadeIn">
685                                <div class="font_md_l">雙腋</div>
686                                <div class="font_xs_s">查看優惠</div>
687                            </div>
688                            <div class="wow fadeInUp" data-wow-delay="0.15s">
689                                <div class="font_md_xl">HK$ 888</div>
690                            </div>
691                        </div>
692                    </a>
693                    <!-- /Grid -->
694
695                    <!-- Grid/ -->
696                    <a href="serviceplan-hand" class="grid-item relative block_xs link_noline link_black banner" style="background-image:url(images/banner/banner-hand-01.jpg);">
697                        <div class="grid-item-mask flex_container_xs alignitems_center_xs">
698                            <div class="wow fadeIn">
699                                <div class="font_md_l">手部</div>
700                                <div class="font_xs_s">手指</div>
701                            </div>
702                            <div class="wow fadeInUp" data-wow-delay="0.15s">
703                                <div class="font_md_xl">HK$ 4,000</div>
704                            </div>
705                        </div>
706                    </a>
707                    <!-- /Grid -->
708
709                    <!-- Grid/ -->
710                    <a href="serviceplan-chest" class="grid-item relative block_xs link_noline link_black banner" style="background-image:url(images/banner/banner-chest-01.jpg);">
711                        <div class="grid-item-mask flex_container_xs alignitems_center_xs">
712                            <div class="wow fadeIn">
713                                <div class="font_md_l">胸腹</div>
714                                <div class="font_xs_s">上腹線</div>
715                            </div>
716                            <div class="wow fadeInUp" data-wow-delay="0.15s">
717                                <div class="font_md_xl">
717HK$ 3,800</div>
718                            </div>
719                        </div>
720                    </a>
721                    <!-- /Grid -->
722
723                    <!-- Grid/ -->
724                    <a href="serviceplan-shoulder" class="grid-item relative block_xs link_noline link_black banner" style="background-image:url(images/banner/banner-shoulder-01.jpg);">
725                        <div class="grid-item-mask flex_container_xs alignitems_center_xs">
726                            <div class="wow fadeIn">
727                                <div class="font_md_l">肩背</div>
728                                <div class="font_xs_s">肩膊</div>
729                            </div>
730                            <div class="wow fadeInUp" data-wow-delay="0.15s">
731                                <div class="font_md_xl">HK$ 3,800</div>
732                            </div>
733                        </div>
734                    </a>
735                    <!-- /Grid -->
736
737                    <!-- Grid/ -->
738                    <a href="serviceplan-bikini" class="grid-item relative block_xs link_noline link_black banner" style="background-image:url(images/banner/banner-bikini-01.jpg);">
739                        <div class="grid-item-mask flex_container_xs alignitems_center_xs">
740                            <div class="wow fadeIn">
741                                <div class="font_md_l">比堅尼</div>
742                                <div class="font_xs_s">比堅尼橫位</div>
743                            </div>
744                            <div class="wow fadeInUp" data-wow-delay="0.15s">
745                                <div class="font_md_xl">HK$ 5,500</div>
746                            </div>
747                        </div>
748                    </a>
749                    <!-- /Grid -->
750
751                    <!-- Grid/ -->
752                    <a href="serviceplan-foot" class="grid-item relative block_xs link_noline link_black banner" style="background-image:url(images/banner/banner-foot-01.jpg);">
753                        <div class="grid-item-mask flex_container_xs alignitems_center_xs">
754                            <div class="wow fadeIn">
755                                <div class="font_md_l">腳部</div>
756                                <div class="font_xs_s">腳板背</div>
757                            </div>
758                            <div class="wow fadeInUp" data-wow-delay="0.15s">
759                                <div class="font_md_xl">HK$ 4,000</div>
760                            </div>
761                        </div>
762                    </a>
763                    <!-- /Grid -->
764
765                    <!-- Grid/ -->
766                    <a href="serviceplan-body" class="grid-item relative block_xs link_noline link_black banner" style="background-image:url(images/banner/banner-body-01.jpg);">
767                        <div class="grid-item-mask flex_container_xs alignitems_center_xs">
768                            <div class="wow fadeIn">
769                                <div class="font_md_l">全身及全臉</div>
770                                <div class="font_xs_s">查看優惠</div>
771                            </div>
772                            <div class="wow fadeInUp" data-wow-delay="0.15s">
773                                <div class="font_md_xl">HK$ 44,000</div>
774                            </div>
775                        </div>
776                    </a>
777                    <!-- /Grid -->
778                </div>
779
780                <div class="home-content">
781                    <ul>
782                        <li><a href="https://20beauty.com.hk/promotion-gp">美容</a></li>
783                        <li><a href="https://20beauty.com.hk/promotion-gp">醫美</a></li>
784                        <li><a href="https://20beauty.com.hk/promotion-gp">皮膚保養</a></li>
785                        <li><a href="https://20beauty.com.hk/promotion-gp">美容推介</a></li>
786                        <li><a href="https://20beauty.com.hk/promotion-gp">美容推薦</a></li>
787                        <li><a href="https://20beauty.com.hk/promotion-gp">美容院推介</a></li>
788                        <li><a href="https://20beauty.com.hk/promotion-gp">美容院邊間好</a></li>
789                        <li><a href="https://20beauty.com.hk/promotion-gp">美容院邊間平</a></li>
790                        <li><a href="https://20beauty.com.hk/promotion-gp">美容院邊間抵</a></li>
791                        <li><a href="https://20beauty.com.hk/promotion-gp">美容院平</a></li>
792                        <li><a href="https://20beauty.com.hk/promotion-gp">美容院抵</a></li>
793                        <li><a href="https://20beauty.com.hk/promotion-gp">美容院好</a></li>
794                        <li><a href="https://20beauty.com.hk/promotion-gp">醫美邊間好</a></li>
795                        <li><a href="https://20beauty.com.hk/promotion-gp">醫美邊間平</a></li>
796                        <li><a href="https://20beauty.com.hk/promotion-gp">醫美邊間抵</a></li>
797                        <li><a href="https://20beauty.com.hk/promotion-gp">醫美推薦</a></li>
798                        <li><a href="https://20beauty.com.hk/promotion-gp">醫美推介</a></li>
799                        <li><a href="https://20beauty.com.hk/promotion-gp">美容優惠</a></li>
800                        <li><a href="https://20beauty.com.hk/promotion-gp">facial</a></li>
801                        <li><a href="https://20beauty.com.hk/promotion-gp">facial優惠</a></li>
802                        <li><a href="https://20beauty.com.hk/promotion-gp">facial推薦</a></li>
803                        <li><a href="https://20beauty.com.hk/promotion-gp">facial推介</a></li>
804                        <li><a href="https://20beauty.com.hk/promotion-gp">新娘護膚</a></li>
805                        <li><a href="https://20beauty.com.hk/promotion-gp">新娘急救皮膚</a></li>
806                        <li><a href="https://20beauty.com.hk/promotion-gp">皮膚保養</a></li>
807                        <li><a href="https://20beauty.com.hk/promotion-gp">護膚教學</a></li>
808                        <li><a href="https://20beauty.com.hk/promotion-gp">保養教學</a></li>
809                        <li><a href="https://20beauty.com.hk/promotion-gp">暗瘡</a></li>
810                        <li><a href="https://20beauty.com.hk/promotion-gp">暗瘡印</a></li>
811                        <li><a href="https://20beauty.com.hk/promotion-gp">粉刺</a></li>
812                        <li><a href="https://20beauty.com.hk/promotion-gp">黑頭</a></li>
813                        <li><a href="https://20beauty.com.hk/promotion-gp">清黑頭</a></li>
814                        <li><a href="https://20beauty.com.hk/promotion-gp">口罩肌</a></li>
815                        <li><a href="https://20beauty.com.hk/promotion-gp">急救補水</a></li>
816                        <li><a href="https://20beauty.com.hk/promotion-gp">皮膚急救</a></li>
817                        <li><a href="https://20beauty.com.hk/promotion-gp">石頭瘡</a></li>
818                        <li><a href="https://20beauty.com.hk/promotion-gp">去疤</a></li>
819                        <li><a href="https://20beauty.com.hk/promotion-gp">油性皮膚</a></li>
820                        <li><a href="https://20beauty.com.hk/promotion-gp">乾性皮膚</a></li>
821                        <li><a href="https://20beauty.com.hk/promotion-gp">毛孔粗大</a></li>
822                        <li><a href="https://20beauty.com.hk/promotion-gp">皮膚乾燥</a></li>
823
824                        <li><a href="https://20beauty.com.hk/offer-thermatrix">美容</a></li>
825                        <li><a href="https://20beauty.com.hk/offer-thermatrix">醫美</a></li>
826                        <li><a href="https://20beauty.com.hk/offer-thermatrix">皮膚保養</a></li>
827                        <li><a href="https://20beauty.com.hk/offer-thermatrix">美容推介</a></li>
828                        <li><a href="https://20beauty.com.hk/offer-thermatrix">美容推薦</a></li>
829                        <li><a href="https://20beauty.com.hk/offer-thermatrix">美容院推薦</a></li>
830                        <li><a href="https://20beauty.com.hk/offer-thermatrix">美容院推介</a></li>
831                        <li><a href="https://20beauty.com.hk/offer-thermatrix">美容院邊間好</a></li>
832                        <li><a href="https://20beauty.com.hk/offer-thermatrix">美容院平</a></li>
833                        <li><a href="https://20beauty.com.hk/offer-thermatrix">美容院抵</a></li>
834                        <li><a href="https://20beauty.com.hk/offer-thermatrix">美容院好</a></li>
835                        <li><a href="https://20beauty.com.hk/offer-thermatrix">醫美邊間好</a></li>
836                        <li><a href="https://20beauty.com.hk/offer-thermatrix">醫美邊間平</a></li>
837                        <li><a href="https://20beauty.com.hk/offer-thermatrix">醫美邊間抵</a></li>
838                        <li><a href="https://20beauty.com.hk/offer-thermatrix">醫美推薦</a></li>
839                        <li><a href="https://20beauty.com.hk/offer-thermatrix">醫美推介</a></li>
840                        <li><a href="https://20beauty.com.hk/offer-thermatrix">美容優惠</a></li>
841                        <li><a href="https://20beauty.com.hk/offer-thermatrix">facial</a></li>
842                        <li><a href="https://20beauty.com.hk/offer-thermatrix">facial優惠</a></li>
843                        <li><a href="https://20beauty.com.hk/offer-thermatrix">facial推薦</a></li>
844                        <li><a href="https://20beauty.com.hk/offer-thermatrix">facial推介</a></li>
845                        <li><a href="https://20beauty.com.hk/offer-thermatrix">新娘護膚</a></li>
846                        <li><a href="https://20beauty.com.hk/offer-thermatrix">皮膚保養</a></li>
847                        <li><a href="https://20beauty.com.hk/offer-thermatrix">新娘急救皮膚</a></li>
848                        <li><a href="https://20beauty.com.hk/offer-thermatrix">護膚教學</a></li>
849                        <li><a href="https://20beauty.com.hk/offer-thermatrix">保養教學</a></li>
850                        <li><a href="https://20beauty.com.hk/offer-thermatrix">骨膠原</a></li>
851                        <li><a href="https://20beauty.com.hk/offer-thermatrix">膠原</a></li>
852                        <li><a href="https://20beauty.com.hk/offer-thermatrix">暗瘡印</a></li>
853                        <li><a href="https://20beauty.com.hk/offer-thermatrix">細紋</a></li>
854                        <li><a href="https://20beauty.com.hk/offer-thermatrix">黑眼圈</a></li>
855                        <li><a href="https://20beauty.com.hk/offer-thermatrix">眼袋</a></li>
856                        <li><a href="https://20beauty.com.hk/offer-thermatrix">毛孔粗大</a></li>
857                        <li><a href="https://20beauty.com.hk/offer-thermatrix">去印</a></li>
858                        <li><a href="https://20beauty.com.hk/offer-thermatrix">疤痕</a></li>
859                        <li><a href="https://20beauty.com.hk/offer-thermatrix">去疤</a></li>
860                        <li><a href="https://20beauty.com.hk/offer-thermatrix">去眼袋</a></li>
861                        <li><a href="https://20beauty.com.hk/offer-thermatrix">粉刺</a></li>
862                        <li><a href="https://20beauty.com.hk/offer-thermatrix">美白</a></li>
863                        <li><a href="https://20beauty.com.hk/offer-thermatrix">護膚</a></li>
864
865                        <li><a href="https://20beauty.com.hk/極潤水光波">美容院推薦</a></li>
866                        <li><a href="https://20beauty.com.hk/極潤水光波">皮膚保養</a></li>
867                        <li><a href="https://20beauty.com.hk/極潤水光波">美容推介</a></li>
868                        <li><a href="https://20beauty.com.hk/極潤水光波">美容推薦</a></li>
869                        <li><a href="https://20beauty.com.hk/極潤水光波">美容院推介</a></li>
870                        <li><a href="https://20beauty.com.hk/極潤水光波">美容院邊間好</a></li>
871                        <li><a href="https://20beauty.com.hk/極潤水光波">美容院平</a></li>
872                        <li><a href="https://20beauty.com.hk/極潤水光波">美容院抵</a></li>
873                        <li><a href="https://20beauty.com.hk/極潤水光波">美容院好</a></li>
874                        <li><a href="https://20beauty.com.hk/極潤水光波">醫美邊間好</a></li>
875                        <li><a href="https://20beauty.com.hk/極潤水光波">醫美邊間平</a></li>
876                        <li><a href="https://20beauty.com.hk/極潤水光波">醫美邊間抵</a></li>
877                        <li><a href="https://20beauty.com.hk/極潤水光波">醫美推薦</a></li>
878                        <li><a href="https://20beauty.com.hk/極潤水光波">醫美推介</a></li>
879                        <li><a href="https://20beauty.com.hk/極潤水光波">美容優惠</a></li>
880                        <li><a href="https://20beauty.com.hk/極潤水光波">facial</a></li>
881                        <li><a href="https://20beauty.com.hk/極潤水光波">facial優惠</a></li>
882                        <li><a href="https://20beauty.com.hk/極潤水光波">facial推薦</a></li>
883                        <li><a href="https://20beauty.com.hk/極潤水光波">facial推介</a></li>
884                        <li><a href="https://20beauty.com.hk/極潤水光波">新娘護膚</a></li>
885                        <li><a href="https://20beauty.com.hk/極潤水光波">皮膚保養</a></li>
886                        <li><a href="https://20beauty.com.hk/極潤水光波">護膚教學</a></li>
887                        <li><a href="https://20beauty.com.hk/極潤水光波">急救補水</a></li>
888                        <li><a href="https://20beauty.com.hk/極潤水光波">皮膚急救</a></li>
889                        <li><a href="https://20beauty.com.hk/極潤水光波">毛孔粗大</a></li>
890                        <li><a href="https://20beauty.com.hk/極潤水光波">深層保濕</a></li>
891                        <li><a href="https://20beauty.com.hk/極潤水光波">保濕</a></li>
892                        <li><a href="https://20beauty.com.hk/極潤水光波">暗瘡</a></li>
893                        <li><a href="https://20beauty.com.hk/極潤水光波">暗瘡印</a></li>
894                        <li><a href="https://20beauty.com.hk/極潤水光波">粉刺</a></li>
895                        <li><a href="https://20beauty.com.hk/極潤水光波">黑頭</a></li>
896                        <li><a href="https://20beauty.com.hk/極潤水光波">去印</a></li>
897                        <li><a href="https://20beauty.com.hk/極潤水光波">清黑頭</a></li>
898                        <li><a href="https://20beauty.com.hk/極潤水光波">口罩肌</a></li>
899                        <li><a href="https://20beauty.com.hk/極潤水光波">石頭瘡</a></li>
900                        <li><a href="https://20beauty.com.hk/極潤水光波">疤痕</a></li>
901                        <li><a href="https://20beauty.com.hk/極潤水光波">去疤</a></li>
902                        <li><a href="https://20beauty.com.hk/極潤水光波">美容</a></li>
903                        <li><a href="https://20beauty.com.hk/極潤水光波">醫美</a></li>
904                        <li><a href="https://20beauty.com.hk/極潤水光波">美白</a></li>
905                        <li><a href="https://20beauty.com.hk/極潤水光波">去斑</a></li>
906
907                        <li><a href="https://20beauty.com.hk/promotion-armpit">永久激光脫毛</a></li>
908                        <li><a href="https://20beauty.com.hk/promotion-armpit">香港脫毛</a></li>
909                        <li><a href="https://20beauty.com.hk/promotion-armpit">脫毛優惠</a></li>
910                        <li><a href="https://20beauty.com.hk/promotion-armpit">脫毛promotion</a></li>
911                        <li><a href="https://20beauty.com.hk/promotion-armpit">永久脫毛邊間好</a></li>
912                        <li><a href="https://20beauty.com.hk/promotion-armpit">脫毛邊間好</a></li>
913                        <li><a href="https://20beauty.com.hk/promotion-armpit"
913>脫毛邊間平</a></li>
914                        <li><a href="https://20beauty.com.hk/promotion-armpit">脫毛邊間抵</a></li>
915                        <li><a href="https://20beauty.com.hk/promotion-armpit">脫毛平</a></li>
916                        <li><a href="https://20beauty.com.hk/promotion-armpit">脫毛價錢</a></li>
917                        <li><a href="https://20beauty.com.hk/promotion-armpit">激光脫毛邊間好</a></li>
918                        <li><a href="https://20beauty.com.hk/promotion-armpit">免費體驗</a></li>
919                        <li><a href="https://20beauty.com.hk/promotion-armpit">脫毛體驗</a></li>
920                        <li><a href="https://20beauty.com.hk/promotion-armpit">脫毛推薦</a></li>
921                        <li><a href="https://20beauty.com.hk/promotion-armpit">脫毛推介</a></li>
922                        <li><a href="https://20beauty.com.hk/promotion-armpit">激光脫毛推介</a></li>
923                        <li><a href="https://20beauty.com.hk/promotion-armpit">激光脫毛推薦</a></li>
924                        <li><a href="https://20beauty.com.hk/promotion-armpit">脫毛</a></li>
925                        <li><a href="https://20beauty.com.hk/promotion-armpit">除毛</a></li>
926                        <li><a href="https://20beauty.com.hk/promotion-armpit">剃毛</a></li>
927                        <li><a href="https://20beauty.com.hk/promotion-armpit">激光脫毛</a></li>
928                        <li><a href="https://20beauty.com.hk/promotion-armpit">激光除毛</a></li>
929                        <li><a href="https://20beauty.com.hk/promotion-armpit">蜜蠟</a></li>
930                        <li><a href="https://20beauty.com.hk/promotion-armpit">蜜蠟脫毛</a></li>
931                        <li><a href="https://20beauty.com.hk/promotion-armpit">雙腋脫毛</a></li>
932                        <li><a href="https://20beauty.com.hk/promotion-armpit">腋下脫毛</a></li>
933                        <li><a href="https://20beauty.com.hk/promotion-armpit">underarm脫毛</a></li>
934                        <li><a href="https://20beauty.com.hk/promotion-armpit">underarm</a></li>
935                        <li><a href="https://20beauty.com.hk/promotion-armpit">學生優惠</a></li>
936                        <li><a href="https://20beauty.com.hk/promotion-armpit">學生證</a></li>
937                        <li><a href="https://20beauty.com.hk/promotion-armpit">全身脫毛</a></li>
938                        <li><a href="https://20beauty.com.hk/promotion-armpit">永久脫毛邊間好</a></li>
939                        <li><a href="https://20beauty.com.hk/promotion-armpit">永久脫毛邊間抵</a></li>
940                        <li><a href="https://20beauty.com.hk/promotion-armpit">永久脫毛邊間平</a></li>
941                        <li><a href="https://20beauty.com.hk/promotion-armpit">永久脫毛邊間推薦</a></li>
942                        <li><a href="https://20beauty.com.hk/promotion-armpit">永久脫毛邊間推介</a></li>
943
944                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">永久激光脫毛</a></li>
945                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">香港脫毛</a></li>
946                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">脫毛優惠</a></li>
947                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">脫毛promotion</a></li>
948                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">永久脫毛邊間好</a></li>
949                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">脫毛邊間好</a></li>
950                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">脫毛價錢</a></li>
951                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">激光脫毛邊間好</a></li>
952                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">免費體驗</a></li>
953                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">脫毛邊間抵</a></li>
954                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">脫毛體驗</a></li>
955                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">脫毛推薦</a></li>
956                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">脫毛推介</a></li>
957                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">脫毛</a></li>
958                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">除毛</a></li>
959                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">剃毛</a></li>
960                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">激光脫毛</a></li>
961                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">激光除毛</a></li>
962                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">蜜蠟</a></li>
963                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">蜜蠟脫毛</a></li>
964                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">雙腋脫毛</a></li>
965                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">腋下脫毛</a></li>
966                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">underarm脫毛</a></li>
967                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">underarm</a></li>
968                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">vline</a></li>
969                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">v-line</a></li>
970                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">vline脫毛</a></li>
971                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">比堅尼</a></li>
972                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">比堅尼脫毛</a></li>
973                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">脫比堅尼毛</a></li>
974                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">bikini脫毛</a></li>
975                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">脫bikini</a></li>
976                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">私處脫毛</a></li>
977                        <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">脫陰毛</a></li>
978
979                        <li><a href="https://20beauty.com.hk/studentoffer">學生脫毛</a></li>
980                        <li><a href="https://20beauty.com.hk/studentoffer">學生優惠</a></li>
981                        <li><a href="https://20beauty.com.hk/studentoffer">學生證</a></li>
982                        <li><a href="https://20beauty.com.hk/studentoffer">永久激光脫毛</a></li>
983                        <li><a href="https://20beauty.com.hk/studentoffer">香港脫毛</a></li>
984                        <li><a href="https://20beauty.com.hk/studentoffer">脫毛優惠</a></li>
985                        <li><a href="https://20beauty.com.hk/studentoffer">脫毛promotion</a></li>
986                        <li><a href="https://20beauty.com.hk/studentoffer">永久脫毛邊間好</a></li>
987                        <li><a href="https://20beauty.com.hk/studentoffer">脫毛邊間好</a></li>
988                        <li><a href="https://20beauty.com.hk/studentoffer">脫毛平</a></li>
989                        <li><a href="https://20beauty.com.hk/studentoffer">脫毛價錢</a></li>
990                        <li><a href="https://20beauty.com.hk/studentoffer">激光脫毛邊間好</a></li>
991                        <li><a href="https://20beauty.com.hk/studentoffer">激光脫毛療程</a></li>
992                        <li><a href="https://20beauty.com.hk/studentoffer">免費體驗</a></li>
993                        <li><a href="https://20beauty.com.hk/studentoffer">美容推介</a></li>
994                        <li><a href="https://20beauty.com.hk/studentoffer">美容推薦</a></li>
995                        <li><a href="https://20beauty.com.hk/studentoffer">美容院推薦</a></li>
996                        <li><a href="https://20beauty.com.hk/studentoffer">美容院邊間好</a></li>
997                        <li><a href="https://20beauty.com.hk/studentoffer">美容院優惠</a></li>
998                        <li><a href="https://20beauty.com.hk/studentoffer">脫毛推薦</a></li>
999                        <li><a href="https://20beauty.com.hk/studentoffer">脫毛推介</a></li>
1000                        <li><a href="https://20beauty.com.hk/studentoffer">脫毛</a></li>
1001                        <li><a href="https://20beauty.com.hk/studentoffer">激光脫毛</a></li>
1002                        <li><a href="https://20beauty.com.hk/studentoffer">蜜蠟脫毛</a></li>
1003                        <li><a href="https://20beauty.com.hk/studentoffer">雙腋脫毛</a></li>
1004                        <li><a href="https://20beauty.com.hk/studentoffer">underarm脫毛</a></li>
1005                        <li><a href="https://20beauty.com.hk/studentoffer">underarm</a></li>
1006                        <li><a href="https://20beauty.com.hk/studentoffer">v-line</a></li>
1007                        <li><a href="https://20beauty.com.hk/studentoffer">vline脫毛</a></li>
1008                        <li><a href="https://20beauty.com.hk/studentoffer">比堅尼</a></li>
1009                        <li><a href="https://20beauty.com.hk/studentoffer">比堅尼脫毛</a></li>
1010                        <li><a href="https://20beauty.com.hk/studentoffer">脫比堅尼毛</a></li>
1011                        <li><a href="https://20beauty.com.hk/studentoffer">bikini脫毛</a></li>
1012                        <li><a href="https://20beauty.com.hk/studentoffer">脫bikini</a></li>
1013                        <li><a href="https://20beauty.com.hk/studentoffer">私處脫毛</a></li>
1014                        <li><a href="https://20beauty.com.hk/studentoffer">脫陰毛</a></li>
1015                        <li><a href="https://20beauty.com.hk/studentoffer">脫手毛</a></li>
1016
1017                        <li><a href="https://20beauty.com.hk/facialpromotion">皮膚保養</a></li>
1018                        <li><a href="https://20beauty.com.hk/facialpromotion">美容推介</a></li>
1019                        <li><a href="https://20beauty.com.hk/facialpromotion">美容院推薦</a></li>
1020                        <li><a href="https://20beauty.com.hk/facialpromotion">美容院推介</a></li>
1021                        <li><a href="https://20beauty.com.hk/facialpromotion">美容院邊間好</a></li>
1022                        <li><a href="https://20beauty.com.hk/facialpromotion">新娘護膚</a></li>
1023                        <li><a href="https://20beauty.com.hk/facialpromotion">護膚教學</a></li>
1024                        <li><a href="https://20beauty.com.hk/facialpromotion">暗瘡</a></li>
1025                        <li><a href="https://20beauty.com.hk/facialpromotion">暗瘡印</a></li>
1026                        <li><a href="https://20beauty.com.hk/facialpromotion">粉刺</a></li>
1027                        <li><a href="https://20beauty.com.hk/facialpromotion">黑頭</a></li>
1028                        <li><a href="https://20beauty.com.hk/facialpromotion">去印</a></li>
1029                        <li><a href="https://20beauty.com.hk/facialpromotion">清黑頭</a></li>
1030                        <li><a href="https://20beauty.com.hk/facialpromotion">口罩肌</a></li>
1031                        <li><a href="https://20beauty.com.hk/facialpromotion">石頭瘡</a></li>
1032                        <li><a href="https://20beauty.com.hk/facialpromotion">疤痕</a></li>
1033                        <li><a href="https://20beauty.com.hk/facialpromotion">去疤</a></li>
1034                        <li><a href="https://20beauty.com.hk/facialpromotion">油性皮膚</a></li>
1035                        <li><a href="https://20beauty.com.hk/facialpromotion">乾性皮膚</a></li>
1036                        <li><a href="https://20beauty.com.hk/facialpromotion">毛孔粗大</a></li>
1037                        <li><a href="https://20beauty.com.hk/facialpromotion">皮膚乾燥</a></li>
1038                        <li><a href="https://20beauty.com.hk/facialpromotion">皮膚急救</a></li>
1039                        <li><a href="https://20beauty.com.hk/facialpromotion">急救補水</a></li>
1040                        <li><a href="https://20beauty.com.hk/facialpromotion">保濕</a></li>
1041                        <li><a href="https://20beauty.com.hk/facialpromotion">深層保濕</a></li>
1042                        <li><a href="https://20beauty.com.hk/facialpromotion">護膚</a></li>
1043                        <li><a href="https://20beauty.com.hk/facialpromotion">美容</a></li>
1044                        <li><a href="https://20beauty.com.hk/facialpromotion">醫美</a></li>
1045                        <li><a href="https://20beauty.com.hk/facialpromotion">美白</a></li>
1046                        <li><a href="https://20beauty.com.hk/facialpromotion">去斑</a></li>
1047                        <li><a href="https://20beauty.com.hk/facialpromotion">雀斑</a></li>
1048                        <li><a href="https://20beauty.com.hk/facialpromotion">洗面</a></li>
1049                        <li><a href="https://20beauty.com.hk/facialpromotion">facial推介</a></li>
1050                        <li><a href="https://20beauty.com.hk/facialpromotion">facial優惠</a></li>
1051                        <li><a href="https://20beauty.com.hk/facialpromotion">facial推薦</a></li>
1052
1053                        <li><a href="https://20beauty.com.hk/monthlypromotion">脫毛</a></li>
1054                        <li><a href="https://20beauty.com.hk/monthlypromotion">激光脫毛</a></li>
1055                        <li><a href="https://20beauty.com.hk/monthlypromotion">雙腋脫毛</a></li>
1056                        <li><a href="https://20beauty.com.hk/monthlypromotion">腋下脫毛</a></li>
1057                        <li><a href="https://20beauty.com.hk/monthlypromotion">永久激光脫毛</a></li>
1058                        <li><a href="https://20beauty.com.hk/monthlypromotion">香港脫毛</a></li>
1059                        <li><a href="https://20beauty.com.hk/monthlypromotion">脫毛優惠</a></li>
1060                        <li><a href="https://20beauty.com.hk/monthlypromotion">脫毛promotion</a></li>
1061                        <li><a href="https://20beauty.com.hk/monthlypromotion">永久脫毛邊間好</a></li>
1062                        <li><a href="https://20beauty.com.hk/monthlypromotion">脫毛平</a></li>
1063                        <li><a href="https://20beauty.com.hk/monthlypromotion">脫毛價錢</a></li>
1064                        <li><a href="https://20beauty.com.hk/monthlypromotion">激光脫毛邊間好</a></li>
1065                        <li><a href="https://20beauty.com.hk/monthlypromotion">激光脫毛療程</a></li>
1066                        <li><a href="https://20beauty.com.hk/monthlypromotion">免費體驗</a></li>
1067                        <li><a href="https://20beauty.com.hk/monthlypromotion">脫毛體驗</a></li>
1068                        <li><a href="https://20beauty.com.hk/monthlypromotion">全身脫毛</a></li>
1069                        <li><a href="https://20beauty.com.hk/monthlypromotion">腳毛</a></li>
1070                        <li><a href="https://20beauty.com.hk/monthlypromotion">唇毛</a></li>
1071                        <li><a href="https://20beauty.com.hk/monthlypromotion">脫手毛</a></li>
1072                        <li><a href="https://20beauty.com.hk/monthlypromotion">脫腳毛</a></li>
1073                        <li><a href="https://20beauty.com.hk/monthlypromotion">學生證</a></li>
1074                        <li><a href="https://20beauty.com.hk/monthlypromotion">學生優惠</a></li>
1075                        <li><a href="https://20beauty.com.hk/monthlypromotion">學生脫毛</a></li>
1076                        <li><a href="https://20beauty.com.hk/monthlyp
1076romotion">脫手毛</a></li>
1077                        <li><a href="https://20beauty.com.hk/monthlypromotion">脫陰毛</a></li>
1078                        <li><a href="https://20beauty.com.hk/monthlypromotion">私處脫毛</a></li>
1079                        <li><a href="https://20beauty.com.hk/monthlypromotion">脫bikini</a></li>
1080                        <li><a href="https://20beauty.com.hk/monthlypromotion">bikini脫毛</a></li>
1081                        <li><a href="https://20beauty.com.hk/monthlypromotion">脫比堅尼毛</a></li>
1082                        <li><a href="https://20beauty.com.hk/monthlypromotion">比堅尼</a></li>
1083                        <li><a href="https://20beauty.com.hk/monthlypromotion">v-line脫毛</a></li>
1084                        <li><a href="https://20beauty.com.hk/monthlypromotion">vline脫毛</a></li>
1085                        <li><a href="https://20beauty.com.hk/monthlypromotion">v-line</a></li>
1086                        <li><a href="https://20beauty.com.hk/monthlypromotion">underarm</a></li>
1087                        <li><a href="https://20beauty.com.hk/monthlypromotion">underarm脫毛</a></li>
1088
1089                        <li><a href="https://20beauty.com.hk/snow-and-glow">免費體驗</a></li>
1090                        <li><a href="https://20beauty.com.hk/snow-and-glow">暗瘡</a></li>
1091                        <li><a href="https://20beauty.com.hk/snow-and-glow">暗瘡印</a></li>
1092                        <li><a href="https://20beauty.com.hk/snow-and-glow">黑頭</a></li>
1093                        <li><a href="https://20beauty.com.hk/snow-and-glow">去印</a></li>
1094                        <li><a href="https://20beauty.com.hk/snow-and-glow">清黑頭</a></li>
1095                        <li><a href="https://20beauty.com.hk/snow-and-glow">口罩肌</a></li>
1096                        <li><a href="https://20beauty.com.hk/snow-and-glow">石頭瘡</a></li>
1097                        <li><a href="https://20beauty.com.hk/snow-and-glow">疤痕</a></li>
1098                        <li><a href="https://20beauty.com.hk/snow-and-glow">去疤</a></li>
1099                        <li><a href="https://20beauty.com.hk/snow-and-glow">皮膚急救</a></li>
1100                        <li><a href="https://20beauty.com.hk/snow-and-glow">急救補水</a></li>
1101                        <li><a href="https://20beauty.com.hk/snow-and-glow">皮膚保養</a></li>
1102                        <li><a href="https://20beauty.com.hk/snow-and-glow">美容推介</a></li>
1103                        <li><a href="https://20beauty.com.hk/snow-and-glow">美容推薦</a></li>
1104                        <li><a href="https://20beauty.com.hk/snow-and-glow">美容院推薦</a></li>
1105                        <li><a href="https://20beauty.com.hk/snow-and-glow">美容院推介</a></li>
1106                        <li><a href="https://20beauty.com.hk/snow-and-glow">美容院邊間好</a></li>
1107                        <li><a href="https://20beauty.com.hk/snow-and-glow">保濕</a></li>
1108                        <li><a href="https://20beauty.com.hk/snow-and-glow">深層保濕</a></li>
1109                        <li><a href="https://20beauty.com.hk/snow-and-glow">護膚</a></li>
1110                        <li><a href="https://20beauty.com.hk/snow-and-glow">美容</a></li>
1111                        <li><a href="https://20beauty.com.hk/snow-and-glow">醫美</a></li>
1112                        <li><a href="https://20beauty.com.hk/snow-and-glow">美白</a></li>
1113                        <li><a href="https://20beauty.com.hk/snow-and-glow">去斑</a></li>
1114                        <li><a href="https://20beauty.com.hk/snow-and-glow">雀斑</a></li>
1115                        <li><a href="https://20beauty.com.hk/snow-and-glow">洗面</a></li>
1116                        <li><a href="https://20beauty.com.hk/snow-and-glow">洗臉</a></li>
1117                        <li><a href="https://20beauty.com.hk/snow-and-glow">新娘護膚</a></li>
1118                        <li><a href="https://20beauty.com.hk/snow-and-glow">皮膚保養</a></li>
1119                        <li><a href="https://20beauty.com.hk/snow-and-glow">護膚教學</a></li>
1120                        <li><a href="https://20beauty.com.hk/snow-and-glow">油性皮膚</a></li>
1121                        <li><a href="https://20beauty.com.hk/snow-and-glow">乾性皮膚</a></li>
1122                        <li><a href="https://20beauty.com.hk/snow-and-glow">毛孔粗大</a></li>
1123                        <li><a href="https://20beauty.com.hk/snow-and-glow">皮膚乾燥</a></li>
1124
1125                        <li><a href="https://20beauty.com.hk/freetrial">
1125免費體驗</a></li>
1126                        <li><a href="https://20beauty.com.hk/freetrial">脫毛體驗</a></li>
1127                        <li><a href="https://20beauty.com.hk/freetrial">脫毛</a></li>
1128                        <li><a href="https://20beauty.com.hk/freetrial">激光脫毛</a></li>
1129                        <li><a href="https://20beauty.com.hk/freetrial">蜜蠟脫毛</a></li>
1130                        <li><a href="https://20beauty.com.hk/freetrial">雙腋脫毛</a></li>
1131                        <li><a href="https://20beauty.com.hk/freetrial">腋下脫毛</a></li>
1132                        <li><a href="https://20beauty.com.hk/freetrial">underarm脫毛</a></li>
1133                        <li><a href="https://20beauty.com.hk/freetrial">bikini脫毛</a></li>
1134                        <li><a href="https://20beauty.com.hk/freetrial">永久激光脫毛</a></li>
1135                        <li><a href="https://20beauty.com.hk/freetrial">香港脫毛</a></li>
1136                        <li><a href="https://20beauty.com.hk/freetrial">脫毛優惠</a></li>
1137                        <li><a href="https://20beauty.com.hk/freetrial">永久脫毛邊間好</a></li>
1138                        <li><a href="https://20beauty.com.hk/freetrial">脫毛邊間好</a></li>
1139                        <li><a href="https://20beauty.com.hk/freetrial">脫毛平</a></li>
1140                        <li><a href="https://20beauty.com.hk/freetrial">脫毛價錢</a></li>
1141                        <li><a href="https://20beauty.com.hk/freetrial">激光脫毛邊間好</a></li>
1142                        <li><a href="https://20beauty.com.hk/freetrial">激光脫毛療程</a></li>
1143                        <li><a href="https://20beauty.com.hk/freetrial">美容推介</a></li>
1144                        <li><a href="https://20beauty.com.hk/freetrial">美容推薦</a></li>
1145                        <li><a href="https://20beauty.com.hk/freetrial">美容院推薦</a></li>
1146                        <li><a href="https://20beauty.com.hk/freetrial">美容院推介</a></li>
1147                        <li><a href="https://20beauty.com.hk/freetrial">
1147全身脫毛</a></li>
1148                        <li><a href="https://20beauty.com.hk/freetrial">腳毛</a></li>
1149                        <li><a href="https://20beauty.com.hk/freetrial">唇毛</a></li>
1150                        <li><a href="https://20beauty.com.hk/freetrial">脫手毛</a></li>
1151                        <li><a href="https://20beauty.com.hk/freetrial">脫腳毛</a></li>
1152                        <li><a href="https://20beauty.com.hk/freetrial">脫bikini</a></li>
1153                        <li><a href="https://20beauty.com.hk/freetrial">私處脫毛</a></li>
1154
1155                        <li><a href="https://20beauty.com.hk/">脫毛</a></li>
1156                        <li><a href="https://20beauty.com.hk/">除毛</a></li>
1157                        <li><a href="https://20beauty.com.hk/">剃毛</a></li>
1158                        <li><a href="https://20beauty.com.hk/">激光脫毛</a></li>
1159                        <li><a href="https://20beauty.com.hk/">激光除毛</a></li>
1160                        <li><a href="https://20beauty.com.hk/">蜜蠟</a></li>
1161                        <li><a href="https://20beauty.com.hk/">蜜蠟脫毛</a></li>
1162                        <li><a href="https://20beauty.com.hk/">雙腋脫毛</a></li>
1163                        <li><a href="https://20beauty.com.hk/">腋下脫毛</a></li>
1164                        <li><a href="https://20beauty.com.hk/">underarm</a></li>
1165                        <li><a href="https://20beauty.com.hk/">vline</a></li>
1166                        <li><a href="https://20beauty.com.hk/">vline脫毛</a></li>
1167                        <li><a href="https://20beauty.com.hk/">比堅尼</a></li>
1168                        <li><a href="https://20beauty.com.hk/">比堅尼脫毛</a></li>
1169                        <li><a href="https://20beauty.com.hk/">bikini脫毛</a></li>
1170                        <li><a href="https://20beauty.com.hk/">脫bikini</a></li>
1171                        <li><a href="https://20beauty.com.hk/">私處脫毛</a></li>
1172                        <li><a href="https://20beauty.com.hk/">脫陰毛</a></li>
1173                        <li><a href="https://20beauty.com.hk/">脫手毛</a></li>
1174                        <li><a href="https://20beauty.com.hk/">脫腳毛</a></li>
1175                        <li><a href="https://20beauty.com.hk/">永久激光脫毛</a></li>
1176                        <li><a href="https://20beauty.com.hk/">香港脫毛</a></li>
1177                        <li><a href="https://20beauty.com.hk/">脫毛優惠</a></li>
1178                        <li><a href="https://20beauty.com.hk/">永久脫毛邊間好</a></li>
1179                        <li><a href="https://20beauty.com.hk/">脫毛邊間好</a></li>
1180                        <li><a href="https://20beauty.com.hk/">脫毛平</a></li>
1181                        <li><a href="https://20beauty.com.hk/">脫毛價錢</a></li>
1182                        <li><a href="https://20beauty.com.hk/">激光脫毛邊間好</a></li>
1183                        <li><a href="https://20beauty.com.hk/">激光脫毛療程</a></li>
1184                        <li><a href="https://20beauty.com.hk/">皮膚保養</a></li>
1185                        <li><a href="https://20beauty.com.hk/">新娘護膚</a></li>
1186                        <li><a href="https://20beauty.com.hk/">護膚教學</a></li>
1187                        <li><a href="https://20beauty.com.hk/">美容推介</a></li>
1188                        <li><a href="https://20beauty.com.hk/">美容院推薦</a></li>
1189                        <li><a href="https://20beauty.com.hk/">美容院推介</a></li>
1190                    </ul>
1191                </div>
1192            </div>
1193        </section>
1194        <!-- /Category-->
1195
1196        <br>
1197
1198        <!-- Highlight/ -->
1199        <section>
1200            <!-- <div class="container">
1201    <br>
1202    <div class="g-container-sm g-tmpcol-3-sm g-gap-3-sm">
1203        <div class="mar_xs_xl_b mar_sm_0_b ha_center_xs">
1204            <img src="images/icon/icon_time.svg" height="60">
1205            <h3>不設時段限制</h3>
1206        </div>
1207
1208        <div class="mar_xs_xl_b mar_sm_0_b ha_center_xs">
1209            <img src="images/icon/icon_chart.svg" height="60">
1210            <h3>上市公司信心保證</h3>
1211        </div>
1212
1213        <div class="mar_xs_xl_b mar_sm_0_b ha_center_xs">
1214            <img src="images/icon/icon_fee.svg" height="60">
1215            <h3>絕無額外收費</h3>
1216        </div>
1217    </div>
1218</div> -->
1219
1220<!-- <div class="container">
1221    <br>
1222    <div class="g-container-xs g-tmpcol-3-xs g-gap-2-xs g-gap-3-sm">
1223        <div class="ha_center_xs wow fadeInUp">
1224            <div><img src="images/icon/icon_time.svg" class="h-50px-xs h-60px-sm"></div>
1225            <div class="f-1-xs f-4-sm mar_xs_s_t"><b>不設時段限制</b></div>
1226        </div>
1227
1228        <div class="ha_center_xs wow fadeInUp" data-wow-delay="0.1s">
1229            <div><img src="images/icon/icon_chart.svg" class="h-50px-xs h-60px-sm"></div>
1230            <div class="f-1-xs f-4-sm mar_xs_s_t"><b>上市公司信心保證</b></div>
1231        </div>
1232
1233        <div class="ha_center_xs wow fadeInUp" data-wow-delay="0.2s">
1234            <div><img src="images/icon/icon_fee.svg" class="h-50px-xs h-60px-sm"></div>
1235            <div class="f-1-xs f-4-sm mar_xs_s_t"><b>絕無額外收費</b></div>
1236        </div>
1237    </div>
1238</div> -->
1239
1240<div class="container pad_xs_xxl_y">
1241    <div class="g-container-xs g-tmpcol-11-xs g-tmpcol-5-md g-tmprow-2-xs g-tmprow-1-md mar_xs_auto_x">
1242        <div class="wow flipInY g-colstart-1-xs g-colend-4-xs g-rowstart-1-xs g-rowend-2-xs g-1-md gr-1-md mar_xs_m_y mar_sm_xl_y">
1243            <div class="ha_center_xs wow fadeInUp">
1244                <div><img src="images/icon/icon_time.svg" class="h-50px-xs h-60px-sm"></div>
1245                <div class="f-1-xs f-4-sm mar_xs_s_t"><b>不設時段限制</b></div>
1246            </div>
1247        </div>
1248        
1249        <div class="wow flipInY g-colstart-5-xs g-colend-8-xs g-rowstart-1-xs g-rowend-2-xs g-1-md gr-1-md mar_xs_m_y mar_sm_xl_y" data-wow-delay="0.2s">
1250            <div class="ha_center_xs wow fadeInUp">
1251                <div><img src="images/icon/icon_chart.svg" class="h-50px-xs h-60px-sm"></div>
1252            <div class="f-1-xs f-4-sm mar_xs_s_t"><b>上市公司信心保證</b></div>
1253            </div>
1254        </div>
1255
1256        <div class="wow flipInY g-colstart-9-xs g-colend-12-xs g-rowstart-1-xs g-rowend-2-xs g-1-md gr-1-md mar_xs_m_y mar_sm_xl_y" data-wow-delay="0.4s">
1257            <div class="ha_center_xs wow fadeInUp">
1258                <div><img src="images/icon/icon_fee.svg" class="h-50px-xs h-60px-sm"></div>
1259            <div class="f-1-xs f-4-sm mar_xs_s_t"><b>絕無額外收費</b></div>
1260            </div>
1261        </div>
1262
1263        <div class="wow flipInY g-colstart-3-xs g-colend-6-xs g-rowstart-2-xs g-rowend-3-xs g-1-md gr-1-md mar_xs_m_y mar_sm_xl_y" data-wow-delay="0.6s">
1264            <div class="ha_center_xs wow fadeInUp">
1265                <div><img src="images/icon/icon_iso9001.svg" class="h-50px-xs h-60px-sm"></div>
1266            <div class="f-1-xs f-4-sm mar_xs_s_t"><b>ISO管理認證</b></div>
1267            </div>
1268        </div>
1269
1270        <div class="wow flipInY g-colstart-7-xs g-colend-10-xs g-rowstart-2-xs g-rowend-3-xs g-1-md gr-1-md mar_xs_m_y mar_sm_xl_y" data-wow-delay="0.8s">
1271            <div class="ha_center_xs wow fadeInUp">
1272                <div><img src="images/icon/icon_therapist.svg" class="h-50px-xs h-60px-sm"></div>
1273            <div class="f-1-xs f-4-sm mar_xs_s_t"><b>
1273持牌光學治療師</b></div>
1274            </div>
1275        </div>
1276    </div>
1277</div>        </section>
1278        <!-- /Hightlight -->
1279
1280        <br>
1281
1282        <!-- Form Section/ -->
1283        <section id="formSection" class="bg_lightpink_corp">
1284            <div class="pad_xs_xl_t pad_xs_xl_b container">
1285                <div class="ha_center_xs">
1286                    <h3>預約免費諮詢</h3>
1287                    <div class="font_xs_s">為了確保各項激光脫毛療程的安全,20BEAUTY提供免費、詳細的諮詢和電腦的皮膚及毛髮分析;我們不鼓勵顧客急著做任何決定,閣下可以填妥以下表格,預約免費的電腦皮膚及毛髮檢測後,才決定你的脫毛需要</div>
1288                </div>
1289
1290                <br>
1291
1292                <!-- Form/ -->
1293                <form id="enquiryform" action="/confirm/confirmation.php" method="post">
1294                    <div class="g-container-xs g-tmpcol-2-sm g-gap-3-xs">
1295                        <div><input type="text" name="full_name" placeholder="姓名(以身份證為準)" class="w-100-xs"></div>
1296                        <div><input type="number" name="age" placeholder="年齡" class="w-100-xs"></div>
1297                        <div><input type="email" name="email" placeholder="電郵地址" class="w-100-xs"></div>
1298                        <div><input type="tel" name="mobile" placeholder="電話號碼" class="w-100-xs" inputmode="numeric" autocomplete="tel-national"></div>
1299
1300                        <div>
1301                            <select name="desired_store" class="w-100-xs" data-required>
1302    <option data-blank>選擇分店</option>
1303    <option value="朗豪坊店|LP20">朗豪坊店</option>
1304    <option value="尖沙咀店|T20">尖沙咀店</option>
1305    <option value="銅鑼灣店|C20">銅鑼灣店</option>
1306    <option value="中環店|Q20">中環店</option>
1307    <option value="澳門店|NYH">澳門店</option>
1308</select>                        </div>
1309
1310                        <div>
1311                            <input id="dateinput" type="text" name="desired_date" placeholder="預約日期" style="width:100%;" data-lang="zh" data-large-mode="true" data-large-default="true" data-format="Y-m-d" data-max-year="2040" data-lock="from" data-range="60" data-init-set="false" data-disabled-days="04/05/2023,04/07/2023,04/08/2023,04/10/2023,05/01/2023,05/26/2023,06/22/2023,07/01/2023,09/30/2023,10/01/2023,10/23/2023,12/25/2023" data-required>
1312<!-- mm/dd/yyyy -->                        </div>
1313
1314                        <div>
1315                            <select name="desired_time" data-required class="w-100-xs">
1316                                <option data-blank>預約時間</option>
1317                                <option value="10:00">10:00</option>
1318                                <option value="10:30">10:30</option>
1319                                <option value="11:00">11:00</option>
1320                                <option value="11:30">11:30</option>
1321                                <option value="12:00">12:00</option>
1322                                <option value="12:30">12:30</option>
1323                                <option value="13:00">13:00</option>
1324                                <option value="13:30">13:30</option>
1325                                <option value="14:00">14:00</option>
1326                                <option value="14:30">14:30</option>
1327                                <option value="15:00">15:00</option>
1328                                <option value="15:30">15:30</option>
1329                                <option value="16:00">16:00</option>
1330                                <option value="16:30">16:30</option>
1331                                <option value="17:00">17:00</option>
1332                                <option value="17:30">17:30</option>
1333                                <option value="18:00">18:00</option>
1334                                <option value="18:30">18:30</option>
1335                                <option value="19:00">19:00</option>
1336                                <option value="19:30">19:30</option>
1337                                <option value="20:00">20:00</option>
1338                                <option value="20:30">20:30</option>
1339                            </select>
1340                        </div>
1341                        <!-- <div><input type="text" name="coupon_code" placeholder="優惠碼(如適用)" class="w-100-xs"></div> -->
1342                        <div>
1343                            <select name="_dynamic" class="w-100-xs" data-required>
1344                                <option value="treatment_offer_name=免費體驗部位&offer=0&treatment_short_name=" data-action="none" data-blank>免費體驗部位</option>
1345                                <option value="treatment_offer_name=雙腋&offer=0&treatment_short_name=雙腋" data-action="none">雙腋</option>
1346                                <option value="treatment_offer_name=上唇&offer=0&treatment_short_name=上唇" data-action="none">上唇</option>
1347                                <option value="treatment_offer_name=手指&offer=0&treatment_short_name=手部" data-action="none">手指</option>
1348                            </select>
1349                        </div>
1350                        <!-- <div>
1351                            <select name="payment_method" class="hidden w-100-xs">
1352                                <option>選擇付款方式</option>
1353                                <option value="none">店舖付款</option>
1354                                <option value="paypal">網上付款</option>
1355                            </select>
1356                        </div> -->
1357                        <div class="g-2-sm font_xs_s">
1358                            <div class="flex_container_xs">
1359                                <div><input type="checkbox" name="newsletter" value="本人願意繼續收到有關20BEAUTY的最新資訊及優惠"></div>
1360                                <div class="mar_xs_xs_l flex_1_xs">本人願意繼續收到有關20BEAUTY的最新資訊及優惠</div>
1361                            </div>
1362                        </div>
1363                        <!-- <div class="g-2-sm font_xs_s">
1364                            <div class="flex_container_xs">
1365                                <div><input type="checkbox" name="term" value="本人已閱讀並同意20BEAUTY之有關私隱政策、條款及細則"></div>
1366                                <div class="mar_xs_xs_l flex_1_xs">本人已閱讀並同意20BEAUTY之有關<a href="privacy" class="link_pink_corp" target="_blank">私隱政策</a>、<a href="termsofuse" class="link_pink_corp" target="_blank">條款及細則</a></div>
1367                            </div>
1368                        </div> -->
1369                        <input type="hidden" name="form_category" value="Single Trial"> <!-- (可用_dynamic): Single Trial / Multi Trials / Career / Contact Us -->
1370                        <input type="hidden" name="treatment_name" value="免費體驗 – 首頁">
1371                        <input type="hidden" id="treatmentShortName" name="treatment_short_name" value="">
1372                        <input type="hidden" id="treatmentOfferName" name="treatment_offer_name" value="">
1373                        <input type="hidden" id="offer" name="offer" value="
13730">
1374                        <input type="hidden" id="promotionCode" name="promotion_code" value="">
1375                        <input type="hidden" name="enquiry_details" value="">
1376                        <input type="hidden" id="enquiryOfferDetails" name="enquiry_offer_details" value="">
1377
1378                        <input type="hidden" id="pid" name="pid" value="index_nf">
1379                        <input type="hidden" id="eventName" name="event_name" value="">
1380                        <input type="hidden" name="target_source" value="">
1381                        <input type="hidden" name="ref_source" value="">
1382                        <input type="hidden" id="enquiry_landing_url" name="enquiry_landing_url" value="">
1383                        <input type="hidden" id="enquiry_exp_shop" name="enquiry_exp_shop" value="">
1384
1385                        <input type="hidden" name="payment_gateway" value="paymentasia">
1386                        <input type="hidden" name="payment_account" value="dermaglow">
1387                        <input type="hidden" name="return_url" value="https://20beauty.com.hk">
1388
1389                                                    <input type="hidden" name="brandList[]" value="20BEAUTY">
1390                                                <input type="hidden" id="brandShortName" name="brand_short_name" value="20BEAUTY">
1391
1392                        <input type="hidden" id="paymentMethod" name="payment_method" value="none">
1393                        <input type="hidden" name="__is_free_consultation" value="1">
1394
1395                        <input type="hidden" id="offer_online" name="offer_online" value="">
1396                        <input type="hidden" id="offer_online_prepaid" name="offer_online_prepaid" value="">
1397                        <input type="hidden" id="offer_online_details" name="offer_online_details" value="">
1398                        <input type="hidden" id="offer_offline_details" name="offer_offline_details" value="免費登記">
1399
1400                        <input type="checkbox" name="term" value="本人已閱讀並同意20BEAUTY之有關私隱政策、條款及細則" checked class="none_xs">
1401                        
1402<input type="text" class="w-100-xxxs" name="website_url" placeholder="Your website URL (網站URL)">
1403<input type="text" class="w-100-xxxl" name="enquiry_text" placeholder="Your enquiry">
1404<input type="hidden" name="landing_url" value="http://20beauty.com.hk/">
1405<input type="hidden" name="landing_url_string" value="">
1406<input type="hidden" name="thank_you_page" value="http://20beauty.com.hk/thx">
1407<input type="hidden" name="form_submitted" value="0">
1408<script>
1409(function () {
1410    if (typeof window.initGeetest4 === "function" || window.__geetestV4ScriptRequested) return;
1411    window.__geetestV4ScriptRequested = true;
1412    var script = document.createElement("script");
1413    script.src = "https://static.geetest.com/v4/gt4.js";
1414    script.async = true;
1415    (document.head || document.documentElement).appendChild(script);
1416})();
1417</script>
vendor: 1 bytes, line 1417
1417
1418<script>
1419(function () {
1420    var captchaId = "8a1232ada1f5addaa0a2c9ffa9b0c0c7";
1421    var language = "zho-hk";
1422    var product = "bind";
1423    var captchaObj = null;
1424    var captchaReady = false;
1425    var pending = null;
1426    var initAttempts = 0;
1427
1428    function getForm(form) {
1429        return form || document.getElementById("enquiryform");
1430    }
1431
1432    function upsertHidden(form, name, value) {
1433        if (!form) return;
1434        var input = form.querySelector('input[name="' + name + '"]');
1435        if (!input) {
1436            input = document.createElement("input");
1437            input.type = "hidden";
1438            input.name = name;
1439            form.appendChild(input);
1440        }
1441        input.value = value == null ? "" : String(value);
1442    }
1443
1444    function clearHumanReady(form) {
1445        try {
1446            if (form && form.dataset) delete form.dataset.humanVerificationReady;
1447        } catch (e) {
1448            if (form) form.removeAttribute("data-human-verification-ready");
1449        }
1450    }
1451
1452    function markHumanReady(form) {
1453        if (form && form.dataset) form.dataset.humanVerificationReady = "1";
1454    }
1455
1456    function writeValidateResult(form, result) {
1457        upsertHidden(form, "lot_number", result && result.lot_number);
1458        upsertHidden(form, "captcha_output", result && result.captcha_output);
1459        upsertHidden(form, "pass_token", result && result.pass_token);
1460        upsertHidden(form, "gen_time", result && result.gen_time);
1461        markHumanReady(form);
1462    }
1463
1464    function removeError(form) {
1465        if (!form) return;
1466        var old = form.querySelector(".geetest-validation-error");
1467        if (old && old.parentNode) old.parentNode.removeChild(old);
1468    }
1469
1470    function showError(form, msg) {
1471        form = getForm(form);
1472        if (!form) return;
1473        removeError(form);
1474
1475        var target =
1476            form.querySelector("#offlinePaySubmit") ||
1477            form.querySelector("#onlinePaySubmit") ||
1478            form.querySelector('button[type="submit"]') ||
1479            form.querySelector('input[type="submit"]') ||
1480            form.lastElementChild;
1481
1482        var span = document.createElement("span");
1483        span.className = "validation-error geetest-validation-error";
1484        span.textContent = msg || "\u8acb\u5b8c\u6210\u9a57\u8b49\u3002";
1485
1486        if (target && target.parentNode) {
1487            target.parentNode.insertBefore(span, target.nextSibling);
1488        } else {
1489            form.appendChild(span);
1490        }
1491    }
1492
1493    function finishPending(ok) {
1494        var current = pending;
1495        pending = null;
1496        if (!current) return;
1497
1498        if (ok) {
1499            if (typeof current.onSuccess === "function") current.onSuccess();
1500        } else {
1501            clearHumanReady(current.form);
1502            if (typeof current.onFail === "function") current.onFail();
1503        }
1504    }
1505
1506    window.runHumanVerificationBeforeSubmit = function (form, onSuccess, onFail) {
1507        form = getForm(form);
1508        if (!form) {
1509            if (typeof onFail === "function") onFail();
1510            return;
1511        }
1512
1513        clearHumanReady(form);
1514
1515        if (!captchaObj || !captchaReady) {
1516            showError(form, "\u9a57\u8b49\u6b63\u5728\u8f09\u5165\uff0c\u8acb\u7a0d\u5f8c\u518d\u8a66\u3002");
1517            if (typeof onFail === "function") onFail();
1518            return;
1519        }
1520
1521        removeError(form);
1522        pending = {
1523            form: form,
1524            onSuccess: onSuccess,
1525            onFail: onFail
1526        };
1527        captchaObj.showCaptcha();
1528    };
1529
1530    function initGeetest() {
1531        if (typeof window.initGeetest4 !== "function") {
1532            initAttempts += 1;
1533            if (initAttempts < 40) {
1534                window.setTimeout(initGeetest, 250);
1535            }
1536            return;
1537        }
1538
1539        window.initGeetest4({
1540            captchaId: captchaId,
1541            product: product,
1542            language: language,
1543            protocol: "https://"
1544        }, function (obj) {
1545            captchaObj = obj;
1546            captchaObj
1547                .onReady(function () {
1548                    captchaReady = true;
1549                })
1550                .onSuccess(function () {
1551                    var result = captchaObj.getValidate();
1552                    if (!result) {
1553                        if (pending) showError(pending.form, "\u8acb\u91cd\u65b0\u5b8c\u6210\u9a57\u8b49\u3002");
1554                        finishPending(false);
1555                        return;
1556                    }
1557
1558                    var form = pending ? pending.form : getForm();
1559                    writeValidateResult(form, result);
1560                    finishPending(true);
1561                })
1562                .onClose(function () {
1563                    finishPending(false);
1564                })
1565                .onError(function () {
1566                    if (pending) showError(pending.form, "\u9a57\u8b49\u5931\u6557\uff0c\u8acb\u7a0d\u5f8c\u518d\u8a66\u3002");
1567                    finishPending(false);
1568                });
1569        });
1570    }
1571
1572    if (document.readyState === "loading") {
1573        document.addEventListener("DOMContentLoaded", initGeetest);
1574    } else {
1575        initGeetest();
1576    }
1577})();
1578</script>
1578
1579
1580<style type="text/css">
1581    .validation-error {
1582        color: red;
1583        font-size: 90%;
1584    }
1585
1586    .grecaptcha-badge {
1587        visibility: hidden;
1588    }
1589
1590    </style>
1591
1592<script>
1593    $('.w-100-xxxs').css("position", "absolute");
1594    $('.w-100-xxxl').css("position", "absolute");
1595    $('.w-100-xxxs').css("top", "-50px");
1596    $('.w-100-xxxl').css("top", "-50px");
1597
1598    
1599    function getMobileValidationResult(mobile) {
1600        var digits = (mobile || '').replace(/\D/g, '');
1601
1602        if (!digits) {
1603            return {
1604                valid: false,
1605                digits: '',
1606                normalized: '',
1607                region: '',
1608                reason: 'empty'
1609            };
1610        }
1611
1612        if (/^852([45689]\d{7})$/.test(digits)) {
1613            return {
1614                valid: true,
1615                digits: digits,
1616                normalized: digits.slice(3),
1617                region: 'HK',
1618                reason: ''
1619            };
1620        }
1621
1622        if (/^853([45689]\d{7})$/.test(digits)) {
1623            return {
1624                valid: true,
1625                digits: digits,
1626                normalized: digits.slice(3),
1627                region: 'MO',
1628                reason: ''
1629            };
1630        }
1631
1632        if (/^86(1\d{10})$/.test(digits)) {
1633            return {
1634                valid: true,
1635                digits: digits,
1636                normalized: digits.slice(2),
1637                region: 'CN',
1638                reason: ''
1639            };
1640        }
1641
1642        if (/^[45689]\d{7}$/.test(digits)) {
1643            return {
1644                valid: true,
1645                digits: digits,
1646                normalized: digits,
1647                region: 'HK_MO',
1648                reason: ''
1649            };
1650        }
1651
1652        if (/^1\d{10}$/.test(digits)) {
1653            return {
1654                valid: true,
1655                digits: digits,
1656                normalized: digits,
1657                region: 'CN',
1658                reason: ''
1659            };
1660        }
1661
1662        return {
1663            valid: false,
1664            digits: digits,
1665            normalized: '',
1666            region: '',
1667            reason: 'format'
1668        };
1669    }
1670
1671
1672    window.form_validated = false;
1673
1674    function release_form_submit_lock() {
1675        window.form_validated = false;
1676        $('input[type="submit"], button[type="submit"]').prop('disabled', false).attr('disabled', false);
1677    }
1678
1679    function submit_after_human_verification() {
1680        var form = document.getElementById('enquiryform');
1681        var doSubmit = function() {
1682            form_add_additional_data();
1683            if (form) form.submit();
1684            else $('#enquiryform').submit();
1685        };
1686
1687        if (typeof window.runHumanVerificationBeforeSubmit === 'function') {
1688            window.runHumanVerificationBeforeSubmit(form, doSubmit, release_form_submit_lock);
1689        } else {
1690            doSubmit();
1691        }
1692    }
1693
1694    $('#enquiryform').submit(function(e) {
1695        if (!window.form_validated) {
1696            e.preventDefault();
1697            $('input[type="submit"], button[type="submit"]').prop('disabled', true).attr('disabled', true);
1698            window.form_validated = true;
1699
1700                            grecaptcha.ready(function() {
1701                    grecaptcha.execute('6Leqgh4iAAAAAJnAOhZNhxjxZiGkkpJyNVB3CD_u', {
1702                        action: 'submit'
1703                    }).then(function(token) {
1704                        window.form_validated = form_validate();
1705                        if (window.form_validated) {
1706                            $('<input>').attr({
1707                                type: 'hidden',
1708                                id: 'g-recaptcha-response',
1709                                name: 'g-recaptcha-response',
1710                                value: token
1711                            }).appendTo('#enquiryform');
1712                            submit_after_human_verification();
1713                        } else {
1714                            release_form_submit_lock();
1715                        }
1716                    });
1717                });
1718                    }
1719        return true;
1720    });
1721
1722
1723
1724
1725
1726
1727
1728
1729    function form_validate() {
1730
1731        $(".validation-error").remove();
1732        window.errors = [];
1733        window.form_validated = true;
1734
1735        // full_name
1736        var full_name = $("input[name='full_name']").val();
1737        if (typeof full_name !== "undefined" && full_name.length < 1) {
1738            $("input[name='full_name']").after('<span class="validation-error">必填欄位</span>');
1739            window.errors.push("full_name");
1740            window.form_validated = false;
1741        }
1742
1743        // first_name
1744        var first_name = $("input[name='first_name']").val();
1745        if (typeof first_name !== "undefined" && first_name.length < 1) {
1746            $("input[name='first_name']").after('<span class="validation-error">必填欄位</span>');
1747            window.errors.push("first_name");
1748            window.form_validated = false;
1749        }
1750
1751        // last_name
1752        var last_name = $("input[name='last_name']").val();
1753        if (typeof last_name !== "undefined" && last_name.length < 1) {
1754            $("input[name='last_name']").after('<span class="validation-error">必填欄位</span>');
1755            window.errors.push("last_name");
1756            window.form_validated = false;
1757        }
1758
1759        // age
1760        var age = $("input[name='age']").val();
1761        if (typeof age !== "undefined" && age.length < 1) {
1762            /*$("input[name='age']").after('<span class="validation-error">必填欄位</span>');
1763            window.form_validated = false;*/
1764        } else if (typeof age !== "undefined" && !/^\d+$/.test(age)) {
1765            $("input[name='age']").after('<span class="validation-error">請輸入數字</span>');
1766            window.errors.push("age");
1767            window.form_validated = false;
1768        } else if (typeof age !== "undefined" && (Number(age) < 12 || Number(age) > 120)) {
1769            $("input[name='age']").after('<span class="validation-error">請輸入有效的年齡</span>');
1770            window.errors.push("age");
1771            window.form_validated = false;
1772        }
1773
1774        // mobile
1775        var mobile = $("input[name='mobile']").val();
1776        var mobile_validation = getMobileValidationResult(mobile);
1777        if (typeof mobile !== "undefined" && mobile.length < 1) {
1778            $("input[name='mobile']").after('<span class="validation-error">必填欄位</span>');
1779            window.errors.push("mobile");
1780            window.form_validated = false;
1781        } else if (typeof mobile !== "undefined" && !mobile_validation.valid) {
1782            $("input[name='mobile']").after('<span class="validation-error">請輸入有效的電話號碼</span>');
1783            window.errors.push("mobile");
1784            window.form_validated = false;
1785        }
1786
1787
1788
1789        if (/20beauty.com.hk/.test(window.location.href)) {
1790            // email
1791            var email = $("input[name='email']").val();
1792            if (typeof email !== "undefined" && email.length < 1) {
1793                $("input[name='email']").after('<span class="validation-error">必填欄位</span>');
1794                window.errors.push("email");
1795                window.form_validated = false;
1796            } else if (typeof email !== "undefined" && !isValidEmailAddress(email)) {
1797                $("input[name='email']").after('<span class="validation-error">請輸入正確的電子郵件格式</span>');
1798                window.errors.push("email");
1799                window.form_validated = false;
1800            }
1801        }
1802
1803        // treatment_name
1804        // WE DON'T DO THIS HERE, EITHER PRESET TREATMENT NAME OR MARK THE _DYNAMIC FIELD AS REQUIRED INSTEAD
1805        //var treatment_name = $( "input[name='treatment_name']" ).val();
1806        //if (typeof treatment_name !== "undefined" && treatment_name.length < 1) {
1807        //$("input[name='treatment_name']").after('<span class="validation-error">請選擇療程</span>');
1808        //$("select[name='_dynamic']").after('<span class="validation-error">必填欄位</span>');
1809        //window.form_validated = false;
1810        //}
1811
1812
1813        // desired_date - obsolete since 2021-08-19, data-required and data-blank is now used if required 
1814        /*
1815        var desired_date = $( "select[name='desired_date']" ).val();
1816        if (typeof desired_date !== "undefined" && desired_date.length < 1) {
1817            $("select[name='desired_date']").after('<span class="validation-error">必填欄位</span>');
1818            window.errors.push("desired_date");
1819            window.form_validated = false;
1820        }
1821        else if (typeof desired_date !== "undefined" && desired_date == '預約日期') {
1822            $("select[name='desired_date']").after('<span class="validation-error">必填欄位</span>');
1823            window.errors.push("desired_date");
1824            window.form_validated = false;
1825        }*/
1826
1827
1828        // desired_time - obsolete since 2021-08-19, data-required and data-blank is now used if required 
1829        /*var desired_time = $( "select[name='desired_time']" ).val();
1830        if (typeof desired_time !== "undefined" && desired_time.length < 1) {
1831            $("select[name='desired_time']").after('<span class="validation-error">必填欄位</span>');
1832            window.errors.push("desired_time");
1833            window.form_validated = false;
1834        }
1835        else if (typeof desired_time !== "undefined" && (desired_time == '預約時間' || desired_time == '所選日期休息')) {
1836            $("select[name='desired_time']").after('<span class="validation-error">必填欄位</span>');
1837            window.errors.push("desired_time");
1838            window.form_validated = false;
1839        }*/
1840
1841        // desired_store - updated 2021-08-19, only 20BEAUTY uses this now to make sure desired_store has values; otherwise data-required and data-blank is now used if required 
1842        if (/20beauty.com.hk/.test(window.location.href)) {
1843            var desired_store = $("select[name='desired_store']").val();
1844            var desired_store_option = $("select[name='desired_store']").children("option:selected").attr('value');
1845
1846            if (typeof desired_store !== "undefined" && typeof desired_store_option === "undefined") {
1847                $("select[name='desired_store']").after('<span class="validation-error">必填欄位</span>');
1848                window.errors.push("desired_store");
1849                window.form_validated = false;
1850            }
1851        }
1852
1853        //var promotion_code = $( "input[name='promotion_code']" ).val();
1854        //var enquiry_details = $( "input[name='enquiry_details']" ).val();
1855        //var enquiry_details2 = $( "input[name='enquiry_details2']" ).val();
1856
1857
1858
1859        // payment_method
1860        var payment_method = $("select[name='payment_method']").val();
1861        var payment_method_option = $("select[name='payment_method']").children("option:selected").attr('value');
1862        if (typeof payment_method !== "undefined" && !$("select[name='payment_method']").hasClass("hidden") && !$("select[name='payment_method']").hasClass("none_xs")) {
1863            if (typeof payment_method !== "undefined" && typeof payment_method_option === "undefined") {
1864                $("select[name='payment_method']").after('<span class="validation-error">必填欄位</span>');
1865                window.errors.push("payment_method");
1866                window.form_validated = false;
1867            }
1868        }
1869
1870
1871        // survey_other
1872        var survey = $("select[name='survey']").val();
1873        var survey_option = $("select[name='survey']").children("option:selected").attr('value');
1874        var survey_other = $("input[name='survey_other']").val();
1875        if (typeof survey_other !== "undefined" && typeof survey !== "undefined" && survey_option == 'survey_other' && survey_other.length < 1) {
1876            $("input[name='survey_other']").after('<span class="validation-error">必填欄位</span>');
1877            window.errors.push("survey_other");
1878            window.form_validated = false;
1879        }
1880
1881
1882
1883        if (/perface.com/.test(window.location.href)) {
1884            // coupon_code
1885            var coupon_code = $("input[name='coupon_code']").val();
1886            if (typeof coupon_code !== "undefined" && coupon_code.length == 0) {
1887                $("input[name='coupon_code']").after('<span class="validation-error">必填欄位</span>');
1888                window.errors.push("coupon_code");
1889                window.form_validated = false;
1890            } else if (typeof coupon_code !== "undefined" && !coupon_code.startsWith('FWR-')) {
1891                $("input[name='coupon_code']").after('<span class="validation-error">此欄必須是 "FWR-" 開頭再加5位數字</span>');
1892                window.errors.push("coupon_code");
1893                window.form_validated = false;
1894            } else if (typeof coupon_code !== "undefined" && coupon_code.length != 9) {
1895                $("input[name='coupon_code']").after('<span class="validation-error">此欄必須是 "FWR-" 開頭再加5位數字</span>');
1896                window.errors.push("coupon_code");
1897                window.form_validated = false;
1898            } else if (typeof coupon_code !== "undefined" && !(/^\d+$/.test(coupon_code.slice(-5)))) {
1899                $("input[name='coupon_code']").after('<span class="validation-error">此欄必須是 "FWR-" 開頭再加5位數字</span>');
1900                window.errors.push("coupon_code");
1901                window.form_validated = false;
1902            }
1903
1904
1905
1906            // member_code
1907            var member_code = $("input[name='member_code']").val();
1908            if (typeof member_code !== "undefined" && member_code.length < 1) {
1909                $("input[name='member_code']").after('<span class="validation-error">必填欄位</span>');
1910                window.errors.push("member_code");
1911                window.form_validated = false;
1912            } else if (typeof member_code !== "undefined" && member_code.length > 12) {
1913                $("input[name='member_code']").after('<span class="validation-error">此欄必須是12位以下的英文或數字</span>');
1914                window.errors.push("member_code");
1915                window.form_validated = false;
1916            } else if (typeof member_code !== "undefined" && !(/^[0-9a-zA-Z]+$/.test(member_code))) {
1917                $("input[name='member_code']").after('<span class="validation-error">此欄必須是12位以下的英文或數字</span>');
1918                window.errors.push("member_code");
1919                window.form_validated = false;
1920            }
1921
1922
1923
1924            // staff_code
1925            var staff_code = $("input[name='staff_code']").val();
1926
1927            if (typeof staff_code !== "undefined" && staff_code.length < 1) {
1928                $("input[name='staff_code']").after('<span class="validation-error">必填欄位</span>');
1929                window.errors.push("staff_code");
1930                window.form_validated = false;
1931            } else if (typeof staff_code !== "undefined" && staff_code.length > 12) {
1932                $("input[name='staff_code']").after('<span class="validation-error">此欄必須是12位以下的英文或數字</span>');
1933                window.errors.push("staff_code");
1934                window.form_validated = false;
1935            } else if (typeof staff_code !== "undefined" && !(/^[0-9a-zA-Z]+$/.test(staff_code))) {
1936                $("input[name='staff_code']").after('<span class="validation-error">此欄必須是12位以下的英文或數字</span>');
1937                window.errors.push("staff_code");
1938                window.form_validated = false;
1939            }
1940
1941
1942
1943        }
1944
1945
1946
1947
1948        // term
1949        var term = $("input[name='term']").val();
1950        if (typeof term !== "undefined" && !$("input[name='term']").is(':checked')) {
1951            $("input[name='term']").after('<span class="validation-error">  必填欄位</span>');
1952            window.errors.push("term");
1953            window.form_validated = false;
1954        }
1955
1956        //var newsletter = $( "input[name='newsletter']" ).val();
1957
1958
1959
1960
1961
1962
1963
1964        // custom
1965        /*$('[name^="custom_"]').each(function() {
1966            alert($(this).attr('data-label'));
1967            alert($(this).val());
1968        });*/
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978        // Mini-Site
1979        var form_category = $("input[name='form_category']").val();
1980        var offer = $("input[name='offer']").val();
1981        if (typeof form_category !== "undefined" && form_category == "Mini-Site") {
1982            if (typeof offer !== "undefined" && Number(offer) <= 0) {
1983
1984
1985
1986                var offer_minisite_allow_0 = $("input[name='offer_minisite_allow_0']").val();
1987                if (offer_minisite_allow_0 == '1') {
1988
1989                } else {
1990                    $("div#user-notification").html('<span class="validation-error">  請加入商品</span>');
1991                    window.errors.push("form_category");
1992                    window.form_validated = false;
1993                }
1994
1995                /*var offer_in_val = false;
1996                $('select').each(function() {
1997                    var val_in_option = $(this).children("option:selected").val();
1998                    if (val_in_option.includes("offer=") && !val_in_option.includes("offer=0")){
1999                        offer_in_val = true;
2000                    }
2001                });
2002
2003                
2004
2005                if (!offer_in_val)
2006                {*/
2007
2008                /*$("div#user-notification").html('<span class="validation-error">  請加入商品</span>');
2009                window.errors.push("form_category");
2010                window.form_validated = false;*/
2011                //}
2012            }
2013        }
2014
2015
2016
2017
2018        // reCAPTCHA
2019        
2020
2021        // custom required
2022        $('input, textarea').each(function() {
2023            if (!window.errors.includes($(this).attr("name"))) {
2024                var attr = $(this).attr('data-required');
2025                if (typeof attr !== typeof undefined && attr !== false && $(this).is(':radio') && !$("input:radio[name='" + $(this).attr("name") + "']").is(":checked")) {
2026                    $(this).parent().parent().after('<span class="validation-error">  必填欄位</span>');
2027                    window.form_validated = false;
2028                } else if (typeof attr !== typeof undefined && attr !== false && $(this).is(':checkbox') && !$(this).is(":checked")) {
2029                    $(this).before('<span class="validation-error">  必填欄位</span>');
2030                    window.form_validated = false;
2031                } else if (typeof attr !== typeof undefined && attr !== false && $(this).val().length < 1) {
2032                    $(this).after('<span class="validation-error">  必填欄位</span>');
2033                    window.form_validated = false;
2034                }
2035
2036                var attr = $(this).attr('data-tel');
2037                if (typeof attr !== typeof undefined && attr !== false && $(this).val().length >= 1 && $(this).val().length < 8) {
2038                    $(this).after('<span class="validation-error">  請輸入有效的電話</span>');
2039                    window.form_validated = false;
2040                }
2041            }
2042        });
2043
2044
2045        $('select').each(function() {
2046            if (!window.errors.includes($(this).attr("name"))) {
2047                var attr = $(this).attr('data-required');
2048                if (typeof attr !== typeof undefined && attr !== false) {
2049                    var option_attr = $(this).children("option:selected").attr('data-blank');
2050                    if (typeof option_attr !== typeof undefined && option_attr !== false) {
2051                        $(this).after('<span class="validation-error">  必填欄位</span>');
2052                        window.form_validated = false;
2053                    }
2054                }
2055            }
2056        });
2057
2058        return window.form_validated;
2059
2060    }
2061
2062
2063
2064
2065
2066
2067
2068
2069    function form_add_additional_data() {
2070
2071
2072        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
2073        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
2074        // additional data (added 2021-05-22)
2075        var _additional_data_i = 1;
2076        $('input, textarea').each(function() {
2077            var attr = $(this).attr('data-additional-label');
2078            var is_checkbox_or_radio = $(this).is(':checkbox') || $(this).is(':radio');
2079            if (typeof attr !== typeof undefined && attr !== false && $(this).val().length >= 1 && (!is_checkbox_or_radio || this.checked)) {
2080                var in_customer_email = $(this).attr('data-additional-in-customer-email');
2081                if (typeof in_customer_email !== typeof undefined && in_customer_email !== false) var in_customer_email_text = 'in_customer_email';
2082                else var in_customer_email_text = 'not_in_customer_email';
2083
2084                $('<input>').attr({
2085                    type: 'hidden',
2086                    id: '____additional_data_' + _additional_data_i.toString(),
2087                    name: '____additional_data_' + _additional_data_i.toString(),
2088                    value: '____additional_data____' + in_customer_email_text + '____' + attr + '____' + $(this).val().toString()
2089                }).appendTo('#enquiryform');
2090                _additional_data_i++;
2091            }
2092        });
2093        $('select').each(function() {
2094            var attr = $(this).attr('data-additional-label');
2095            if (typeof attr !== typeof undefined && attr !== false) {
2096                var in_customer_email = $(this).attr('data-additional-in-customer-email');
2097                if (typeof in_customer_email !== typeof undefined && in_customer_email !== false) var in_customer_email_text = 'in_customer_email';
2098                else var in_customer_email_text = 'not_in_customer_email';
2099
2100                var selected_vals = $(this).val();
2101                if (selected_vals) {
2102                    if (selected_vals.constructor === Array) {
2103                        for (var i = 0; i < selected_vals.length; i++) {
2104                            $('<input>').attr({
2105                                type: 'hidden',
2106                                id: '____additional_data_' + _additional_data_i.toString(),
2107                                name: '____additional_data_' + _additional_data_i.toString(),
2108                                value: '____additional_data____' + in_customer_email_text + '____' + attr + '____' + selected_vals[i].toString()
2109                            }).appendTo('#enquiryform');
2110                            _additional_data_i++;
2111                        }
2112                    } else {
2113                        $('<input>').attr({
2114                            type: 'hidden',
2115                            id: '____additional_data_' + _additional_data_i.toString(),
2116                            name: '____additional_data_' + _additional_data_i.toString(),
2117                            value: '____additional_data____' + in_customer_email_text + '____' + attr + '____' + $(this).val().toString()
2118                        }).appendTo('#enquiryform');
2119                        _additional_data_i++;
2120                    }
2121                }
2122            }
2123        });
2124        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
2125        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
2126
2127
2128    }
2129
2130    // Added on 2025-07-04 for dynamic values based on payment method
2131    $(document).ready(function() {
2132        $("input[name='payment_method']").on('change', function(e) {
2133
2134            const paymentMethod = $(this).val(); // "none" or "paypal"
2135
2136            // Show / hide elements based on payment method
2137            $("[data-show-on-payment-method]").hide();
2138            $(`[data-show-on-payment-method="${paymentMethod}"]`).show();
2139
2140            // Iterate over inputs with data-payment-none and data-payment-online attributes // not used anymore
2141            /*$('input[data-payment-none], input[data-payment-online]').each(function() {
2142                const $input = $(this);
2143                
2144                // Use .data() to access data-* attributes
2145                const valNone = $input.data("payment-none"); 
2146                const valOnline = $input.data("payment-online");
2147                
2148                // Set value based on payment method
2149                if (paymentMethod === "none") {
2150                    $input.val(valNone || "");
2151                } else if (paymentMethod === "paypal") {
2152                    $input.val(valOnline || "");
2153                }
2154            });*/
2155        });
2156
2157        $("input[name='payment_method']:checked").change();
2158    });
2159</script>
2159
2160                        <div class="g-2-sm pad_xs_m_t">
2161                            <div><button type="button" id="offlinePaySubmit" class="btn_ghost_pink link_noline block_xs inblk_sm ha_center_xs">提交</button></div>
2162                            <br>
2163
2164                            <div class="f-1-xs">點擊「提交」即表示你同意20BEAUTY的《<a href="privacy" class="link_black link_hoverline" target="_blank">私隱政策</a>》、《<a href="termsofuse" class="link_black link_hoverline" target="_blank">條款及細則</a>》</div>
2165
2166                            <br>
2167                            <div class="font_xs_xs">
2168                                優惠條款及細則:<br>
2169                                <ul class="tnc">
2170                                    <li>只限年滿18歲女性新客戶,每人只限免費體驗一次</li>
2171                                    <li>如未夠18歲,需要於法定監護人同意下方可接受療程</li>
2172                                    <li>禮品數量有限,送完即止</li>
2173                                    <li>如有任何爭議,20BEAUTY保留最終決定權</li>
2174                                </ul>
2175                            </div>
2176                            <div class='g-8-xs g-9-md f-1-xs mar_xs_xxl_t f-1-xs' style='line-height: 1.75; margin-top:1.75em;'>本網站受 reCAPTCHA 及 Google 保護,並適用 Google 的 <a target='_blank' href='https://policies.google.com/privacy' style='color:black; text-decoration:none;'>《隱私政策》</a>及<a target='_blank' href='https://policies.google.com/terms' style='color:black; text-decoration:none;'>《服務條款》</a></p></div>
2177<br>                        </div>
2178                    </div>
2179                </form>
2180                <!-- /Form -->
2181            </div>
2182        </section>
2183        <!-- /Form Section -->
2184
2185        <!-- Popup/ -->
2186                <!-- /Popup -->
2187    </main>
2188    
2189<style>
2190    /* new flow: error fields */
2191    .field-error {
2192        color: #d43636ff;
2193        font-size: 0.9em;
2194        margin-top: 12px;
2195        background: #ffffff;
2196        padding: 0.5em;
2197        position: relative;
2198        border-radius: 4px;
2199        box-shadow: 0px 1px 4px #000;
2200    }
2201
2202    .field-error::before {
2203        content: "";
2204        position: absolute;
2205        top: -0.5em;
2206        left: 1.3em;
2207        transform: translateX(-50%);
2208        width: 0;
2209        height: 0;
2210        border-left: 10px solid transparent;
2211        border-right: 10px solid transparent;
2212        border-bottom: 10px solid #ffffff;
2213    }
2214
2215    .form-meta-slot {
2216        position: absolute !important;
2217        left: -9999px !important;
2218        width: 1px !important;
2219        height: 1px !important;
2220        overflow: hidden !important;
2221        opacity: 0 !important;
2222        pointer-events: none !important;
2223    }
2224</style>
2225
2226<script>
2227    (function() {
2228        document.addEventListener('DOMContentLoaded', function() {
2229            var form = document.getElementById('enquiryform');
2230            if (!form) return;
2231            if (form.querySelector('[name="treatment_id"]')) return;
2232
2233            var wrap = document.createElement('div');
2234            wrap.className = 'form-meta-slot';
2235            wrap.setAttribute('aria-hidden', 'true');
2236
2237            var label = document.createElement('label');
2238            label.setAttribute('for', 'treatment_id');
2239            label.textContent = 'Treatment ID';
2240
2241            var input = document.createElement('input');
2242            input.type = 'text';
2243            input.name = 'treatment_id';
2244            input.id = 'treatment_id';
2245            input.value = '';
2246            input.autocomplete = 'off';
2247            input.tabIndex = -1;
2248
2249            wrap.appendChild(label);
2250            wrap.appendChild(input);
2251            form.appendChild(wrap);
2252        });
2253    })();
2254</script>
2254
2255
2256<script>
2257    // new flow: offer/treatment mapping for legacy "_dynamic" select
2258    (function() {
2259        function safeNum(v) {
2260            var n = parseFloat(String(v || '').replace(/[^0-9.]/g, ''));
2261            return isFinite(n) ? n : 0;
2262        }
2263
2264        function getOneByIdOrName(id, name) {
2265            var el = id ? document.getElementById(id) : null;
2266            if (el) return el;
2267            if (name) {
2268                var els = document.getElementsByName(name);
2269                if (els && els.length > 0) return els[els.length - 1];
2270            }
2271            return null;
2272        }
2273
2274        function parseDynamicRaw(raw) {
2275            var out = {};
2276            var s = String(raw || '').trim();
2277            if (!s) return out;
2278
2279            try {
2280                // value is in querystring form: k=v&k2=v2
2281                var sp = new URLSearchParams(s);
2282                sp.forEach(function(v, k) {
2283                    out[k] = v;
2284                });
2285                return out;
2286            } catch (e) {
2287                // very old browsers fallback
2288                var parts = s.split('&');
2289                for (var i = 0; i < parts.length; i++) {
2290                    var p = parts[i];
2291                    var idx = p.indexOf('=');
2292                    if (idx <= 0) continue;
2293                    var k = p.slice(0, idx);
2294                    var v = p.slice(idx + 1);
2295                    out[decodeURIComponent(k)] = decodeURIComponent(v);
2296                }
2297                return out;
2298            }
2299        }
2300
2301        function applyOfferFields(offerNum, eventLabel) {
2302            var hasOffer = offerNum > 0;
2303            var normalizedEventLabel = String(eventLabel || '').trim();
2304
2305            var offerEl = getOneByIdOrName('offer', 'offer');
2306            var offerOnlineEl = getOneByIdOrName('offer_online', 'offer_online');
2307            var prepaidEl = getOneByIdOrName('offer_online_prepaid', 'offer_online_prepaid');
2308            var onlineDetailsEl = getOneByIdOrName('offer_online_details', 'offer_online_details');
2309            var offlineDetailsEl = getOneByIdOrName('offer_offline_details', 'offer_offline_details');
2310            var eventNameEl = getOneByIdOrName('eventName', 'event_name');
2311
2312            if (!hasOffer) {
2313                if (offerOnlineEl) offerOnlineEl.value = '';
2314                if (prepaidEl) prepaidEl.value = '';
2315                if (onlineDetailsEl) onlineDetailsEl.value = '';
2316                if (offlineDetailsEl) offlineDetailsEl.value = '免費登記';
2317                if (eventNameEl) eventNameEl.value = normalizedEventLabel;
2318                return;
2319            }
2320
2321            // Ensure base offer is set if empty
2322            if (offerEl && String(offerEl.value || '').trim() === '') offerEl.value = String(offerNum);
2323            if (offerOnlineEl) offerOnlineEl.value = String(offerNum);
2324
2325            var depositMode = String("booking" || 'booking');
2326            var deposit = 0;
2327            var remain = 0;
2328            if (depositMode === 'full') {
2329                deposit = offerNum;
2330                remain = 0;
2331            } else {
2332                deposit = Math.min(100, offerNum);
2333                remain = Math.max(0, offerNum - deposit);
2334            }
2335
2336            if (prepaidEl) prepaidEl.value = String(deposit);
2337
2338            if (onlineDetailsEl) {
2339                if (depositMode === 'full') {
2340                    onlineDetailsEl.value = '網上付款$' + deposit;
2341                } else {
2342                    onlineDetailsEl.value = '網上付款預約訂金$' + deposit + ';餘額$' + remain + '需到店支付';
2343                }
2344            }
2345            if (offlineDetailsEl) {
2346                offlineDetailsEl.value = offerNum > 0 ? ('到店付款:HK$ ' + offerNum) : '到店付款';
2347            }
2348            if (eventNameEl) eventNameEl.value = normalizedEventLabel;
2349        }
2350
2351        function updateOfferFieldsFromDynamicOrHidden() {
2352            var form = document.getElementById('enquiryform');
2353            if (!form) return;
2354
2355            var sel = form.querySelector('select[name="_dynamic"]');
2356            if (!sel) {
2357                // No _dynamic selector; fallback to hidden values
2358                var offerEl = getOneByIdOrName('offer', 'offer');
2359                var offerNum = safeNum(offerEl ? offerEl.value : '');
2360                var treatmentOfferEl = getOneByIdOrName('treatmentOfferName', 'treatment_offer_name');
2361                var treatmentNameEl = getOneByIdOrName('', 'treatment_name');
2362                var label = '';
2363                if (treatmentOfferEl && String(treatmentOfferEl.value || '').trim() !== '') label = treatmentOfferEl.value;
2364                else if (treatmentNameEl && String(treatmentNameEl.value || '').trim() !== '') label = treatmentNameEl.value;
2365                applyOfferFields(offerNum, label);
2366                return;
2367            }
2368
2369            var opt = sel.options && sel.selectedIndex >= 0 ? sel.options[sel.selectedIndex] : null;
2370            var raw = opt ? (opt.value || '') : '';
2371            var params = parseDynamicRaw(raw);
2372
2373            var treatmentOfferName = (params.treatment_offer_name || '').trim();
2374            var treatmentShortName = (params.treatment_short_name || '').trim();
2375            var promotionCode = (params.promotion_code || '').trim();
2376            var enquiryOfferDetails = (params.enquiry_offer_details || '').trim();
2377
2378            var offerEl = getOneByIdOrName('offer', 'offer');
2379            var treatmentOfferEl = getOneByIdOrName('treatmentOfferName', 'treatment_offer_name');
2380            var treatmentShortEl = getOneByIdOrName('treatmentShortName', 'treatment_short_name');
2381            var promotionEl = getOneByIdOrName('promotionCode', 'promotion_code');
2382            var enquiryOfferDetailsEl = getOneByIdOrName('enquiryOfferDetails', 'enquiry_offer_details');
2383
2384            // Always try to update text fields from _dynamic (even for free trials)
2385            if (treatmentOfferEl) {
2386                treatmentOfferEl.value = treatmentOfferName || ((opt && opt.textContent) ? opt.textContent.trim() : '');
2387            }
2388            if (promotionEl) promotionEl.value = promotionCode;
2389            if (enquiryOfferDetailsEl) enquiryOfferDetailsEl.value = enquiryOfferDetails;
2390
2391            // If dynamic provides short name, prefer it; otherwise keep existing constant
2392            if (treatmentShortEl && treatmentShortName) treatmentShortEl.value = treatmentShortName;
2393
2394            // Offer handling rules:
2395            // - If _dynamic provides a numeric offer (including 0), use it.
2396            // - If _dynamic does not include offer at all, fallback to existing hidden offer value.
2397            // - If _dynamic provides a non-numeric offer (e.g. "Consultation"), treat as no-offer.
2398            var hasOfferKey = params && Object.prototype.hasOwnProperty.call(params, 'offer');
2399            var offerRaw = hasOfferKey ? String(params.offer || '').trim() : '';
2400            var offerIsNumeric = hasOfferKey ? /^[0-9.,]+$/.test(offerRaw) : true;
2401            var offerNum = 0;
2402
2403            if (hasOfferKey) {
2404                if (!offerIsNumeric) {
2405                    // Consultation-like value
2406                    if (offerEl) offerEl.value = '';
2407                    applyOfferFields(0, '');
2408                    return;
2409                }
2410                offerNum = safeNum(offerRaw);
2411            } else {
2412                offerNum = safeNum(offerEl ? offerEl.value : '');
2413            }
2414
2415            if (offerEl && String(offerEl.value || '').trim() === '' && !hasOfferKey) {
2416                // keep as-is (page may intentionally have empty offer)
2417            } else if (offerEl) {
2418                offerEl.value = String(offerNum);
2419            }
2420
2421            applyOfferFields(offerNum, (opt && opt.textContent) ? opt.textContent.trim() : (treatmentOfferName || ''));
2422        }
2423
2424        document.addEventListener('DOMContentLoaded', function() {
2425            var form = document.getElementById('enquiryform');
2426            if (!form) return;
2427            var sel = form.querySelector('select[name="_dynamic"]');
2428            if (sel) sel.addEventListener('change', updateOfferFieldsFromDynamicOrHidden);
2429            updateOfferFieldsFromDynamicOrHidden();
2430        });
2431    })();
2432</script>
2432
2433
2434<script>
2435    // Insert client-side placeholders for required fields and expose the list to JS
2436    (function() {
2437        window.__formRequiredList = ["full_name","mobile","email","age","desired_store","desired_date","desired_time","_dynamic"] || [];
2438        document.addEventListener('DOMContentLoaded', function() {
2439            window.__formRequiredList.forEach(function(fieldName) {
2440                if (!fieldName) return;
2441                var form = document.getElementById('enquiryform');
2442                if (!form) return;
2443                var els = form.querySelectorAll('[name="' + fieldName + '"]');
2444                if (!els || els.length === 0) return;
2445                var el = els[els.length - 1];
2446                var next = el.nextElementSibling;
2447                if (next && next.classList && next.classList.contains('field-error')) return;
2448                var div = document.createElement('div');
2449                div.className = 'field-error';
2450                div.setAttribute('data-field', fieldName);
2451                div.style.display = 'none';
2452                div.textContent = '';
2453                if (el.parentNode) el.parentNode.insertBefore(div, el.nextSibling);
2454            });
2455        });
2456    })();
2457</script>
2457
2458
2459<script>
2460    // Insert client-side placeholders for hidden required fields and expose the list to JS
2461    (function() {
2462        window.__hiddenRequiredList = ["term","pid","brandList[]","brand_short_name","payment_method"] || [];
2463        document.addEventListener('DOMContentLoaded', function() {
2464            window.__hiddenRequiredList.forEach(function(fieldName) {
2465                if (!fieldName) return;
2466                var form = document.getElementById('enquiryform');
2467                if (!form) return;
2468                var els = form.querySelectorAll('[name="' + fieldName + '"]');
2469                if (!els || els.length === 0) return;
2470                var el = els[els.length - 1];
2471                var next = el.nextElementSibling;
2472                if (next && next.classList && next.classList.contains('field-error')) return;
2473                var div = document.createElement('div');
2474                div.className = 'field-error';
2475                div.setAttribute('data-field', fieldName);
2476                div.style.display = 'none';
2477                div.textContent = '';
2478                if (el.parentNode) el.parentNode.insertBefore(div, el.nextSibling);
2479            });
2480        });
2481    })();
2482</script>
2482
2483
2484<script>
2485    // new flow: normalize tracking + store code for backend
2486    (function() {
2487        function normalizeStoreCode(v) {
2488            var s = String(v || '').trim();
2489            if (!s) return '';
2490            var parts = s.split('|');
2491            var last = parts[parts.length - 1];
2492            return String(last || s).trim();
2493        }
2494
2495        function setLandingUrlDefaultWeb() {
2496            var el = document.getElementById('enquiry_landing_url');
2497            if (!el) return;
2498
2499            var href = window.location && window.location.href ? window.location.href : '';
2500            if (!href) return;
2501
2502            try {
2503                var u = new URL(href);
2504                var sp = u.searchParams;
2505                var hasTracking = sp.has('utm_source') || sp.has('target_source') || sp.has('ref_source') || sp.has('ref');
2506                if (!hasTracking) sp.set('utm_source', 'web');
2507                el.value = u.toString();
2508            } catch (e) {
2509                el.value = href;
2510            }
2511        }
2512
2513        function syncStoreCode() {
2514            var sel = document.querySelector('select[name="desired_store"]');
2515            var out = document.getElementById('enquiry_exp_shop');
2516            if (!sel || !out) return;
2517            out.value = normalizeStoreCode(sel.value);
2518        }
2519
2520        document.addEventListener('DOMContentLoaded', function() {
2521            setLandingUrlDefaultWeb();
2522            syncStoreCode();
2523
2524            var sel = document.querySelector('select[name="desired_store"]');
2525            if (sel) sel.addEventListener('change', syncStoreCode);
2526        });
2527    })();
2528</script>
2528
2529
2530<script src="/marketing/component/ui/submitButton/function/config.js"></script>
vendor: 1 bytes, line 2530
2530
2531<script src="/marketing/component/ui/submitButton/function/submit_helpers.js"></script>
vendor: 1 bytes, line 2531
2531
2532<script src="/marketing/component/ui/submitButton/function/submit_utils.js"></script>
vendor: 1 bytes, line 2532
2532
2533<script src="/marketing/component/ui/submitButton/function/checkRequiredFields.js"></script>
vendor: 1 bytes, line 2533
2533
2534<script src="/marketing/component/ui/submitButton/function/checkRequiredHiddenFields.js"></script>
vendor: 1 bytes, line 2534
2534
2535<script src="/marketing/component/ui/submitButton/function/checkMobileBeforeSubmit.js"></script>
vendor: 1 bytes, line 2535
2535
2536<script src="/marketing/component/ui/submitButton/function/bind_buttons.js"></script>
2536    </body>
2537
2538</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.