PageSourceSearch

https://www.henghengmarble.com/checkout

html henghengmarble.com collected 2026-10-04 12:38:19 UTC 124,932 bytes, 2,591 lines download raw bytes

1<!DOCTYPE html>
2<html lang="th" class="">
3<head>
4<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5<meta name="viewport" content="width=980">
6<title>ตะกร้าสินค้า : Inspired by LnwShop.com (v2)</title>
7<link rel="canonical" href="https://www.henghengmarble.com/checkout" />
8<meta http-equiv="content-language" content="th" />
9<meta name="description" content="โรงงานตี่จู้เอี๊ยะหินอ่อนแท้ ตั้งแต่ปี 2530 ผลิตเอง สั่งทำตามขนาด ส่ง+ติดตั้งถึงบ้าน ร้านบางนา-ศรีนครินทร์ ข้างวัดศรีเอี่ยม ปรึกษา LINE @hengheng55" />
10<meta name="keywords" content="ตี่จู้เอี๊ยะหินอ่อน, ศาลพระภูมิหินอ่อน, โรงงานตี่จู้เอี๊ยะ บางนา, เฮงเฮงหินอ่อน, ปึงเถ้ากงหินอ่อน" />
11<meta property="thumbnail" content="https://inwfile.com/s-l/q9hs2i.jpg" />
12<meta property="og:title" content="ตะกร้าสินค้า" />
13<meta property="og:description" content="โรงงานตี่จู้เอี๊ยะหินอ่อนแท้ ตั้งแต่ปี 2530 ผลิตเอง สั่งทำตามขนาด ส่ง+ติดตั้งถึงบ้าน ร้านบางนา-ศรีนครินทร์ ข้างวัดศรีเอี่ยม ปรึกษา LINE @hengheng55" />
14<meta property="og:image" content="https://inwfile.com/s-l/q9hs2i.jpg" />
15<meta property="og:type" content="website" />
16<meta property="og:url" content="https://www.henghengmarble.com/checkout" />
17<meta name="google-site-verification" content="JHvfD_CaWQnJaXBzkXWRg-sKFMRt1LcrNgr1GJymIhc" />
18<link rel="alternate" hreflang="th" href="https://www.henghengmarble.com/checkout" />
19<link rel="image_src" href="https://l.lnwfile.com/_/l/_raw/q9/hs/2i.jpg" />
20<link rel="shortcut icon" href="https://l.lnwfile.com/_/l/_raw/q9/hs/2i.jpg" />
21<link rel="apple-touch-icon" href="https://l.lnwfile.com/_/l/_raw/q9/hs/2i.jpg">
22<link rel="icon" href="https://l.lnwfile.com/_/l/_raw/q9/hs/2i.jpg" />
23<link rel="stylesheet" type="text/css" id="lnw-basic-css-file" href="https://www.henghengmarble.com/system/application/templates/lnwshop/default/_css/basic.min.css?t=20260810000053" />
24<link rel="stylesheet" type="text/css" href="https://www.henghengmarble.com/cache/lnwshop/68/268/css/20260928000311/style.css" />
25<link rel="preload" type="text/css" href="https://www.henghengmarble.com/system/application/modules/lnwbar/_css/color_style.min.css?t=20260901144946" as="style" onload="this.onload=null;this.rel='stylesheet'" />
26<link rel="preload" type="text/css" href="https://www.henghengmarble.com/system/application/modules/lnwbar/_css/lnw_icon.min.css?t=20220616" as="style" onload="this.onload=null;this.rel='stylesheet'" />
27<script type="text/javascript">
28	window._lckd = window._lckd || [];
29	function _lck(){window._lckd.push(arguments);}
30	_lck('config',{"policy_url":null,"web_domain":"www.henghengmarble.com","web_avatar":"https:\/\/l.lnwfile.com\/_\/l\/_resize\/100\/100\/q9\/hs\/2i.jpg","web_ukey":"68268","cpath":"\/","customize":{"default_consents":{"functionality_storage":1,"analytics_storage":1,"ad_storage":1}},"html":{"functionality_storage":["\u003Cscript\u003E\n(function(){\nfunction f(){var L=document.querySelectorAll('a[href*=\"line.me\/R\/ti\/p\"]');for(var i=0;i\u003CL.length;i++){L[i].href=L[i].href.replace('\/R\/ti\/p\/','\/ti\/p\/');}}\nf();\ndocument.addEventListener('DOMContentLoaded',f);\nsetTimeout(f,1200);setTimeout(f,4000);\ndocument.addEventListener('click',function(e){var a=e.target&&e.target.closest?e.target.closest('a[href*=\"line.me\/R\/ti\/p\"]'):null;if(a){a.href=a.href.replace('\/R\/ti\/p\/','\/ti\/p\/');}},true);\n})();\n\u003C\/script\u003E"]}});
31</script>
vendor: 1 bytes, line 31
31
32<script async defer src="https://www.lnwshop.com/system/application/modules/lnwshopweb/_js/cookie_policy.js?t=20260925"></script>
32
33<meta name="robots" content="noindex">
34<link rel="preconnect" href="https://l-up.lnwfile.com"></head>
35<body>
36<!-- KH1RikQqmWe-HJMNHl_Q81RtmPzkUf7Nf6Y7rkLUMAplmQXTTNMfNW62xg_9-Lpe -->
37<!-- dCMb2cvS2jA32499edKhsWivjm8oGlpotdlPGpviWAd8aGt5C9MMohIz1vTsKYH8DTtdyw== -->
38<!-- wy4IhlRU9qWlloe2t0co2IAwAdD7NOUpDIq1NQ-_o4Anmh97yq5ytxKaQ6_UREFOgL1V4Q== -->
39
40<!-- zgRMFjjmdeiDdFa7r2kTyBPuju2CgYEeIoflm54H8gmVgxL2uNpoGsE3o9rMiD704LZhAQ== - 0.2610 -->
41
42<div id="lnwbar-app"></div>
43<script language="JavaScript" type="text/javascript" src="https://www.henghengmarble.com/external/jquery/jquery-1.12.4.min.js"></script>
43
44<div id="ggHead">
45</div>
46
47<div id="gadget-1" config_id="1" class="widgetPage" data-scene="checkout" data-svars="{&quot;section_sub&quot;:&quot;cart&quot;,&quot;section_args&quot;:[]}"><div class="pageWrapper rb-hot-000 rb-recommend-000 pageShirt">
48
49
50
51
52<div class="pageUnderwear page-checkout">
53<div id="gadget-4" config_id="4" class="widgetZone z-article"><div class="zoneShirt">
54<div id="gadget-79" config_id="79" class="widgetUnit u-section u-section-checkout u-section-checkout-cart"><a name="lnwcontent"></a><div class="unitHat"></div><div class="unitShirt">    <div id="lnw_cartArea" class="checkoutBody">
55        <div class="cart_loader" :style="{display:(cart_loader?'block':'none')}"></div>
56        <div class="shopHeader">
57<div class="avatar"><a href="https://www.henghengmarble.com/"><img src="https://l.lnwfile.com/_/l/_resize/100/100/q9/hs/2i.jpg"></a></div>
58<div class="name">
59<a href="https://www.henghengmarble.com/">เฮงเฮงหินอ่อน | ตี่จู้เอี๊ยะ ศาลพระภูมิหินอ่อน โรงงานบางนา</a>
60<div class="desc">SHOP ID: 68268 <span class="status" status="">(ร้านเปิดปกติ)</span></div>
61</div>
62
63<div class="order_step order_step1"><div class="buystep step1 currentStep"><div class="point"></div><div class="line before"></div><div class="line after"></div><div class="text">ตะกร้าสินค้า</div></div><div class="buystep step2"><div class="point"></div><div class="line before"></div><div class="line after"></div><div class="text">ที่อยู่ในการจัดส่ง</div></div><div class="buystep step3"><div class="point"></div><div class="line before"></div><div class="line after"></div><div class="text">ตรวจสอบรายการสั่งซื้อ</div></div><div class="buystep step4"><div class="point"></div><div class="line before"></div><div class="line after"></div><div class="text">สั่งซื้อเรียบร้อย (รอชำระเงิน)</div></div></div>
64</div>        <div class="checkoutHeader">
65            <div class="checkoutBack">
66                <a class="cartBack" href="javascript:history.back()"><i
67                        class="icon"></i><span class="text">กลับไปหน้าที่แล้ว</span></a>            </div>
68            <h1>รายการสินค้าในตะกร้า</h1>
69        </div>
70        <div class="defaultMessage">
71            กรุณาตรวจสอบรายการสินค้าและเลือกวิธีการจัดส่ง จากนั้นคลิกปุ่ม “<b>สั่งซื้อสินค้า</b>” เพื่อไปขั้นตอนถัดไป        </div>
72        <div v-if="cart" class="cartBody" style="visibility: hidden;" :style="{visibility:(cart?'visibility':'hidden')}">
73                        <div class="cartZone">
74                <div class="headArea">
75                    <div class="detail">สินค้า</div>
76                    <div class="price">ราคา/ชิ้น</div>
77                    <div class="quantity">จำนวน</div>
78                    <div class="amount">ราคารวม</div>
79                </div>
80                <div class="productArea">
81                    <product-item v-for="item in cart.items" :key="item.iid" :item="item"></product-item>
82                </div>
83                <div class="productSummaryArea">
84                    <div class="title">สรุปรายการสินค้า</div>
85                    <div class="detail"><span>{{ cart.num }} รายการ</span>
86                        <span>{{ cart.quantity }} ชิ้น</span> <span
87                            v-if="checkweight"> น้ำหนักรวม {{ cart.weight }} กรัม</span>
88                    </div>
89                    <div class="text">ราคาสินค้าทั้งหมด</div>
90                    <div class="amount" :realpricex="cart.price.product">
91                        <div class="real"><span
92                                class="num">{{ amount_format(cart.price.product) }}</span> บาท                        </div>
93                        <div class="estimate"></div>
94                    </div>
95                </div>
96                                <div class="hasDiscountArea salePromotion" v-if="cart.discounts">
97                    <div v-for="(discount, index) in cart.discounts" class="discountArea">
98                        <div class="title">
99                            <div v-if="index==0">สรุปรายการส่วนลด</div>
100                        </div>
101                        <div class="detail">ส่วนลดจาก {{
102                            show_lang('CART-DISCOUNT-TYPE-'+discount.type.toUpperCase()) }} {{discount.name}}
103                        </div>
104                        <div class="text">คิดเป็นส่วนลด</div>
105                        <div class="amount" :realpricex="discount.price">
106                            <div class="real"><span
107                                    class="num">- {{ amount_format(discount.price) }}</span> บาท                            </div>
108                            <div class="estimate"></div>
109                        </div>
110                    </div>
111                    <div class="beforeshippingArea">
112                        <div class="text">ราคาหลังหักส่วนลด</div>
113                        <div class="amount" :realpricex="cart.price.product - cart.price.discount">
114                            <div class="real"><span class="num">{{ amount_format(cart.price.product - cart.price.discount)}}</span> บาท                            </div>
115                            <div class="estimate"></div>
116                        </div>
117                    </div>
118                </div>
119                                        <div v-if="!cart.is_no_shipping" class="deliveryArea">
120                            <div class="text">
121                                <b>ระยะเวลาจัดเตรียมสินค้า</b>
122                                {{cart_prepare_day}} วันทำการ หลังตรวจสอบยอดเงินเรียบร้อยแล้ว และไม่นับรวมระยะเวลาจัดส่ง                            </div>
123                                                                                        <div class="text weekday_text">
124                                    * ร้านหยุดวันหยุดสุดสัปดาห์ (วันเสาร์-อาทิตย์ และวันหยุดนักขัตฤก
124ษ์)                                </div>
125                                                    </div>
126                                                    <template v-if="!cart.is_no_shipping">
127                <div v-if="cart.is_product_no_shipping_type" class="shiptypeArea">
128                    <div class="shiptypeChoice">
129                        <div class="shiptype no_set">
130                            <div class="detail">จัดส่งแยกพัสดุ</div>
131                            <div class="text">ค่าจัดส่ง</div>
132                            <div class="price" :realpricex="cart.price.shipping">
133                                <div class="real">+&nbsp;<span class="num">{{ amount_format(cart.price.shipping) }}</span> บาท</div>
134                                <div class="estimate"></div>
135                            </div>
136                        </div>
137                    </div>
138                </div>
139                <div v-else class="shiptypeArea"
140                     :class="{chosen: (show_only_shiptype_chosen && (shipping_type_list.length > 1))}">
141                    <div class="checkoutHeader">
142                        <h2>เลือกวิธีการจัดส่งสินค้า</h2>
143                    </div>
144                                        <div class="shiptypeChoice">
145                        <label v-for="stype in shipping_type_list" :key="stype.id" class="shiptype"
146                               :class="{checked:(cart.shipping_type_id==stype.id)}">
147                            <div class="detail"><input type="radio" name="shipping_type"
148                                                                                 :value="stype.id"
149                                                                                 v-model="choose_shipping_type_id"/> &nbsp;{{ stype.name?stype.name:type_txt[stype.type] }}
150                                <div class="sub_detail">
151                                    <div class="shipping_custom" v-if="stype.description">{{stype.description}}</div>
152                                    <div class="shipping_delivery" v-if="stype.delivery_area">{{stype.delivery_area}}</div>
153                                    <div v-if="stype.period"
154                                         class="receive_time"> {{
155                                        stype.period }}
156                                    </div>
157                                    <div class="shipping_company"
158                                         v-if="stype.provider && stype.provider.length > 0">
159                                                                        <span
160                                                v-for="provider in stype.provider"><span
161                                                    :class="provider"></span></span>
162                                        <span class="info" v-if="stype.provider.length>1"
163                                              @mouseover="shiptype_over(stype)"
164                                              @mouseleave="shiptype_leave(stype)">?</span>
165                                        <div class="description" v-if="stype.provider.length>1"
166                                             :style="{display:(stype_info_hover==stype.id?'block':'none')}">
167                                            ทางร้านจะเลือกช่องทางที่เหมาะสมที่สุด
168                                        </div>
169                                    </div>
170                                    <div v-if="stype.cod_flag" class="shipping_tag tag_cod">ชำระเงินปลายทาง (COD)</div>
171                                </div>
172                            </div>
173                            <div class="text">ค่าจัดส่ง</div>
174                            <div v-if="stype.price===false" class="price" realpricex="">
175                                <div class="real">+&nbsp;<span class="num">x</span> บาท</div>
176                                <div class="estimate"></div>
177                            </div>
178                            <div v-else class="price" :realpricex="stype.price">
179                                <div class="full" v-if="stype.full_price"
180                                     style="text-decoration:line-through;color: #aaa;">+&nbsp;<span class="num">{{ amount_format(stype.full_price) }}</span> บาท                                </div>
181                                <div class="real minor" v-if="stype.format=='custom'">-</div>
182                                <div class="real" v-else>+&nbsp;<span
183                                        class="num">{{ amount_format(stype.price) }}</span> บาท                                </div>
184                                <div class="estimate"></div>
185                            </div>
186                        </label>
187                        <div class="change-shiptypeChoice" v-show="show_only_shiptype_chosen"
188                             @click="show_only_shiptype_chosen=0">เปลี่ยนวิธีการจัดส่ง</div>
189                    </div>
190                    <div v-if="(shipping_type_list.length==0) && (cart.shipping_types_rank.length==0)" class="noshipping_text">ร้านค้านี้ยังไม่ได้กำหนดวิธีการจัดส่งสินค้า ทำให้ไม่สามารถดำเนินการสั่งซื้อได้ กรุณา <a href="https://www.henghengmarble.com/contactus">ติดต่อกับทางร้าน</a></div>
191                    <div v-else-if="(shipping_type_list.length==0)" class="noshipping_text">ไม่มีวิธีการจัดส่งสินค้าที่ตรงตามเงื่อนไข ทำให้ไม่สามารถดำเนินการสั่งซื้อได้ กรุณา <a href="https://www.henghengmarble.com/contactus">ติดต่อกับทางร้าน</a></div>
192                </div>
193                </template>
194                                <div class="detailArea">
195                    <div class="title">
196                        <div class="text">เพิ่มเติมถึงร้านค้า</div>
197                        <div class="optional">(เว้นว่างได้)</div>
198                    </div>
199                    <div class="body"><textarea class="input" name="detail" v-model="cart.detail"
200                                                @change="save_detail"></textarea></div>
201                </div>
202                <div class="netArea">
203                    <div class="text">รวมราคาทั้งหมด</div>
204                    <div class="amount" :realpricex="cart.shipping_type_id?cart.price.pay:'-'">
205                        <div class="real"><span v-if="cart.is_no_shipping || cart.is_product_no_shipping_type || cart.shipping_type_id" class="num">{{ amount_format(cart.price.pay) }}</span><span v-else class="name"><span class="shipping_type_0">*กรุณาเลือกวิธีจัดส่ง</span></span> บาท</div>
206                        <div class="estimate"></div>
207                                            </div>
208                </div>
209            </div>
210            <div id="checkoutNextBar" class="cartButtons">
211                <div class="alignLeft">
212                    <a class="cartBack" href="https://www.henghengmarble.com/category"><i
213                            class="icon"></i><span class="text">เลือกสินค้าเพิ่ม</span></a>                </div>
214                <div class="alignRight">
215                                                            <ul class="b-checkout LBUTTON" btype="button" @click="checkout">
216                        <li class="buttonLeft"></li>
217                        <li class="buttonCenter buttonText">สั่งซื้อสินค้า</li>
218                        <li class="buttonRight"></li>
219                    </ul>
220                </div>
221            </div>
222        </div>
223    </div>
224    
224<script type="text/javascript">
225    var $cartZone;
226    var price_decimal = 2;
227
228    function amount_format(num) {
229        return number_format(num, price_decimal);
230    }
231
232    function lnw_number_format(num) {
233        var floor_num = Math.floor(num);
234        if ((num - floor_num) > 0) {
235            return number_format(num, 2);
236        }
237        return number_format(num, 0);
238    }
239
240    function error_message(err) {
241        if (err.key) {
242            switch (err.key) {
243                case 'NOPRODUCT':
244                case 'HIDDEN':
245                case 'NOSELL':
246                    return 'ไม่มีสินค้าชนิดนี้ หรือสินค้าชนิดนี้ไม่ขาย';
247                case 'NOSTOCK':
248                    var html = 'สินค้านี้เหลือเพียง %d ชิ้น ไม่สามารถสั่งซื้อได้';
249                    return html.replace(/%d/, err.remain);
250                case 'BUY-WEB_CORRUPTION':
251                    return 'ขออภัย ขณะนี้ระบบโดนระงับ ไม่สามารถสั่งซื้อสินค้าได้';
252                case 'INVALID_POINT':
253                    return 'กรุณากรอกตัวเลขเพื่อใช้คะแนนสะสม LnwPoints';
254                case 'USE>POINT':
255                    return 'ไม่สามารถใช้คะแนนสะสม LnwPoints เกินกว่าคะแนนที่คุณมีได้';
256                case 'POINT>NET':
257                    return 'ไม่สามารถใช้คะแนนสะสม LnwPoints มากกว่าราคารวมสินค้าได้';
258                case 'BUY-LNWPAY_ANTI-MONEY_LAUNDERING':
259                    return 'ระบบไม่อนุญาติให้สั่งซื้อสินค้าราคารวมเกิน 30,000 บาทต่อรายการสั่งซื้อได้';
260                case 'PERMISSION_DENIED':
261                    return 'คุณไม่มีสิทธิใช้งานคูปองนี้';
262                case 'BELOW_QUANTITY':
263                    return __lnw__.show_lang('CART-PRODUCT-BELOW_QUANTITY', err.limit, err.unit);
264                case 'OVER_QUANTITY':
265                    return __lnw__.show_lang('CART-PRODUCT-OVER_QUANTITY', err.limit, err.unit);
266                case 'ACCOUNT_LIMIT_REQUIRED_LOGIN':
267                    return __lnw__.show_lang('CART-PRODUCT-ACCOUNT_LIMIT_REQUIRED_LOGIN');
268                case 'OVER_QUANTITY_ACCOUNT_ORDERED':
269                    return __lnw__.show_lang('CART-PRODUCT-OVER_QUANTITY_ACCOUNT_ORDERED', err.limit, err.unit, err.ordered, err.unit);
270                case 'OVER_QUANTITY_ACCOUNT':
271                    return __lnw__.show_lang('CART-PRODUCT-OVER_QUANTITY_ACCOUNT', err.limit, err.unit);
272                case 'OVER_QUANTITY_DAILY_ACCOUNT_ORDERED':
273                    return __lnw__.show_lang('CART-PRODUCT-OVER_QUANTITY_DAILY_ACCOUNT_ORDERED', err.limit, err.unit, err.ordered, err.unit);
274                case 'OVER_QUANTITY_DAILY_ACCOUNT':
275                    return __lnw__.show_lang('CART-PRODUCT-OVER_QUANTITY_DAILY_ACCOUNT', err.limit, err.unit);
276                default:
277                    var xxx = __lnw__.show_lang(err.key);
278                    return xxx;
279            }
280        }
281        return 'มีข้อผิดพลาดเกิดขึ้น';
282    }
283
284    var cartvm = null;
285    var cart_components = {};
286    cart_components['product-item'] = {
287        props: ['item'],
288        data: function() {
289            return {
290                new_quantity: null,
291                new_detail: null,
292                edit_detail: 0,
293                wait_save_quantity: false
294            }
295        },
296        watch: {
297            cart_loader: function(newValue, oldValue) {
298                if(this.wait_save_quantity) {
299                    this.save_quantity();
300                }
301            },
302            'item.quantity': function(newValue, oldValue) {
303                if(newValue == this.new_quantity) {
304                    this.new_quantity = null;
305                } else {
306                    this.save_quantity();
307                }
308            },
309            'item.detail': function(newValue, oldValue) {
310                if(newValue == this.new_detail) {
311                    this.new_detail = null;
312                } else {
313                    this.save_detail();
314                }
315            }
316        },
317        computed: {
318            cart: function() {
319                return this.$store.state.cart;
320            },
321            quantity_value: {
322                get: function() {
323                    if(this.new_quantity !== null) {
324                        return this.new_quantity;
325                    }
326                    return this.item.quantity
327                },
328                set: function(newValue) {
329                    if(this.item.quantity == newValue) {
330                        this.new_quantity = null;
331                    } else {
332                        this.new_quantity = newValue;
333                        this.save_quantity();
334                    }
335                }
336            }
337        },
338        methods: {
339            quantity_inc: function () {
340                this.quantity_value = this.quantity_value+1;
341            },
342            quantity_dec: function () {
343                if(this.quantity_value <= 1) {
344                } else {
345                    this.quantity_value = this.quantity_value - 1;
346                }
347            },
348            save_quantity: function() {
349                var that = this;
350                if(this.wait_save_quantity) {
351                    clearTimeout(this.wait_save_quantity);
352                }
353                this.wait_save_quantity = setTimeout(function() {
354                    that.save_quantity_action();
355                },1000);
356            },
357            save_quantity_action: function () {
358                if(this.new_quantity === null) {
359                    return;
360                }
361                var val = parseNumber(this.new_quantity);
362                val = parseNumber(val);
363                if(isNaN(val) || val < 1) {
364                    return;
365                }
366                if(this.cart_loader) {
367                    this.wait_save_quantity = true;
368                    return;
369                }
370                var item = this.item;
371                var ajaxdata = {};
372                
373                ajaxdata.action = 'changeProductQuantity';
374                ajaxdata.items = [
375                    {
376                        iid: item.iid,
377                        spec: item.spec,
378                        quantity: val
379                    }
380                ];
381
382                var onSuccess = void (0);
383
384                if(item.spec.type == 'product') {
385                    // Google Analytics Enhanced Ecommerce (event: add/remove cart | edit number of product item in carts)
386                    if (typeof gtag !== "undefined" && typeof GA_send_to 
386=== 'string' && GA_send_to.length > 0) {
387                        if (typeof item.quantity !== 'undefined') {
388                            var diff = val - item.quantity;
389                            var event_name = null;
390                            if (diff < 0)
391                                event_name = 'remove_from_cart';
392                            else
393                                event_name = 'add_to_cart';
394                            if (event_name) {
395                                var qty = Math.abs(diff);
396                                onSuccess = function () {
397                                    gtag('event', event_name, {
398                                        'send_to': GA_send_to,
399                                        "items": [
400                                            {
401                                                "id": item.spec.product_id,
402                                                "name": item.name,
403                                                "category": typeof item.category !== 'undefined' ? item.category : null,
404                                                "quantity": qty,
405                                                "price": qty * item.unit_price
406                                            }
407                                        ]
408                                    });
409                                }
410                            }
411                        }
412                    }
413                }
414                this.$store.dispatch('save_func', {
415                    ajaxdata: ajaxdata,
416                    item: item,
417                    onSuccess: onSuccess
418                });
419            },
420            save_detail: function () {
421                var that = this;
422                var item = this.item;
423                var ajaxdata = {};
424                
425                ajaxdata.action = 'updateProductRemark';
426                ajaxdata.items = [
427                    {
428                        iid: item.iid,
429                        spec: item.spec,
430                        detail: this.new_detail
431                    }
432                ];
433                this.edit_detail = 0;
434                this.$store.dispatch('save_func', {
435                    ajaxdata: ajaxdata
436                });
437            },
438            remove_detail: function () {
439                this.new_detail = '';
440                this.save_detail();
441            },
442            start_edit_detail: function () {
443                this.new_detail = this.item.detail;
444                this.edit_detail = 2;
445            },
446            start_add_detail: function (item) {
447                this.edit_detail = 1;
448            },
449            remove_item: function () {
450                var that = this;
451                var item = this.item;
452                __lnw__.simpleConfirm('ยืนยันการลบสินค้านี้ออกจากตะกร้า',
453                    function() {
454                        var ajaxdata = {};
455                        ajaxdata.action = 'changeProductQuantity';
456                        
457                        ajaxdata.items = [
458                            {
459                                iid: item.iid,
460                                spec: item.spec,
461                                quantity: 0
462                            }
463                        ];
464
465                        var onSuccess = void (0);
466
467                        if(item.spec.type == 'product') {
468                            // Google Analytics Enhanced Ecommerce (event: remove_from_cart)
469                            if (typeof gtag !== "undefined" && typeof GA_send_to === 'string' && GA_send_to.length > 0) {
470                                onSuccess = function () {
471                                    gtag('event', 'remove_from_cart', {
472                                        'send_to': GA_send_to,
473                                        "items": [
474                                            {
475                                                "id": item.spec.product_id,
476                                                "name": item.name,
477                                                "category": typeof item.category !== 'undefined' ? item.category : null,
478                                                "quantity": item.quantity,
479                                                "price": item.total_price
480                                            }
481                                        ]
482                                    });
483                                }
484                            }
485                        }
486
487                        that.$store.dispatch('save_func', {
488                            ajaxdata: ajaxdata,
489                            onSuccess: onSuccess
490                        });
491                    }
492                );
493            },
494        },
495        template: `<div class="product">
496                        <div class="image">
497                            <img :src="item.thumbnail"/>
498                        </div>
499                        <div class="data">
500                            <div class="name" v-if="item.parent_id > 0"><a :href="item.url">{{
501                                item.parent_name }}<br/>&nbsp;&rdsh; {{ item.sku_name }}</a></div>
502                            <div class="name" v-else><a :href="item.url">{{ item.name }}</a></div>
503                            <div class="price" :realpricex="item.unit_price">
504                                <div class="mobileBeforeText">ราคาต่อชิ้น</div>
505                                <div class="real"><span
506                                        class="num">{{ amount_format(item.unit_price) }}</span> บาท</div>
507                                <div class="estimate"></div>
508                            </div>
509                            <div class="quantity">
510                                <div class="mobileBeforeText">จำนวน</div>
511                                <div v-if="cart.lock" class="uneditable"><span class="num" v-text="amount_format(item.quantity)"></span></div>
512                                <div v-else class="editable">
513                                    <div class="increase" @click="quantity_inc">+</div>
514                                    <div class="decrease" @click="quantity_dec">-</div>
515                                    <div class="box"><input type="text" class="input" v-model="quantity_value" /></div>
516                                </div>
517                            </div>
518                            <div class="amount" :realpricex="item.total_price">
519                                <div class="mobileBeforeText">ราคารวม</div>
520                                <div class="real"><span
521                                        class="num">{{ amount_format(item.total_price) }}</span> บาท                                </div>
522                                <div class="estimate"></div>
523                            </div>
524                        </div>
525                        <div class="error">
526                            <div v-for="error in item.errors">
527                                {{ error_message(error) }}
528                            </div>
529                        </div>
530                        <div class="other">
531                            <div v-if="item.promotions && (item.promotions.length > 0)" class="promotion">สินค้าเข้าร่วมโปรโมชั่น {{
532                                item.promotions.join(', ') }}
533                            </div>
534                            <div v-else-if="item.promotion" class="promotion">สินค้าเข้าร่วมโปรโมชั่น {{
535                                item.promotion.join(', ') }}
536                            </div>
537                            <div class="note">
538                                <div v-if="edit_detail">
539                                    <input type="text" class="pdetail" v-model="new_detail">
540                                    <button type="button" class="btn-submit" @click="save_detail">{{
541                                        (edit_detail==2)?'ปรับปรุง                                        ':'เพิ่ม'}}
542                                    </button>
543                                    <button type="button" class="btn-reset" @click="remove_detail">{{
544                                        (edit_detail==2)?'ลบ                                        ':'ยกเลิก'}}
545                                    </button>
546                                </div>
547                                <div v-else-if="(new_detail == null) && item.detail"><strong>หมายเหตุ</strong> <span
548                                        class="body">{{ item.detail }}</span> <a class="edit" @click="start_edit_detail">&#9998; แก้ไข</a>
549                                </div>
550                                <div v-else-if="new_detail"><strong>หมายเหตุ</strong> <span
551                                        class="body">{{ new_detail }}</span> <a class="edit" @click="start_edit_detail">&#9998; แก้ไข</a>
552                                </div>
553                                <div v-else><a class="add"
554                                               @click="start_add_detail">เพิ่มหมายเหตุ</a>
555                                </div>
556                            </div>
557                            <div v-if="!cart.lock" class="control"><a class="remove"
558                                                    @click="remove_item">ลบรายการนี้</a>
559                            </div>
560                        </div>
561                    </div>`
562    }
563    document.addEventListener("DOMContentLoaded", function () {
564        Vue.use(Vuex);
565        cart_store = new Vuex.Store({
566            state: function() {
567                var ret = {
568                    cart: null,
569                    shop: null,
570                    cart_loader: false,
571                };
572                return ret;
573            },
574            getters: {
575            },
576            mutations: {
577            },
578            actions: {
579                save_func: function(context, payload) {
580                    var state = context.state;
581                    if (state.cart_loader) {
582                        //return false;
583                    }
584                    state.cart_loader = true;
585                    var xhr = json_post({
586                        method: 'PUT',
587                        url: front_url('api/lnwme/cart/cookie')+'?ddd=full',
588                        data: payload.ajaxdata,
589                        success: function(response) {
590                            if(response.error) {
591                                var msgs = [];
592                                var x_msgs = {};
593                                var error_messages = response.error_messages;
594                                if(typeof error_messages == 'string') {
595                                    error_messages = [{
596                                        key: error_messages
597                                    }]
598                                }
599                                
600                                if (typeof payload.item !== 'undefined') {
601                                    Vue.set(payload.item,'errors', error_messages);
602                                } else {
603                                    var error_txts = [];
604                                    error_messages.forEach(function(err_msg) {
605                                        error_txts.push(error_message(err_msg));
606                                    });
607                                    __lnw__.simpleAlert(error_txts);
608                                }
609                            }
610                            if(response.cart) {
611                                Vue.set(state,'cart', response.cart);
612                                
613                                $('.cart_num').html(state.cart.num);
614                                $('.cart_price').html(state.cart.price.product).attr('realprice', state.cart.price.product);
615                                if (typeof __lnw__ == 'object' && __lnw__.gointer.is_enabled()) {
616                                    __lnw__.gointer.reload_convert_currency();
617                                }
618                                $('.cart_quantity').html(state.cart.quantity);
619                            }
620                            // Google Analytics Enhanced Ecommerce
621                            if (typeof payload.onSuccess == 'function') {
622                                try {
623                                    payload.onSuccess.call();
624                                } catch (e) {
625                                }
626                                ;
627                            }
628                        },
629                        error: function(rkey, rdata) {
630                            __lnw__.simpleAlert(rkey);
631                            console.info(rdata);
632                        },
633                        complete: function() {
634                            state.cart_loader = false;
635                        }
636                    });
637                },
638                load_init: function(context) {
639                    var state = context.state;
640                    state.cart_loader = true;
641                    var xhr = json_post({
642                        url: front_url('api/lnwme/cart/cookie')+'?ddd=init',
643                        data: {},
644                        success: function(response) {
645                            if(response.error) {
646                                var msgs = [];
647                                var x_msgs = {};
648                                var error_messages = response.error_messages;
649                                if(typeof error_messages == 'string') {
650                                    error_messages = [{
651                                        key: error_messages
652                                    }]
653                                }
654                                
655                                var error_txts = [];
656                                error_messages.forEach(function(err_msg) {
657                                    error_txts.push(error_message(err_msg));
658                                });
659                                __lnw__.simpleAlert(error_txts);
660                            }
661                            Vue.set(state,'cart', response.cart);
662                            Vue.set(state,'shop', response.shop);
663                            win_resize();
664                        },
665                        error: function(rkey, rdata) {
666                            __lnw__.simpleAlert(rkey);
667                            console.info(rdata);
668                        },
669                        complete: function() {
670                            state.cart_loader = false;
671                        }
672                    });
673                }
674            }
675        });
676        cartvm = new Vue({
677            el: '#lnw_cartArea',
678            store: cart_store,
679            components: cart_components,
680            data: function () {
681                return {
682                    type_txt: {
683                        normal: 'พัสดุธรรมดา',
684                        register: 'พัสดุลงทะเบียน',
685                        ems: 'พัสดุด่วนพิเศษ',
686                        custom: 'กำหนดเอง'
687                    },                    shipping_country_selected: 1,
688                    show_only_shiptype_chosen: 0,
689                    coupon_code_value: '',
690                    view_mycoupons: 0,
691                    choose_coupon_id: null,
692                    choose_shipping_type_id: null,
693                    lang_text_time: 0,
694                    stype_info_hover: 0
695                }
696            },
697            watch: {
698                choose_shipping_type_id: function (val) {
699                    var ajaxdata = {};
700                    if (typeof this.cart.shipping_types[val] == 'undefined' || !this.shiptype_show(this.cart.shipping_types[val])) {
701                        ajaxdata.action = 'cancelShippingMethod';
702                        this.$store.dispatch('save_func', {
703                            ajaxdata: ajaxdata
704                        });
705                        this.show_only_shiptype_chosen = 0;
706                    } else {
707                        var onSuccess = void(0);
708                        // Google Analytics Enhanced Ecommerce (event: set_checkout_option)
709                        if (typeof this.cart.shipping_types[val].name !== 'undefined') {
710                            if (typeof gtag !== "undefined" && typeof GA_send_to === 'string' && GA_send_to.length > 0) {
711                                var shipping_type_name = this.cart.shipping_types[val].name;
712
713                                onSuccess = function () {
714                                    gtag('event', 'set_checkout_option', {
715                                        'send_to': GA_send_to,
716                                        'checkout_step': 1,
717                                        'checkout_option': 'shipping method',
718                                        'value': shipping_type_name
719                                    });
720                                };
721                            }
722                        }
723                        ajaxdata.action = 'saveShippingMethod';
724                        ajaxdata.shipping_type_id = val;
725                        this.$store.dispatch('save_func', {
726                            ajaxdata: ajaxdata,
727                            onSuccess: onSuccess
728                        });
729                        this.show_only_shiptype_chosen = 1;
730                    }
731                }
732            },
733            updated: function () {
734                if (typeof __lnw__ == 'object' && __lnw__.gointer.is_enabled()) {
735                    __lnw__.gointer.reload_convert_currency();
736                }
737            },
738            computed: {
739                cart_loader: function() {
740                    return (this.$store.state.cart_loader);
741                },
742                cart: function() {
743                    return this.$store.state.cart;
744                },
745                shop: function() {
746                    return this.$store.state.shop;
747                },
748                shipping_type_list: function () {
749                    var shipping_types = this.cart.shipping_types;
750                    var stype_list = new Array();
751                    var that = this;
752                    this.cart.shipping_types_rank.forEach(function (stype_id) {
753                        var stype = shipping_types[stype_id];
754                        stype.info_hover = false;
755                        if(!stype.is_lnwshop_ignore && that.shiptype_show(stype)) {
756                            stype_list.push(stype);
757                        }
758                    });
759                    return stype_list;
760                },
761                checkweight: function () {
762                    return false;
763                                        var xxx = false;
764                    $.each(this.cart.shipping_types, function (stype_id, stype) {
765                        if (stype.format == 'weight') {
766                            xxx = true;
767                        }
768                    })
769                    return xxx;
770                },
771                cart_prepare_day: function () {
772                    var max_prepare_day = 0;
773                    this.cart.items.forEach(function(item) {
774                        var day = item.prepare_duration;
775                        if (day != '') {
776                            day = parseInt(day);
777                            if (day > max_prepare_day) {
778                                max_prepare_day = day;
779                            }
780                        }
781                    });
782                    return max_prepare_day;
783                },
784gtag_cart_items: function () {
785var payload_items = [];
786this.cart.items.forEach(function(item) {
787if(item.spec.type != 'product') {
788return;
789}
790payload_item = {};
791payload_item.id = item.spec.product_id;
792payload_item.name = item.name;
793if (typeof item.category !== 'undefined')
794payload_item.category = item.category;
795payload_item.quantity = item.quantity;
796payload_item.price = item.total_price;
797payload_items.push(payload_item);
798})
799return payload_items;
800},
801                gtag_cart_coupon: function () {
802                    var coupon = '';
803
804                    if (typeof this.cart.coupons === 'object') {
805                        for (var i in this.cart.coupons) {
806                            if (typeof this.cart.coupons[i].config === 'object') {
807                                if (typeof this.cart.coupons[i].config.name !== 'undefined') {
808                                    if (coupon.length > 0)
809                                        coupon += ', ';
810                                    coupon += this.cart.coupons[i].config.name;
811                                }
812                            }
813                        }
814                    }
815
816                    return coupon;
817                },
818                my_lnwpoints: function() {
819                    var points = 0;
820                    if ((typeof lnw_store != 'undefined') && (typeof lnw_store.state.user != 'undefined') && (lnw_store.state.user.point != null)) {
821                        points = lnw_store.state.user.point.available_balance;
822                    }
823                    return points;
824                }
825            },
826            methods: {
827                update_lang: function () {
828                    this.lang_text_time = new Date().getTime();
829                },
830                show_lang: function () {
831                    var xxx = this.lang_text_time;
832                    return __lnw__.show_lang.apply(this, arguments);
833                },
834                shiptype_show: function (stype) {
835                                        return (stype.price !== false);
836                                    },
837                shiptype_over: function (stype) {
838                    this.stype_info_hover = stype.id;
839                },
840                shiptype_leave: function (stype) {
841                    this.stype_info_hover = 0;
842                },
843                error_message: function (err) {
844                    return error_message(err);
845                },
846                use_coupon_code: function () {
847                    var ajaxdata = {};
848                    ajaxdata.action = 'setCouponCode';
849                    ajaxdata.coupon_code = this.coupon_code_value.trim();
850                    if (ajaxdata.coupon_code == '') {
851                        return;
852                    }
853
854                    this.$store.dispatch('save_func', {
855                        ajaxdata: ajaxdata,
856                    });
857                },
858                use_coupon_id: function (id) {
859                    var ajaxdata = {};
860                    ajaxdata.action = 'setCouponId';
861                    ajaxdata.coupon_id = id;
862                    this.$store.dispatch('save_func', {
863                        ajaxdata: ajaxdata,
864                    });
865                    this.view_mycoupons = 0;
866                },
867                cancel_use_coupon: function (coupon_id) {
868                    var coupon_code = null;
869                    if (typeof this.cart.coupons === 'object'){
870                        var coupon = this.cart.coupons.filter(obj => {
871                            return obj.id === coupon_id
872                        });
873                        if(coupon.length > 0) {
874                            coupon_code = coupon[0].code;
875                        }else {
876                            return false;
877                        }
878                    }else if (typeof this.cart.coupons[coupon_id] == 'undefined') {
879                        return false;
880                    }else{
881                        coupon_code = this.cart.coupons[coupon_id].code;
882                    }
883                    if (coupon_code) {
884                        var ajaxdata = {};
885                        ajaxdata.action = 'removeCouponCode';
886                        ajaxdata.coupon_code = coupon_code;
887                        this.$store.dispatch('save_func', {
888                            ajaxdata: ajaxdata,
889                        });
890                    } else {
891                        var ajaxdata = {};
892                        ajaxdata.action = 'removeCouponId';
893                        ajaxdata.coupon_id = coupon_id;
894                        this.$store.dispatch('save_func', {
895                            ajaxdata: ajaxdata,
896                        });
897                    }
898                    this.choose_coupon_id = null
899                },
900                save_detail: function () {
901                    var ajaxdata = {};
902                    ajaxdata.action = 'saveOrderMeta';
903                    ajaxdata.detail = this.cart.detail;
904                    this.$store.dispatch('save_func', {
905                        ajaxdata: ajaxdata
906                    });
907                },
908                reset_cart: function () {
909                    var ajaxdata = {};
910                    ajaxdata.action = 'resetCart';
911
912                    var onSuccess = void (0);
913
914                    // Google Analytics Enhanced Ecommerce (event: remove_from_cart)
915                    if (typeof gtag !== "undefined" && typeof GA_send_to === 'string' && GA_send_to.length > 0) {
916                        var payload_items = this.gtag_cart_items;
917                        onSuccess = function () {
918                            gtag('event', 'remove_from_cart', {
919                                'send_to': GA_send_to,
920                                "items": payload_items
921                            });
922                        }
923                    }
924
925                    this.$store.dispatch('save_func', {
926                        ajaxdata: ajaxdata,
927                        onSuccess: onSuccess
928                    });
929                },
930                set_lnwpoint: function (point) {
931                    var ajaxdata = {};
932                    ajaxdata.action = 'setRedeemLnwPoint';
933                    ajaxdata.lnwpoint = point;
934                    this.$store.dispatch('save_func', {
935                        ajaxdata: ajaxdata,
936                    });
937                },
938                use_lnwpoint: function () {
939                    var point = this.cart.lnwpoint;
940                    if (((typeof lnw_store == 'undefined') || (typeof lnw_store.state.user == 'undefined') || (typeof lnw_store.state.user.point == null))) {
941                        __lnw__.simpleAlert('ไม่สามารถดึงคะแนนสะสม LnwPoints ได้');
942                        this.cart.lnwpoint = 0;
943                    } else {
944                        var my_points = this.my_lnwpoints;
945                        if (point > my_points) {
946                            __lnw__.simpleAlert('คุณใช้คะแนนสะสม LnwPoints มากกว่าที่มี');
947                            this.cart.lnwpoint = 0;
948                        } else {
949                            this.set_lnwpoint(point);
950                        }
951                    }
952                },
953                cancel_lnwpoint: function () {
954                    this.set_lnwpoint(0);
955                },
956                checkout: function (event) {
957                    var that = this;
958                    if(this.cart.is_no_shipping) {
959
960                    } else if(this.cart.is_product_no_shipping_type) {
961
962                    } else if (typeof this.cart.shipping_types[this.cart.shipping_type_id] == 'undefined' || !this.shiptype_show(this.cart.shipping_types[this.cart.shipping_type_id])) {
963                        __lnw__.simpleAlert('กรุณาเลือกวิธีการจัดส่ง');
964                        return false;
965                    }
966                    var ele = $(event.target).closest('b-checkout');
967                    var ajaxdata = {};
968                    $.lnwajax.run('goto_checkout', true, {
969                        type: 'POST',
970                        url: 'https' + '://' + 'www.henghengmarble.com/checkout/start',
971                        data: ajaxdata,
972                        dataType: 'json',
973                        start: function () {
974                            button_wait(ele);
975                        },
976                        success: function (response) {
977                            lnwajax_response(response, function (rdata) {
978                                var delay = 0;
979                                if(window.lnwOpenai && rdata.openai_event && window.lnwOpenai.track(rdata.openai_event)) {
980                                    delay = 1000;
981                                }
982
983                                if (typeof rdata.fbq_params != 'undefined' && typeof fbq == 'function') {
984                                    fbq('track', 'InitiateCheckout', rdata.fbq_params);
985                                    delay = 1000;
986                                }
987
988                                // Google Analytics Enhanced Ecommerce (event: begin_checkout)
989                                if (typeof gtag !== "undefined" && typeof GA_send_to === 'string' && GA_send_to.length > 0) {
990                                    var payload_gtag = {};
991                                    payload_gtag.send_to = GA_send_to;
992                                    payload_gtag.items = that.gtag_cart_items;
993
994                                    var coupon = that.gtag_cart_coupon;
995                                    if (typeof coupon === 'string' && coupon.length > 0)
996                                        payload_gtag.coupon = coupon;
997                                    else {
998                                        console.log(coupon);
999                                    }
1000
1001                                    payload_gtag.checkout_step = 1;
1002
1003                                    gtag('event', 'begin_checkout', payload_gtag);
1004
1005                                    delay = 1000;
1006                                }
1007
1008                                if (typeof rdata.url != 'undefined') {
1009                                    setTimeout(function () {
1010                                        window.location.href = rdata.url;
1011                                    }, delay);
1012                                }
1013
1014                            }
1014, function (rkey, rdata) {
1015                                button_normal(ele);
1016                                switch (rkey) {
1017                                    case 'BUY-ITEM_SOLDOUT':
1018                                        __lnw__.simpleAlert('ขออภัย สินค้าบางอย่างในตะกร้าเหลือไม่เพียงพอ');
1019                                        //window.location.href='https://www.henghengmarble.com/cart';
1020                                        break;
1021                                    case 'BUY-NO_ITEM':
1022                                        __lnw__.simpleAlert('ขออภัย  ขณะนี้ยังไม่มีสินค้าในตะกร้า');
1023                                        break;
1024                                    case 'BUY-EMPTY_SHIPPINGTYPE':
1025                                        __lnw__.simpleAlert('กรุณาเลือกวิธีการจัดส่ง');
1026                                        break;
1027                                    case 'BUY-ORDER_LIMIT':
1028                                    case 'BUY-ORDER_LIMIT_MIN_PRICE':
1029                                    case 'BUY-ORDER_LIMIT_MAX_PRICE':
1030                                    case 'BUY-OVER_TOTAL_QUANTITY':
1031                                    case 'BUY-OVER_ORDER_QUANTITY':
1032                                        __lnw__.simpleAlert(__lnw__.show_lang(rkey, rdata));
1033                                        break;
1034                                    case 'BUY-MUST_LOGIN':
1035                                    case 'BUY-USER_NO_MOBILE':
1036                                        __lnw__.simpleAlert(__lnw__.show_lang(rkey, rdata));
1037                                        break;
1038                                    case 'BUY-LNWPAY_ANTI-MONEY_LAUNDERING':
1039                                        __lnw__.simpleAlert('ระบบไม่อนุญาติให้สั่งซื้อสินค้าราคารวมเกิน 30,000 บาทต่อรายการสั่งซื้อได้');
1040                                        break;
1041                                    default:
1042                                        __lnw__.simpleAlert('ขออภัย พบข้อผิดพลาดบางอย่าง ไม่สามารถดำเนินการต่อได้');
1043                                        break;
1044                                }
1045                            });
1046                        }
1047                    });
1048                }
1049            },
1050            mounted: function() {
1051                this.$store.dispatch('load_init');
1052            }
1053        });
1054        __lnw__.bind_lang_save(function () {
1055            cartvm.update_lang();
1056        });
1057        nextbar_init();
1058    });
1059    var win_height, nextbar_hover_flag = 0, topLine, barheight;
1060
1061    function nextbar_scroll_event(ele) {
1062        var scrollTop = $(ele).scrollTop();
1063        if (scrollTop < topLine) {
1064            if (!nextbar_hover_flag) {
1065                $('.checkoutBody').addClass('showNextBar');
1066                nextbar_hover_flag = true;
1067                $('.cartZone').css({marginBottom: barheight + 'px'});
1068            }
1069        } else {
1070            if (nextbar_hover_flag) {
1071                $('.checkoutBody').removeClass('showNextBar');
1072                nextbar_hover_flag = false;
1073                $('.cartZone').css({marginBottom: 0});
1074            }
1075        }
1076    }
1077
1078    function win_resize() {
1079        var win_height = $(window).height();
1080        var bottomOffset;
1081        var $self = $('.cartZone');
1082        if($self.length > 0) {
1083            var zoneheight = $self.outerHeight(true);
1084            var zonetop = $self.offset().top;
1085            barheight = $('#checkoutNextBar').outerHeight(true);
1086            bottomOffset = zonetop + zoneheight + barheight;
1087            if ($self.closest('#lnwbox2Body').length > 0) {
1088                bottomOffset -= $('#lnwbox2Body').offset().top;
1089            }
1090            topLine = bottomOffset - win_height;
1091        }
1092    }
1093
1094    function nextbar_init() {
1095                        var $nextbar_container = $(window);
1096                //$('#checkoutNextBar').after('<div class="cartButtons-clone"></div>');
1097        win_resize();
1098        nextbar_scroll_event($nextbar_container);
1099        $nextbar_container.scroll(function () {
1100            nextbar_scroll_event(this);
1101        });
1102        $(window).resize(function () {
1103            win_resize();
1104            nextbar_scroll_event($nextbar_container);
1105        });
1106            }
1107    </script>
1107
1108    <div class="checkoutFooter">
1109<div class="lnw_footer_area">
1110</div>
1111<div class="copyright" align="center">
1112<div class="copyrightText"><span style="padding-left: 10px;">Copyright &copy; 2026</span>
1113<a href="https://www.henghengmarble.com/">www.henghengmarble.com</a>
1114<span>All rights reserved.</span></div>
1115<div class="footerText"><a href="https://www.lnwshop.com/" title="ร้านค้าออนไลน์" target="_blank" rel="noopener">ร้านค้าออนไลน์</a>
1116&nbsp; Inspired by &nbsp;
1117<a href="https://www.lnwshop.com/" title="ร้านค้าออนไลน์" target="_blank" rel="noopener">LnwShop.com (v2)</a>
1118</div><span id="lnwstat-container-ebi93"></span>
1119<script type="text/javascript">
1120var _lnws = 'sl.lnwstat.com';
1121var _lnwp = '68268';
1122var _lnwd = 'www.henghengmarble.com';
1123var _lnwm = '';
1124var _lnwk = '';
1125
1126(function() {
1127var sc = document.createElement('script'); sc.type = 'text/javascript'; sc.async = true;
1128sc.src = 'https://' + _lnws + '/lnwstat.js';
1129var sp = document.createElement('span'); sp.id='lnwstat-container-ebi93-inner';
1130var e = document.getElementById('lnwstat-container-ebi93'); e.appendChild(sc); e.appendChild(sp);
1131
1132})();
1133</script>
1133
1134</div>
1135</div></div><div class="unitShoe"></div></div></div></div>
1136
1137</div>
1138
1139
1140</div><div id="cart22_container" style="visibility: hidden;" :style="{visibility:'visible'}">
1141    <div id="cart22_alert"
1142         style="display: none;"
1143         v-show="alert_is_show"
1144         @click="cartShow"
1145         :class="(alert_is_show)?'show_alert':'hide_alert'">
1146        <span>คุณมีสินค้า <span class="cart_quantity" v-text="total_quantity">0</span> ชิ้นในตะกร้า <u>สั่งซื้อทันที</u></span>
1147    </div>
1148    <div id="cart22_overlay"
1149         style="display: none;"
1150         v-show="cart_is_show && !cart_is_hiding"
1151         @click="cartHide"></div>
1152    <div id="cart22"
1153         :class="{ show_cart : cart_is_show, hide_cart : cart_is_hiding }"
1154         v-if="cart_is_show">
1155        <div class="cart22_container">
1156            <div class="cart22_header_container">
1157                <div v-if="is_loading" class="cart22-progress-linear-container">
1158                    <div class="cart22-progress-linear">
1159                        <div class="cart22-progress-linear__background" :style="{backgroundColor: cc_color}" ></div>
1160                        <div class="cart22-progress-linear__indeterminate">
1161                            <div class="cart22-progress-linear__indeterminate long" :style="{backgroundColor: cc_color}" ></div>
1162                            <div class="cart22-progress-linear__indeterminate short" :style="{backgroundColor: cc_color}" ></div>
1163                        </div>
1164                    </div>
1165                </div>
1166                <div class="cart22_header">
1167                    <div>สินค้าในตะกร้า ({{total_num}} รายการ)</div>
1168                    <div class="cart22_close"
1169                         @click="cartHide()"><img src="https://www.henghengmarble.com/system/application/modules/lnwshop/_images/cart22/close.png"/>
1170                    </div>
1171                </div>
1172            </div>
1173            <div class="cart22_content">
1174                <!--if empty cart-->
1175                <div v-if="items.length <= 0" class="cart22_empty">
1176                    <span v-if="is_initing"><div class="boxload_16"></div></span>
1177                    <span v-else>ขออภัย  ขณะนี้ยังไม่มีสินค้าในตะกร้า</span>
1178                </div>
1179                <!--end if-->
1180                <!--if NOT empty cart-->
1181                <div v-else class="cart22_itemlist">
1182                    <cart-item v-for="item in items" :key="item.iid" :item="item"></cart-item>
1183                </div>
1184                <!--end if-->
1185                <div v-if="discounts.length > 0" class="cart22_discountlist">
1186                    <div class="cart22_discount_item">
1187                        <div class="cart22_discount_label">ราคาสินค้าทั้งหมด</div>
1188                        <div class="cart22_discount_amount">฿ {{price_format(total_price)}}</div>
1189                    </div>
1190                    <div v-for="(discount,idx) in discounts" :key="idx" class="cart22_discount_item">
1191                        <div class="cart22_discount_label" v-text="discount.label"></div>
1192                        <div class="cart22_discount_amount">- ฿ {{price_format(discount.price)}}</div>
1193                    </div>
1194                </div>
1195            </div>
1196            <div class="cart22_tailer">
1197                <div class="cart22_summary">
1198                    <div class="cart22_summary_label">
1199                        <div>ราคาสินค้าทั้งหมด</div>
1200                        <div class="minor">{{total_quantity}} ชิ้น</div>
1201                    </div>
1202                    <div class="cart22_summary_amount">
1203                        <div>฿ {{price_format(after_product_price)}}</div>
1204                        <div class="minor">ราคาไม่รวมค่าจัดส่ง</div>
1205                                            </div>
1206                </div>
1207                <div class="cart22_action">
1208                    <a href="https://www.henghengmarble.com/cart" class="cart22_button cart22_cart" :class="is_loading?'cart22_button_loading':''" :style="{color: cc_color, outlineColor: cc_color}">ดูสินค้าในตะกร้า</a>
1209                    <a href="https://www.henghengmarble.com/checkout" class="cart22_button cart22_checkout" :class="is_loading?'cart22_button_loading':''" :style="{backgroundColor: cc_color}">เริ่มการสั่งซื้อ</a>
1210                </div>
1211                <div class="cart22_action">
1212                    <div class="cart22_continue"
1213                         @click="cartHide"><span style="transform: rotate(180deg); display: inline-block;">&#x279C;</span> เลือกซื้อสินค้าเพิ่ม                    </div>
1214                </div>
1215            </div>
1216        </div>
1217    </div>
1218</div>
1219<script type="text/javascript">
1220    var cart22_vm;
1221    document.addEventListener("DOMContentLoaded", function (event) {
1222        cart22_vm = new Vue({
1223            store: lnw_store,
1224            components: {
1225                'cart-item' : {
1226                    props: ['item'],
1227                    data: function() {
1228                        return {
1229                            edit_quantity_value: null
1230                        }
1231                    },
1232                    computed: {
1233                        can_increase: function() {
1234                            if(this.quantity_value < this.item.remain) {
1235                                return true;
1236                            }
1237                            return false;
1238                        },
1239	                        can_decrease: function() {
1240	                            if(this.quantity_value  > 0) {
1241	                                return true;
1242	                            }
1243	                            return false;
1244	                        },
1245	                        is_flash_sale: function() {
1246	                            if(this.item.sale_promotion_id) {
1247	                                return true;
1248	                            }
1249	                            if(this.item.promotions && this.item.promotions.find(function(p){ return (p && p.toLowerCase().indexOf('flash')>-1); })) {
1250	                                return true;
1251	                            }
1252	                            if(this.item.promotion_datas) {
1253	                                var ps = [];
1254	                                for(var k in this.item.promotion_datas){
1255	                                    ps.push(this.item.promotion_datas[k]);
1256	                                }
1257	                                return ps.some(function(p){ return p && p.type=='sale'; });
1258	                            }
1259	                            return false;
1260	                        },
1261	                        quantity_value: {
1262	                            get: function() {
1263	                                if(this.edit_quantity_value !== null) {
1264	                                    return this.edit_quantity_value
1265	                                }
1266                                return this.item.quantity;
1267                            },
1268                            set: function(val) {
1269                                var that = this;
1270                                this.edit_quantity_value = val;
1271                                this.$store.dispatch('cart/set_product_quantity', {
1272                                    iid: this.item.iid,
1273                                    spec: this.item.spec,
1274                                    quantity: val,
1275                                    success: function() {
1276                                        that.edit_quantity_value = null;
1277                                    }
1278                                })
1279                            }
1280                        }
1281                    },
1282                    methods: {
1283	                        increase_quantity: function() {
1284	                            if(!this.can_increase) {
1285	                                return;
1286	                            }
1287	                            this.quantity_value ++;
1288	                            this.alert_limit();
1289	                        },
1290	                        decrease_quantity: function() {
1291	                            if(!this.can_decrease) {
1292	                                return;
1293	                            }
1294	                            this.quantity_value --;
1295	                            this.alert_limit();
1296	                        },
1297	                        alert_limit: function() {
1298	                            if(!this.item || !this.item.promotion_datas){ return; }
1299	                            var promo = null;
1300	                            Object.keys(this.item.promotion_datas).forEach(function(pid){
1301	                                var p = this.item.promotion_datas[pid];
1302	                                if(p && p.type === 'sale' && !promo){
1303	                                    promo = p;
1304	                                }
1305	                            }.bind(this));
1306	                            if(!promo){ return; }
1307	                            var limit = promo.order_limit || promo.max_quantity;
1308	                            if(!limit){ return; }
1309	                            var unit = this.item.unit || '';
1310	                            if(this.quantity_value > limit){
1311	                                __lnw__.simpleAlert(__lnw__.show_lang('FLASHSALE-LIMIT-OVER', limit, unit));
1312	                            }else if(this.quantity_value == limit){
1313	                                __lnw__.simpleAlert(__lnw__.show_lang('FLASHSALE-LIMIT-REACH', limit, unit));
1314	                            }
1315	                        }
1316	                    },
1317                    template: `<div class="cart22_item">
1318                    <div class="cart22_item_right">
1319                        <a :href="item.url">
1320                            <div class="cart22_item_img">
1321                                <img :src="item.thumbnail">
1322                            </div>
1323                        </a>
1324                    </div>
1325                    <div class="cart22_item_left">
1326                        <div v-if="item.remain < item.quantity" class="cart22_tag_warning">สินค้านี้เหลือไม่เพียงพอ</div>
1327                        <div class="cart22_item_name">
1328                            <template v-if="item.parent_name" >
1329                                <a :href="item.url" v-text="item.parent_name"></a>
1330                                <div class="cart22_subitem_name"><span class="icon-subitem">&#x279C;</span> {{item.sku_name}}</div>
1331                            </template>
1332                            <template v-else>
1333                                <a :href="item.url" v-text="item.name"></a>
1334                            </template>
1335                            <div v-for="(promotion, index) in item.promotions" class="cart22_promotions" :key="index" title="เข้าร่วมโปรโมชั่น">เข้าร่วมโปรโมชั่น {{ promotion }}</div>
1336                        </div>
1337                        <div class="cart22_item_price">฿ {{price_format(item.unit_price,2)}} <span v-if="is_flash_sale" class="cart22_flash_badge">⚡ Flash Sale</span></div>
1338                        <div class="cart22_item_count">
1339                            <div class="cart22_item_countbutton cart22_item_increase" @click="increase_quantity" :class="{disabled:(!can_increase)}">
1340                                <img src="https://www.henghengmarble.com/system/application/modules/lnwshop/_images/cart22/add.png"/></div>
1341                            <div class="cart22_item_countinput"><input type="number" v-model.number="quantity_value" min="0" max="item.remain" /></div>
1342                            <div class="cart22_item_countbutton cart22_item_decrease" @click="decrease_quantity" :class="{disabled:(!can_decrease)}">
1343                                <img v-if="quantity_value == 1" class="delete_icon"  src="https://www.henghengmarble.com/system/application/modules/lnwshop/_images/cart22/delete.png"/>
1344                                <img v-else src="https://www.henghengmarble.com/system/application/modules/lnwshop/_images/cart22/remove.png"/>
1345                            </div>
1346                        </div>
1347                    </div>
1348                </div>`
1349                }
1350            },
1351            el: '#cart22_container',
1352            data: function () {
1353                var data = {
1354                    cart_is_show: false,
1355                    cart_is_hiding: false,
1356                    mem_ycoord: 0,
1357                    cc_color: '#007bff'
1358                };
1359                return data;
1360            },
1361            computed: {
1362                items: function() {
1363                    if(this.$store.state.cart && this.$store.state.cart.data && this.$store.state.cart.data.items) {
1364                        return this.$store.state.cart.data.items
1365                    }
1366                    return [];
1367                },
1368                discounts: function() {
1369                    if(this.$store.state.cart && this.$store.state.cart.data && this.$store.state.cart.data.after_product_discounts) {
1370                        return this.$store.state.cart.data.after_product_discounts;
1371                    }
1372                    return [];
1373                },
1374                total_num: function() {
1375                    return number_format(this.items.length);
1376                },
1377                total_quantity: function() {
1378                    return this.items.reduce(function(a, item) {
1379                        return a+ item.quantity
1380                    },0);
1381                },
1382                total_price: function() {
1383                    return this.items.reduce(function(a, item) {
1384                        return a + item.total_price
1385                    },0);
1386                },
1387                after_product_price: function() {
1388                    if(this.$store.state.cart && this.$store.state.cart.data && this.$store.state.cart.data.after_product_price) {
1389                        return this.$store.state.cart.data.after_product_price;
1390                    }
1391                    return this.total_price;
1392                },
1393                alert_is_show: function() {
1394                    return false && (this.total_quantity > 0);
1395                },
1396                is_loading: function() {
1397                    if(this.$store.state.cart && this.$store.state.cart.data) {
1398                        return this.$store.state.cart.is_loading;
1399                    }
1400                    return false;
1401                },
1402                is_initing: function() {
1403                    if(this.$store.state.cart && this.$store.state.cart.data){
1404                        return false;
1405                    }
1406                    return true;
1407                }
1408            },
1409            watch: {
1410                alert_is_show: function(newval) {
1411                    var elements = document.querySelectorAll(".register_badge, .adminBar .quickMenu .navigate .navi-container, .pageCapContainer");
1412                    if(newval) {
1413                        elements.forEach(function(element) {
1414                            element.classList.add('cart22_adjustOther');
1415                            element.classList.add('cart22_adjustOther_show');
1416                        });
1417                        setTimeout(function () {
1418                            elements.forEach(function(element) {
1419                                element.classList.remove('cart22_adjustOther_show');
1420                            });
1421                        }, 1000);
1422                    } else {
1423                        elements.forEach(function(element) {
1424                            element.classList.remove('cart22_adjustOther');
1425                            element.classList.add('cart22_adjustOther_hide');
1426                        });
1427                        setTimeout(function () {
1428                            elements.forEach(function(element) {
1429                                element.classList.remove('cart22_adjustOther_hide');
1430                            });
1431                        }, 500);
1432                    }
1433                }
1434            },
1435            methods: {
1436                cartShow: function() {
1437                    this.cart_is_show = true;
1438                    document.body.classList.add('cart22_body_noscroll');
1439
1440                    this.mem_ycoord = window.scrollY;
1441                    var style = document.body.style;
1442                    style.position = 'fixed';
1443                    style.left = '0';
1444                    style.right = '0';
1445                    style.top = - this.mem_ycoord + 'px';
1446                },
1447                cartHide: function() {
1448                    this.cart_is_hiding = true;
1449                    let that = this;
1450                    setTimeout(function () {
1451                        that.cart_is_show = false;
1452                        that.cart_is_hiding = false;
1453                        document.body.classList.remove('cart22_body_noscroll');
1454                        var style = document.body.style;
1455                        style.position = '';
1456                        style.left = '';
1457                        style.right = '';
1458                        style.top = '';
1459                        window.scroll({top: that.mem_ycoord});
1460
1461                    }, 250);
1462                },
1463            }
1464        });
1465    });
1466</script>
1466<div id="lnw-gototop" class="" onclick="lnw_gototop();"><span class="text"></span></div><style class="lnw_custom_css_container" type="text/css">/* Heng Heng Marble CI — complete Gray SimpleTemplate override
1467   Cream #EFE8DC  Surface #F7F1E6/#FFFFFF  Ink #1C1916  Muted #4A453E
1468   Red #9B1C1C  Gold #C4A35A  Line #E6DCCB  Darker red hover #7A1515
1469   Kill cyan #00aeef / #00affe. Prompt already imported on shop. */
1470
1471/* ========== Page / body ========== */
1472html, body,
1473#gadget-1,
1474#gadget-1.widgetPage,
1475.pageWrapper, .pageShirt, .pageUnderwear, .zoneShirt,
1476.page_home, .page_main, .page_category, .page_product,
1477.page_aboutus, .page_contactus, .page_how2order,
1478.page_informpayment, .page_cart, .page_article,
1479.page_order, .page_payment, .page_webboard {
1480  background-color: #EFE8DC !important;
1481  background-image: none !important;
1482  font-family: Prompt, Tahoma, sans-serif !important;
1483  color: #1C1916 !important;
1484}
1485body, #gadget-1, .wrapper, #container, .container, .titleHeader .headerText {
1486  font-family: Prompt, Tahoma, sans-serif !important;
1487  color: #1C1916 !important;
1488}
1489#gadget-1 { background-color: #EFE8DC !important; background-image: none !important; }
1490#gadget-2, #gadget-4, #gadget-9 {
1491  background-color: #EFE8DC !important;
1492  background-image: none !important;
1493  border: 0 !important;
1494}
1495
1496/* ========== Links: red, hover gold. Never cyan ========== */
1497/* Do NOT force color on every  — that turns white-on-red CTAs invisible */
1498a, a:visited, a:active, a:link { color: #9B1C1C; text-decoration: none !important; }
1499a:hover, a:focus { color: #C4A35A; }
1500/* Content / nav / product name links stay CI red */
1501.z-article a:not([style*="color"]),
1502.z-aside a:not([class*="b-"]):not([style*="color"]),
1503.product_name a, .productItem .product_name a,
1504.u-blog a, .footer a, #gadget-18 a {
1505  color: #9B1C1C !important;
1506}
1507.z-article a:hover, .z-aside a:hover, .product_name a:hover, #gadget-18 a:hover {
1508  color: #C4A35A !important;
1509}
1510/* Explicit white text on red/gold CTA anchors (inline-styled homepage buttons) */
1511a[style*="background: #9B1C1C"],
1512a[style*="background:#9B1C1C"],
1513a[style*="background: #9b1c1c"],
1514a[style*="background:#9b1c1c"] {
1515  color: #FFFFFF !important;
1516}
1517a[style*="background: #C4A35A"],
1518a[style*="background:#C4A35A"] {
1519  color: #1C1916 !important;
1520}
1521
1522/* ========== Nav #gadget-3 — cream bar, red active ========== */
1523#gadget-3,
1524#gadget-3.widgetZone,
1525#gadget-3 .zoneShirt,
1526#gadget-3 .nav-container {
1527  background: #F7F1E6 !important;
1528  background-image: none !important;
1529  background-color: #F7F1E6 !important;
1530  height: 48px !important;
1531  margin-top: 0 !important;
1532  width: 100% !important;
1533  max-width: 960px !important;
1534  border-bottom: 2px solid #C4A35A !important;
1535  border-top: 1px solid #E6DCCB !important;
1536  box-sizing: border-box !important;
1537}
1538#gadget-3 .pageNav,
1539#gadget-3 .pageNav li {
1540  height: 48px !important;
1541  background: transparent !important;
1542  background-image: none !important;
1543}
1544#gadget-3 ul.pageNav li a { text-decoration: none !important; display: block !important; }
1545#gadget-3 .pageNav a .text,
1546#gadget-3 .pageNav li a .text {
1547  height: 48px !important;
1548  line-height: 48px !important;
1549  color: #1C1916 !important;
1550  font-family: Prompt, Tahoma, sans-serif !important;
1551  font-size: 13px !important;
1552  font-weight: 600 !important;
1553  text-shadow: none !important;
1554  text-decoration: none !important;
1555  padding: 0 14px !important;
1556}
1557#gadget-3 .pageNav li.iamhere,
1558#gadget-3 .pageNav li.iamhere a,
1559#gadget-3 .pageNav li.iamhere .text,
1560#gadget-3 .pageNav li.iamhere:hover,
1561#gadget-3 .pageNav li.nav-1.nav-main.iamhere:hover {
1562  background: #9B1C1C !important;
1563  background-image: none !important;
1564  color: #FFFFFF !important;
1565}
1566#gadget-3 ul.pageNav li:hover,
1567#gadget-3 ul.pageNav li :hover,
1568#gadget-3 ul.pageNav li.nav-7.nav-contactus:hover,
1569#gadget-3 .pageNav li.nav-1.nav-main:hover {
1570  background: #9B1C1C !important;
1571  background-image: none !important;
1572  background-color: #9B1C1C !important;
1573  position: static !important;
1574  left: auto !important;
1575  width: auto !important;
1576}
1577#gadget-3 .pageNav a:hover .text,
1578#gadget-3 .pageNav a .text:hover {
1579  color: #FFFFFF !important;
1580  text-shadow: none !important;
1581  text-decoration: none !important;
1582}
1583
1584/* ========== Section titles ========== */
1585.u-section .titleHeader,
1586.titleHeader,
1587.LHEADER, .MHEADER,
1588#gadget-7 .titleHeader,
1589#gadget-25 .titleHeader,
1590#gadget-26 .titleHeader,
1591#gadget-42 .titleHeader,
1592#gadget-76 .titleHeader,
1593#gadget-77 .titleHeader {
1594  background: transparent !important;
1595  background-image: none !important;
1596  background-color: transparent !important;
1597  height: auto !important;
1598  min-height: 0 !important;
1599  border-bottom: 2px solid #C4A35A !important;
1600  position: relative !important;
1601  width: auto !important;
1602}
1603.u-section .titleHeader .headerText,
1604.titleHeader .headerText,
1605.LHEADER .headerText, .MHEADER .headerText,
1606#gadget-7 .titleHeader .headerText,
1607#gadget-25 .titleHeader .headerText,
1608#gadget-26 .titleHeader .headerText,
1609#gadget-42 .titleHeader .headerText,
1610#gadget-76 .titleHeader .headerText,
1611#gadget-77 .titleHeader .headerText {
1612  font-family: Prompt, Tahoma, sans-serif !important;
1613  color: #1C1916 !important;
1614  font-weight: 600 !important;
1615  font-size: 18px !important;
1616  text-shadow: none !important;
1617  height: auto !important;
1618  line-height: normal !important;
1619  padding: 10px 12px !important;
1620  margin: 0 !important;
1621  position: relative !important;
1622  top: auto !important;
1623  left: auto !important;
1624  width: auto !important;
1625  text-align: left !important;
1626}
1627.SHEADER .headerText {
1628  border-bottom: 1px solid #C4A35A !important;
1629  color: #9B1C1C !important;
1630  font-family: Prompt, Tahoma, sans-serif !important;
1631  line-height: normal !important;
1632  height: auto !important;
1633  padding: 8px 0 !important;
1634}
1635
1636/* Keep homepage intro gadget-5 visible + readable */
1637#gadget-5 { display: block !important; background: transparent !important; }
1638#gadget-5 .titleHeader {
1639  height: auto !important;
1640  min-height: 0 !important;
1641  background: none !important;
1642  border-bottom: 0 !important;
1643}
1644
1645/* ========== Product cards ========== */
1646.productItem,
1647.productsArea .productItem,
1648.z-article .productItem,
1649.thumbnailArea .productItem {
1650  background: #FFFFFF !important;
1651  border: 1px solid #E6DCCB !important;
1652  border-radius: 8px !important;
1653  box-shadow: none !important;
1654  -webkit-box-shadow: none !important;
1655  overflow: hidden;
1656}
1657.product_name,
1658.productItem .product_name,
1659.productsArea .product_name a,
1660.productItem .product_name a {
1661  font-size: 13px !important;
1662  font-weight: 500 !important;
1663  line-height: 1.35 !important;
1664  color: #1C1916 !important;
1665  display: -webkit-box !important;
1666  -webkit-line-clamp: 2 !important;
1667  -webkit-box-orient: vertical !important;
1668  overflow: hidden !important;
1669  max-height: 2.7em !important;
1670}
1671.product_price,
1672.productItem .product_price,
1673.productsArea .product_price {
1674  color: #9B1C1C !important;
1675  font-weight: 700 !important;
1676}
1677.product_price_old { color: #4A453E !important; }
1678
1679/* Order buttons — compact red, white label always visible */
1680.b-order, .b-subpro, a.b-order, a.b-subpro,
1681.product_button a,
1682.b-order .buttonCenter, .b-subpro .buttonCenter,
1683.LBUTTON .buttonCenter, .MBUTTON .buttonCenter, .SBUTTON .buttonCenter,
1684#gadget-7 .b-order, #gadget-7 .b-subpro,
1685#gadget-25 .b-order, #gadget-25 .b-subpro,
1686#gadget-42 .b-order, #gadget-42 .b-subpro,
1687#gadget-96 .b-order, #gadget-96 .b-subpro {
1688  background: #9B1C1C !important;
1689  background-image: none !important;
1690  background-color: #9B1C1C !important;
1691  border: 0 !important;
1692  border-radius: 4px !important;
1693  color: #FFFFFF !important;
1694  box-shadow: none !important;
1695  -webkit-box-shadow: none !important;
1696  height: auto !important;
1697  min-height: 0 !important;
1698  line-height: 1.3 !important;
1699}
1700.b-order .buttonLeft, .b-order .buttonRight,
1701.b-subpro .buttonLeft, .b-subpro .buttonRight,
1702.LBUTTON .buttonLeft, .LBUTTON .buttonRight,
1703.MBUTTON .buttonLeft, .MBUTTON .buttonRight,
1704.SBUTTON .buttonLeft, .SBUTTON .buttonRight {
1705  display: none !important;
1706  width: 0 !important;
1707  background: none !important;
1708}
1709.b-order .buttonText, .b-subpro .buttonText,
1710.LBUTTON .buttonText, .MBUTTON .buttonText, .SBUTTON .buttonText,
1711.b-order .buttonCenter, .b-subpro .buttonCenter,
1712#gadget-7 .b-order .buttonText, #gadget-7 .b-subpro .buttonText,
1713#gadget-25 .b-order .buttonText, #gadget-25 .b-subpro .buttonText,
1714#gadget-42 .b-order .buttonText, #gadget-42 .b-subpro .buttonText,
1715#gadget-96 .b-order .buttonText, #gadget-96 .b-subpro .buttonText {
1716  color: #FFFFFF !important;
1717  text-shadow: none !important;
1718  font-size: 13px !important;
1719  font-weight: 600 !important;
1720  font-family: Prompt, Tahoma, sans-serif !important;
1721  padding: 6px 14px !important;
1722  display: inline-block !important;
1723  float: none !important;
1724  width: auto !important;
1725  height: auto !important;
1726  line-height: 1.35 !important;
1727  background: transparent !important;
1728  background-image: none !important;
1729}
1730.product_button, .productItem .product_button {
1731  text-align: center !important;
1732  margin-top: 6px !important;
1733}
1734.product_button .b-order, .product_button .b-subpro {
1735  display: inline-block !important;
1736  width: auto !important;
1737  min-width: 0 !important;
1738}
1739.b-order:hover, .b-subpro:hover, a.b-order:hover, a.b-subpro:hover,
1740.product_button a:hover,
1741.LBUTTON:hover .buttonCenter, .MBUTTON:hover .buttonCenter, .SBUTTON:hover .buttonCenter,
1742#gadget-7 .b-order:hover, #gadget-7 .b-subpro:hover,
1743#gadget-25 .b-order:hover, #gadget-25 .b-subpro:hover,
1744#gadget-42 .b-order:hover, #gadget-42 .b-subpro:hover,
1745#gadget-96 .b-order:hover, #gadget-96 .b-subpro:hover {
1746  background: #7A1515 !important;
1747  background-image: none !important;
1748  background-color: #7A1515 !important;
1749}
1750.b-order:hover .buttonText, .b-subpro:hover .buttonText,
1751.LBUTTON:hover .buttonText, .MBUTTON:hover .buttonText, .SBUTTON:hover .buttonText,
1752#gadget-7 .b-order:hover .buttonText, #gadget-7 .b-subpro:hover .buttonText,
1753#gadget-25 .b-order:hover .buttonText, #gadget-25 .b-subpro:hover .buttonText,
1754#gadget-42 .b-order:hover .buttonText, #gadget-42 .b-subpro:hover .buttonText,
1755#gadget-96 .b-order:hover .buttonText, #gadget-96 .b-subpro:hover .buttonText,
1756.size-80 .b-subpro:hover .buttonText, #gadget-7 .size-80 .b-order:hover .buttonText,
1757#gadget-25 .size-80 .b-order:hover .buttonText, #gadget-42 .size-80 .b-order:hover .buttonText {
1758  color: #FFFFFF !important;
1759  text-decoration: none !important;
1760}
1761
1762/* ========== Category #gadget-11 ========== */
1763#gadget-11 { width: 220px; }
1764#gadget-11 .content,
1765#gadget-11 .middle-cat {
1766  max-height: 480px !important;
1767  overflow-y: auto !important;
1768}
1769#gadget-11 .pro-new { display: none !important; }
1770#gadget-11 .headerText {
1771  font-family: Prompt, Tahoma, sans-serif !important;
1772  color: #1C1916 !important;
1773  font-weight: 600 !important;
1774  text-align: left !important;
1775}
1776#gadget-11 .content > .main-cat > .cat-item {
1777  background-color: #F7F1E6 !important;
1778  margin: 3px 0 !important;
1779}
1780#gadget-11 a,
1781#gadget-11 .content .main-cat a,
1782#gadget-11 .content .main-cat .main-cat a {
1783  color: #1C1916 !important;
1784  background-color: transparent !important;
1785  font-family: Prompt, Tahoma, sans-serif !important;
1786}
1787#gadget-11 .content .cat-item.pro-all,
1788#gadget-11 .content .cat-item.pro-hot,
1789#gadget-11 .content .cat-item.pro-recommend,
1790#gadget-11 .content .cat-item.pro-sale {
1791  background-color: #FFFFFF !important;
1792  border-left: 3px solid #9B1C1C !important;
1793}
1794#gadget-11 .content .cat-item.pro-all a,
1795#gadget-11 .content .cat-item.pro-hot a,
1796#gadget-11 .content .cat-item.pro-recommend a,
1797#gadget-11 .content .cat-item.pro-sale a { color: #9B1C1C !important; font-weight: 600 !important; }
1798#gadget-11 .content .main-cat a:hover,
1799#gadget-11 .content .main-cat .sub-cat .subframebg .cat-item a:hover,
1800#gadget-11 a:hover,
1801#gadget-11 .content .cat-item.pro-all a:hover,
1802#gadget-11 .content .cat-item.pro-recommend a:hover,
1803#gadget-11 .content .cat-item.pro-hot a:hover,
1804#gadget-11 .content .cat-item.pro-sale a:hover {
1805  background-color: #9B1C1C !important;
1806  color: #FFFFFF !important;
1807  text-decoration: none !important;
1808}
1809#gadget-11 .subframebg {
1810  background-color: #F7F1E6 !important;
1811  border: 1px solid #E6DCCB !important;
1812  box-shadow: none !important;
1813}
1814#gadget-11 .content .main-cat .sub-cat .subframebg .cat-item a { color: #1C1916 !important; }
1815
1816/* ========== Hide junk ========== */
1817#gadget-85, #gadget-97, #gadget-124, #gadget-125 { display: none !important; }
1818
1819/* ========== Breadcrumb #gadget-20 ========== */
1820#gadget-20 .bc_page .page .left,
1821#gadget-20 .bc_page .page .center,
1822#gadget-20 .bc_page .page .right,
1823#gadget-20 .bc_page .page.first .left,
1824#gadget-20 .bc_page .page.last .left,
1825#gadget-20 .bc_page .page.last .center,
1826#gadget-20 .bc_page .page.last .right {
1827  background: #F7F1E6 !important;
1828  background-image: none !important;
1829  background-color: #F7F1E6 !important;
1830}
1831#gadget-20 a, #gadget-20 .bc_page a { color: #4A453E !important; }
1832#gadget-20 a:hover, #gadget-20 .bc_page a:hover,
1833#gadget-20 .bc_page .page.last a:hover { color: #9B1C1C !important; }
1834#gadget-20 .bc_page .page.last a { color: #9B1C1C !important; font-weight: 600 !important; }
1835#gadget-20 .bc_page .page .center { border-bottom: 2px solid #C4A35A !important; }
1836
1837/* ========== Sidebar widgets ========== */
1838#gadget-10, #gadget-15, #gadget-13, #gadget-93, #gadget-96, #gadget-14 {
1839  background: #F7F1E6 !important;
1840}
1841#gadget-10 .unitShirt, #gadget-15 .unitShirt, #gadget-13 .unitShirt,
1842#gadget-93 .unitShirt, #gadget-96 .unitShirt, #gadget-14 .unitShirt {
1843  background-color: #FFFFFF !important;
1844}
1845#gadget-10 .titleHeader, #gadget-15 .titleHeader, #gadget-13 .titleHeader,
1846#gadget-93 .titleHeader, #gadget-96 .titleHeader, #gadget-14 .titleHeader,
1847#gadget-11 .titleHeader {
1848  background: #F7F1E6 !important;
1849  background-image: none !important;
1850  height: auto !important;
1851  width: auto !important;
1852  border-bottom: 2px solid #C4A35A !important;
1853}
1854#gadget-10 .titleHeader .headerText, #gadget-15 .titleHeader .headerText,
1855#gadget-13 .titleHeader .headerText, #gadget-93 .titleHeader .headerText,
1856#gadget-96 .titleHeader .headerText, #gadget-14 .titleHeader .headerText {
1857  font-family: Prompt, Tahoma, sans-serif !important;
1858  color: #1C1916 !important;
1859  font-style: normal !important;
1860  font-weight: 600 !important;
1861  text-shadow: none !important;
1862  font-size: 15px !important;
1863  position: relative !important;
1864  top: auto !important;
1865  left: auto !important;
1866  line-height: normal !important;
1867  padding: 10px 12px !important;
1868  height: auto !important;
1869  width: auto !important;
1870  text-align: left !important;
1871}
1872#gadget-10 .unitShoe, #gadget-15 .unitShoe, #gadget-13 .unitShoe,
1873#gadget-14 .unitShoe {
1874  background: none !important;
1875  background-image: none !important;
1876  height: 8px !important;
1877}
1878#gadget-10 a { color: #9B1C1C !important; }
1879#gadget-10 a:hover { color: #C4A35A !important; }
1880#gadget-15 a, #gadget-13 a, #gadget-93 a, #gadget-96 a { color: #9B1C1C !important; }
1881#gadget-15 a:hover, #gadget-13 a:hover, #gadget-93 a:hover, #gadget-96 a:hover { color: #C4A35A !important; }
1882#gadget-10 .button-container .submit,
1883#gadget-13 .b-login, #gadget-13 .b-logout, #gadget-13 .b-gotoRegister {
1884  background: #9B1C1C !important;
1885  background-image: none !important;
1886  color: #FFFFFF !important;
1887  border-radius: 4px !important;
1888}
1889#gadget-10 .button-container .submit:hover,
1890#gadget-13 .b-login:hover, #gadget-13 .b-logout:hover, #gadget-13 .b-gotoRegister:hover {
1891  background: #7A1515 !important;
1892  background-image: none !important;
1893}
1894#gadget-96 .seeAll {
1895  background: #9B1C1C !important;
1896  border: 0 !important;
1897  color: #FFFFFF !important;
1898  border-radius: 4px !important;
1899}
1900#gadget-96 .seeAll:hover { color: #FFFFFF !important; background: #7A1515 !important; }
1901
1902/* ========== Footer #gadget-18 ========== */
1903#gadget-18 {
1904  background: #EFE8DC !important;
1905  background-image: none !important;
1906  color: #4A453E !important;
1907  padding-top: 28px !important;
1908  font-family: Prompt, Tahoma, sans-serif !important;
1909}
1910#gadget-18 a { color: #9B1C1C !important; }
1911#gadget-18 a:hover { color: #C4A35A !important; }
1912#gadget-18 .copyright, #gadget-18 .copyrightText, #gadget-18 .footerText,
1913#gadget-18 .menu, #gadget-18 .info-text { color: #4A453E !important; }
1914
1915/* ========== Cart #gadget-19 ========== */
1916#gadget-19 .unitShirt {
1917  background-color: #F7F1E6 !important;
1918  border: 1px solid #E6DCCB !important;
1919  border-top: 3px solid #9B1C1C !important;
1920  box-shadow: none !important;
1921}
1922#gadget-19 .product a { color: #9B1C1C !important; font-family: Prompt, Tahoma, sans-serif !important; }
1923#gadget-19 .product a:hover { color: #C4A35A !important; }
1924
1925/* ========== Forms / tables ========== */
1926.u-section input[type=text], .u-section input[type=password],
1927.u-section input[type=email], .u-section textarea, .u-section select,
1928input[type=text], input[type=password], input[type=email], textarea, select {
1929  background: #FFFFFF !important;
1930  border: 1px solid #E6DCCB !important;
1931  border-radius: 4px !important;
1932  color: #1C1916 !important;
1933  font-family: Prompt, Tahoma, sans-serif !important;
1934  box-shadow: none !important;
1935}
1936.u-section input[type=text]:focus, .u-section input[type=password]:focus,
1937input[type=text]:focus, input[type=password]:focus, input[type=email]:focus,
1938textarea:focus, select:focus {
1939  outline: 1px solid #C4A35A !important;
1940  border-color: #C4A35A !important;
1941  box-shadow: none !important;
1942}
1943.ROWTABLE thead td, .ROWTABLE thead .leftTD, .ROWTABLE thead .rightTD {
1944  background-color: #9B1C1C !important;
1945  color: #FFFFFF !important;
1946}
1947.ROWTABLE tbody td, .COLTABLE tbody td {
1948  border-color: #E6DCCB !important;
1949  background: #FFFFFF !important;
1950}
1951.COLTABLE thead td { border-bottom: 1px solid #9B1C1C !important; color: #1C1916 !important; }
1952.u-section .BLOCK, .u-section .ABLOCK, .u-section .BBLOCK,
1953.u-section .CBLOCK, .u-section .DBLOCK,
1954.u-section .contactsTable .contactArea,
1955.u-section .contactsTable .new_contact_area,
1956.orderloginMember, .orderloginGuest,
1957.u-section .trackcode_search {
1958  background-color: #FFFFFF !important;
1959  border: 1px solid #E6DCCB !important;
1960  box-shadow: none !important;
1961  -webkit-box-shadow: none !important;
1962}
1963.page_how2order .BLOCK, .page_informpayment .BLOCK, .page_contactus .BLOCK,
1964.u-section-how2order, .u-section-informpayment, .u-section-contactus {
1965  background-color: transparent !important;
1966}
1967.u-section .how2orderBlock, .u-section .mainBlock,
1968.u-section .contactusBlock-map .Block, .u-section .contactusBlock-info .Block {
1969  box-shadow: none !important;
1970  border: 0 !important;
1971}
1972
1973/* ========== Product detail ========== */
1974.u-section .productHeaderBlock { background-color: #9B1C1C !important; }
1975.u-section .productHeaderBlock .headerText { color: #FFFFFF !important; }
1976.u-section .product_tab .tab li {
1977  background-color: #F7F1E6 !important;
1978  border: 1px solid #E6DCCB !important;
1979  box-shadow: none !important;
1980}
1981.u-section .product_tab .tab li a { color: #1C1916 !important; }
1982.u-section .product_tab .tab li:hover { border: 1px solid #C4A35A !important; }
1983.u-section .product_tab .tab li.tab-selected,
1984.u-section .product_tab .tab li[choose="true"] {
1985  background-color: #9B1C1C !important;
1986  border-color: #9B1C1C !important;
1987  width: auto !important;
1988}
1989.u-section .product_tab .tab li.tab-selected a,
1990.u-section .product_tab .tab li[choose="true"] a { color: #FFFFFF !important; }
1991.u-section .product_tab .tab li a:hover,
1992.u-section .product_tab .tab li.tab-selected a:hover { color: #C4A35A !important; }
1993.u-section .product_tab .tab li.tab-selected a:hover { color: #FFFFFF !important; }
1994
1995.u-section .productDataBlock .add_cart,
1996.productPage .addCartArea .add_cart,
1997.u-section .subadd2cart {
1998  background-color: #9B1C1C !important;
1999  background-image: none !important;
2000  border: 0 !important;
2001  box-shadow: none !important;
2002  -webkit-box-shadow: none !important;
2003  border-radius: 4px !important;
2004}
2005.u-section .productDataBlock .add_cart .add_cart_text,
2006.productPage .addCartArea .add_cart .add_cart_text,
2007.u-section .subadd2cart .subadd2cart_text { color: #FFFFFF !important; }
2008.u-section .productDataBlock .add_cart:hover,
2009.productPage .addCartArea .add_cart:hover,
2010.u-section .subadd2cart:hover {
2011  background-color: #7A1515 !important;
2012  border-color: #7A1515 !important;
2013}
2014.u-section .productDataBlock .add_cart:hover .add_cart_text,
2015.productPage .addCartArea .add_cart:hover .add_cart_text,
2016.u-section .subadd2cart:hover .subadd2cart_text { color: #FFFFFF !important; }
2017
2018.productPage .addCartArea .buy_now {
2019  background-color: #C4A35A !important;
2020  box-shadow: none !important;
2021  -webkit-box-shadow: none !important;
2022  border-radius: 4px !important;
2023}
2024.productPage .addCartArea .buy_now .buy_now_text { color: #1C1916 !important; }
2025.productPage .addCartArea .buy_now:hover { background-color: #B08F48 !important; }
2026.productPage .addCartArea .buy_now:hover .buy_now_text { color: #1C1916 !important; }
2027
2028.u-section .subproductsArea .subproductItem {
2029  border: 1px solid #E6DCCB !important;
2030  background: #FFFFFF !important;
2031  box-shadow: none !important;
2032}
2033.u-section .subproductsArea .subproductItem .subproductHeader { background-color: #9B1C1C !important; }
2034
2035/* ========== Article / blog ========== */
2036.u-section .blogBox,
2037#gadget-26 .blogsArea .blogBox,
2038#gadget-76 .blogsArea .blogBox,
2039.u-section .postBlock, .u-section .postBlock-mini,
2040.u-section .productSearchLayout {
2041  border: 0 !important;
2042  border-bottom: 1px solid #E6DCCB !important;
2043  background: #F7F1E6 !important;
2044  box-shadow: none !important;
2045}
2046.u-section .blog_title { color: #1C1916 !important; }
2047.u-section .blogsArea .more { background-color: #9B1C1C !important; }
2048.u-section .blogsArea .more a { color: #FFFFFF !important; }
2049.u-section .blogsArea .more a:hover { color: #FFFFFF !important; }
2050.u-section .aboutusBlock .shop_desc p { color: #4A453E !important; font-family: Prompt, Tahoma, sans-serif !important; }
2051
2052/* ========== Content images ========== */
2053.postHTML img, .gadgetHTML img, .aboutusBlock img,
2054.blogBox img, .mceContentBody img, .shop_desc img {
2055  max-width: 100% !important;
2056  height: auto !important;
2057}
2058
2059/* ========== Misc cyan kill / showroom links ========== */
2060#gadget-7 a:hover, #gadget-25 a:hover, #gadget-26 a:hover,
2061#gadget-42 a:hover, #gadget-76 a:hover { color: #C4A35A !important; }
2062.u-section .text-container { background-image: none !important; }
2063
2064/* ========== Product detail: kill old pure-red / yellow highlight junk ========== */
2065.page_product .productDetail,
2066.page_product .product_detail,
2067.page_product .detail,
2068.page_product .u-section-product,
2069.page_product .unitShirt font,
2070.page_product .unitShirt span,
2071.page_product .unitShirt p,
2072.page_product .unitShirt div,
2073.page_product .productDescription,
2074.page_product .pro_detail,
2075#gadget-4 .productDetail font,
2076#gadget-4 .productDetail span {
2077  background-color: transparent !important;
2078}
2079.page_product font[color="red"],
2080.page_product font[color="#ff0000"],
2081.page_product font[color="#FF0000"],
2082.page_product font[color="yellow"],
2083.page_product font[color="#ffff00"],
2084.page_product font[color="#FFFF00"],
2085.page_product font[color="#ff6600"],
2086.page_product [style*="color: red"],
2087.page_product [style*="color:red"],
2088.page_product [style*="color:#ff0000"],
2089.page_product [style*="color: #ff0000"],
2090.page_product [style*="color:#FF0000"],
2091.page_product [style*="color: #FF0000"],
2092.page_product [style*="color:#ff6600"],
2093.page_product [style*="color: #ff6600"] {
2094  color: #9B1C1C !important;
2095}
2096.page_product [style*="background-color: red"],
2097.page_product [style*="background-color:red"],
2098.page_product [style*="background: red"],
2099.page_product [style*="background:red"],
2100.page_product [style*="background-color:#ff0000"],
2101.page_product [style*="background-color: #ff0000"],
2102.page_product [style*="background-color:#FF0000"],
2103.page_product [style*="background:#ff0000"],
2104.page_product [style*="background: #ff0000"],
2105.page_product [style*="background-color:#ffff00"],
2106.page_product [style*="background-color: #ffff00"],
2107.page_product [style*="background:#ffff00"],
2108.page_product [style*="background: #ffff00"],
2109.page_product [style*="background-color:yellow"],
2110.page_product [style*="background:yellow"] {
2111  background: transparent !important;
2112  background-color: transparent !important;
2113  color: #1C1916 !important;
2114}
2115/* Product title bar: keep red but not oversized */
2116.page_product .product_name_detail,
2117.page_product .pro_name,
2118.page_product h1.product_name {
2119  background: #9B1C1C !important;
2120  color: #FFFFFF !important;
2121  border-radius: 6px !important;
2122  padding: 10px 14px !important;
2123  font-size: 18px !important;
2124  line-height: 1.35 !important;
2125}
2126
2127/* Empty sidebar recommended: quieter see-all */
2128#gadget-96 .products_seeAll a.seeAll,
2129#gadget-96 a.seeAll {
2130  display: inline-block !important;
2131  background: transparent !important;
2132  color: #9B1C1C !important;
2133  border: 1px solid #C4A35A !important;
2134  border-radius: 4px !important;
2135  padding: 6px 12px !important;
2136  font-size: 12px !important;
2137}
2138#gadget-96 a.seeAll .text { color: #9B1C1C !important; }
2139
2140/* ========== Top 30 / recommend carousels — stop the empty-error look 
2140========== */
2141#gadget-7 .productsArea,
2142#gadget-7 .thumbnailArea {
2143  display: flex !important;
2144  flex-wrap: nowrap !important;
2145  overflow-x: auto !important;
2146  overflow-y: hidden !important;
2147  gap: 12px !important;
2148  padding: 12px 4px 18px !important;
2149  scroll-snap-type: x proximity;
2150  -webkit-overflow-scrolling: touch;
2151  width: auto !important;
2152  max-width: 100% !important;
2153  float: none !important;
2154}
2155#gadget-7 .productItem,
2156#gadget-7 .productArea,
2157#gadget-7 .productsArea .productItem,
2158#gadget-7 .size-150 .productArea,
2159.z-article #gadget-7 .size-150 .productArea {
2160  flex: 0 0 180px !important;
2161  width: 180px !important;
2162  max-width: 180px !important;
2163  min-width: 180px !important;
2164  height: auto !important;
2165  min-height: 0 !important;
2166  float: none !important;
2167  scroll-snap-align: start;
2168  margin: 0 !important;
2169  padding: 10px 8px 12px !important;
2170  box-sizing: border-box !important;
2171  overflow: hidden !important;
2172}
2173#gadget-7 .gadgetThumbnail,
2174#gadget-7 .size-150 .gadgetThumbnail,
2175#gadget-7 .gadgetThumbnail .gadgetFrame,
2176#gadget-7 .gadgetThumbnail .gadgetRibbon {
2177  float: none !important;
2178  display: block !important;
2179  width: 150px !important;
2180  height: 150px !important;
2181  margin: 0 auto 4px !important;
2182  position: relative !important;
2183  left: auto !important;
2184  top: auto !important;
2185}
2186#gadget-7 .gadgetThumbnail img,
2187#gadget-7 .productImage {
2188  width: 150px !important;
2189  height: 150px !important;
2190  max-width: 150px !important;
2191  object-fit: contain !important;
2192  display: block !important;
2193  margin: 0 auto !important;
2194}
2195#gadget-7 .productDetail,
2196#gadget-7 .size-150 .productItem .productDetail,
2197#gadget-7 .productsArea .productItem .productDetail {
2198  margin: 6px 4px 0 !important;
2199  padding: 0 !important;
2200  text-align: center !important;
2201  width: auto !important;
2202  float: none !important;
2203  display: block !important;
2204  clear: both !important;
2205  position: static !important;
2206}
2207#gadget-7 .product_name,
2208#gadget-7 .size-150 .product_name,
2209#gadget-7 .productsArea .productItem .product_name {
2210  height: auto !important;
2211  min-height: 0 !important;
2212  max-height: 2.7em !important;
2213  margin: 4px 0 2px !important;
2214  text-align: center !important;
2215  overflow: hidden !important;
2216}
2217#gadget-7 .product_price,
2218#gadget-7 .productsArea .productItem .product_price {
2219  position: static !important;
2220  height: auto !important;
2221  line-height: 1.3 !important;
2222  padding: 4px 0 !important;
2223  display: block !important;
2224  text-align: center !important;
2225}
2226#gadget-7 .product_button {
2227  margin: 6px auto 0 !important;
2228  text-align: center !important;
2229}
2230#gadget-7 .products_seeAll {
2231  text-align: center !important;
2232  padding: 4px 0 12px !important;
2233  clear: both !important;
2234}
2235#gadget-7 .products_seeAll a.seeAll,
2236#gadget-7 a.seeAll {
2237  display: inline-block !important;
2238  background: transparent !important;
2239  color: #9B1C1C !important;
2240  border: 1px solid #C4A35A !important;
2241  border-radius: 4px !important;
2242  padding: 6px 14px !important;
2243  font-size: 13px !important;
2244  font-weight: 600 !important;
2245}
2246#gadget-7 a.seeAll .text { color: #9B1C1C !important; background: transparent !important; }
2247
2248/* Sidebar recommend is a duplicate layout-main carousel in 220px — looks empty/broken */
2249#gadget-96 { display: none !important; }
2250
2251/* ========== Mobile / .lnw-mobile ========== */
2252.lnw-mobile #gadget-1,
2253.lnw-mobile #gadget-1.widgetPage,
2254body.lnw-mobile #gadget-1 {
2255  width: 100% !important;
2256  max-width: 100% !important;
2257}
2258.lnw-mobile #gadget-2,
2259.lnw-mobile #gadget-2 img,
2260.lnw-mobile .z-header img {
2261  max-width: 100% !important;
2262  height: auto !important;
2263  width: auto !important;
2264}
2265.lnw-mobile #gadget-3,
2266.lnw-mobile #gadget-3.widgetZone,
2267.lnw-mobile #gadget-3 .nav-container {
2268  width: 100% !important;
2269  max-width: 100% !important;
2270  height: auto !important;
2271}
2272.lnw-mobile #gadget-3 .pageNav,
2273.lnw-mobile #gadget-3 .pageNav li {
2274  height: auto !important;
2275  display: inline-block !important;
2276}
2277.lnw-mobile #gadget-3 .pageNav a .text,
2278.lnw-mobile #gadget-3 .pageNav li a .text {
2279  height: auto !important;
2280  line-height: 36px !important;
2281  padding: 0 10px !important;
2282  font-size: 12px !important;
2283}
2284.lnw-mobile .z-aside,
2285.lnw-mobile #gadget-9 {
2286  float: none !important;
2287  width: 100% !important;
2288  max-width: 100% !important;
2289}
2290.lnw-mobile .z-article,
2291.lnw-mobile #gadget-4 {
2292  float: none !important;
2293  width: 100% !important;
2294  max-width: 100% !important;
2295}
2296.lnw-mobile .SBUTTON,
2297.lnw-mobile .LBUTTON,
2298.lnw-mobile .MBUTTON,
2299.lnw-mobile .BUTTON {
2300  width: auto !important;
2301  min-width: 0 !important;
2302}
2303.lnw-mobile .SBUTTON .buttonCenter,
2304.lnw-mobile .LBUTTON .buttonCenter,
2305.lnw-mobile .MBUTTON .buttonCenter {
2306  width: auto !important;
2307}
2308.lnw-mobile #gadget-7 .productItem,
2309.lnw-mobile #gadget-7 .productArea {
2310  flex: 0 0 160px !important;
2311  width: 160px !important;
2312  min-width: 160px !important;
2313  max-width: 160px !important;
2314  height: auto !important;
2315}
2316
2317@media (max-width: 720px) {
2318  #gadget-1, #gadget-1.widgetPage { width: 100% !important; max-width: 100% !important; }
2319  #gadget-3, #gadget-3.widgetZone { width: 100% !important; max-width: 100% !important; height: auto !important; }
2320  #gadget-2 img { max-width: 100% !important; height: auto !important; }
2321  .z-aside, #gadget-9 { float: none !important; width: 100% !important; }
2322  .z-article, #gadget-4 { float: none !important; width: 100% !important; }
2323  .SBUTTON, .LBUTTON, .MBUTTON { width: auto !important; }
2324}
2325
2326/* Mobile Top 30: give the empty Vue box height so IntersectionObserver fires,
2327   keep see-all on-screen, wrap cards 2-up instead of a clipped scroller. */
2328#gadget-7 .productsArea { min-height: 200px !important; }
2329#gadget-7 .products_seeAll {
2330  overflow: visible !important;
2331  text-align: center !important;
2332  width: 100% !important;
2333  box-sizing: border-box !important;
2334}
2335#gadget-7 .products_seeAll a.seeAll,
2336#gadget-7 a.seeAll {
2337  max-width: 92% !important;
2338  white-space: normal !important;
2339  box-sizing: border-box !important;
2340}
2341.lnw-mobile #gadget-7 .productsArea,
2342.lnw-mobile #gadget-7 .thumbnailArea {
2343  flex-wrap: wrap !important;
2344  overflow-x: hidden !important;
2345  overflow-y: visible !important;
2346  min-height: 240px !important;
2347}
2348.lnw-mobile #gadget-7 .productItem,
2349.lnw-mobile #gadget-7 .productArea {
2350  flex: 0 0 calc(50% - 8px) !important;
2351  width: calc(50% - 8px) !important;
2352  min-width: 0 !important;
2353  max-width: calc(50% - 8px) !important;
2354}
2355</style></div>
2355<script language="JavaScript" type="text/javascript" src="https://www.henghengmarble.com/external/vue.min.js"></script>
vendor: 1 bytes, line 2355
2355
2356<script language="JavaScript" type="text/javascript" src="https://www.henghengmarble.com/external/es6-promise.auto.min.js"></script>
vendor: 1 bytes, line 2356
2356
2357<script language="JavaScript" type="text/javascript" src="https://www.henghengmarble.com/external/vuex.min.js"></script>
vendor: 1 bytes, line 2357
2357
2358<script language="JavaScript" type="text/javascript" src="https://www.henghengmarble.com/system/application/modules/lnwshop/_js/many.min.js?t=20211123000000"></script>
vendor: 1 bytes, line 2358
2358
2359<script language="JavaScript" type="text/javascript">var LNWFILE_JSONP = 'lnwfile_jsonp';
2360function file_upload_seller_url () {return "https://l-up.lnwfile.com/lnwshop/v2/upload_seller/";}
2361function file_upload_buyer_url () {return "https://l-up.lnwfile.com/lnwshop/v2/upload_buyer/";}
2362function file_upload_url () {return "https://l-up.lnwfile.com/lnwshop/upload/";}
2363function file_upload_flash_url () {return "https://l-up.lnwfile.com/lnwshop/upload_flash/";}
2364function file_upload_icon_url () {return "https://l-up.lnwfile.com/lnwshop/upload_icon/";}
2365function file_upload_document_url () {return "https://l-up.lnwfile.com/lnwshop/v2/upload_document/";}
2366function file_upload_accounting_url () {return "https://aca-up.lnwfile.com/lnwshop/v2/upload_document/";}
2367function file_upload_manage_url () {return "https://l-up.lnwfile.com/lnwshop/upload_manage/";}
2368function file_flash_url () {return "https://l-up.lnwfile.com/swf/swfupload.swf";}
2369function file_uploadify_url () {return "https://l-up.lnwfile.com/swf/uploadify.swf";}
2370function file_jsonp_url (uri) {return "https://l-up.lnwfile.com/lnwshop/jsonp/"+(uri===undefined?"":uri)+"?"+LNWFILE_JSONP+"=?";}
2371	function base_url (uri) {return "https://www.henghengmarble.com/"+(uri===undefined?"":uri.replace(/^\//,''));}
2372	function site_url (uri) {return "https://www.henghengmarble.com/"+(uri===undefined?"":uri.replace(/^\//,''));}
2373	function front_url (uri) {return "https://www.henghengmarble.com/"+(uri===undefined?"":uri.replace(/^\//,''));}
2374	function manage_url (uri) {return "https://a.lnwstore.com/henghengmarble/"+(uri===undefined?"":uri.replace(/^\//,''));}
2375    function handle_url_from_import (url) {
2376        if(typeof url !== 'string') {
2377            return url;
2378        }
2379        url = url.trim();
2380        if(/^https?:\/\//.test(url)) {
2381            return url;
2382        }return url;}
2383var css_files = ['https://www.henghengmarble.com/system/application/templates/lnwshop/default/_css/basic.min.css?t=20260810000053','https://www.henghengmarble.com/cache/lnwshop/68/268/css/20260928000311/style.css'];
2384function css_url () {return css_files.join(',');}
2385const WEBID = 68268;
2386function deepFreeze(e){const t=Object.getOwnPropertyNames(e);for(const o of t){const t=e[o];t&&"object"==typeof t&&deepFreeze(t)}return Object.freeze(e)}
2387const WEBDATA = deepFreeze({"id":"68268","webname":"henghengmarble","name":"เฮงเฮงหินอ่อน | ตี่จู้เอี๊ยะ ศาลพระภูมิหินอ่อน โรงงานบางนา","image":"https:\/\/l.lnwfile.com\/q9hs2i.jpg","avatar":"https:\/\/l.lnwfile.com\/_\/l\/_resize\/100\/100\/q9\/hs\/2i.jpg","front_url":"https:\/\/www.henghengmarble.com\/","manage_url":"https:\/\/a.lnwstore.com\/henghengmarble\/","share_url":"https:\/\/www.henghengmarble.com\/checkout","join_num":29,"open_date_th":"29 ธ.ค. 2555","open_date_diff":"1 decadeที่ผ่านมา","order_url":"https:\/\/lnw.me\/order\/henghengmarble","lnwbar":{"color":"default"},"price_round_config":null,"slideshow":{"is_enabled":0},"gointer":{"is_enabled":0},"mobileSiteEnabled":1});
2388	function _add_settings_data(settings, name, value) {
2389		if(typeof settings.data == 'undefined' || settings.data == null || settings.data == '') {
2390			settings.data = name + '=' + value;
2391		} else if(typeof settings.data=='string') {
2392			settings.data += '&' + name + '=' + value;
2393		} else if($.isArray(settings.data)) {
2394			settings.data.push({name: name, value: value});
2395		} else if(typeof FormData !== 'undefined') {
2396			settings.data.append(name, value);
2397		}
2398	}
2399	if(window.top != window) {
2400		var allowedFrame = false;
2401		try {
2402								} catch(error) {}
2403		if(!allowedFrame) {
2404			var alertFunc = function() {
2405				// Bootstrap also runs in <head>, before the body exists.
2406				if(!document.body) {
2407					return;
2408				}
2409				var heading = document.createElement('h1');
2410				heading.style.margin = '200px';
2411				var link = document.createElement('a');
2412				link.href = window.location.href;
2413				link.target = '_top';
2414				link.textContent = 'Click here to enter';
2415				heading.appendChild(link);
2416				document.body.textContent = '';
2417				document.body.appendChild(heading);
2418			};
2419			alertFunc();
2420			window.addEventListener('DOMContentLoaded', alertFunc);
2421			window.addEventListener('load', alertFunc);
2422		}
2423	}
2424
2425	$(document).ready(function() {
2426		$.ajaxSetup({
2427			dataType: "html",
2428			cache: false
2429		});
2430		$(this).ajaxSend(function(e, xhr, settings) {
2431			if(!settings.data){
2432				xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
2433			}
2434			_add_settings_data(settings, 'ajaxxxx', true);
2435			_add_settings_data(settings, 'ajaxxxx_dataType', settings.dataType);
2436			if((typeof lnw_store !== 'undefined') && lnw_store.state.user.data && lnw_store.state.user.data.csrf_token) {
2437				_add_settings_data(settings, 'csrf_token', lnw_store.state.user.data.csrf_token);
2438			}
2439		});
2440	});
2441
2442</script>
vendor: 1 bytes, line 2442
2442
2443<script language="JavaScript" type="text/javascript" src="https://www.henghengmarble.com/system/application/modules/lnwshop/_js/lang_th.js?t=20250110114600"></script>
2443
2444
2445<script language="JavaScript" type="text/javascript" src="https://www.henghengmarble.com/system/application/modules/lnwshop/_js/default.min.js?t=20260902170746"></script>
2445
2446
2447
2448    
2449    <div class="shortcut-contact-container btn-chat-container">
2450        <div class="btn btn-chat">
2451            <div class="close-icon" onclick="goto_chat();"></div>
2452            <div class="icon"></div>
2453            <div class="text">พูดคุย-สอบถาม</div>
2454        </div>
2455        <ul class="social-button">
2456                                                    <li class="btn btn-email"><a href="mailto:[email protected]?subject=%E0%B8%AA%E0%B8%AD%E0%B8%9A%E0%B8%96%E0%B8%B2%E0%B8%A1%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%A1%E0%B8%B9%E0%B8%A5%20-%20henghengmarble&body=%E0%B8%AA%E0%B8%A7%E0%B8%B1%E0%B8%AA%E0%B8%94%E0%B8%B5%20%E0%B8%89%E0%B8%B1%E0%B8%99%E0%B8%95%E0%B9%89%E0%B8%AD%E0%B8%87%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%AA%E0%B8%AD%E0%B8%9A%E0%B8%96%E0%B8%B2%E0%B8%A1%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%A1%E0%B8%B9%E0%B8%A5%E0%B9%80%E0%B8%9E%E0%B8%B4%E0%B9%88%E0%B8%A1%E0%B9%80%E0%B8%95%E0%B8%B4%E0%B8%A1" onclick="return lead_contactus_track();">
2457                        <div class="icon"></div>
2458                        <div class="text">อีเมล [email protected]</div>
2459                    </a></li>
2460                        <li class="btn btn-contactus">
2461                <a href="https://www.henghengmarble.com/contactus" onclick="return lead_contactus_track();">
2462                    <div class="icon"></div>
2463                    <div class="text">กรอกฟอร์มติดต่อ</div>
2464                </a></li>
2465                            <li class="btn btn-mobile"><a href="tel:084-696-4444" onclick="return lead_phone_track();">
2466                        <div class="icon"></div>
2467                        <div class="text">โทร 084-696-4444</div>
2468                    </a></li>
2469                        	        	        	                                    	                            <li class="btn btn-facebook"><a target="_blank" href="https://www.messenger.com/t/hengheng55555" onclick="return lead_facebook_track();">
2470                            <div class="icon"></div>
2471                            <div class="text">hengheng55555</div>
2472                        </a></li>
2473		                                                            <li class="btn btn-line"><a href="https://line.me/R/ti/p/@hengheng55" target="_blank" onclick="return lead_line_track();">
2474                        <div class="icon"></div>
2475                        <div class="text">Add @hengheng55</div>
2476                    </a></li>
2477                    </ul>
2478    </div>
2479
2480
2481<script language="JavaScript">
2482	    document.addEventListener("DOMContentLoaded", function () {
2483    	var lead_datas = [
2484    		{selector:'a[href*="email:"], a[href*="contactus"]',onclick:'return lead_contactus_track()'},
2485    		{selector:'a[href*="tel:"]',onclick:'return lead_phone_track()'},
2486    		{selector:'a[href*="line.me/ti/p"], a[href*="nav.cx"]',onclick:'return lead_line_track()'},
2487    		{selector:'a[href*="messenger.com"], a[href*="facebook.com"]',onclick:'return lead_facebook_track()'},
2488    	];
2489    	lead_datas.forEach(function(lead_data) {
2490	    	var nodeList = document.querySelectorAll(lead_data.selector);
2491	    	for(var i=0;i<nodeList.length;i++) {
2492	    		var node = nodeList[i];
2493	    		if(node.getAttribute('onclick') == null) {
2494	    			node.setAttribute('onclick',lead_data.onclick);
2495	    		}
2496	    	}
2497	    });
2498	});
2499    		function lead_contactus_track() {
2500				gtag('event', 'conversion', {
2501			'send_to': 'AW-439237792/2jdFCMeFkfIBEKD5uNEB',
2502			'value': 10.0,
2503			'currency': 'THB'
2504		});
2505				return true;
2506	}
2507		function lead_phone_track() {
2508				gtag('event', 'conversion', {
2509			'send_to': 'AW-439237792/kKWkCOX6gPIBEKD5uNEB',
2510			'value': 10.0,
2511			'currency': 'THB'
2512		});
2513				return true;
2514	}
2515		function lead_facebook_track() {
2516				gtag('event', 'conversion', {
2517			'send_to': 'AW-439237792/2KpvCOj6gPIBEKD5uNEB',
2518			'value': 10.0,
2519			'currency': 'THB'
2520		});
2521				return true;
2522	}
2523		function lead_twitter_track() {
2524				gtag('event', 'conversion', {
2525			'send_to': 'AW-439237792/1bSmCLjI8PEBEKD5uNEB',
2526			'value': 10.0,
2527			'currency': 'THB'
2528		});
2529				return true;
2530	}
2531		function lead_instagram_track() {
2532				gtag('event', 'conversion', {
2533			'send_to': 'AW-439237792/TMivCLvI8PEBEKD5uNEB',
2534			'value': 10.0,
2535			'currency': 'THB'
2536		});
2537				return true;
2538	}
2539		function lead_line_track() {
2540				gtag('event', 'conversion', {
2541			'send_to': 'AW-439237792/M2EGCL7I8PEBEKD5uNEB',
2542			'value': 10.0,
2543			'currency': 'THB'
2544		});
2545				return true;
2546	}
2547	</script>
2547<script type="text/javascript">		var first_sync_accounts_time = true;
2548		function accounts_update__hook_after_check_account() {
2549			if(first_sync_accounts_time){
2550								first_sync_accounts_time = false;
2551			}
2552		} var accountsTime = null;
2553function accounts_update() {
2554	var data = {
2555		data: 'SQn9Msfe19LOO8H003xneSc_W5uZaWQKZIuR9dg-ZHT1ZfAW2kgQnsYcdr-eZF_8xQfvCeQ0DEI59_TJ70JXml3ijN7E7ZZVTu1M2xHo7RS7utknMUfCvfbHbVE6Dt6xHJfv6sfFlHCC91sTd1a-unaylwLzQRu2HtN-DoBOimsFcfwdYQZb-lsHGPqnQwctfb8Pbvnb9sxpp5Gr6JYU4fu8dWtEyVA6bAJuERRMsy2_z4PfjH3hSJC5BQ27lyufyqvIgZ7NFV41-f2ZxJdKknIRCGu8BP2jqZQV953wguU1zvhvGgMIxgIcMWaH6p0GvgzFGjosoACWLUM3iWQQ_yMItlKJH5VWj5KfX_JEJr35sHBEM4BXxWNq7lAWdUpA9g9O6ey6yPxKheFq',
2556		revision_id: 3573
2557	};
2558	$.getJSON("https://static.lnw.me/jsonp/heartbeat?lnwaccounts_jsonp=?", data, function(response) {
2559		if(response.success) {
2560            if(response.logged_in) {
2561                //$.cookie('_lnwacct_68268_www_henghengmarble_com___tk2', response._lnwacct, {path: '/'});
2562                document.cookie = encodeURIComponent("_lnwacct_68268_www_henghengmarble_com___tk2") + "=" + encodeURIComponent(response._lnwacct) + "; path=/";
2563                if(response.state_change != undefined && response.state_change) {
2564                    //alert('reload');
2565                        window.location.href = window.location.href;
2566                        return;
2567                }
2568            }
2569			if(typeof accounts_update__hook_after_check_account == 'function') {
2570				accounts_update__hook_after_check_account();
2571			}
2572		}
2573		if(accountsTime != null) {
2574			clearTimeout(accountsTime);
2575		}
2576		accountsTime = setTimeout("accounts_update();", 15 * 60 * 1000);
2577	});
2578	$.ajax({
2579		type: 'GET',
2580		data: {},
2581		url: 'https://www.henghengmarble.com/lnwbar/action/session'
2582	});
2583}
2584$(document).ready(function() {
2585    if(window.top == window) {
2586        accounts_update();
2587    }
2588});
2589</script>
2589<script language="JavaScript" type="text/javascript" src="https://www.henghengmarble.com/system/application/modules/lnwshop/lnwbar/_js/vue.min.js?t=20260904205501"></script>
vendor: 1 bytes, line 2589
2589
2590<script type="text/javascript">document.addEventListener("DOMContentLoaded", function(event) { });</script>
2590</body>
2591</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.