1<!doctype html> 2<!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]--> 3<!--[if IE 7]><html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]--> 4<!--[if IE 8]><html class="no-js lt-ie9" lang="en"> <![endif]--> 5<!--[if IE 9 ]><html class="ie9 no-js"> <![endif]--> 6<!--[if (gt IE 9)|!(IE)]><!--> <html class="no-js"> <!--<![endif]--> 7<head> 8 9 <!-- Basic page needs ================================================== --> 10 <meta charset="utf-8"> 11 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 12 13 14 <link rel="icon" href="https://cdn.store-assets.com/s/1382651/f/15971656.png" /> 15 16 17 <!-- Title and description ================================================== --> 18 <title> 19 News – MuslimTW 20 </title> 21 22 23 <meta name="description" content=" "> 24 25 26 <!-- Social meta ================================================== --> 27 28 29 <meta property="og:type" content="website"> 30 <meta property="og:title" content="News"> 31 <meta property="og:url" content="https://muslim.tw/pages/news"> 32 33 <meta property="og:image" content="https://cdn.store-assets.com/s/1382651/f/15968883.png"> 34 <meta property="og:image:secure_url" content="https://cdn.store-assets.com/s/1382651/f/15968883.png"> 35 36 37 38<meta property="og:description" content=" "> 39<meta property="og:site_name" content="MuslimTW"> 40 41 42 43 <meta name="twitter:card" content="summary"> 44 45 46 47 <meta name="twitter:site" content="@"> 48 49 50 51 52 53 <!-- Helpers ================================================== --> 54 <link rel="canonical" href="https://muslim.tw/pages/news"> 55 <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"> 56 <meta name="theme-color" content="#C9A063"> 57 58
58<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript" ></script>
58 59 60 <!-- Header hook for plugins ================================================== --> 61 62<!-- ScriptTags -->
63<script>window.__st={p: "page",cid: null,cem: null,cph: null,cfn: null,cln: null,cge: null,cdb: null,ccc: null};</script>
63<script src='/assets/events.js'></script>
63<script>(function(){function asyncLoad(){var urls=['/assets/traffic.js?v=1','https://apps.easystore.co/social-media-share/script.js?shop=muslimtw.easy.co&t=1760497425','https://apps.easystore.co/google-analytics-4/script.js?shop=muslimtw.easy.co&t=1768979819','https://smartarget.online/loader.js?type=int&u=c226c2d881ee8d00b0671950cb480ab35afa73e7&source=easystore_whatsapp'];for(var i=0;i<urls.length;i++){var s=document.createElement('script');s.type='text/javascript';s.async=true;s.src=urls[i];var x=document.getElementsByTagName('script')[0];x.parentNode.insertBefore(s, x);}}window.attachEvent ? window.attachEvent('onload', asyncLoad) : window.addEventListener('load', asyncLoad, false);})();</script>
63 64<!-- /ScriptTags --> 65 66 67 68
68<script src="https://store-themes.easystore.co/1382651/themes/328977/assets/global.js?t=1788245198" defer="defer"></script>
68 69 70 71 72
72<script> 73 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 74 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 75 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 76 })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); 77 78 ga('create', '', 'auto','myTracker'); 79 ga('myTracker.send', 'pageview'); 80 81 </script>
81 82 83
83<script src="/assets/storefront.js?id=1d419de2011a5572c98b" type="text/javascript" ></script>
83 84 85<link rel="preconnect" href="https://fonts.googleapis.com"> 86<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 87<link href="https://fonts.googleapis.com/css2?family=Montserrat+Alternates:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Open+Sans:[email protected]&display=swap" rel="stylesheet"> 88 <!-- CSS ================================================== --> 89 <style> 90 @font-face { 91 font-family: 'Source Sans Pro'; 92 font-style: normal; 93 font-weight: regular; 94 src: local('Source Sans Pro regular'), local('Source Sans Pro-regular'), url(https://fonts.gstatic.com/s/sourcesanspro/v18/6xK3dSBYKcSV-LCoeQqfX1RYOo3aP6TkmDZz9g.ttf) format('truetype'); 95 } 96 97 @font-face { 98 font-family: 'Open Sans'; 99 font-style: normal; 100 font-weight: regular; 101 src: local('Open Sans regular'), local('Open Sans-regular'), url(https://fonts.gstatic.com/s/opensans/v27/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0C4nY1M2xLER.ttf) format('truetype'); 102 } 103 104 :root { 105 --font-body-family: 'Source Sans Pro', sans-serif; 106 --font-body-style: normal; 107 --font-body-weight: 400; 108 109 --font-heading-family: 'Open Sans', sans-serif; 110 --font-heading-style: normal; 111 --font-heading-weight: 700; 112 113 --color-heading-text: 28,28,28; 114 --color-base-text: 28,28,28; 115 --color-base-background-1: 255,255,255; 116 --color-base-background-2: 255,255,255; 117 118 --color-base-solid-button-labels: 255,255,255; 119 --color-base-outline-button-labels: 201,160,99; 120 121 --color-base-accent-1: 201,160,99; 122 --color-base-accent-2: 201,160,99; 123 --payment-terms-background-color: 255,255,255; 124 125 --gradient-base-background-1: 255,255,255; 126 --gradient-base-background-2: 255,255,255; 127 --gradient-base-accent-1: 201,160,99; 128 --gradient-base-accent-2: 201,160,99; 129 130 --page-width: 140rem; 131 } 132 133 *, 134 *::before, 135 *::after { 136 box-sizing: inherit; 137 } 138 139 html { 140 box-sizing: border-box; 141 font-size: 62.5%; 142 height: 100%; 143 } 144 145 body { 146 display: grid; 147 grid-template-rows: auto auto 1fr auto; 148 grid-template-columns: 100%; 149 min-height: 100%; 150 margin: 0; 151 font-size: 1.8rem; 152 letter-spacing: 0.06rem; 153 line-height: 1.6; 154 font-family: var(--font-body-family); 155 font-style: var(--font-body-style); 156 font-weight: var(--font-body-weight); 157 158 } 159 160 @media screen and (min-width: 750px) { 161 body { 162 font-size: 18px; 163 line-height: 1.6; 164 } 165 } 166 /*客製åèª¿æ´ 202509*/ 167 168a img {transition: opacity 0.3s ease-in-out; opacity: 1; } 169a:hover img {opacity: 0.8; } 170 /*é¸å®*/ 171 .header-wrapper{ 172 box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.1)!important;} 173.header__submenu a:hover {color:#c4a670;} 174@media screen and (min-width: 992px) { 175/* è¨ç½®ææä¸»è¦èå®é ç®çåºç¤æ¨£å¼ */ 176.header__inline-menu .list-menu--inline > li > details-disclosure > details > summary a { 177 position: relative; 178} 179 180/* éå°æ¯å主è¦èå®é ç®ä½¿ç¨ ::before å½å ç´ æå ¥åç */ 181.header__inline-menu .list-menu--inline > li > details-disclosure > details > summary a::before { 182 content: ''; 183 position:relative; 184 width: 65px; 185 height: 50px; 186 background-size: contain; 187 background-repeat: no-repeat;margin: auto; 188} 189.header__inline-menu .list-menu--inline > li:nth-child(1) > details-disclosure > details > summary a::before{background-image:url('https://cdn.store-assets.com/s/1382651/f/15969354.png')} 190.header__inline-menu .list-menu--inline > li:nth-child(2) > details-disclosure > details > summary a::before{background-image:url('https://cdn.store-assets.com/s/1382651/f/15969355.png')} 191.header__inline-menu .list-menu--inline > li:nth-child(3) a:before{ background-image:url('https://cdn.store-assets.com/s/1382651/f/15971158.png'); position:relative;margin: auto; 192 width: 65px;height: 50px; background-size: contain; background-repeat: no-repeat;content: '';} 193.header__inline-menu .list-menu--inline > li:nth-child(4) > details-disclosure > details > summary a::before{background-image:url('https://cdn.store-assets.com/s/1382651/f/15971160.png')} 194/*.header__inline-menu .list-menu--inline > li:nth-child(5) a:before{background-image:url('https://cdn.store-assets.com/s/1382651/f/15971159.png');width: 65px;height: 50px; background-size: contain; background-repeat: no-repeat;content: '';margin: auto;}*/ 195/* æ²æé¸å®çè¨å® */ 196/*.header__inline-menu .list-menu--inline > li:nth-child(6) a:before{background-image:url('https://cdn.store-assets.com/s/1382651/f/15971161.png');width: 65px;height: 50px; background-size: contain; background-repeat: no-repeat;content: '';margin: auto;}*/ 197/* æé¸å®çè¨å® */ 198.header__inline-menu .list-menu--inline > li:nth-child(5) > details-disclosure > details > summary a::before{background-image:url('https://cdn.store-assets.com/s/1382651/f/15971159.png')} 199.header__inline-menu .list-menu--inline > li:nth-child(6) > details-disclosure > details > summary a::before{background-image:url('https://cdn.store-assets.com/s/1382651/f/15971161.png')} 200@media screen and (min-width: 992px) { 201 .header-wrapper .list-menu__item { 202 display: flex; 203 flex-direction: column; 204 align-items: flex-start; 205 } 206} 207/*è³¼ç©é ç®ç¸é*/ 208 209.card-information__wrapper > .price { 210 color: rgb(197 145 69)!important; 211 font-weight: bold; 212} 213 214/* é¸å®å ±ç¨è¨å®ï¼å¤§å°ãä½ç½®ï¼ */ 215 216.header__menu-item a { 217 display: flex; 218 flex-direction: column; 219} 220.header-wrapper .list-menu__item { 221 display: flex; 222 flex-direction: column; 223} 224 .header__inline-menu { 225 display: flex!important; 226 margin: 0.5rem 0; 227 justify-content: center; 228 } 229 summary .icon-caret{top:75% !important;} 230 } 231 232@media screen and (max-width: 850px) { 233.header{ grid-template-columns: 1fr 2fr 1fr!important;} 234.header__heading-logo { 235 height: auto; 236 width: auto!important; 237 max-width: 100%; 238} 239 } 240.header__submenu summary .icon-caret{ top: calc(50% - 0.2rem)!important; 241 } 242 243/*大å輪æ*/ 244 .splide .splide__arrow{ background: rgba(var(--color-button), 0)!important;} 245.slider-section .splide__arrow { 246 top: calc(50% - 1.6em)!important; 247 transform: initial; 248} 249 .slider-section .splide__arrow--prev { 250 left: initial; 251 left: 2em!important; 252 } 253 .slider-section .splide__arrow--next { 254 right: 2em!important; 255 } 256.splide__pagination { 257 bottom: -2em!important;} 258 259.splide .splide__pagination__page { 260 background: #ccc!important; 261 border: 0; 262 border-radius: 50%; 263 display: inline-block; 264 height: 10px!important; 265 margin: 6px!important; 266 opacity:1; 267 padding: 0; 268 position: relative; 269 transition: transform .2s linear; 270 width: 10px!important; 271 border-color:#ccc!important; 272} 273 274.splide .splide__pagination__page.is-active{ 275 background: #c8a66f!important; 276 transform: scale(2); 277 z-index: 1 278} 279/*---------------------------é¦é ---------------------------*/ 280/*é¦é ç½®ä¸æ¨é¡*/ 281#easystore-section-1747981826694 h2.title,#easystore-section-1748858432868 h2.title, 282 #easystore-section-1758679962120 h2.title{color:#367e12!important;position: relative; 283 font-weight:700!important;letter-spacing:1px!important;font-size:30px!important; 284 margin-bottom: 50px!important; padding-bottom: 10px!important; 285 } 286#easystore-section-1747981826694 h2.title:after,#easystore-section-1748858432868 h2.title:after, 287 #easystore-section-1758679962120 h2.title:after{ 288 content: "â"; /* é裡ç¨è±å½¢ç¬¦èï¼åææä¸æ¨£ */ 289 position: absolute; 290 bottom: -22px; /* èæåè·é¢ */ 291 left:50%; 292 transform: translateX(-50%); 293 font-size: 20px; 294 color: #367e12; /* èåé«åè² */ 295 296} 297#easystore-section-1747981826694 h2.title:before,#easystore-section-1748858432868 h2.title:before, 298 #easystore-section-1758679962120 h2.title:before { 299 content: ""; 300 position: absolute; 301 bottom: -12px; 302 left: 50%; /* æèµ·é»æ¾å°ä¸é */ 303 transform: translateX(-50%); /* å¾å·¦åç§»ä¸å寬度 */ 304 width: 30%; 305 height: 2px; 306 background:#367e12; 307} 308/*é¦é -åçæ äº*/ 309 #easystore-section-1747983929265{ background-image: url(https://cdn.store-assets.com/s/1382651/f/15971672.png), 310 url("https://cdn.store-assets.com/s/1382651/f/15971671.png"); 311 background-repeat: no-repeat, no-repeat; 312 background-position: left 0, right 0; /* 第ä¸å¼µé å·¦ï¼ç¬¬äºå¼µé å³ */
313 background-size: 14%, 14%; /* åèªçå¤§å° */ 314 315 padding-top: 2rem;} 316 317 .img-with-text-section .text-section .img-with-text-rich-text{ 318 word-break:normal; 319 font-size: 17px!important; 320 text-align:justify; 321} 322#section-1747983929265 .text-section { 323 background-color: transparent!important; 324} 325 326 div#section-1747983929265{max-width:85%;margin:auto;} 327.img-with-text-section .img-wrapper img { 328 height: auto!important; 329 width: 100%!important; 330} 331 div#section-1747983929265 .img-with-text-title 332 {font-size:24px!important;line-height:1.4!important;text-transform: none!important; 333 font-weight: bold!important;color:#000!important;} 334 div#section-1747983929265 .img-with-text-subtitle 335 { margin-bottom: 24px!important;font-family: "Montserrat Alternates", sans-serif!important; 336 font-weight: 700!important;letter-spacing:1px!important; 337 font-style: italic;font-size:30px!important;text-transform: none!important; 338 color:#c6a570!important; position: relative;} 339div#section-1747983929265 .img-with-text-subtitle:after { 340 content: "â"; /* é裡ç¨è±å½¢ç¬¦èï¼åææä¸æ¨£ */ 341 position: absolute; 342 bottom: -25px; /* èæåè·é¢ */ 343 left: 15%; 344 transform: translateX(-15%); 345 font-size: 20px; 346 color: #c9a063; /* èåé«åè² */ 347 font-style: normal; 348} 349 350div#section-1747983929265 .img-with-text-subtitle:before { 351 content: ""; 352 position: absolute; 353 bottom: -12px; /* ç·æ¢è·é¢æå */ 354 left: 0; 355 width:30%; 356 height: 2px; 357 background: #c9a063; /* ç·æ¢é¡è² */ 358} 359@media only screen and (max-width: 950px) { 360 #easystore-section-1747983929265 .page-width{position: relative;} 361 #easystore-section-1747983929265 div#section-1747983929265 .img-with-text-subtitle{ position: absolute; 362 top: 0; 363 left: 50%; 364 transform: translateX(-50%);} 365#easystore-section-1747983929265 .img-with-text-section{ flex-direction: column-reverse;} 366#easystore-section-1747983929265 .img-with-text-section .text-section{padding: 3%!important;} 367 #easystore-section-1747983929265{ /* 第ä¸å¼µé å·¦ï¼ç¬¬äºå¼µé å³ */ 368 background-size: 25%, 25%; } 369#easystore-section-1747983929265 .img-with-text-section .img-wrapper img{padding-top:60px; 370 display: block; 371 width: 80% !important; 372 margin: auto!important; 373 } 374 .img-with-text-section .text-section .img-with-text-rich-text{ text-align: justify;} 375 div#section-1747983929265 .img-with-text-subtitle:before{left:35%;} 376div#section-1747983929265 .img-with-text-subtitle:after{left:49%;} 377div#easystore-section-1747983929265 .title-wrapper-with-link{display:none!important;} 378 } 379/*é¦é -æ é*/ 380/*å°æç«*/ 381 .illustration-wrap{} 382#easystore-section-1747981826694 .illustration01 { 383 position: absolute; 384 left:-3%; 385 width: 200px; 386 height: 200px; 387 background-image: url('https://cdn.store-assets.com/s/1382651/f/15974616.png'); 388 background-size: contain; 389 background-repeat: no-repeat; 390 background-position: center; 391 animation: float1 3s infinite; 392} 393#easystore-section-1747981826694 .illustration02 { 394 position: absolute; 395 right:6%; 396 top:80px; 397 width: 200px; 398 height: 100px; 399 background-image: url('https://cdn.store-assets.com/s/1382651/f/15974616.png'); 400 background-size: contain; 401 background-repeat: no-repeat; 402 background-position: center; 403 animation: float1 5s infinite; 404} 405#easystore-section-1747981826694 .illustration03 { 406 position: absolute; 407 right:13%; 408 bottom:120px; 409 width: 250px; 410 height: 120px; 411 background-image: url('https://cdn.store-assets.com/s/1382651/f/15974616.png'); 412 background-size: contain; 413 background-repeat: no-repeat; 414 background-position: center; 415 animation: float1 5s infinite; 416} 417#easystore-section-1747981826694 .illustration04 { 418 position: absolute; 419 left:30%; 420 bottom:180px; 421 width: 200px; 422 height: 100px; 423 background-image: url('https://cdn.store-assets.com/s/1382651/f/15974616.png'); 424 background-size: contain; 425 background-repeat: no-repeat; 426 background-position: center; 427 animation: float1 4s infinite; 428} 429#easystore-section-1747981826694 .illustration05 { 430 position: absolute; 431 bottom: 0px; 432 left: -15%; 433 width: 50%; 434 height: 300px; 435 background-image: url('https://cdn.store-assets.com/s/1382651/f/15975217.png'); 436 background-size: contain; 437 background-repeat: no-repeat; 438 background-position: center; 439} 440#easystore-section-1747981826694 .illustration06 { 441 position: absolute; 442 bottom: 40px; 443right: 0; 444 width: 30%; 445 height: 300px; 446 background-image: url('https://cdn.store-assets.com/s/1382651/f/15975371.png'); 447 background-size: contain; 448 background-repeat: no-repeat; 449 background-position: right; 450} 451@keyframes float1 { 452 0%, 100% { transform: translateY(0); } 453 50% { transform: translateY(-20px); } 454} 455@media (min-width: 1441px) { 456 #easystore-section-1747981826694 .illustration06 { height:400px;} 457 #easystore-section-1747981826694 .illustration05 { height:400px;} 458 } 459#easystore-section-1747981826694 { 460 position: relative; 461 background-color: #ddf2dd; 462 padding: 5px 5% 160px; 463 margin-top: 80px;
464} 465 466#easystore-section-1747981826694::before { 467 content: ""; 468 position: absolute; 469 top: -100px; /* åä¸çå°ä¸ä¸ååå¡ */ 470 left: 50%; 471 transform: translateX(-50%); 472 width: 100%; 473 height: 140px; /* PNG é«åº¦ */ 474 background-image: url('https://cdn.store-assets.com/s/1382651/f/15974692.png'); 475 background-repeat: no-repeat; 476 background-position: top center; 477 background-size: cover; /* çå¨ä¸æ¹ */ 478 pointer-events: none; /* ä¸å¹²æ¾æ»é¼ */ 479} 480 .title-wrapper-with-link{ flex-direction: column;} 481 482 483 .featured-collections-tab__item, .featured-collections__title{ background-color: #367e12; 484 border-top-left-radius: 10px; border-top-right-radius: 10px; color: #fff!important;} 485 .featured-collections-tab__item, .featured-collections__title{ height: 3rem!important;} 486#easystore-section-1747981826694 .title-wrapper-with-link { 487 align-items: center; 488 border-bottom: 3px solid #367e12; 489 } 490@media screen and (max-width: 990px) { 491#easystore-section-1747981826694 {padding: 5px 3% 120px;} 492 #easystore-section-1747981826694::before{ top: -60px;} 493 #easystore-section-1747981826694 .illustration02, #easystore-section-1747981826694 .illustration03, 494 #easystore-section-1747981826694 .illustration01, #easystore-section-1747981826694 .illustration04{width: 30%;} 495 #easystore-section-1747981826694 .illustration05{background-position: bottom; left: 0;} 496 #easystore-section-1747981826694 .illustration06{ bottom: 0px; width: 40%; 497 height: 200px;} 498 #easystore-section-1747981826694 .illustration04{left:10%;} 499 .featured-collections__tablist-wrapper { 500 width: 100%; 501 margin-top: 50px; 502 } 503} 504/*é¦é -ç²¾é¸åå*/ 505#easystore-section-1748858432868 .illustration-wrap {display:none;} 506#easystore-section-1748858432868 { 507 background-color: #fff8e1; 508 padding: 60px 5%; 509 510 /* å¤å¼µèæ¯åï¼å¾é¢çæçå¨åé¢çä¸é¢ */ 511 background-image: 512 url("https://cdn.store-assets.com/s/1382651/f/15975632.png"), /* ä¸å±¤ï¼ä¸éè¤ï¼ */ 513 url("https://cdn.store-assets.com/s/1382651/f/15973037.png"); /* ä¸å±¤ï¼éè¤ï¼ */ 514 515 background-repeat: no-repeat, repeat; /* åèªè¨å® */ 516 background-position: top center, center; /* åèªä½ç½® */ 517 background-size: 100%, auto; /* å¦æè¦æ§å¶å°ºå¯¸ä¹å¯ä»¥åå¥å¯« */ 518} 519#easystore-section-1748858432868 .spaced-section{ margin-top: 0!important;} 520 521 522#easystore-section-1748858432868 .title-wrapper-with-link { 523 align-items: center; 524 border-bottom: 3px solid #367e12; 525 } 526/*é¦é -ææ°æ¶æ¯*/ 527/*å°æç«*/ 528 .illustration-wrap{} 529#easystore-section-1758679962120 .illustration-b01 { 530 position: absolute; 531 left:25%; 532 width:100px; 533 height: 70px; 534 background-image: url('https://cdn.store-assets.com/s/1382651/f/15978654.png'); 535 background-size: contain; 536 background-repeat: no-repeat; 537 background-position: center; 538 539} 540#easystore-section-1758679962120 .illustration-b02 { 541 position: absolute; 542 right:10%; 543 width: 350px; 544 height: 150px; 545 background-image: url('https://cdn.store-assets.com/s/1382651/f/15978653.png'); 546 background-size: contain; 547 background-repeat: no-repeat; 548 background-position: center; 549 animation: float1 3s infinite; 550} 551 552.multicolumn:not(.background-none) .multicolumn-card {background-color: rgb(255 255 255 / 100%)!important;} 553#easystore-section-1758679962120 .multicolumn-card { 554 background-image: 555 url("https://cdn.store-assets.com/s/1382651/f/15977240.png"), 556 url("https://cdn.store-assets.com/s/1382651/f/15977243.png"), 557 url("https://cdn.store-assets.com/s/1382651/f/15977242.png"), 558 url("https://cdn.store-assets.com/s/1382651/f/15977241.png"); 559 560 background-position: 561 left top, 562 right top, 563 left bottom, 564 right bottom; 565 566 background-repeat: no-repeat, no-repeat, no-repeat, no-repeat; 567 568 background-size: 60px 60px, 60px 60px, 60px 60px, 60px 60px; 569} 570#easystore-section-1758679962120 .multicolumn-card__info { 571 padding:5rem!important; 572} 573#easystore-section-1758679962120 .multicolumn-card__info h2::before { 574 content: "Whatâs On"; 575 display: block; 576 font-size: 24px; 577 color: #c6a570 ; 578 font-weight: normal; 579 margin-bottom: 14px; 580 581 font-family: "Montserrat Alternates", sans-serif !important; 582 font-weight: 700 !important; 583 letter-spacing: 1px !important; 584 font-style: italic; 585 position: relative; 586} 587#easystore-section-1758679962120 .multicolumn-card__image-wrapper--full-width .media { 588 flex: 0 0 300px; 589 max-width: 300px; 590margin: 0rem 5rem; 591} 592#easystore-section-1758679962120 .media--square { 593 padding-bottom:300px!important; 594} 595#easystore-section-1758679962120 {background-color: #fff8e1;padding: 60px 5% 0;} 596#easystore-section-1747981370601 {background-color: #fff8e1;padding: 30px 5% 60px ;} 597#easystore-section-1747981370601{ margin-top: -6rem!important;} 598 599.multicolumn-list__item:only-child {max-width: 100%!important;} 600.multicolumn-card__image-wrapper--full-width { 601 display: flex; 602 align-items: flex-start;padding:30px!important; 603} 604 #easystore-section-1747981370601 .illustration-wrap{display:none;} 605 #easystore-section-1747981370601 .multicolumn.no-heading:not(.background-secondary){margin-top:0!important;} 606 #easystore-section-1747981370601 .rte { 607 display: -webkit-box; 608 -webkit-line-clamp: 2; 609 -webkit-box-orient: vertical; 610 overflow: hidden; 611 text-overflow: ellipsis; 612} 613#easystore-section-1747981370601 .multicolumn-card__image-wrapper--full-width .media { 614 flex: 0 0 150px; 615 max-width: 150px; 616 margin:5rem auto; 617} 618#easystore-section-1747981370601 .media--square {padding-bottom:150px!important;} 619 620#easystore-section-1747981370601 .multicolumn-card__image-wrapper--full-width img { 621 width: 100%; 622 height: auto; 623 object-fit: cover; /* åçè£å填滿ï¼ä¸è®å½¢ */ 624 display: block; 625} 626 627#easystore-section-1747981370601 .multicolumn-card__image-wrapper--full-width .multicolumn-card__info { 628 flex: 1; /* æå使»¿å©ä¸ç©ºé */ 629} 630#easystore-section-1747981370601 .media > *:not(.zoom, .deferred-media__poster-button), 631#easystore-section-1747981370601 .media model-viewer { 632 position: absolute; 633 top: 0; 634 left: 0; 635 width: 100%; 636 height: 100%; 637 638 object-fit: cover; /* ä¿ææ¯ä¾ä¸¦è£åï¼å¡«æ»¿æ¹å½¢ */ 639 object-position: center; /* å± ä¸å°é½ */ 640} 641#easystore-section-1747981370601 ul.multicolumn-list li:nth-child(1) h2::before { 642 content: "In the News"; 643 display: block; 644 font-size: 24px; 645 color: #c6a570 ; 646 font-weight: normal; 647 margin-bottom: 14px; 648 649 font-family: "Montserrat Alternates", sans-serif !important; 650 font-weight: 700 !important; 651 letter-spacing: 1px !important; 652 font-style: italic; 653 position: relative; 654} 655#easystore-section-1747981370601 ul.multicolumn-list li:nth-child(2) h2::before { 656 content: "User Notices"; 657 display: block; 658 font-size: 24px; 659 color: #c6a570 ; 660 font-weight: normal; 661 margin-bottom: 14px; 662 663 font-family: "Montserrat Alternates", sans-serif !important; 664 font-weight: 700 !important; 665 letter-spacing: 1px !important; 666 font-style: italic; 667 position: relative; 668} 669 @media only screen and (max-width: 950px) { 670 671.multicolumn-card__image-wrapper--full-width {display: block!important;} 672#easystore-section-1758679962120 {background-color: #fff8e1;padding: 30px 3% 0;} 673#easystore-section-1758679962120 .multicolumn-card {background-size: 30px 30px, 30px 30px, 30px 30px, 30px 30px;} 674#easystore-section-1747981370601 .multicolumn-card__image-wrapper--full-width .media { margin:0rem auto;} 675 #easystore-section-1747981370601 .multicolumn-card__info {padding: 2.5rem 0rem;} 676 #easystore-section-1747981370601 .illustration-wrap{display:none;} 677 #easystore-section-1747981826694 h2.title, #easystore-section-1748858432868 h2.title, #easystore-section-1758679962120 h2.title 678 { margin: auto!important;} 679 #easystore-section-1758679962120 .multicolumn-card__image-wrapper--full-width .media { 680 flex: 0 0 200px; 681 max-width: 200px; 682 margin: auto;} 683#easystore-section-1758679962120 .media--square {padding-bottom: 200px !important;} 684#easystore-section-1758679962120 .multicolumn-card__info {padding: 0rem !important;} 685#easystore-section-1758679962120 .illustration-b01 {position: absolute; 686 left:5px; 687 width:50px; 688 height: 35px; background-position:top left;} 689 #easystore-section-1758679962120 .illustration-b02 { right: 3%;width: 150px;} 690} 691 692/*é å°¾*/
693.footer__copyright .copyright__content {font-size: 1rem!important;} 694.footer { 695 margin-top: 0!important; 696 border-top: 0.1rem solid rgba(var(--color-foreground), 0.08); 697 background-color: #ffffff!important; 698} 699.footer__content-bottom { 700 border-top: solid 0.1rem rgba(var(--color-foreground), 0.15); 701 padding-top: 1rem!important; 702 padding-bottom: 1rem!important; 703 background-color: #007a3d!important; 704 color: #fff!important; 705} 706.footer__column--info { 707 display: flex!important; 708 flex-direction: row!important; 709 justify-content: space-between!important;} 710 .footer-block__heading{position:relative;} 711 .footer-block__heading::after{ 712 content: ""; 713 position: absolute; 714 bottom: -12px; 715 left: 0%; 716 transform: translateX(0%); 717 width: 50%; 718 height: 2px; 719 background: #000;} 720.footer ul li a { 721 color: #000!important; 722 text-decoration: none!important; 723 font-size:15px!important; 724} 725.footer ul li a:hover { 726 color: #888!important; 727 text-decoration: none!important; 728 729} 730.list-social__item .icon { 731 height: 3.5rem!important; 732 width: 3.5rem!important; 733} 734ul.footer-block__details-content li a svg{color:#00b800!important;} 735@media screen and (min-width: 750px) { 736 .footer__content-top .grid{ padding-left: 15%;} 737 } 738@media screen and (max-width: 749px) { 739.footer__content-top { text-align: center;} 740 .footer-block__heading::after{ left: 50%; 741 transform: translateX(-50%);} 742.footer__column--info { 743 display: block !important; 744 } 745.list-social{justify-content: center!important;} 746 .list-menu__item{justify-content: center;} 747 .footer__copyright { 748 text-align: center !important; 749 } 750} 751/*æåå §é */ 752 753/*å §é */ 754 #MainContent{ overflow: hidden;} 755/* ==================================== */ 756/* 1. åºæ¬è¨å®èææ©ç RWD (ææç«å»å ±ç¨) */ 757/* ==================================== */ 758.gallery-2, 759.gallery-3, 760.gallery-4 { 761 display: grid; 762 gap: 10px; /* åçéè· 10px */ 763 margin: 20px 0; 764 765 /* ð± ææ©çï¼é è¨å®æ¬ (1fr) */ 766 grid-template-columns: 1fr; 767} 768 769/* 確ä¿åç填滿åèªçç¶²æ ¼å®å */ 770.gallery-2 img, 771.gallery-3 img, 772.gallery-4 img { 773 width: 100%; 774 /* æ ¸å¿ï¼å¼·å¶é«åº¦ç±åçæ¯ä¾æ±ºå®ï¼ä¸åä»»ä½èçè¡å §æ¨£å¼å¹²æ¾ */ 775 height: auto !important; 776 display: block; 777} 778 779 780/* ==================================== */ 781/* 2. æ¡é¢çä½å± (min-width: 768px) */ 782/* ==================================== */ 783@media screen and (min-width: 768px) { 784 785 .gallery-2 { 786 grid-template-columns: repeat(2, 1fr); 787 } 788 .gallery-3 { 789 grid-template-columns: repeat(3, 1fr); 790 } 791 792 .gallery-4 { 793 grid-template-columns: repeat(2, 1fr); 794 } 795 796} 797/* 1. å ¨åéè¨ï¼ç¢ºä¿ææ iframe å ·ååºç¤é¿æå¼å±¬æ§ */ 798iframe { 799 /* è® iframe é è¨å¯ä»¥ç¹¼æ¿å ¶ç¶å ç´ çå¯¬åº¦ï¼æ¯ RWD çåºç¤ */ 800 max-width: 100%; 801 height: auto; 802} 803 804/* -------------------------------------- */ 805/* ð± ææ©ç RWD (< 768px)ï¼å¼·å¶ 100% 寬度èåºå®é«åº¦ */ 806/* -------------------------------------- */ 807@media screen and (max-width: 767px) { 808 /* éå®æç« å §ææ iframe æ¨ç±¤ */ 809 iframe { 810 /* ééµï¼å¼·å¶å¯¬åº¦çº 100% */ 811 width: 100% !important; 812 813 /* ééµï¼è¨å®ææ©ççé«åº¦ï¼é²æ¢é髿éç® */ 814 height: 300px !important; 815 816 /* ç§»é¤å¯è½æ®ççéæ¡ */ 817 border: none !important; 818 } 819} 820/* -------------------------------------- */ 821/* ð» æ¡é¢ç (⥠768px)ï¼æ¢å¾©åå§è¨å® */ 822/* -------------------------------------- */ 823@media screen and (min-width: 768px) { 824 825 iframe { 826 width: 600px !important; 827 height: 450px !important; 828 } 829} 830/* ---------------- 831 å®¢è£½æ¨£å¼ 832----------------*/ 833 834/* å ±ç¨æ¨£å¼ */ 835 836.content-padding{} 837 838.card-wrapper:hover .card__text { text-decoration: none!important;} 839.custom-page { max-width:100%;padding:0px;margin:auto;} 840.custom-container {margin: 0 auto;} 841.page-content {max-width:1080px;margin: 0 auto;padding:40px 20px;} 842.bc01{background-color:#FFF7E0 ;padding-bottom: 50px; } 843.custom-sc{position: relative;} 844.custom-sc2{position: relative;padding-top: 50px;} 845/* æ¬ */ 846.custom-flex {gap: 20px; display: flex; } 847.custom-flex img {flex-grow: 0; 848 width: 100%; 849 height: auto; 850 display: block; 851 max-width:33%!important; 852} 853 @media (max-width: 768px) { 854.custom-flex {gap: 5px; display: flex; } 855.custom-flex img {flex-grow: 0; 856 width: 100%; 857 height: auto; 858 display: block; 859 max-width:50%!important;} 860} 861 862/* 1ï¸â£ å ©æ¬ */ 863.custom-two-col__item { 864 display: flex; 865 align-items: center; 866 gap: 10%; padding:60px 20px; 867} 868.custom-two-col__img{max-width:30%;} 869.custom-two-col__img img { 870 width: 100%; 871 border-radius: 8px; 872} 873.custom-two-col__content h2 { 874 font-size: 2.5rem; 875 margin-bottom: 15px; 876} 877.custom-two-col__content p { 878 margin-bottom: 20px; 879 line-height: 1.6; 880} 881/* 2ï¸â£ 䏿¬ */ 882.custom-grid-3 { 883 display: grid; 884 grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); 885 gap: 30px; 886} 887.custom-card { 888 text-align: center; 889 padding: 20px; 890} 891.custom-card img { 892 aspect-ratio: 4 / 3; /* ð 坿¹ 4 / 3ã1 / 1ï¼æ£æ¹ï¼ */ 893 object-fit: cover; /* â ç¶ææ¯ä¾ */ 894 border-radius: 8px; 895 margin-bottom: 15px; 896 display: block; 897} 898.custom-card h3 { 899 margin-bottom: 10px; 900} 901 @media (max-width: 768px) { 902 .custom-grid-3 { 903 display: grid;} 904 } 905 906/* 3ï¸â£ èæ¯ Banner */ 907.custom-banner { 908 background-size: cover; 909 background-position: center; 910 color: #fff; 911 position: relative; 912 text-align: center; 913} 914 915 916.custom-banner__overlay { 917 background: rgba(0,0,0,0.2); 918 padding: 140px 20px; 919} 920.custom-banner__content h1 { 921 margin: 20px 0 10px; color: #fff; 922} 923.custom-banner__img { 924 width: 100px; 925 margin-bottom: 15px; 926} 927/*å¸¸ç¨æ¨£å¼*/ 928 929.roundimg img{ 930 width: 100%; 931 height:100%; 932 border-radius: 50% 45% 40% 50% / 50% 50% 40% 40%; 933 ); 934} 935.reverse{flex-direction: row-reverse;} 936/* ð RWD ææ©ç */ 937@media (max-width: 768px) { 938 .custom-banner__overlay{padding:50px;} 939 .custom-two-col__item { 940 flex-direction: column; 941 text-align: center; 942 } 943 .custom-two-col__img{max-width:80%;} 944 .custom-two-col__content { 945 padding: 0 10px; 946 } 947 .custom-banner__content h2 { 948 font-size: 1.8rem; 949 } 950} 951 952/*æ éåé */ 953 .travel-explore {background:#fef7e1;} 954.travel-explore .container {max-width: 100%;margin:auto;padding:50px 0;} 955.travel-explore h3 a{color:#000;text-decoration: none;} 956#ways-to-travel- .custom-container {margin:auto;max-width: 80%;} 957 958 /* æ³¢æµªå®¹å¨ */ 959.custom-banner__waves {position: absolute;bottom: 0;left: 0;width: 100%;height:auto; overflow: hidden;z-index: 2;} 960.custom-banner__waves img { 961 width: 100%; 962 height: auto; /* ä¿æåçæ¯ä¾ */ 963 display: block; 964} 965 .waves2{position: relative;height: auto;} 966 967 /* ð RWD */ 968 @media (max-width: 1024px) {} 969 @media (max-width: 768px) { 970#ways-to-travel- .custom-container { max-width: 100%;} 971.custom-banner__waves {bottom: -5px;overflow: hidden;z-index: 2;} 972 } 973/*åååé */ 974 .collection-hero{position:relative;} 975.collection-hero__banner { 976 position: relative; 977 overflow: hidden; 978 width: 100%; 979 height:340px; 980 text-align: center; 981 color: #fff; 982} 983 984 985.collection-hero__overlay { 986 position: absolute; 987 top: 0; 988 left: 0; 989 width: 100%; 990 height: 100%; 991 background: rgba(0, 0, 0, 0.2); 992 z-index:2; 993} 994 995.collection-hero__content { 996 position: relative; 997 z-index: 1; /* 確ä¿å¨ overlay 䏿¹ */ 998 max-width:100%; 999 margin: 0 auto; 1000} 1001 1002.collection-hero__title { 1003 color: #fff; 1004 position: absolute; 1005 z-index: 3; 1006 left: 50%; 1007 transform: translateX(-50%);top: 35%; 1008} 1009 1010 1011/*åå-ç²¾é¸*/ 1012.card--product {border-radius:10px;} 1013@media screen and (min-width: 750px) { 1014 #CollectionProductGrid { max-width: 80%; 1015 margin: auto; 1016 padding: 50px 0;} 1017} 1018.template-collection{ background-color: #fff8e1; 1019background-image: url("https://cdn.store-assets.com/s/1382651/f/15973037.png"); /* ä¸å±¤ï¼éè¤ï¼ */ 1020 background-repeat:repeat; /* åèªè¨å® */ 1021 background-position: center; /* åèªä½ç½® */ 1022 background-size:auto;
1022 /* å¦æè¦æ§å¶å°ºå¯¸ä¹å¯ä»¥åå¥å¯« */} 1023 h1.collection-hero__title{ 1024 text-align: center!important;} 1025.grid__item .product-card-wrapper{background: #fff;padding: 10px 15px;} 1026 @media screen and (max-width: 749px) { 1027 1028.template-collection .grid__item { width: 100%!important; max-width: 100%;margin-bottom:15px; 1029 padding:0 10%;} 1030} 1031/*åå-å®é */ 1032 1033@media screen and (min-width: 750px) { 1034 .template-product .product-section{width:80%; margin: auto; padding: 50px 0;max-width:1140px;} 1035 .template-product .product {justify-content: space-around;} 1036 1037 1038 .product:not(.product--no-media):not(.featured-product) .product__media-wrapper { 1039 max-width: 45%!important; 1040 width: calc(45% - 1rem / 2)!important; 1041 } 1042 1043 } 1044/*åå-æ é*/ 1045 #top-trips.template-collection { background-color: #ddf2dd;background-image:none;} 1046 1047/*é¨è½æ ¼blog*/ 1048.blog-cate{display: inline-block; 1049 clear: both; 1050 background: #367c3e; 1051 padding:5px 10px; 1052 color: #fff; 1053 border-radius: 50px;font-weight:400!important;} 1054 1055#explore-taiwan .custom-page,#ways-to-travel- .custom-page { max-width:100%; 1056 padding:0;margin:auto; 1057} 1058 .template-blog, 1059#food #MainContent,#accommodation #MainContent,#travel #MainContent,#shopping #MainContent,#transportation #MainContent{ 1060 background-color: #fffcf2; 1061 background-image: url(https://cdn.store-assets.com/s/1382651/f/15975632.png)/* ä¸å±¤ï¼ä¸éè¤ï¼ */; 1062 background-repeat: no-repeat; 1063 background-position: top center; 1064 background-size: 100%; 1065} 1066.template-article { background-color: #FFF7E0;} 1067 h1.article-template__title{ font-size: 2.8rem!important; 1068 letter-spacing: 0px;} 1069.article-template { max-width: 70%; 1070 margin:30px auto; 1071 background: #fff; 1072 padding: 30px; 1073 border-radius: 20px;} 1074 1075 .article-card__info .article-card__excerpt{ display: -webkit-box; 1076 -webkit-line-clamp: 3; 1077 -webkit-box-orient: vertical; 1078 overflow: hidden; 1079 text-overflow: ellipsis; } 1080.caption-with-letter-spacing { 1081 font-size: 14px!important; 1082 letter-spacing: 1px!important; 1083 line-height: 1.2; 1084 text-transform: unset!important; 1085} 1086 h2.article-card__title{} 1087 1088.template-blog .title--primary { 1089 text-align: center!important; 1090 } 1091 .article-card__image-wrapper{padding:0 3rem;} 1092.article-card__image { 1093 overflow: hidden; 1094 position: relative; 1095 width: 100%; 1096 aspect-ratio: 4 / 3; 1097 overflow: hidden; 1098} 1099.article-card__image img {object-fit: cover; /* ç¶ææ¯ä¾ï¼ä¸è®å½¢ */} 1100.article-card { 1101 background-color: transparent!important;} 1102 .article-card__image { 1103 border-radius: 15%; } 1104.article-card { height: auto!important; 1105 flex-direction: column;} 1106@media screen and (min-width: 750px) { 1107 1108 .blog-articles > *:first-child, .blog-articles > *:nth-child(4), .blog-articles > *:last-child:nth-child(2), .blog-articles > *:last-child:nth-child(5) { 1109 grid-column: auto!important; 1110 text-align: left!important; 1111 } 1112} 1113 @media screen and (min-width: 750px) { 1114.blog-articles { grid-template-columns: repeat(3, 1fr)!important; 1115 padding: 30px 5%;} 1116 } 1117 @media screen and (max-width: 768px) { 1118 .article-template{max-width: 100%; 1119 margin: 0; 1120 border-radius: 0;} 1121 } 1122/*è¯çµ¡æå*/ 1123 1124#contact-us .custom-page{padding:0;max-width:100%;color:#000;} 1125.contact-page-wrapper { position: relative; background-color: #E7F7E7;} 1126.contact-page-wrapper .container{ max-width: 1200px;margin:auto; } 1127.contact-hero { background-color: #007a3d ; color:#fff;padding:50px 20px 150px; } 1128.contact-content-grid { display: flex; flex-direction: column-reverse; gap: 30px;margin: 0 auto; padding: 0 20px; } 1129.contact-text h1 { margin-bottom: 20px;color:#fff; } 1130.contact-image img { width: 100%; height: auto; display: block; border-radius: 8px; } 1131 1132@media (min-width: 768px) { 1133 .contact-content-grid { flex-direction: row; align-items: center; } 1134 .contact-text, .contact-image { flex: 1; } 1135} 1136.contact-cards-container { margin:-80px auto 0px; padding: 0 20px 120px; display: flex; flex-direction: column; gap: 25px; } 1137.info-card { background-color: white; padding: 30px; border-radius: 12px; box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1); z-index: 2; } 1138.info-card h3 { color: #38761d; margin-top: 0; margin-bottom: 20px; font-size: 130%; text-align: center;border-bottom: 1px solid #367b3e; 1139padding-bottom:15px; } 1140.info-item { display: flex; align-items: flex-start; margin-bottom: 15px; } 1141.info-item i { color: #38761d; margin-right: 15px; margin-top: 3px; } 1142.info-item p{margin:0;font-size:110%;text-align:left;} 1143.qr-code-placeholder { width: 140px; height: 140px; display: block; margin: auto;padding: 10px;} 1144.contact-icon { 1145 width:30px; /* æ§å¶ Icon ç實éé¡¯ç¤ºå¤§å° */ 1146 height: 30px; 1147 vertical-align: middle; 1148 flex-shrink: 0; 1149 margin-right: 10px; /* çºäºé åæåç top éç·£ï¼å¯å¾®èª¿ */ 1150} 1151.highlight-number { 1152 font-size: 1.4em; 1153 font-weight: bold; 1154 color: #38761d; 1155} 1156@media (min-width: 992px) { 1157 .contact-cards-container { flex-direction: row; } 1158 .info-card { flex: 1 1 0; min-width: 0; /* ð¡ é¿å å §å®¹æç */ 1159 box-sizing: border-box; } 1160} 1161/*travel note*/ 1162 1163 #travel-notes .blog-articles {grid-template-columns: repeat(1, 1fr) !important;gap: 3% !important;display:grid;} 1164 #travel-notes .article-content { width: 100%;height: 100%;display: flex;flex-direction: row;} 1165 #travel-notes .article-card__image-wrapper {max-width:300px; flex-shrink:0; padding: 3rem;} 1166 #travel-notes .article-card {display: grid; 1167 grid-template-columns: 30% 70%;background-color: white!important;border-radius: 12px;box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);} 1168@media (max-width: 749px) { 1169 #travel-notes .article-content { width: 100%;height: 100%;display: flex;flex-direction: column;} 1170 #travel-notes .article-card__image-wrapper {width:100%; margin:auto;} 1171 #travel-notes .article-card{ grid-template-columns: auto;} 1172 } 1173/*ææ°æ¶æ¯news*/ 1174#news.template-page {background-color: #fffcf2; 1175 background-image: url(https://cdn.store-assets.com/s/1382651/f/15975632.png) ; 1176 background-repeat: no-repeat; 1177 background-position: top center; 1178 background-size: 100%;} 1179 .news .info-card img{max-width:220px;height:auto;margin:auto;display:block;} 1180 .news .info-card:hover{opacity:0.8;} 1181@media (max-width: 749px) { 1182 .news .info-card img {max-width: 80px;} 1183 .news .info-card {padding: 10px;} 1184} 1185 1186/*åä½å¤¥ä¼´*/ 1187#partnership.template-page {padding:0;max-width:100%;color:#000;background-color: #E7F7E7;} 1188#partnership .container{ max-width: 1200px;margin:auto; } 1189 .partners-category{margin-bottom:50px;} 1190.partners-grid { display: grid; grid-template-columns: 1fr; gap: 20px; padding-top: 10px; } 1191.partner-card { background-color: white; padding: 25px; text-align: center; font-weight: bold; color: #111; font-size: 1.1em; border-radius: 12px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); transition: transform 0.3s ease; } 1192.partner-card img{height:120px;width:auto;display:block;margin:0 auto 10px;} 1193.partner-card:hover { transform: translateY(-3px); box-shadow: 0 6px 15px rgba(0, 0, 0, 0.15); } 1194@media (max-width: 767px) { 1195 .partners-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; } 1196} 1197@media (min-width: 768px) { 1198 .partners-grid { grid-template-columns: repeat(3, 1fr); gap: 30px; } 1199} 1200@media (min-width: 1024px) { 1201 .partners-grid { grid-template-columns: repeat(3, 1fr); } 1202} 1203/*åçæ äº*/ 1204 1205#our-story.template-page{ background-color: #fff8e1; /* æ·ºéè²èæ¯ */} 1206#our-story.template-page {background-image: url(https://cdn.store-assets.com/s/1382651/f/15971672.png), url(https://cdn.store-assets.com/s/1382651/f/15971671.png); 1207 background-repeat: no-repeat, no-repeat; 1208 background-position: left 0, right 0; 1209 } 1210#our-story p{ text-align: justify;} 1211.about-section .container{ max-width: 1200px;margin:auto; } 1212.about-content-grid { 1213 display: grid; 1214 grid-template-columns: 1fr 1fr; 1215 align-items: center; 1216 gap: 40px; 1217 margin-bottom: 80px; 1218} 1219 1220.about-content-grid.reverse { 1221 grid-template-columns: 1fr 1fr; 1222 direction: rtl; /* åè½æå */ 1223} 1224 1225.about-content-grid.reverse .about-text { 1226 direction: ltr; /* æ¢å¾©æåæ¹å */ 1227} 1228 1229.about-text h2 { 1230text-align:left; 1231} 1232 1233.about-text p { 1234 line-height: 1.8; 1235} 1236 1237.about-image { 1238 position: relative; 1239} 1240 1241.image-deco { 1242 position: relative; 1243 display: inline-block; 1244 border-radius: 50% 50% 70% 40% / 40% 60% 30% 70%; /* ä¸è¦ååå¼§ */ 1245 overflow: hidden; 1246 z-index: 2; 1247} 1248 1249.image-deco img { 1250 width: 100%; 1251 height: auto; 1252 display: block; 1253 object-fit: cover; 1254} 1255 1256/* ç¶ è²è²å¡è£é£¾ */ 1257.about-image::before { 1258 content: ""; 1259 position: absolute; 1260top: 0; 1261 left: 0; 1262 width: 100%; 1263 height: 100%; 1264 background-color: #c7a570; 1265 border-radius: 50% 30% 70% 40% / 40% 60% 30% 70%; 1266 z-index: -1; 1267 transform: translate(3%, 3%) rotate(-8deg); 1268 opacity:0.5; 1269} 1270@media (max-width: 749px) { 1271#our-story.template-page {background-size: 30%;} 1272 .about-content-grid, 1273 .about-content-grid.reverse { 1274 grid-template-columns: 1fr; 1275 direction: ltr; 1276 gap: 0px;margin-bottom: 10px;} 1277 } 1278/* 客製åè¡ç¨ */ 1279 #tailor-your-trip .custom-page{ max-width: 100%; 1280 padding: 0; 1281 margin: auto;} 1282 .ttrip p{ text-align: justify;} 1283 .ttrip .container{max-width:940px;margin:auto;padding:15px;} 1284 .ttrip .about-content-grid{ grid-template-columns: 3fr 1fr;} 1285 @media (max-width: 749px) { 1286 .ttrip .about-content-grid{ display: block;} 1287 .ttrip .about-content-grid img{ display: block;margin:auto;} 1288 } 1289 </style> 1290 1291
1292 <link href="https://store-themes.easystore.co/1382651/themes/328977/assets/base.css?t=1788245198" rel="stylesheet" type="text/css" media="screen" /> 1293 1294 1295 1296<!-- Snippet:global/head: Product Star Rating ååè©å¹ --> 1297 1298
1298<script src="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.js"></script>
1298 1299
1299<script src="https://apps.easystore.co/assets/js/star-rating/main.js"></script>
1299 1300 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.css"> 1301 <link rel="stylesheet" href="https://apps.easystore.co/assets/css/star-rating/main.css?v1.4.3"> 1302<!-- /Snippet --> 1303 1304<!-- Snippet:global/head: Site Verification --> 1305<meta name="google-site-verification" content="H2VJ0pr4Ve8EDOgDnhjWH7Ns5_YQVmxHWfudm0PsTk8" /> 1306<!-- /Snippet --> 1307 1308 1309
1309<script>document.documentElement.className = document.documentElement.className.replace('no-js', 'js');</script>
1309 1310</head> 1311 1312<body id="news" class="template-page" > 1313 1314 1315<!-- Snippet:global/body_start: Console Extension --> 1316<div id='es_console' style='display: none;'>1382651</div> 1317<!-- /Snippet --> 1318 1319 1320 <style> 1321 header { 1322 --logo-width: 220px; 1323 } 1324 .header-wrapper, 1325 .header-wrapper .list-menu--disclosure, 1326 .header-wrapper .search-modal{ 1327 background-color: #FFFFFF; 1328 } 1329 .header-wrapper .search-modal .field__input{ 1330 background-color: rgb(var(--color-background)); 1331 } 1332 .header-wrapper summary .icon-caret, 1333 .header-wrapper .header__menu-item a, 1334 .header-wrapper .list-menu__item, 1335 .header-wrapper .link--text{ 1336 color: #000000; 1337 } 1338 .header__logo_secondary{ 1339 display: none; 1340 } 1341 1342 .search-modal__form{ 1343 position: relative; 1344 } 1345 1346 .dropdown { 1347 display: none; 1348 position: absolute; 1349 top: 100%; 1350 left: 0; 1351 width: 100%; 1352 padding: 5px 0; 1353 background-color: #fff; 1354 color:#000; 1355 z-index: 1000; 1356 border-bottom-left-radius: 15px; 1357 border-bottom-right-radius: 15px; 1358 border: 1px solid rgba(var(--color-foreground), 1); 1359 border-top: none; 1360 overflow-x: hidden; 1361 overflow-y: auto; 1362 max-height: 350px; 1363 } 1364 1365 .dropdown-item { 1366 padding: 0.4rem 2rem; 1367 cursor: pointer; 1368 line-height: 1.4; 1369 overflow: hidden; 1370 text-overflow: ellipsis; 1371 white-space: nowrap; 1372 } 1373 1374 .dropdown-item:hover{ 1375 background-color: #f3f3f3; 1376 } 1377 1378 .search__input.is-focus{ 1379 border-radius: 15px; 1380 border-bottom-left-radius: 0; 1381 border-bottom-right-radius: 0; 1382 border: 1px solid rgba(var(--color-foreground), 1); 1383 border-bottom: none; 1384 box-shadow: none; 1385 } 1386 1387 .clear-all { 1388 text-align: right; 1389 padding: 0 2rem 0.2rem; 1390 line-height: 1; 1391 font-size: 70%; 1392 margin-bottom: -2px; 1393 } 1394 1395 .clear-all:hover{ 1396 background-color: #fff; 1397 } 1398 1399 .search-input-focus .easystore-section-header-hidden{ 1400 transform: none; 1401 } 1402 .referral-notification { 1403 position: absolute; 1404 top: 100%; 1405 right: 0; 1406 background: white; 1407 border: 1px solid #e0e0e0; 1408 border-radius: 8px; 1409 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); 1410 width: 280px; 1411 z-index: 1000; 1412 padding: 16px; 1413 margin-top: 8px; 1414 font-size: 14px; 1415 line-height: 1.4; 1416 } 1417 1418 .referral-notification::before { 1419 content: ''; 1420 position: absolute; 1421 top: -8px; 1422 right: 20px; 1423 width: 0; 1424 height: 0; 1425 border-left: 8px solid transparent; 1426 border-right: 8px solid transparent; 1427 border-bottom: 8px solid white; 1428 } 1429 1430 .referral-notification::after { 1431 content: ''; 1432 position: absolute; 1433 top: -9px; 1434 right: 20px; 1435 width: 0; 1436 height: 0; 1437 border-left: 8px solid transparent; 1438 border-right: 8px solid transparent; 1439 border-bottom: 8px solid #e0e0e0; 1440 } 1441 1442 .referral-notification h4 { 1443 margin: 0 0 8px 0; 1444 color: #2196F3; 1445 font-size: 16px; 1446 font-weight: 600; 1447 } 1448 1449 .referral-notification p { 1450 margin: 0 0 12px 0; 1451 color: #666; 1452 } 1453 1454 .referral-notification .referral-code { 1455 background: #f5f5f5; 1456 padding: 8px; 1457 border-radius: 4px; 1458 font-family: monospace; 1459 font-size: 13px; 1460 text-align: center; 1461 margin: 8px 0; 1462 border: 1px solid #ddd; 1463 } 1464 1465 .referral-notification .close-btn { 1466 position: absolute; 1467 top: 8px; 1468 right: 8px; 1469 background: none; 1470 border: none; 1471 font-size: 18px; 1472 color: #999; 1473 cursor: pointer; 1474 padding: 0; 1475 width: 20px; 1476 height: 20px; 1477 line-height: 1; 1478 } 1479 1480 .referral-notification .close-btn:hover { 1481 color: #333; 1482 } 1483 1484 .referral-notification .action-btn { 1485 background: #2196F3; 1486 color: white; 1487 border: none; 1488 padding: 8px 16px; 1489 border-radius: 4px; 1490 cursor: pointer; 1491 font-size: 12px; 1492 margin-right: 8px; 1493 margin-top: 8px; 1494 } 1495 1496 .referral-notification .action-btn:hover { 1497 background: #1976D2; 1498 } 1499 1500 .referral-notification .dismiss-btn { 1501 background: transparent; 1502 color: #666; 1503 border: 1px solid #ddd; 1504 padding: 8px 16px; 1505 border-radius: 4px; 1506 cursor: pointer; 1507 font-size: 12px; 1508 margin-top: 8px; 1509 } 1510 1511 .referral-notification .dismiss-btn:hover { 1512 background: #f5f5f5; 1513 } 1514 .referral-modal__dialog { 1515 transform: translate(-50%, 0); 1516 transition: transform var(--duration-default) ease, visibility 0s; 1517 z-index: 10000; 1518 position: fixed; 1519 top: 20vh; 1520 left: 50%; 1521 width: 100%; 1522 max-width: 350px; 1523 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); 1524 border-radius: 12px; 1525 background-color: #fff; 1526 color: #000; 1527 padding: 20px; 1528 text-align: center; 1529 } 1530 1531 .modal-overlay.referral-modal-overlay { 1532 position: fixed; 1533 top: 0; 1534 left: 0; 1535 width: 100%; 1536 height: 100%; 1537 background-color: rgba(0, 0, 0, 0.7); 1538 z-index: 2001; 1539 display: block; 1540 opacity: 1; 1541 transition: opacity var(--duration-default) ease, visibility 0s; 1542 } 1543</style> 1544 1545 1546 1547<link rel="preload" href="https://store-themes.easystore.co/1382651/themes/328977/assets/section-header.css?t=1788245198" as="style" onload="this.onload=null;this.rel='stylesheet'"> 1548<link rel="preload" href="https://store-themes.easystore.co/1382651/themes/328977/assets/component-list-menu.css?t=1788245198" as="style" onload="this.onload=null;this.rel='stylesheet'"> 1549<link rel="preload" href="https://store-themes.easystore.co/1382651/themes/328977/assets/component-menu-drawer.css?t=1788245198" as="style" onload="this.onload=null;this.rel='stylesheet'"> 1550<link rel="preload" href="https://store-themes.easystore.co/1382651/themes/328977/assets/component-cart-notification.css?v1.1?t=1788245198" as="style" onload="this.onload=null;this.rel='stylesheet'"> 1551
1552<script src="https://store-themes.easystore.co/1382651/themes/328977/assets/cart-notification.js?t=1788245198" defer="defer"></script>
vendor: 1 bytes, line 1552
1552
1553<script src="https://store-themes.easystore.co/1382651/themes/328977/assets/details-modal.js?t=1788245198" defer="defer"></script>
1553 1554 1555<svg xmlns="http://www.w3.org/2000/svg" class="hidden"> 1556 <symbol id="icon-search" viewbox="0 0 18 19" fill="none"> 1557 <path fill-rule="evenodd" clip-rule="evenodd" d="M11.03 11.68A5.784 5.784 0 112.85 3.5a5.784 5.784 0 018.18 8.18zm.26 1.12a6.78 6.78 0 11.72-.7l5.4 5.4a.5.5 0 11-.71.7l-5.41-5.4z" fill="currentColor"/> 1558 </symbol> 1559 1560 <symbol id="icon-close" class="icon icon-close" fill="none" viewBox="0 0 18 17"> 1561 <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor"> 1562 </symbol> 1563</svg> 1564 1565 1566<div id="easystore-section-header"> 1567 <sticky-header class="header-wrapper header-wrapper--border-bottom"> 1568 <header class="header header--middle-left page-width header--has-menu" itemscope itemtype="http://schema.org/Organization"> 1569 <div class="header__left-icon header__icons large-up-hide"> 1570 <header-drawer data-breakpoint="tablet"> 1571 <details class="menu-drawer-container menu-opening"> 1572 <summary class="header__icon header__icon--menu header__icon--summary link link--text focus-inset" aria-label="Menu" role="button" aria-expanded="true" aria-controls="menu-drawer"> 1573 <span> 1574 1575 1576 1577 <svg class="icon icon-hamburger " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M32.5,65h535a25,25,0,0,0,0-50H32.5a25,25,0,0,0,0,50Z" fill="currentColor"/><path d="M567.5,275H32.5a25,25,0,0,0,0,50h535a25,25,0,0,0,0-50Z" fill="currentColor"/><path d="M567.5,535H32.5a25,25,0,0,0,0,50h535a25,25,0,0,0,0-50Z" fill="currentColor"/></svg> 1578 1579 1580 1581 1582 1583 1584 <svg class="icon icon-close " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M335.36,300,581.87,53.48a25,25,0,0,0-35.35-35.35L300,264.64,53.48,18.13A25,25,0,0,0,18.13,53.48L264.64,300,18.13,546.52a25,25,0,0,0,35.35,35.35L300,335.36,546.52,581.87a25,25,0,0,0,35.35-35.35Z" fill="currentColor"/></svg> 1585 1586 1587 1588 </span> 1589 </summary> 1590 <div id="menu-drawer" class="menu-drawer motion-reduce" tabindex="-1"> 1591 <div class="menu-drawer__inner-container"> 1592 <div class="menu-drawer__navigation-container"> 1593 <nav class="menu-drawer__navigation"> 1594 <ul class="menu-drawer__menu list-menu" role="list"> 1595 1596 1597 1598 1599 <li> 1600 <details> 1601 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 1602 <a href="/pages/news" class="link--text list-menu__item menu-drawer__menu-item"> 1603 News & Updates 1604 </a> 1605 1606 1607 1608 <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg> 1609 1610 1611 1612 1613 1614 1615 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 1616 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 1617 </svg> 1618 1619 1620 1621 </summary> 1622 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 1623 <div class="menu-drawer__inner-submenu"> 1624 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 1625 1626 1627 1628 <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg> 1629 1630 1631 1632 News & Updates 1633 </button> 1634 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 1635 1636 1637 1638 <li> 1639 <a href="/blogs/whats-on" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1640 What's On 1641 </a> 1642 </li> 1643 1644 1645 1646 1647 <li> 1648 <a href="/blogs/in-the-news" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1649 In the News 1650 </a> 1651 </li> 1652 1653 1654 1655 1656 <li> 1657 <a href="/blogs/user-notices" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1658 User Notices 1659 </a> 1660 </li> 1661 1662 1663 1664 </ul> 1665 </div> 1666 </div> 1667 </details> 1668 </li> 1669 1670 1671 1672 1673 1674 <li> 1675 <details> 1676 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 1677 <a href="/pages/explore-taiwan" class="link--text list-menu__item menu-drawer__menu-item"> 1678 Explore Taiwan 1679 </a> 1680 1681 1682 1683 <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg> 1684 1685 1686 1687 1688 1689 1690 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 1691 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 1692 </svg> 1693 1694 1695 1696 </summary> 1697 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 1698 <div class="menu-drawer__inner-submenu"> 1699 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 1700 1701 1702 1703 <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg> 1704 1705 1706 1707 Explore Taiwan 1708 </button> 1709 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 1710 1711 1712 1713 1714 <li> 1715 <details> 1716 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 1717 <a href="/pages/ways-to-travel" class="link--text list-menu__item menu-drawer__menu-item"> 1718 Ways to Travel 1719 </a> 1720 1721 1722 1723 <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg> 1724 1725 1726 1727 1728 1729 1730 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 1731 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 1732 </svg> 1733 1734 1735 1736 </summary> 1737 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 1738 <div class="menu-drawer__inner-submenu"> 1739 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 1740 1741 1742 1743 <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg> 1744 1745 1746 1747 Ways to Travel 1748 </button> 1749 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 1750 1751 1752 1753 <li> 1754 <a href="/pages/taste-the-flavors" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1755 Taste the Flavors 1756 </a> 1757 </li> 1758 1759 1760 1761 1762 <li> 1763 <a href="/pages/stay-with-comfort" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1764 Stay with Comfort 1765 </a> 1766 </li> 1767 1768 1769 1770 1771 <li> 1772 <a href="/pages/find-your-journey" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1773 Find Your Journey 1774 </a> 1775 </li> 1776 1777 1778 1779 1780 <li> 1781 <a href="/pages/take-home-memories" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1782 Take Home Memories 1783 </a> 1784 </li> 1785 1786 1787 1788 1789 <li> 1790 <a href="/pages/getting-around-taiwan" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1791 Getting Aroun
1791d Taiwan 1792 </a> 1793 </li> 1794 1795 1796 1797 </ul> 1798 </div> 1799 </div> 1800 </details> 1801 </li> 1802 1803 1804 1805 1806 <li> 1807 <a href="/blogs/travel-notes" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1808 Travel Notes 1809 </a> 1810 </li> 1811 1812 1813 1814 </ul> 1815 </div> 1816 </div> 1817 </details> 1818 </li> 1819 1820 1821 1822 1823 <li> 1824 <a href="/pages/tailor-your-trip" class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 1825 Tailor Your Trip 1826 </a> 1827 </li> 1828 1829 1830 1831 1832 1833 <li> 1834 <details> 1835 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 1836 <a href="/collections/halal-essentials" class="link--text list-menu__item menu-drawer__menu-item"> 1837 Halal Essentials 1838 </a> 1839 1840 1841 1842 <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg> 1843 1844 1845 1846 1847 1848 1849 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 1850 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 1851 </svg> 1852 1853 1854 1855 </summary> 1856 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 1857 <div class="menu-drawer__inner-submenu"> 1858 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 1859 1860 1861 1862 <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg> 1863 1864 1865 1866 Halal Essentials 1867 </button> 1868 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 1869 1870 1871 1872 <li> 1873 <a href="/collections/souvenirs" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1874 Souvenirs 1875 </a> 1876 </li> 1877 1878 1879 1880 1881 <li> 1882 <a href="/collections/prayer-essentials" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1883 Prayer Essentials 1884 </a> 1885 </li> 1886 1887 1888 1889 </ul> 1890 </div> 1891 </div> 1892 </details> 1893 </li> 1894 1895 1896 1897 1898 1899 <li> 1900 <details> 1901 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 1902 <a href="/collections/top-day-trips" class="link--text list-menu__item menu-drawer__menu-item"> 1903 Top Trips 1904 </a> 1905 1906 1907 1908 <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg> 1909 1910 1911 1912 1913 1914 1915 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 1916 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 1917 </svg> 1918 1919 1920 1921 </summary> 1922 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 1923 <div class="menu-drawer__inner-submenu"> 1924 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 1925 1926 1927 1928 <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg> 1929 1930 1931 1932 Top Trips 1933 </button> 1934 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 1935 1936 1937 1938 <li> 1939 <a href="/collections/limited-time-events" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1940 Limited-Time Events 1941 </a> 1942 </li> 1943 1944 1945 1946 1947 <li> 1948 <a href="/collections/tour-packages" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1949 Tour Packages 1950 </a> 1951 </li> 1952 1953 1954 1955 1956 <li> 1957 <a href="/collections/experiences" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 1958 Experiences 1959 </a> 1960 </li> 1961 1962 1963 1964 </ul> 1965 </div> 1966 </div> 1967 </details> 1968 </li> 1969 1970 1971 1972 1973 1974 <li> 1975 <details> 1976 <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags"> 1977 <a href="https://muslim.tw/pages/halal-certification-an-introduction" class="link--text list-menu__item menu-drawer__menu-item"> 1978 Halal certification 1979 </a> 1980 1981 1982 1983 <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg> 1984 1985 1986 1987 1988 1989 1990 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 1991 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 1992 </svg> 1993 1994 1995 1996 </summary> 1997 <div class="menu-drawer__submenu motion-reduce" tabindex="-1"> 1998 <div class="menu-drawer__inner-submenu"> 1999 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 2000 2001 2002 2003 <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg> 2004 2005 2006 2007 Halal certification 2008 </button> 2009 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"> 2010 2011 2012 2013 <li> 2014 <a href="https://icdhalal.com/" target="_blank" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 2015 Islamic Commercial Development Ltd. 2016 </a> 2017 </li> 2018 2019 2020 2021 2022 <li> 2023 <a href="/pages/halal-certification-an-introduction" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 2024 Halal Certification - An Introduction 2025 </a> 2026 </li> 2027 2028 2029 2030 </ul> 2031 </div> 2032 </div> 2033 </details> 2034 </li> 2035 2036 2037 </ul> 2038 </nav> 2039 2040 <div class="menu-drawer__utility-links"> 2041 2042 2043 2044 2045 <div class="menu-drawer__account disclosure"> 2046 <div class="select"> 2047 <select class="currency-picker select__select" name="currencies"> 2048 <option value="" selected="selected"></option> 2049 2050 2051 <option value="TWD">TWD</option> 2052 2053 2054 2055 <option value="USD">USD</option> 2056 2057 2058 2059 2060 </select> 2061 </div> 2062 </div> 2063 2064 2065 2066 2067 2068 2069 2070 <a href="/account/login" class="menu-drawer__account link link--text focus-inset h5"> 2071 2072 2073 2074 <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-account " fill="none" viewBox="0 0 18 19"> 2075 <path fill-rule="evenodd" clip-rule="evenodd" d="M6 4.5a3 3 0 116 0 3 3 0 01-6 0zm3-4a4 4 0 100 8 4 4 0 000-8zm5.58 12.15c1.12.82 1.83 2.24 1.91 4.85H1.51c.08-2.6.79-4.03 1.9-4.85C4.66 11.75 6.5 11.5 9 11.5s4.35.26 5.58 1.15zM9 10.5c-2.5 0-4.65.24-6.17 1.35C1.27 12.98.5 14.93.5 18v.5h17V18c0-3.07-.77-5.02-2.33-6.15-1.52-1.
20751-3.67-1.35-6.17-1.35z" fill="currentColor"></path> 2076 </svg> 2077 2078 2079 2080 2081 Login ç»å ¥ 2082 </a> 2083 2084 <a href="/account/register" class="menu-drawer__account link link--text focus-inset h5"> 2085 2086 2087 2088 2089 <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-plus " fill="none" viewBox="0 0 10 10"> 2090 <path fill-rule="evenodd" clip-rule="evenodd" d="M1 4.51a.5.5 0 000 1h3.5l.01 3.5a.5.5 0 001-.01V5.5l3.5-.01a.5.5 0 00-.01-1H5.5L5.49.99a.5.5 0 00-1 .01v3.5l-3.5.01H1z" fill="currentColor"></path> 2091 </svg> 2092 2093 2094 2095 Sign up 註å帳è 2096 </a> 2097 2098 2099 2100 </div> 2101 </div> 2102 </div> 2103 </div> 2104 </details> 2105 </header-drawer> 2106 <details-modal class="header__search"> 2107 <details> 2108 <summary class="header__icon header__icon--search header__icon--summary link link--text focus-inset modal__toggle" aria-haspopup="dialog" aria-label="Search"> 2109 <span> 2110 <svg class="modal__toggle-open icon icon-search" aria-hidden="true" focusable="false" role="presentation"> 2111 <use href="#icon-search"> 2112 </svg> 2113 <svg class="modal__toggle-close icon icon-close" aria-hidden="true" focusable="false" role="presentation"> 2114 <use href="#icon-close"> 2115 </svg> 2116 </span> 2117 </summary> 2118 <div class="search-modal modal__content" role="dialog" aria-modal="true" aria-label="Search"> 2119 <div class="modal-overlay"></div> 2120 <div class="search-modal__content" tabindex="-1"> 2121 <form action="/search" method="get" role="search" class="search search-modal__form"> 2122 <div class="field"> 2123 <input class="search__input field__input" 2124 id="Search-In-Modal" 2125 type="search" 2126 name="q" 2127 value="" 2128 placeholder="Search" 2129 autocomplete="off" 2130 > 2131 <label class="field__label" for="Search-In-Modal">Search</label> 2132 <div class="dropdown" id="searchDropdown"></div> 2133 <input type="hidden" name="search_history" class="hidden_search_history"> 2134 <input type="hidden" name="options[prefix]" value="last"> 2135 <button class="search__button field__button" aria-label="Search"> 2136 <svg class="icon icon-search" aria-hidden="true" focusable="false" role="presentation"> 2137 <use href="#icon-search"> 2138 </svg> 2139 </button> 2140 </div> 2141 </form> 2142 <button type="button" class="search-modal__close-button modal__close-button link link--text focus-inset" aria-label="accessibility.close"> 2143 <svg class="icon icon-close" aria-hidden="true" focusable="false" role="presentation"> 2144 <use href="#icon-close"> 2145 </svg> 2146 </button> 2147 </div> 2148 </div> 2149 </details> 2150</details-modal> 2151 </div> 2152 2153 2154 <a href="/" class="header__heading-link link link--text focus-inset" itemprop="url"> 2155 2156 <img src="https://cdn.store-assets.com/s/1382651/f/15968883.png" class="header__heading-logo" alt="MuslimTW" loading="lazy" itemprop="logo"> 2157 </a> 2158 2159 <nav class="header__inline-menu"> 2160 <ul class="list-menu list-menu--inline" role="list"> 2161 2162 2163 2164 2165 <li> 2166 <details-disclosure> 2167 <details> 2168 <summary class="header__menu-item list-menu__item link focus-inset"> 2169 <a href="/pages/news" >News & Updates</a> 2170 2171 2172 2173 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 2174 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 2175 </svg> 2176 2177 2178 2179 </summary> 2180 <ul class="header__submenu list-menu list-menu--disclosure caption-large motion-reduce" role="list" tabindex="-1"> 2181 2182 2183 2184 2185 2186 <li> 2187 <a href="/blogs/whats-on" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 2188 What's On 2189 </a> 2190 </li> 2191 2192 2193 2194 2195 2196 <li> 2197 <a href="/blogs/in-the-news" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 2198 In the News 2199 </a> 2200 </li> 2201 2202 2203 2204 2205 2206 <li> 2207 <a href="/blogs/user-notices" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 2208 User Notices 2209 </a> 2210 </li> 2211 2212 2213 </ul> 2214 </details> 2215 </details-disclosure> 2216 </li> 2217 2218 2219 2220 2221 2222 <li> 2223 <details-disclosure> 2224 <details> 2225 <summary class="header__menu-item list-menu__item link focus-inset"> 2226 <a href="/pages/explore-taiwan" >Explore Taiwan</a> 2227 2228 2229 2230 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 2231 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 2232 </svg> 2233 2234 2235 2236 </summary> 2237 <ul class="header__submenu list-menu list-menu--disclosure caption-large motion-reduce" role="list" tabindex="-1"> 2238 2239 2240 2241 2242 2243 <li> 2244 <details-disclosure> 2245 <details> 2246 <summary class="header__menu-item link link--text list-menu__item focus-inset caption-large"> 2247 <a href="/pages/ways-to-travel" >Ways to Travel </a> 2248 2249 2250 2251 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret rotate-90" viewBox="0 0 10 6"> 2252 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 2253 </svg> 2254 2255 2256 2257 </summary> 2258 <ul class="header__submenu list-menu list-menu--disclosure motion-reduce"> 2259 2260 2261 2262 <li> 2263 <a href="/pages/taste-the-flavors" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Taste the Flavors</a> 2264 </li> 2265 2266 2267 2268 2269 <li> 2270 <a href="/pages/stay-with-comfort" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Stay with Comfort</a> 2271 </li> 2272 2273 2274 2275 2276 <li> 2277 <a href="/pages/find-your-journey" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Find Your Journey</a> 2278 </li> 2279 2280 2281 2282 2283 <li> 2284 <a href="/pages/take-home-memories" class="header__menu-item list-menu__item link link--text focus-inset caption-large">Take Home Memories</a> 2285 </li> 2286 2287 2288 2289 2290 <li> 2291 <a href="/pages/getting-around-taiwan" class="header__menu-item list-menu__item link link--text focus-inset caption-large">
2291Getting Around Taiwan</a> 2292 </li> 2293 2294 2295 </ul> 2296 </details> 2297 </details-disclosure> 2298 </li> 2299 2300 2301 2302 2303 2304 2305 <li> 2306 <a href="/blogs/travel-notes" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 2307 Travel Notes 2308 </a> 2309 </li> 2310 2311 2312 </ul> 2313 </details> 2314 </details-disclosure> 2315 </li> 2316 2317 2318 2319 2320 <li> 2321 <a href="/pages/tailor-your-trip" class="header__menu-item header__menu-item list-menu__item link link--text focus-inset"> 2322 Tailor Your Trip 2323 </a> 2324 </li> 2325 2326 2327 2328 2329 2330 <li> 2331 <details-disclosure> 2332 <details> 2333 <summary class="header__menu-item list-menu__item link focus-inset"> 2334 <a href="/collections/halal-essentials" >Halal Essentials</a> 2335 2336 2337 2338 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 2339 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 2340 </svg> 2341 2342 2343 2344 </summary> 2345 <ul class="header__submenu list-menu list-menu--disclosure caption-large motion-reduce" role="list" tabindex="-1"> 2346 2347 2348 2349 2350 2351 <li> 2352 <a href="/collections/souvenirs" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 2353 Souvenirs 2354 </a> 2355 </li> 2356 2357 2358 2359 2360 2361 <li> 2362 <a href="/collections/prayer-essentials" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 2363 Prayer Essentials 2364 </a> 2365 </li> 2366 2367 2368 </ul> 2369 </details> 2370 </details-disclosure> 2371 </li> 2372 2373 2374 2375 2376 2377 <li> 2378 <details-disclosure> 2379 <details> 2380 <summary class="header__menu-item list-menu__item link focus-inset"> 2381 <a href="/collections/top-day-trips" >Top Trips</a> 2382 2383 2384 2385 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 2386 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 2387 </svg> 2388 2389 2390 2391 </summary> 2392 <ul class="header__submenu list-menu list-menu--disclosure caption-large motion-reduce" role="list" tabindex="-1"> 2393 2394 2395 2396 2397 2398 <li> 2399 <a href="/collections/limited-time-events" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 2400 Limited-Time Events 2401 </a> 2402 </li> 2403 2404 2405 2406 2407 2408 <li> 2409 <a href="/collections/tour-packages" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 2410 Tour Packages 2411 </a> 2412 </li> 2413 2414 2415 2416 2417 2418 <li> 2419 <a href="/collections/experiences" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 2420 Experiences 2421 </a> 2422 </li> 2423 2424 2425 </ul> 2426 </details> 2427 </details-disclosure> 2428 </li> 2429 2430 2431 2432 2433 2434 <li> 2435 <details-disclosure> 2436 <details> 2437 <summary class="header__menu-item list-menu__item link focus-inset"> 2438 <a href="https://muslim.tw/pages/halal-certification-an-introduction" >Halal certification</a> 2439 2440 2441 2442 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6"> 2443 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path> 2444 </svg> 2445 2446 2447 2448 </summary> 2449 <ul class="header__submenu list-menu list-menu--disclosure caption-large motion-reduce" role="list" tabindex="-1"> 2450 2451 2452 2453 2454 2455 <li> 2456 <a href="https://icdhalal.com/" target="_blank" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 2457 Islamic Commercial Development Ltd. 2458 </a> 2459 </li> 2460 2461 2462 2463 2464 2465 <li> 2466 <a href="/pages/halal-certification-an-introduction" class="header__menu-item list-menu__item link link--text focus-inset caption-large"> 2467 Halal Certification - An Introduction 2468 </a> 2469 </li> 2470 2471 2472 </ul> 2473 </details> 2474 </details-disclosure> 2475 </li> 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 </ul> 2489 </nav> 2490 <div class="header__icons"> 2491 <div class="medium-hide small-hide"> 2492 <details-modal class="header__search"> 2493 <details> 2494 <summary class="header__icon header__icon--search header__icon--summary link link--text focus-inset modal__toggle" aria-haspopup="dialog" aria-label="Search">
2495 <span> 2496 <svg class="modal__toggle-open icon icon-search" aria-hidden="true" focusable="false" role="presentation"> 2497 <use href="#icon-search"> 2498 </svg> 2499 <svg class="modal__toggle-close icon icon-close" aria-hidden="true" focusable="false" role="presentation"> 2500 <use href="#icon-close"> 2501 </svg> 2502 </span> 2503 </summary> 2504 <div class="search-modal modal__content" role="dialog" aria-modal="true" aria-label="Search"> 2505 <div class="modal-overlay"></div> 2506 <div class="search-modal__content" tabindex="-1"> 2507 <form action="/search" method="get" role="search" class="search search-modal__form"> 2508 <div class="field"> 2509 <input class="search__input field__input" 2510 id="Search-In-Modal" 2511 type="search" 2512 name="q" 2513 value="" 2514 placeholder="Search" 2515 autocomplete="off" 2516 > 2517 <label class="field__label" for="Search-In-Modal">Search</label> 2518 <div class="dropdown" id="searchDropdown"></div> 2519 <input type="hidden" name="search_history" class="hidden_search_history"> 2520 <input type="hidden" name="options[prefix]" value="last"> 2521 <button class="search__button field__button" aria-label="Search"> 2522 <svg class="icon icon-search" aria-hidden="true" focusable="false" role="presentation"> 2523 <use href="#icon-search"> 2524 </svg> 2525 </button> 2526 </div> 2527 </form> 2528 <button type="button" class="search-modal__close-button modal__close-button link link--text focus-inset" aria-label="accessibility.close"> 2529 <svg class="icon icon-close" aria-hidden="true" focusable="false" role="presentation"> 2530 <use href="#icon-close"> 2531 </svg> 2532 </button> 2533 </div> 2534 </div> 2535 </details> 2536</details-modal> 2537 </div> 2538 2539 2540 2541 <div class="header__icon header__icon--account link link--text focus-inset small-hide medium-hide" style="position: relative;"> 2542 <a href="/account/login" class="header__icon link link--text focus-inset p-2"> 2543 2544 2545 2546 <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-account " fill="none" viewBox="0 0 18 19"> 2547 <path fill-rule="evenodd" clip-rule="evenodd" d="M6 4.5a3 3 0 116 0 3 3 0 01-6 0zm3-4a4 4 0 100 8 4 4 0 000-8zm5.58 12.15c1.12.82 1.83 2.24 1.91 4.85H1.51c.08-2.6.79-4.03 1.9-4.85C4.66 11.75 6.5 11.5 9 11.5s4.35.26 5.58 1.15zM9 10.5c-2.5 0-4.65.24-6.17 1.35C1.27 12.98.5 14.93.5 18v.5h17V18c0-3.07-.77-5.02-2.33-6.15-1.52-1.1-3.67-1.35-6.17-1.35z" fill="currentColor"></path> 2548 </svg> 2549 2550 2551 2552 </a> 2553 2554 <!-- Referral Notification Popup for Desktop --> 2555 <div id="referralNotification" class="referral-notification" style="display: none;"> 2556 <button class="close-btn" onclick="dismissReferralNotification()">×</button> 2557 <div style="text-align: center; margin-bottom: 16px;"> 2558 <div style="width: 100px; height: 100px; margin: 0 auto;"> 2559 <img src="https://resources.easystore.co/storefront/icons/channels/vector_referral_program.svg"> 2560 </div> 2561 </div> 2562 <p id="referralSignupMessage" style="text-align: center; font-size: 14px; color: #666; margin: 0 0 20px 0;"> 2563 Your friend gifted you credit! Sign up now to redeem. 2564 </p> 2565 <div style="text-align: center;"> 2566 <button class="btn" onclick="goToSignupPage()" style="width: 100%;"> 2567 Sign Up 2568 </button> 2569 </div> 2570 </div> 2571 </div> 2572 2573 2574 2575 <a href="/cart" class="header__icon header__icon--cart link link--text focus-inset" id="cart-icon-bubble"> 2576 2577 2578 2579 <svg class="icon icon-cart-empty " aria-hidden="true" focusable="false" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" fill="none"> 2580 <path d="m15.75 11.8h-3.16l-.77 11.6a5 5 0 0 0 4.99 5.34h7.38a5 5 0 0 0 4.99-5.33l-.78-11.61zm0 1h-2.22l-.71 10.67a4 4 0 0 0 3.99 4.27h7.38a4 4 0 0 0 4-4.27l-.72-10.67h-2.22v.63a4.75 4.75 0 1 1 -9.5 0zm8.5 0h-7.5v.63a3.7
25805 3.75 0 1 0 7.5 0z" fill="currentColor" fill-rule="evenodd"></path> 2581 </svg> 2582 2583 2584 2585 <div class="cart-count-bubble hidden"> 2586 <span aria-hidden="true" class="js-content-cart-count">0</span> 2587 </div> 2588 </a> 2589 2590 2591 2592 <!-- Referral Notification Modal for Mobile --> 2593 <details-modal class="referral-modal" id="referralMobileModal"> 2594 <details> 2595 <summary class="referral-modal__toggle" aria-haspopup="dialog" aria-label="Open referral modal" style="display: none;"> 2596 </summary> 2597 <div class="modal-overlay referral-modal-overlay"></div> 2598 <div class="referral-modal__dialog" role="dialog" aria-modal="true" aria-label="Referral notification"> 2599 <div class="referral-modal__content"> 2600 <button type="button" class="modal__close-button" aria-label="Close" onclick="closeMobileReferralModal()" style="position: absolute; top: 16px; right: 16px; background: none; border: none; font-size: 24px; cursor: pointer;"> 2601 × 2602 </button> 2603 2604 <div style="margin-bottom: 24px;"> 2605 <div style="width: 120px; height: 120px; margin: 0 auto 20px;"> 2606 <img src="https://resources.easystore.co/storefront/icons/channels/vector_referral_program.svg" style="width: 100%; height: 100%;"> 2607 </div> 2608 </div> 2609 2610 <p id="referralSignupMessageMobile" style="font-size: 16px; color: #333; margin: 0 0 30px 0; line-height: 1.5;"> 2611 Your friend gifted you credit! Sign up now to redeem. 2612 </p> 2613 2614 <button type="button" class="btn" onclick="goToSignupPageFromMobile()" style="width: 100%;"> 2615 Sign Up 2616 </button> 2617 </div> 2618 </div> 2619 </details> 2620 </details-modal> 2621 2622 2623 </div> 2624 </header> 2625 </sticky-header> 2626 2627<cart-notification> 2628 <div class="cart-notification-wrapper page-width color-background-1"> 2629 <div id="cart-notification" class="cart-notification focus-inset" aria-modal="true" aria-label="Added to cart" role="dialog" tabindex="-1"> 2630 <div class="cart-notification__header"> 2631 <h2 class="cart-notification__heading caption-large"> 2632 2633 2634 <svg class="icon icon-checkmark color-foreground-text " aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 9" fill="none"> 2635 <path fill-rule="evenodd" clip-rule="evenodd" d="M11.35.643a.5.5 0 01.006.707l-6.77 6.886a.5.5 0 01-.719-.006L.638 4.845a.5.5 0 11.724-.69l2.872 3.011 6.41-6.517a.5.5 0 01.707-.006h-.001z" fill="currentColor"></path> 2636 </svg> 2637 2638 2639 Added to cart</h2> 2640 <button type="button" class="cart-notification__close modal__close-button link link--text focus-inset" aria-label="accessibility.close"> 2641 2642 2643 2644 <svg class="icon icon-close " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M335.36,300,581.87,53.48a25,25,0,0,0-35.35-35.35L300,264.64,53.48,18.13A25,25,0,0,0,18.13,53.48L264.64,300,18.13,546.52a25,25,0,0,0,35.35,35.35L300,335.36,546.52,581.87a25,25,0,0,0,35.35-35.35Z" fill="currentColor"/></svg> 2645 2646 2647 2648 </button> 2649 </div> 2650 <div id="cart-notification-product" class="cart-notification-product"></div> 2651 <div class="cart-notification__links"> 2652 <a href="/cart" id="cart-notification-button" class="button button--secondary button--full-width">View cart (<span class="js-content-cart-count">0</span>)</a> 2653 <form action="/cart" method="post" id="cart-notification-form"> 2654 <input type="hidden" name="_token" value="9l8FlI9ie6IoJD2eCMjGV4GbQ56dn7qBTH1owH7I"> 2655 <input type="hidden" name="current_currency" value=""> 2656 <button class="button button--primary button--full-width" name="checkout" value="true">Checkout</button> 2657 </form> 2658 <a href="/collections/all" class="link button-label">Continue shopping</a> 2659 </div> 2660 </div> 2661 </div> 2662</cart-notification> 2663<style> 2664 .cart-notification { 2665 display: none; 2666 } 2667</style>
2668<script> 2669document.getElementById('cart-notification-form').addEventListener('submit',(event)=>{ 2670 if(event.submitter) event.submitter.classList.add('loading'); 2671}) 2672 2673</script>
2673 2674 2675</div> 2676 2677
2678<script> 2679 2680 class StickyHeader extends HTMLElement { 2681 constructor() { 2682 super(); 2683 } 2684 2685 connectedCallback() { 2686 this.header = document.getElementById('easystore-section-header'); 2687 this.headerBounds = {}; 2688 this.currentScrollTop = 0; 2689 this.preventReveal = false; 2690 2691 this.onScrollHandler = this.onScroll.bind(this); 2692 this.hideHeaderOnScrollUp = () => this.preventReveal = true; 2693 2694 this.addEventListener('preventHeaderReveal', this.hideHeaderOnScrollUp); 2695 window.addEventListener('scroll', this.onScrollHandler, false); 2696 2697 this.createObserver(); 2698 } 2699 2700 disconnectedCallback() { 2701 this.removeEventListener('preventHeaderReveal', this.hideHeaderOnScrollUp); 2702 window.removeEventListener('scroll', this.onScrollHandler); 2703 } 2704 2705 createObserver() { 2706 let observer = new IntersectionObserver((entries, observer) => { 2707 this.headerBounds = entries[0].intersectionRect; 2708 observer.disconnect(); 2709 }); 2710 2711 observer.observe(this.header); 2712 } 2713 2714 onScroll() { 2715 const scrollTop = window.pageYOffset || document.documentElement.scrollTop; 2716 2717 if (scrollTop > this.currentScrollTop && scrollTop > this.headerBounds.bottom) { 2718 requestAnimationFrame(this.sticky.bind(this)); 2719 } else if (scrollTop < this.currentScrollTop && scrollTop > this.headerBounds.bottom) { 2720 if (!this.preventReveal) { 2721 requestAnimationFrame(this.reveal.bind(this)); 2722 } else { 2723 window.clearTimeout(this.isScrolling); 2724 2725 this.isScrolling = setTimeout(() => { 2726 this.preventReveal = false; 2727 }, 66); 2728 2729 requestAnimationFrame(this.sticky.bind(this)); 2730 } 2731 } else if (scrollTop <= this.headerBounds.top) { 2732 requestAnimationFrame(this.reset.bind(this)); 2733 } 2734 2735 2736 this.currentScrollTop = scrollTop; 2737 } 2738 2739 sticky() { 2740 this.header.classList.add('easystore-section-header-sticky'); 2741 this.closeMenuDisclosure(); 2742 this.closeSearchModal(); 2743 } 2744 2745 reveal() { 2746 this.header.classList.add('easystore-section-header-sticky'); 2747 } 2748 2749 reset() { 2750 this.header.classList.remove('easystore-section-header-sticky', 'animate'); 2751 } 2752 2753 closeMenuDisclosure() { 2754 this.disclosures = this.disclosures || this.header.querySelectorAll('details-disclosure'); 2755 this.disclosures.forEach(disclosure => disclosure.close()); 2756 } 2757 2758 closeSearchModal() { 2759 this.searchModal = this.searchModal || this.header.querySelector('details-modal'); 2760 this.searchModal.close(false); 2761 } 2762 } 2763 2764 customElements.define('sticky-header', StickyHeader); 2765 2766 2767 class DetailsDisclosure extends HTMLElement{ 2768 constructor() { 2769 super(); 2770 this.mainDetailsToggle = this.querySelector('details'); 2771 // this.mainDetailsToggle.addEventListener('focusout', this.onFocusOut.bind(this)); 2772 this.mainDetailsToggle.addEventListener('mouseover', this.open.bind(this)); 2773 this.mainDetailsToggle.addEventListener('mouseleave', this.close.bind(this)); 2774 } 2775 2776 onFocusOut() { 2777 setTimeout(() => { 2778 if (!this.contains(document.activeElement)) this.close(); 2779 }) 2780 } 2781 2782 open() { 2783 this.mainDetailsToggle.setAttribute('open',1) 2784 } 2785 2786 close() { 2787 this.mainDetailsToggle.removeAttribute('open') 2788 } 2789 } 2790 2791 customElements.define('details-disclosure', DetailsDisclosure); 2792 2793 function clearAll() { 2794 localStorage.removeItem('searchHistory'); 2795 2796 var customer = ""; 2797 if(customer) { 2798 // Your logic to clear all data or call an endpoint 2799 fetch('/account/search_histories', { 2800 method: 'DELETE', 2801 headers: { 2802 "Content-Type": "application/json", 2803 "X-Requested-With": "XMLHttpRequest" 2804 }, 2805 body: JSON.stringify({ 2806 _token: "9l8FlI9ie6IoJD2eCMjGV4GbQ56dn7qBTH1owH7I" 2807 }), 2808 }) 2809 .then(response => response.json()) 2810 } 2811 } 2812 // End - delete search history from local storage 2813 2814 // search history dropdown 2815 var searchInputs = document.querySelectorAll('.search__input'); 2816 2817 if(searchInputs.length > 0) { 2818
2819 searchInputs.forEach((searchInput)=> { 2820 2821 searchInput.addEventListener('focus', function() { 2822 var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown'); 2823 searchDropdown.innerHTML = ''; // Clear existing items 2824 2825 // retrieve data from local storage 2826 var searchHistoryData = JSON.parse(localStorage.getItem('searchHistory')) || []; 2827 2828 // Convert JSON to string 2829 var search_history_json = JSON.stringify(searchHistoryData); 2830 2831 // Set the value of the hidden input 2832 searchInput.closest('form').querySelector(".hidden_search_history").value = search_history_json; 2833 2834 // create dropdown items 2835 var clearAllItem = document.createElement('div'); 2836 clearAllItem.className = 'dropdown-item clear-all'; 2837 clearAllItem.textContent = 'Clear'; 2838 clearAllItem.addEventListener('click', function() { 2839 clearAll(); 2840 searchDropdown.style.display = 'none'; 2841 searchInput.classList.remove('is-focus'); 2842 }); 2843 searchDropdown.appendChild(clearAllItem); 2844 2845 // create dropdown items 2846 searchHistoryData.forEach(function(item) { 2847 var dropdownItem = document.createElement('div'); 2848 dropdownItem.className = 'dropdown-item'; 2849 dropdownItem.textContent = item.term; 2850 dropdownItem.addEventListener('click', function() { 2851 searchInput.value = item.term; 2852 searchInput.closest('form').submit(); 2853 searchDropdown.style.display = 'none'; 2854 }); 2855 searchDropdown.appendChild(dropdownItem); 2856 }); 2857 2858 if(searchHistoryData.length > 0){ 2859 // display the dropdown 2860 searchInput.classList.add('is-focus'); 2861 document.body.classList.add('search-input-focus'); 2862 searchDropdown.style.display = 'block'; 2863 } 2864 }); 2865 2866 searchInput.addEventListener("focusout", (event) => { 2867 var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown'); 2868 searchInput.classList.remove('is-focus'); 2869 searchDropdown.classList.add('transparent'); 2870 setTimeout(()=>{ 2871 searchDropdown.style.display = 'none'; 2872 searchDropdown.classList.remove('transparent'); 2873 document.body.classList.remove('search-input-focus'); 2874 }, 400); 2875 }); 2876 }) 2877 } 2878 // End - search history dropdown 2879 2880 // referral notification popup 2881 const referralMessageTemplate = 'Your friend gifted you __CURRENCY_CODE__ __CREDIT_AMOUNT__ credit! Sign up now to redeem.'; 2882 const shopCurrency = 'NT$'; 2883 2884 function getCookie(name) { 2885 const value = `; ${document.cookie}`; 2886 const parts = value.split(`; ${name}=`); 2887 if (parts.length === 2) return parts.pop().split(';').shift(); 2888 return null; 2889 } 2890 2891 function removeCookie(name) { 2892 document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`; 2893 } 2894 2895 function showReferralNotification() { 2896 const referralCode = getCookie('customer_referral_code'); 2897 2898 2899 const customerReferralCode = null; 2900 2901 2902 const activeReferralCode = referralCode || customerReferralCode; 2903 const referralData = JSON.parse(localStorage.getItem('referral_notification_data')) || {}; 2904 2905 if (referralData.timestamp && referralData.expirationDays) { 2906 const expirationTime = referralData.timestamp + (referralData.expirationDays * 24 * 60 * 60 * 1000); 2907 if (Date.now() > expirationTime) { 2908 localStorage.removeItem('referral_notification_data'); 2909 return; 2910 } 2911 } 2912 2913 if (referralData.dismissed) return; 2914 2915 if (activeReferralCode) { 2916 if (referralData.creditAmount) { 2917 displayReferralNotification(referralData.creditAmount); 2918 } else { 2919 fetchReferralCampaignData(activeReferralCode); 2920 } 2921 } 2922 } 2923 2924 function fetchReferralCampaignData(referralCode) { 2925 fetch(`/customer/referral_program/campaigns/${referralCode}`) 2926 .then(response => { 2927 if (!response.ok) { 2928 throw new Error('Network response was not ok'); 2929 } 2930 return response.json(); 2931 }) 2932 .then(data => { 2933 let refereeCreditAmount = null; 2934 if (data.data.campaign && data.data.campaign.referral_rules) { 2935 const refereeRule = data.data.campaign.referral_rules.find(rule => 2936 rule.target_type === 'referee' && 2937 rule.event_name === 'customer/create' && 2938 rule.entitlement && 2939 rule.entitlement.type === 'credit' 2940 ); 2941 2942 if (refereeRule) { 2943 refereeCreditAmount = refereeRule.entitlement.amount; 2944 } 2945 } 2946 2947 const referralData = JSON.parse(localStorage.getItem('referral_notification_data')) || {}; 2948 referralData.creditAmount = refereeCreditAmount; 2949 referralData.dismissed = referralData.dismissed || false; 2950 referralData.timestamp = Date.now(); 2951 referralData.expirationDays = 3; 2952 localStorage.setItem('referral_notification_data', JSON.stringify(referralData)); 2953 2954 displayReferralNotification(refereeCreditAmount); 2955 }) 2956 .catch(error => { 2957 removeCookie('customer_referral_code'); 2958 }); 2959 } 2960 2961 function displayReferralNotification(creditAmount = null) { 2962 const isMobile = innerWidth <= 749; 2963 2964 if (isMobile) { 2965 const mobileModal = document.querySelector('#referralMobileModal details'); 2966 const mobileMessageElement = document.getElementById('referralSignupMessageMobile'); 2967 2968 if (mobileModal && mobileMessageElement) { 2969 if (creditAmount) {
2970 const finalMessage = referralMessageTemplate 2971 .replace('__CREDIT_AMOUNT__', creditAmount) 2972 .replace('__CURRENCY_CODE__', shopCurrency); 2973 2974 mobileMessageElement.textContent = finalMessage; 2975 } 2976 2977 mobileModal.setAttribute('open', ''); 2978 } 2979 } else { 2980 const notification = document.getElementById('referralNotification'); 2981 2982 if (notification) { 2983 if (creditAmount) { 2984 const messageElement = document.getElementById('referralSignupMessage'); 2985 if (messageElement) { 2986 const finalMessage = referralMessageTemplate 2987 .replace('__CREDIT_AMOUNT__', creditAmount) 2988 .replace('__CURRENCY_CODE__', shopCurrency); 2989 2990 messageElement.textContent = finalMessage; 2991 } 2992 } 2993 2994 notification.style.display = 'block'; 2995 } 2996 } 2997 } 2998 2999 showReferralNotification(); 3000 3001 addEventListener('beforeunload', function() { 3002 const referralData = JSON.parse(localStorage.getItem('referral_notification_data')) || {}; 3003 3004 if (referralData.creditAmount !== undefined) { 3005 referralData.creditAmount = null; 3006 localStorage.setItem('referral_notification_data', JSON.stringify(referralData)); 3007 } 3008 }); 3009 3010 function closeReferralNotification() { 3011 const notification = document.getElementById('referralNotification'); 3012 if (notification) { 3013 notification.style.display = 'none'; 3014 } 3015 } 3016 3017 function dismissReferralNotification() { 3018 const referralData = JSON.parse(localStorage.getItem('referral_notification_data')) || {}; 3019 3020 referralData.dismissed = true; 3021 referralData.timestamp = referralData.timestamp || Date.now(); 3022 referralData.expirationDays = referralData.expirationDays || 3; 3023 3024 localStorage.setItem('referral_notification_data', JSON.stringify(referralData)); 3025 3026 closeReferralNotification(); 3027 } 3028 3029 function goToSignupPage() { 3030 location.href = '/account/register'; 3031 dismissReferralNotification(); 3032 } 3033 3034 function closeMobileReferralModal() { 3035 const mobileModal = document.querySelector('#referralMobileModal details'); 3036 if (mobileModal) { 3037 mobileModal.removeAttribute('open'); 3038 } 3039 3040 const referralData = JSON.parse(localStorage.getItem('referral_notification_data')) || {}; 3041 referralData.dismissed = true; 3042 referralData.timestamp = referralData.timestamp || Date.now(); 3043 referralData.expirationDays = referralData.expirationDays || 3; 3044 localStorage.setItem('referral_notification_data', JSON.stringify(referralData)); 3045 } 3046 3047 function goToSignupPageFromMobile() { 3048 location.href = '/account/register'; 3049 closeMobileReferralModal(); 3050 } 3051 // End - referral notification popup 3052</script>
3052 3053 3054 3055 <main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1"> 3056 3057 3058 3059 3060<section class="custom-page"> 3061 <div class="rte"> 3062 <link href='/assets/css/froala_style.min.css' rel='stylesheet' type='text/css'/><div class='fr-view'><div class="page-content"> 3063<div class="news"> 3064 3065<h1 class="title--primary center">News & Updates</h1> 3066 3067<div class="container custom-grid-3"> 3068<div class="info-card"> 3069<a href="https://muslimtw.easy.co/blogs/whats-on"> 3070<img src="https://cdn.store-assets.com/s/1382651/f/16019739.png" data="[object Object]"> 3071</a> 3072 3073<h3>What’s On</h3> 3074 3075</div> 3076<div class="info-card"> 3077<a href="https://muslimtw.easy.co/blogs/in-the-news"> 3078<img src="https://cdn.store-assets.com/s/1382651/f/16019704.png" data="[object Object]"> 3079</a> 3080 3081<h3>In the News</h3> 3082 3083</div> 3084<div class="info-card"> 3085<a href="https://muslimtw.easy.co/blogs/user-notices"> 3086<img src="https://cdn.store-assets.com/s/1382651/f/16019705.png" data="[object Object]"> 3087</a> 3088 3089<h3>User Notices</h3> 3090 3091</div> 3092</div> 3093</div> 3094</div> 3095
3095<script type="text/javascript"> 3096 $("img[data-type=youtube]").click(function(){ 3097 var this_parent = $(this).closest("div.Grid-cell--wrapper"); 3098 var height = $(this_parent).height(); 3099 var youtube_player = document.createElement("iframe"); 3100 youtube_player.setAttribute("style", "width:100%; height:"+height+"px;"); 3101 youtube_player.setAttribute("allowfullscreen",""); 3102 youtube_player.setAttribute("src","https://www.youtube.com/embed/"+$(this).data("youtube-id")+"?autoplay=1&fs=1"); 3103 this_parent.html(youtube_player); 3104 }); 3105 </script>
3105</div> 3106 <link rel="preload" href="https://store-themes.easystore.co/1382651/themes/328977/assets/component-card.css?t=1788245198" as="style" onload="this.onload=null;this.rel='stylesheet'"> 3107<link rel="preload" href="https://store-themes.easystore.co/1382651/themes/328977/assets/component-price.css?t=1788245198" as="style" onload="this.onload=null;this.rel='stylesheet'"> 3108<link rel="preload" href="https://store-themes.easystore.co/1382651/themes/328977/assets/component-product-grid.css?t=1788245198" as="style" onload="this.onload=null;this.rel='stylesheet'"> 3109 3110 3111 3112 3113 </div> 3114</section> 3115 3116 3117 3118 </main> 3119 <style> 3120 .footer{ 3121 background-color: #FBF9F4; 3122 color: #000000; 3123 --color-foreground: 0,0,0; 3124 } 3125 .footer .link--text, 3126 .footer .list-menu__item--link, 3127 .footer .footer-block__details-content .list-menu__item--link{ 3128 color: #000000; 3129 } 3130 .footer-block__heading{ 3131 color: #000000; 3132 } 3133 .rounded{ 3134 border-radius: 10px; 3135 } 3136 .shopping-app-border{ 3137 border: 1px #ECECEC solid; 3138 margin-right: 3px; 3139 } 3140 .app-download-badge{ 3141 display: inline-block; 3142 margin-right: 3px; 3143 } 3144</style> 3145 3146<link rel="preload" href="https://store-themes.easystore.co/1382651/themes/328977/assets/section-footer.css?t=1788245198" as="style" onload="this.onload=null;this.rel='stylesheet'"> 3147 3148<footer class="footer color-background-1"> 3149 <div class="footer__content-top page-width"> 3150 <div class="grid grid--1-col grid--4-col-tablet "> 3151 3152 3153 3154 <div class="grid__item"> 3155 3156 <h2 class="footer-block__heading">Contact Us</h2> 3157 3158 <p> 3159 +886-3-9351581<br>(MondayâFriday, 10:00â17:00) <br>[email protected] 3160 </p> 3161 <ul class="footer__list-social list-unstyled list-social footer-block__details-content" role="list"> 3162 3163 3164 3165 <li class="list-social__item"> 3166 <a href="https://www.instagram.com/halaltw_/" class="link link--text list-social__link" target="blank"> 3167 3168 3169 3170 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-instagram " 3171 viewBox="0 0 18 18"> 3172 <path fill="currentColor" 3173 d="M8.77 1.58c2.34 0 2.62.01 3.54.05.86.04 1.32.18 1.63.3.41.17.7.35 1.01.66.3.3.5.6.65 1 .12.32.27.78.3 1.64.05.92.06 1.2.06 3.54s-.01 2.62-.05 3.54a4.79 4.79 0 01-.3 1.63c-.17.41-.35.7-.66 1.01-.3.3-.6.5-1.01.66-.31.12-.77.26-1.63.3-.92.04-1.2.05-3.54.05s-2.62 0-3.55-.05a4.79 4.79 0 01-1.62-.3c-.42-.16-.7-.35-1.01-.66-.31-.3-.5-.6-.66-1a4.87 4.87 0 01-.3-1.64c-.04-.92-.05-1.2-.05-3.54s0-2.62.05-3.54c.04-.86.18-1.32.3-1.63.16-.41.35-.7.66-1.01.3-.3.6-.5 1-.65.32-.12.78-.27 1.63-.3.93-.05 1.2-.06 3.55-.06zm0-1.58C6.39 0 6.09.01 5.15.05c-.93.04-1.57.2-2.13.4-.57.23-1.06.54-1.55 1.02C1 1.96.7 2.45.46 3.02c-.22.56-.37 1.2-.4 2.13C0 6.1 0 6.4 0 8.77s.01 2.68.05 3.61c.04.94.2 1.57.4 2.13.23.58.54 1.07 1.02 1.56.49.48.98.78 1.55 1.01.56.22 1.2.37 2.13.4.94.05 1.24.06 3.62.06 2.39 0 2.68-.01 3.62-.05.93-.04 1.57-.2 2.13-.41a4.27 4.27 0 001.55-1.01c.49-.49.79-.98 1.01-1.56.22-.55.37-1.19.41-2.13.04-.93.05-1.23.05-3.61 0-2.39 0-2.68-.05-3.62a6.47 6.47 0 00-.4-2.13 4.27 4.27 0 00-1.02-1.55A4.35 4.35 0 0014.52.46a6.43 6.43 0 00-2.13-.41A69 69 0 008.77 0z"> 3174 </path> 3175 <path fill="currentColor" 3176 d="M8.8 4a4.5 4.5 0 100 9 4.5 4.5 0 000-9zm0 7.43a2.92 2.92 0 110-5.85 2.92 2.92 0 010 5.85zM13.43 5a1.05 1.05 0 100-2.1 1.05 1.05 0 000 2.1z"> 3177 </path> 3178 </svg> 3179 3180 3181 3182 </a> 3183 </li> 3184 3185 3186 3187 <li class="list-social__item"> 3188 <a href="https://wa.me/886900679220" class="link link--text list-social__link" target="blank"> 3189 3190 3191 3192 <svg class="icon icon-whatsapp " fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 750"><path d="M703.5,195.64A371,371,0,0,0,572,56C523.89,26,471.51,8.4,415.21,2.51A370.48,370.48,0,0,0,316.5,5.42,364,364,0,0,0,215.23,37.47a369,369,0,0,0-132.68,108Q17.36,230.17,7,336.63A370.11,370.11,0,0,0,53.42,554.94a7.23,7.23,0,0,1,.61,4.9Q36.48,624.6,18.7,689.27C13.24,709.19,7.75,729.1,2.14,749.5c1.23-.26,1.93-.36,2.61-.55q95.75-25.11,191.54-50.2a8.43,8.43,0,0,1,5.19.61c12.79,5.8,25.28,12.34,38.29,17.59A370.28,370.28,0,0,0,666.09,604q69.06-86.36,80-196.47A370.36,370.36,0,0,0,743,311.86,361,361,0,0,0,703.5,195.
319264ZM684.64,388c-3.6,65.27-25.48,123.75-66.06,174.9-44.89,56.63-102.85,93.24-173.19,109.84a297.41,297.41,0,0,1-91.27,7A305.68,305.68,0,0,1,215.31,635a17.54,17.54,0,0,0-15.2-2.14c-35.5,9.58-71.1,18.74-106.66,28-.49.13-1,.21-2.14.45,1.72-6.37,3.29-12.22,4.89-18Q109,596.7,121.66,550.07a7.12,7.12,0,0,0-1-5.07c-12.37-19.32-23.31-39.25-31.6-60.64A309,309,0,0,1,70.4,410.63c-6.11-49.35-.93-97.44,16.1-144.15,57.86-160.1,234.55-243,394.65-185.11a308.31,308.31,0,0,1,120.2,79.18c34.9,37.19,59.32,80.31,72.81,129.53A304.75,304.75,0,0,1,684.64,388Z"/><path d="M556,454.42c-13.84-6.52-27.43-13.55-41.24-20.12-11.47-5.46-23-10.89-34.73-15.69-9.1-3.73-13.09-1.72-19.12,6.06-9.39,12.09-19.09,23.95-28.89,35.71-4.7,5.63-9.47,6.79-16.1,3.8-12.32-5.56-24.82-10.9-36.58-17.51-39.6-22.29-69.59-54.3-92.67-93.11-4.87-8.2-4.3-12.16,2.14-19.13,9.07-9.9,18.4-19.63,24.09-32.12a17.42,17.42,0,0,0,.47-14.67c-9.55-23-19-46-28.75-68.92a75.82,75.82,0,0,0-7-12.7c-2.56-3.82-6.6-5.49-11.28-5.36H255.78v-.56c-5.48.29-11,.11-16.39,1-8.66,1.37-15,6.75-20.95,12.94-25.46,26.48-34.58,57.89-28.66,93.83a145.64,145.64,0,0,0,20.75,53.75C220.48,377.5,231.32,393,242.65,408a435.09,435.09,0,0,0,70.53,73.19c31.48,26,67,44.54,105.56,57.58,16.1,5.44,32.08,11.08,49.36,11.42,11.52.22,23,.08,34.16-3.22a110.77,110.77,0,0,0,42.1-23.61c5.48-4.81,10.48-10.18,13.19-17a110.56,110.56,0,0,0,7.57-37.2C565.27,461.93,562.42,457.42,556,454.42Z"/></svg> 3193 3194 3195 3196 </a> 3197 </li> 3198 3199 3200 <li class="list-social__item"> 3201 <a href="https://lin.ee/LrcZ2Xx" class="link link--text list-social__link" target="blank"> 3202 3203 3204 3205 <svg class="icon icon-line-footer " fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 750"><path d="M375,.5C168.17.5.5,168.17.5,375S168.17,749.5,375,749.5,749.5,581.83,749.5,375,581.83.5,375,.5ZM570.75,476.91C518.48,537.06,401.6,610.33,375,621.53s-22.66-7.13-21.57-13.42c.63-3.76,3.55-21.33,3.55-21.33.83-6.36,1.66-16.23-.83-22.52-2.81-7-13.83-10.54-21.95-12.29C214.51,536.14,125.9,452.45,125.9,352.53,125.9,241,237.64,150.38,375,150.38s249.1,90.68,249.1,202.15h0C624.14,397.14,606.85,437.32,570.75,476.91Z"/><polygon points="324.38 298.65 324.38 298.65 324.38 298.65 324.38 298.65"/><path d="M324.38,298.65H306.91a4.86,4.86,0,0,0-4.86,4.85V412a4.86,4.86,0,0,0,4.86,4.85h17.47a4.86,4.86,0,0,0,4.85-4.85V303.5A4.86,4.86,0,0,0,324.38,298.65Z"/><path d="M444.67,298.65h-17.5a4.85,4.85,0,0,0-4.85,4.85V368l-49.73-67.17a4.57,4.57,0,0,0-.38-.49,2.76,2.76,0,0,0-.29-.3l-.09-.09a2.65,2.65,0,0,0-.26-.21l-.12-.1-.25-.18-.15-.08-.26-.14-.15-.08-.28-.12-.16,0-.28-.1-.18,0-.27-.06H351.08a4.85,4.85,0,0,0-4.85,4.84V412a4.85,4.85,0,0,0,4.85,4.85h17.48a4.85,4.85,0,0,0,4.85-4.85V347.54l49.81,67.26a5.15,5.15,0,0,0,1.22,1.2h.06l.29.18.14.07.24.12.23.1.15,0,.32.11H426a4.69,4.69,0,0,0,1.24.16h17.48a4.85,4.85,0,0,0,4.86-4.84h0V303.5A4.87,4.87,0,0,0,444.67,298.65Z"/><path d="M282.26,389.67h0l0,0H234.79V303.5a4.85,4.85,0,0,0-4.83-4.85H212.47a4.84,4.84,0,0,0-4.85,4.84h0V412a4.74,4.74,0,0,0,1.35,3.32.27.27,0,0,0,.07.08l.07.07a4.81,4.81,0,0,0,3.33,1.35h69.81a4.84,4.84,0,0,0,4.84-4.84h0V394.52A4.84,4.84,0,0,0,282.26,389.67Z"/><path d="M541.16,371.34a4.85,4.85,0,0,0,4.85-4.85h0V349a4.85,4.85,0,0,0-4.84-4.85H493.72V325.84l47.42,0A4.83,4.83,0,0,0,546,321V303.5a4.85,4.85,0,0,0-4.84-4.86H471.34A4.81,4.81,0,0,0,468,300l-.05.05-.08.09a4.82,4.82,0,0,0-1.34,3.33V412a4.77,4.77,0,0,0,1.35,3.33l.07.07.07.07a4.8,4.8,0,0,0,3.32,1.36h69.81A4.85,4.85,0,0,0,546,412h0V394.5a4.85,4.85,0,0,0-4.84-4.85H493.72V371.34Z"/></svg> 3206 3207 3208 3209 </a> 3210 </li> 3211 3212 3213 3214 3215 </ul> 3216 3217 3218 </div> 3219 3220 3221 3222 <div class="grid__item"> 3223 3224 <h2 class="footer-block__heading"> 3225 About Us 3226 </h2> 3227 <ul class="footer-block__details-content list-unstyled"> 3228 3229 <li> 3230 <a href="/pages/our-story" class="link link--text list-menu__item list-menu__item--link"> 3231 Our Story 3232 </a> 3233 </li> 3234 3235 <li> 3236 <a href="/pages/partnership" class="link link--text list-menu__item list-menu__item--link"> 3237 Partnership 3238 </a> 3239 </li> 3240 3241 <li> 3242 <a href="/pages/contact-us" class="link link--text list-menu__item list-menu__item--link"> 3243 Contact Us 3244 </a> 3245 </li> 3246 3247 3248 </ul> 3249 3250 3251 </div> 3252 3253 <!-- æ°å¢ --> 3254 <div class="grid__item"> 3255 <h2 class="footer-block__heading"> 3256 Muslim in Taiwan 3257 </h2> 3258 <ul class="footer-block__details-content list-unstyled"> 3259 <li><a href="/pages/mosque">Mosque</a></li> 3260 <li><a href="/pages/essential-tips-for-first-time-visitors">Essential Tips</a></li> 3261 <li><a href="/pages/muslim-friendly-accreditation-labels">Muslim-Friendly Accreditation Labels</a></li> 3262 </ul> </div> 3263 3264 <div class="grid__item"> 3265 <h2 class="footer-block__heading"> 3266 Shopping Policy 3267 </h2> 3268 <ul class="footer-block__details-content list-unstyled"> 3269 <li><a href="/pages/return-refund-policy">Return & Refund Policy</a></li> 3270 <li><a href="/pages/delivery-policy">Delivery Policy</a></li> 3271 <li><a href="/pages/terms-and-conditions-of-travel-services">Terms and Conditions of Travel Services</a></li> 3272 </ul> </div> 3273 3274 </div> 3275 </div>
3276 <div class="footer__content-bottom"> 3277 <div class="footer__content-bottom-wrapper page-width"> 3278 <div class="footer__column footer__column--info"> 3279 3280 3281 3282 3283 <div class="disclosure mb-1"> 3284 <div class="select"> 3285 <select class="currency-picker select__select" name="currencies"> 3286 <option value="" selected="selected"></option> 3287 3288 3289 <option value="TWD">TWD</option> 3290 3291 3292 3293 <option value="USD">USD</option> 3294 3295 3296 3297 3298 </select> 3299 </div> 3300 </div> 3301 3302 3303 3304 3305 <div class="footer__copyright caption"> 3306 <div class="copyright__content"> 3307 Travel business partners : JUN HAN INTERNATIONAL TRAVEL CO., LTD.<br> 3308Copyright @2025 MuslimTW Taiwan Learning Trip , LTD. (Taxpayer ID No.54772432) </div> 3309 </div> 3310 3311 <div class="footer__copyright caption"> 3312 3313 <div> 3314 3315 3316 3317 <a href="/legal/terms-of-service">Terms of Service</a> 3318 3319 3320 3321 3322 | <a href="/legal/privacy-policy">Privacy Policy</a> 3323 3324 3325 3326 </div> 3327 3328 </div> 3329 3330 </div> 3331 </div> 3332 </div> 3333</footer> 3334 3335 3336 3337 3338 3339 3340
3340<script> 3341 EasyStore.Currencies.init([{"name":"New Taiwan Dollar","code":"TWD","rate":"1.0","format_prefix":"NT$","format_suffix":null,"format_decimals":0,"thousand_separator":",","is_primary":true},{"name":"US Dollar","code":"USD","rate":"0.33333","format_prefix":"$","format_suffix":"USD","format_decimals":2,"thousand_separator":",","is_primary":false}], 1) 3342</script>
3342 3343 3344 3345 3346
3346<script> 3347 let page_template = 'page'; 3348 3349 if(document.querySelector('.currency-picker')) { 3350 EasyStore.Currencies.change(document.querySelector('.currency-picker').value) 3351 EasyStore.Currencies.convertAll() 3352 } 3353 3354 document.querySelectorAll('.currency-picker').forEach((el)=>{ 3355 el.addEventListener('change',(event)=>{ 3356 EasyStore.Currencies.change(event.target.value) 3357 3358 3359 if (page_template == 'cart') { 3360 const params = new URLSearchParams(window.location.search); 3361 params.set('delete_cache', 1); 3362 window.location.search = params; 3363 } else { 3364 window.location.reload(); 3365 } 3366 3367 return 3368 3369 3370 document.querySelectorAll('[name=currencies],[name=current_currency]').forEach((el)=>{ 3371 el.value = event.target.value 3372 }) 3373 3374 if(page_template == 'cart') location.reload(); 3375 }) 3376 }) 3377 </script>
3377 3378 3379 3380 3381 3382
3382<script> 3383 3384 window.variantStrings = { 3385 addToCart: `Add to Cart`, 3386 soldOut: `Sold Out`, 3387 unavailable: `Unavailable`, 3388 } 3389 3390 window.accessibilityStrings = { 3391 shareSuccess: `Link copied to clipboard`, 3392 } 3393 </script>
3393 3394 3395<!-- Snippet:global/body_end: Product Description Tabs --> 3396<style> 3397 .product-description-tabs{ 3398 color: #000000; 3399 } 3400 .prod-desc-tab-container { 3401 padding: 15px; 3402 margin-right: auto; 3403 margin-left: auto; 3404 background-color: #ffffff; 3405 } 3406 /* Style the list */ 3407 .prod-desc-tab { 3408 list-style-type: none; 3409 margin: 0; 3410 padding: 0; 3411 border-bottom: solid 1px #ddd; 3412 /*overflow: hidden; 3413 border: 1px solid #e6e6e6; 3414 background-color: #fefefe; 3415 border-bottom: 1px solid #ddd;*/ 3416 } 3417 3418 /* Float the list items side by side */ 3419 li.tablinks { 3420 display: inline-block; 3421 border-top: 3px solid transparent; 3422 border-left: 1px solid transparent; 3423 border-right: 1px solid transparent; 3424 margin-bottom: -1px; 3425 margin-right: 3px; 3426 border-radius: 4px 4px 0 0; 3427 background-color: rgba(212,212,212,0.3); 3428 } 3429 3430 /* Style the links inside the list items */ 3431 li.tablinks a { 3432 color: #000000; 3433 cursor: pointer; 3434 margin-right: 2px; 3435 line-height: 1.42857143; 3436 display: block; 3437 padding: 10px 15px; 3438 } 3439 3440 /* Change background color of links on hover */ 3441 li.tablinks:hover { 3442 background-color: #ffffff; 3443 border-bottom-color: transparent; 3444 border-top: 3px solid #ddd; 3445 border-left: 1px solid #ddd; 3446 border-right: 1px solid #ddd; 3447 } /*rgba(212,212,212,0.3)*/ 3448 3449 /* Create an active/current tablink class */ 3450 li.tablinks a:focus, li.tablinks.active{ 3451 border-top: 3px solid #ddd; 3452 border-left: 1px solid #ddd; 3453 border-right: 1px solid #ddd; 3454 background-color: #ffffff; 3455 } 3456 3457 /* Style the tab content */ 3458 .prod-desc-tab-content { 3459 display: none; 3460 padding: 15px 15px; 3461 /*border: 1px solid #ccc;*/ 3462 border-top: none; 3463 clear: both; 3464 -webkit-animation: fadeEffect 1s; 3465 animation: fadeEffect 1s; /* Fading effect takes 1 second */ 3466 } 3467 .prod-desc-tab-content ul{ 3468 list-style-type: disc; 3469 } 3470 3471 /* if user select is_show_title is true, the title will be displayed; if not, hide the title*/ 3472 .prod-desc-tab-content > h2{ 3473 display:block; 3474 } 3475 3476 @-webkit-keyframes fadeEffect { 3477 from {opacity: 0;} 3478 to {opacity: 1;} 3479 } 3480 3481 @keyframes fadeEffect { 3482 from {opacity: 0;} 3483 to {opacity: 1;} 3484 } 3485 3486 .tab_drawer_heading { display: none; } 3487 3488 @media screen and (max-width: 480px) { 3489 .prod-desc-tab { 3490 display: none; 3491 } 3492 .tab_drawer_heading { 3493 background-color: transparent; 3494 color: #000000; 3495 border-bottom: 1px solid #ddd; 3496 margin: 0; 3497 padding: 6px 12px; 3498 display: block; 3499 cursor: pointer; 3500 -webkit-touch-callout: none; 3501 -webkit-user-select: none; 3502 -khtml-user-select: none; 3503 -moz-user-select: none; 3504 -ms-user-select: none; 3505 user-select: none; 3506 position: relative; 3507 } 3508 .tab_drawer_heading:after { 3509 content: ''; 3510 top: 50%; 3511 right: 40px; 3512 position: absolute; 3513 border: solid black; 3514 border-width: 0 3px 3px 0; 3515 display: inline-block; 3516 width: 10px; 3517 height: 10px; 3518 margin-top: -5px; 3519 transform: rotate(45deg); 3520 -webkit-transform: rotate(45deg); 3521 -webkit-transition: all 200ms linear; 3522 -moz-transition: all 200ms linear; 3523 -ms-transition: all 200ms linear; 3524 -o-transition: all 200ms linear; 3525 transition: all 200ms linear; 3526 } 3527 .d_active { 3528 background-color: rgba(212,212,212,0.3); 3529 } 3530 .d_active.tab_drawer_heading:after{ 3531 margin-top: -3px; 3532 transform: rotate(-135deg); 3533 -webkit-transform: rotate(-135deg); 3534 } 3535 } 3536</style> 3537
3538<script type="text/javascript"> 3539 // If the page has no jquery 3540 // if(typeof jQuery == 'undefined'){ 3541 // console.log(456); 3542 // var script = document.createElement('script'); 3543 // script.type = "text/javascript"; 3544 // script.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"; 3545 // console.log(script); 3546 // document.getElementsByTagName('head')[0].appendChild(script); 3547 // } 3548 3549 /* if in tab mode */ 3550 $("body").on("click", ".tablinks", function(){ 3551 var id = $(this).data("prod-desc-id"); 3552 3553 // Get all elements with class="prod-desc-tab-content" and hide them 3554 $(".prod-desc-tab-content").hide(); 3555 3556 // Get all elements with class="tablinks" and remove the class "active" 3557 $(".tablinks").removeClass("active"); 3558 3559 // Show the current tab, and add an "active" class to the link that opened the tab 3560 $("#"+id+"_desc_tab_content").show(); 3561 $(this).addClass("active"); 3562 3563 // make mobile view(drawer mode) also in same tab 3564 $(".tab_drawer_heading").removeClass("d_active"); 3565 $(".tab_drawer_heading[data-prod-desc-id='"+id+"']").addClass("d_active"); 3566 3567 }); 3568 3569 /* if in drawer mode */ 3570 $("body").on("click", ".tab_drawer_heading", function() { 3571 var id = $(this).data("prod-desc-id") 3572 var active = $(this).hasClass("d_active") 3573 3574 $(".prod-desc-tab-content").hide(); 3575 $(".tab_drawer_heading").removeClass("d_active"); 3576 3577 if(!active){ 3578 $("#"+id+"_desc_tab_content").show(); 3579 $(this).addClass("d_active"); 3580 window.scroll({ 3581 top: $(this).offset().top - 120, 3582 left: 0, 3583 behavior: 'smooth' 3584 }); 3585 } 3586 3587 $(".tablinks").removeClass("active"); 3588 $(".tablinks[data-prod-desc-id='"+id+"']").addClass("active"); 3589 }); 3590 3591 $(function(){ 3592 var x = $(".product-description").find("h1, h2, h3, h4, h5, h6"); 3593 var title = null; 3594 var body = null; 3595 3596 if(x.length > 1){ 3597 $(".product-description").after("<link href='/assets/css/froala_style.min.css' rel='stylesheet' type='text/css'/><div class='product-description-tabs fr-view rte'><ul class='prod-desc-tab' style='margin: auto;'></ul><div class='prod-desc-tab-container'></div></div>"); 3598 $(x).each(function(k, v){ 3599 title = $(v).text(); 3600 3601 if(k == 0){ 3602 body = $(x[0]).nextUntil(x[1]).clone(); 3603 $(".prod-desc-tab").append('<li class="tablinks active" data-prod-desc-id="'+k+'"><a>'+title+'</a></li>'); 3604 $(".prod-desc-tab-container").append('<h3 class="tab_drawer_heading d_active" data-prod-desc-id="'+k+'">'+title+'</h3><div id="'+k+'_desc_tab_content" class="prod-desc-tab-content" style="display:block"><h2>'+title+'</h2></div>'); 3605 $("#"+k+"_desc_tab_content h2").after(body); 3606 } 3607 else if(k == x.length){ 3608 body = $(x[k]).nextAll().clone(); 3609 $(".prod-desc-tab").append('<li class="tablinks" data-prod-desc-id="'+k+'"><a>'+title+'</a></li>'); 3610 $(".prod-desc-tab-container").append('<h3 class="tab_drawer_heading" data-prod-desc-id="'+k+'">'+title+'</h3><div id="'+k+'_desc_tab_content" class="prod-desc-tab-content" style="display:none"><h2>'+title+'</h2></div>'); 3611 $("#"+k+"_desc_tab_content h2").after(body); 3612 } 3613 else{ 3614 body = $(x[k]).nextUntil(x[k+1]).clone(); 3615 $(".prod-desc-tab").append('<li class="tablinks" data-prod-desc-id="'+k+'"><a>'+title+'</a></li>'); 3616 $(".prod-desc-tab-container").append('<h3 class="tab_drawer_heading" data-prod-desc-id="'+k+'">'+title+'</h3><div id="'+k+'_desc_tab_content" class="prod-desc-tab-content" style="display:none"><h2>'+title+'</h2></div>'); 3617 $("#"+k+"_desc_tab_content h2").after(body); 3618 } 3619 }); 3620 $(".product-description").hide(); 3621 } 3622 3623 }); 3624</script>
3624 3625<!-- /Snippet --> 3626 3627<!-- Snippet:global/body_end: Product Label --> 3628<link href='https://apps.easystore.co/assets/css/product-label/main.css?v2.3' rel='stylesheet' type='text/css' media='screen' />
3628<script src='https://apps.easystore.co/product-labels/productlabelv2.js?shop=muslimtw.easy.co' type='text/javascript'></script>
3628 3629<!-- /Snippet -->
3630<script> 3631 3632 /* 3633 3634 ------ 3635 Events 3636 ------ 3637 3638 pages/viewed 3639 3640 customers/signup 3641 3642 customers/login 3643 3644 products/searched 3645 3646 collections/viewed 3647 3648 products/viewed 3649 3650 products/shared 3651 3652 wishlists/item_added 3653 3654 carts/items_added 3655 3656 carts/viewed 3657 3658 carts/item_removed 3659 3660 checkouts/initiated 3661 3662 checkouts/shipping_info_added 3663 3664 checkouts/payment_info_added 3665 3666 checkouts/completed 3667 3668 orders/placed 3669 3670 orders/purchased 3671 3672 payments/captured 3673 3674 payments/failed 3675 3676 */ 3677 3678 window.__latest_cart = window.__latest_cart || null; 3679 3680 const _selector = document.querySelector.bind(document), 3681 _selectorAll = document.querySelectorAll.bind(document) 3682 3683 document.addEventListener('DOMContentLoaded', (event) => { 3684 3685 const default_currency = getCookie("currency") 3686 const customer_id = window.__st.cid 3687 const template = window.__st.p 3688 3689 onPageView() 3690 3691 //-----------------------// 3692 // Configs // 3693 //-----------------------// 3694 3695 window.dataLayer = window.dataLayer || [] 3696 3697 Array.prototype.last = Array.prototype.last || function() { 3698 return this[this.length - 1] || null 3699 } 3700 3701 Array.prototype.first = Array.prototype.first || function() { 3702 return this[0] || null 3703 } 3704 3705 //----------------------// 3706 // Triggers // 3707 //----------------------// 3708 3709 const XHR = window.XMLHttpRequest 3710 3711 function xhr() { 3712 3713 const xhr = new XHR() 3714 3715 xhr.addEventListener("readystatechange", function() { 3716 3717 if(xhr.readyState != 4) return 3718 3719 try { 3720 3721 const response_url = xhr.responseURL 3722 3723 if (response_url.includes("cart/add")) { 3724 3725 window.__latest_cart = JSON.parse(xhr.response) 3726 3727 onCartItemsAdded() // ok 3728 3729 } 3730 3731 if (response_url.includes("cart/remove_item_quantity")) { 3732 3733 window.__latest_cart = JSON.parse(xhr.response) 3734 3735 onCartItemRemoved() // ok 3736 3737 } 3738 3739 if (response_url.includes("new_cart?retrieve=true")) { 3740 3741 result = JSON.parse(xhr.response) 3742 3743 if (result.cart) { 3744 window.__latest_cart = result.cart 3745 } 3746 3747 } 3748 3749 } catch(e) { 3750 3751 console.error(e) 3752 3753 } 3754 3755 }, false); 3756 3757 return xhr 3758 3759 } 3760 3761 window.XMLHttpRequest = xhr 3762 3763 switch(template) { 3764 3765 case 'cart': onCartView() // ok 3766 break 3767 case 'product': onProductView() // ok 3768 break 3769 case 'collection': onCollectionView() // ok 3770 break 3771 case 'blog': onBlogView() 3772 break 3773 case 'article': onArticleView() 3774 break 3775 case 'payment_completed': onOrderPlace() 3776 break 3777 case 'payment_fail': onPaymentFail() 3778 break 3779 3780 } 3781 3782 // _selector('form[action="/checkout/payments"]').addEventListener("submit", onPaymentInfoAdded(_selector('form[action="/checkout/payments"]'))) 3783 if (_selector('form[action="/checkout/detail"]')) _selector('form[action="/checkout/detail"]').addEventListener("submit", ()=>{onShippingInfoAdded(_selector('form[action="/checkout/detail"]'))}) // ok 3784 if (_selector('form[action="/checkout/shipping"]')) _selector('form[action="/checkout/shipping"]').addEventListener("submit", ()=>{onShippingInfoAdded(_selector('form[action="/checkout/shipping"]'))}) // ok 3785 if (_selector('form[action="/account/register"]')) _selector('form[action="/account/register"]').addEventListener("submit", onSignUp) // ok 3786 if (_selector('form[action="/account/login"]')) _selector('form[action="/account/login"]').addEventListener("submit", onLogin) // ok 3787 if (_selector('form[action="/search"]')) _selector('form[action="/search"]').addEventListener("submit", onProductSearch()) // ok 3788 if (_selector('#line-login-btn')) _selector('#line-login-btn').addEventListener('click', onLineLogin) // ok 3789 if (_selector('#PlaceOrder')) _selector('#PlaceOrder').addEventListener("click", ()=>{onCheckoutComplete(_selector('form[action="/checkout/payments"]'))}); // ok 3790 if (_selector('#add_wishlist')) _selector('#add_wishlist').addEventListener("click", onWishlistItemAdded) // ok 3791 if (_selectorAll('a[href="/account/logout"]')) _selectorAll('a[href="/account/logout"]').forEach(logoutButton => logoutButton.addEventListener("click", onLogout)) // ok 3792 if (_selector('.CartDrawerTrigger.cart-page-link')) _selector('.CartDrawerTrigger.cart-page-link').addEventListener("click", onCartView) // ok 3793 if (_selector('.CartDrawerTrigger.cart-page-link.mobile-cart-page-link')) _selector('.CartDrawerTrigger.cart-page-link.mobile-cart-page-link').addEventListener("click", onCartView) // ok 3794 if (_selectorAll('a[class^="share-"]')) _selectorAll('a[class^="share-"]').forEach(shareButton => shareButton.addEventListener("click", ()=>{onProductShare(shareButton)}) ) // ok 3795 if (_selectorAll('[name$="checkout"]')) _selectorAll('[name$="checkout"]').forEach(checkoutButton => checkoutButton.addEventListener("click", onCheckoutInitiate)) 3796 3797 // For append elements 3798 const bodyMutationObserver = new MutationObserver(() => { 3799 if (_selector('#form__spc #PlaceOrder')) _selector('#form__spc #PlaceOrder').addEventListener("click", onSinglePageCheckout) // ok 3800 if (_selectorAll('[name$="checkout"]')) _selectorAll('[name$="checkout"]').forEach(checkoutButton => checkoutButton.addEventListener("click", onCheckoutInitiate)) 3801 }); 3802 bodyMutationObserver.observe(_selector("body"), {subtree: true, childList: true}); 3803 3804 //------------------------------// 3805 // Event handlers // 3806 //------------------------------// 3807 3808 function onPageView() { 3809 3810 EasyStore.Event.dispatch('pages/viewed', { 3811 page: { 3812 type: template, 3813 title: document.title, 3814 description: _selector('meta[name=description]') ? _selector('meta[name=description]').getAttribute('content') : null, 3815 url: location.href, 3816 } 3817 }) 3818 3819 } 3820 3821 function onSignUp() { 3822 3823 const email_regex = new RegExp(/^[a-zA-Z0-9.!#$%&"*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/) 3824 const phone_regex = new RegExp(/^(\+?6?01)[0-46-9]-*[0-9]{7,8}$/) 3825 3826 const email_or_phone = _selector(`input[name="customer[email_or_phone]"]`).value.replace("+", "").replace(/\s+/, "") 3827 3828 let data = {} 3829 3830 if (email_regex.test(email_or_phone)) { 3831 data.method = 'email' 3832 data.email = email_or_phone 3833 } 3834 3835 if (phone_regex.test(email_or_phone)) { 3836 data.method = "phone" 3837 data.phone = email_or_phone 3838 } 3839 3840 if (!data.method) return 3841 3842 EasyStore.Event.dispatch('customers/signup', data) 3843 3844 } 3845 3846 function onLogin() { 3847 3848 const email_regex = new RegExp(/^[a-zA-Z0-9.!#$%&"*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/) 3849 const phone_regex = new RegExp(/^(\+?6?01)[0-46-9]-*[0-9]{7,8}$/) 3850 3851 const email_or_phone = _selector(`input[name="customer[email_or_phone]"]`).value.replace("+", "").replace(/\s+/, "") 3852 3853 let data = {} 3854 3855 if (email_regex.test(email_or_phone)) { 3856 data.method = 'email' 3857 data.email = email_or_phone 3858 } 3859 3860 if (phone_regex.test(email_or_phone)) { 3861 data.method = "phone" 3862 data.phone = email_or_phone 3863 } 3864 3865 if (!data.method) return 3866 3867 EasyStore.Event.dispatch('customers/login', data) 3868 3869 } 3870 3871 function onLineLogin() { 3872 3873 EasyStore.Event.dispatch('customers/login', { method: 'line' }) 3874 3875 } 3876 3877 function onLogout() { 3878 3879 EasyStore.Event.dispatch('customers/logout', { customer_id }) 3880 3881 } 3882 3883 function onBlogView() { 3884 3885 const blog = "" 3886 3887 EasyStore.Event.dispatch('blogs/viewed', { blog }) 3888 3889 } 3890 3891 function onArticleView() { 3892 3893 const article = "" 3894 3895 EasyStore.Event.dispatch('articles/viewed', { article }) 3896 3897 } 3898 3899 function onProductSearch() { 3900 3901 const query = _selector('input[name=q]').value 3902 3903 if (!query) return 3904 3905 EasyStore.Event.dispatch('products/searched', { query }) 3906 3907 } 3908 3909 function onCollectionView() { 3910 3911 const collection = "" 3912 3913 EasyStore.Event.dispatch('collections/viewed', { collection }) 3914 3915 } 3916 3917 function onProductView() { 3918 3919 const product = "" 3920 3921 EasyStore.Event.dispatch("products/viewed", { product }) 3922 3923 } 3924 3925 function onProductShare(el) { 3926 3927 const product = "" 3928 3929 const channel = el.getAttribute("class").split("-").last() 3930 3931 EasyStore.Event.dispatch('products/shared', { product, channel }) 3932 3933 } 3934 3935 function onWishlistItemAdded() { 3936 3937 let product = "" 3938 const quantity = _selector("#Quantity").value 3939 3940 EasyStore.Event.dispatch('wishlists/item_added', { product }) 3941 3942 } 3943 3944 async function onCartItemsAdded() { 3945 3946 const cart = await getCart() 3947 3948 if(cart && cart.items != undefined && cart.items.length > 0) { 3949 3950 EasyStore.Event.dispatch('carts/item_added', { cart }) 3951 3952 } 3953 3954 } 3955 3956 async function onCartView() { 3957 3958 const cart = await getCart() 3959 3960 EasyStore.Event.dispatch('carts/viewed', { cart }) 3961 3962 } 3963 3964 async function onCartItemRemoved() { 3965 3966 const cart = await getCart() 3967 3968 cart.items = [] 3969 3970 if(cart) { 3971 3972 EasyStore.Event.dispatch('carts/item_removed', { cart }) 3973 3974 } 3975 3976 } 3977 3978 async function onCheckoutInitiate() { 3979 3980 const cart = await getCart() 3981 3982 EasyStore.Event.dispatch('checkouts/initiated', { cart }) 3983 3984 } 3985 3986 async function onShippingInfoAdded(form) { 3987 let checkout = getCheckout() 3988 3989 let form_data = {} 3990 new FormData(form).forEach((value, key) => form_data[key] = value) 3991 3992 let shipping_tier = null 3993 3994 if (form_data.type && form_data.type.startsWith("r_pickup")) { 3995 shipping_tier = `Pickup - ${form_data.pick_location}` 3996 } 3997 3998 if (form_data.s_id) {
3999 shipping_tier = _selector(`input[id='`+form_data.s_id+`']`).getAttribute("data-shipping-name") 4000 } 4001 4002 if (!shipping_tier) return 4003 4004 EasyStore.Event.dispatch('checkouts/shipping_info_added', { checkout, shipping_tier }) 4005 4006 } 4007 4008 async function onPaymentInfoAdded(form) { 4009 4010 let checkout = getCheckout() 4011 4012 let payment_type = new FormData(form).get('payment_method') 4013 4014 EasyStore.Event.dispatch("checkouts/payment_info_added", { checkout, payment_type }) 4015 4016 } 4017 4018 async function onOrderPlace() { 4019 4020 let cart_token = getCookie("cart_js") 4021 let previous_cart_token = getCookie("previous_cart_ga4_js") 4022 4023 if (previous_cart_token && previous_cart_token == cart_token) { 4024 // Prevent duplicate purchase tracking 4025 return 4026 } 4027 4028 let order = getOrder() 4029 4030 EasyStore.Event.dispatch('orders/placed', { order }) 4031 4032 if(order.is_manual_payment) { 4033 4034 EasyStore.Event.dispatch('orders/purchased', { order }) 4035 4036 } 4037 4038 const last_transaction = order.transactions.last() 4039 4040 if (last_transaction.status) { 4041 4042 EasyStore.Event.dispatch('orders/purchased', { order }) 4043 EasyStore.Event.dispatch('payments/captured', { order }) 4044 4045 } 4046 4047 } 4048 4049 async function onPaymentFail() { 4050 4051 const order = getOrder() 4052 4053 EasyStore.Event.dispatch('payments/failed', { order }) 4054 4055 } 4056 4057 async function onCheckoutComplete(form) { 4058 4059 onPaymentInfoAdded(form) 4060 4061 const checkout = getCheckout() 4062 4063 EasyStore.Event.dispatch('checkouts/completed', { checkout }) 4064 4065 } 4066 4067 async function onSinglePageCheckout() { 4068 4069 // let checkout = $("[data-app-checkout]").data("app-checkout") 4070 4071 let checkout = getCheckout() 4072 4073 // const payment_type = _selector("#app_spc_payment_method").find(`[class*="label-content"]`).first().find("b").first().text() 4074 const payment_type = _selector("#app_spc_payment_method").getElementsByClassName('label-content')[0].getElementsByTagName('b')[0].innerHTML 4075 4076 const shipping_method = _selector("#delivery_method").value 4077 4078 let shipping_tier = null 4079 let app_spc_customer_info_label = _selector("#app_spc_customer_info").getElementsByClassName('label-content') 4080 if (shipping_method == "shipping") { 4081 shipping_tier = app_spc_customer_info_label[app_spc_customer_info_label.length - 1].getElementsByTagName('b')[0].innerHTML 4082 } 4083 4084 if (shipping_method == "pickup") { 4085 shipping_tier = app_spc_customer_info_label[0].innerHTML 4086 } 4087 4088 if (shipping_tier) { 4089 4090 EasyStore.Event.dispatch('checkouts/shipping_info_added', { 4091 checkout, 4092 shipping_tier, 4093 }) 4094 4095 } 4096 4097 if (payment_type) { 4098 4099 EasyStore.Event.dispatch('checkouts/payment_info_added', { 4100 checkout, 4101 payment_type, 4102 }) 4103 4104 } 4105 4106 EasyStore.Event.dispatch('checkouts/completed', { checkout }) 4107 4108 } 4109 4110 }) 4111 4112 4113 //-----------------------// 4114 // Functions // 4115 //-----------------------// 4116 4117 function getCookie(name) { 4118 4119 name += "=" 4120 4121 decodedCookie = decodeURIComponent(document.cookie) 4122 4123 ca = decodedCookie.split(";") 4124 4125 for(i = 0; i < ca.length; i++) { 4126 c = ca[i] 4127 while (c.charAt(0) == " ") { 4128 c = c.substring(1) 4129 } 4130 if (c.indexOf(name) == 0) { 4131 return c.substring(name.length, c.length) 4132 } 4133 } 4134 4135 return "" 4136 4137 } 4138 4139 const parsePrice = price => { 4140 if(typeof price === 'string') { 4141 return parseFloat(price.split(',').join('')) 4142 } 4143 4144 return price 4145 } 4146 4147 const requestCart = async (method, data) => { 4148 4149 let response = await fetch('/cart.json', {method: 'GET',headers: {'Content-Type': 'application/json'}}) 4150 result = await response.json() 4151 4152 return result.cart 4153 4154 } 4155 const getCart = async (latest = false) => { 4156 4157 let cart = window.__latest_cart 4158 4159 const cart_invalid = !cart || !cart.items || (cart.total_price > 0 && !cart.items.length) 4160 4161 if(latest || cart_invalid) { 4162 cart = await requestCart() 4163 } 4164 4165 cart.items = cart.items || [] 4166 4167 return mapCart(cart) 4168 4169 } 4170 4171 const getCheckout = async () => { 4172 mapCheckout(window.__latest_cart || await requestCart()) 4173 } 4174 4175 const getOrder = async () => { 4176 mapOrder(window.__latest_cart || await requestCart()) 4177 } 4178 4179 //-----------------------// 4180 // Mappers // 4181 //-----------------------// 4182 4183 const fallbackAttribute = (object, attribute) => { 4184 4185 if(!Array.isArray(attribute)) { 4186 attribute = [attribute] 4187 } 4188 4189 let final_value = null 4190 4191 do { 4192 4193 final_value = object[attribute.shift()] 4194 4195 } while(!final_value && attribute.length) 4196 4197 return final_value 4198 4199 } 4200 4201 const map = (object, mapper) => { 4202 4203 const newObject = {} 4204 4205 for(const key in mapper) { 4206 4207 // Handle different keys between new and old format
4208 newObject[key] = fallbackAttribute(object, mapper[key]) 4209 4210 // Cast price to float 4211 if(newObject[key] && ['price', 'amount', 'discount', 'discounts'].some(x => key.endsWith(x))) { 4212 newObject[key] = parsePrice(newObject[key]) 4213 } 4214 4215 if(newObject[key] === undefined) { 4216 delete newObject[key] 4217 } 4218 4219 } 4220 4221 return newObject 4222 4223 } 4224 4225 const mapCart = cart => { 4226 4227 const oldCart = cart 4228 4229 const mapper = { 4230 id: 'id', 4231 currency: 'currency', 4232 item_count: 'item_count', 4233 items: 'items', 4234 total_price: 'total_price', 4235 latest_items: 'latest_items' 4236 } 4237 4238 cart = map(cart, mapper) 4239 4240 const discounts = (oldCart.storewide_discounts || []).concat((oldCart.voucher_discounts || [])) 4241 4242 cart.discount_applications = discounts.map(discount => ({ 4243 title: discount.voucher_code || null, 4244 value: parsePrice(discount.amount), 4245 })) 4246 4247 cart.original_total_price = cart.items.length 4248 ? cart.items 4249 .map(item => item.original_price) 4250 .reduce((sum, price) => sum + price) 4251 : 0 4252 4253 cart.total_discount = cart.discount_applications.length 4254 ? cart.discount_applications 4255 .map(discount => parsePrice(discount.value)) 4256 .reduce((sum, value) => sum + value) 4257 : 0 4258 4259 cart.items = cart.items.map(item => mapLineItem(item)) 4260 4261 return cart 4262 4263 } 4264 4265 const mapCheckout = checkout => { 4266 4267 const mapper = { 4268 note: 'note', 4269 attributes: 'note_attributes', 4270 billing_address: 'billing_address', 4271 currency: 'currency', 4272 customer_id: 'customer_id', 4273 discounts_amount: 'total_discount', 4274 id: 'id', 4275 line_items: 'order_item', 4276 order_number: 'order_number', 4277 shipping_address: 'shipping_address', 4278 shipping_price: 'shipping_tax', 4279 shipping_method: 'shipping_method_name', 4280 tax_price: 'total_tax', 4281 } 4282 4283 checkout = map(checkout, mapper) 4284 4285 checkout.requires_shipping = checkout.line_items.some(item => item.shipping_required) 4286 4287 checkout.line_items = checkout.line_items.map(item => mapLineItem(item)) 4288 4289 return checkout 4290 4291 } 4292 4293 const mapOrder = order => { 4294 4295 const mapper = { 4296 attributes: 'note_attributes', 4297 billing_address: 'billing_address', 4298 cancelled: 'is_cancelled', 4299 cancelled_at: 'cancelled_at', 4300 created_at: 'created_at', 4301 customer_id: 'customer_id', 4302 // discount_applications: 'discount_applications', 4303 email: 'email', 4304 financial_status: 'financial_status', 4305 fulfillment_status: 'fulfillment_status', 4306 line_items: 'order_item', 4307 note: 'note', 4308 order_number: 'order_number', 4309 phone: 'phone', 4310 shipping_address: 'shipping_address', 4311 shipping_methods: 'shipping_methods', 4312 shipping_price: 'total_shipping', 4313 subtotal_price: 'subtotal_price', 4314 // tax_lines: 'tax_lines', 4315 tax_price: 'total_tax', 4316 total_discounts: 'total_discount', 4317 total_net_amount: 'total_amount_include_transaction', 4318 total_price: 'total_price', 4319 transactions: 'transaction_records', 4320 is_manual_payment: 'is_manual_payment', 4321 } 4322 4323 order.email = order.billing_address.email 4324 order.phone = order.billing_address.phone 4325 order.shipping_method = order.shipping_method_name 4326 4327 order = map(order, mapper) 4328 4329 order.line_items = order.line_items.map(item => mapLineItem(item)) 4330 order.transactions = order.transactions.map(transaction => mapTransaction(transaction)) 4331 4332 return order 4333 4334 } 4335 4336 const mapLineItem = line_item => { 4337 4338 const old_line_item = line_item 4339 4340 const mapper = { 4341 final_price: 'price', 4342 image: 'img_url', 4343 message: 'message', 4344 original_line_price: 'original_line_price', 4345 original_price: 'original_price', 4346 properties: 'properties', 4347 quantity: 'quantity', 4348 requires_shipping: 'shipping_required', 4349 sku: 'sku', 4350 taxable: 'taxable', 4351 title: 'product_name', 4352 product_name: 'product_name', 4353 url: 'url', 4354 product_id: 'product_id', 4355 variant_id: 'variant_id', 4356 id: ['id', 'i_id'], 4357 } 4358 4359 line_item = map(line_item, mapper) 4360 4361 line_item.product_id = line_item.product_id || (old_line_item.product && old_line_item.product.id) || null 4362 line_item.variant_id = line_item.variant_id || (old_line_item.variant && old_line_item.variant.id) || null 4363 line_item.image = line_item.image || (old_line_item.image && old_line_item.image.url) || null 4364 4365 return line_item 4366 4367 } 4368 4369 const mapTransaction = transaction => { 4370 4371 const mapper = { 4372 amount: 'amount', 4373 created_at: 'created_at', 4374 gateway: 'gateway_type', 4375 id: 'id', 4376 status: 'status', 4377 } 4378 4379 transaction = map(transaction, mapper) 4380 4381 return transaction 4382 4383 } 4384 4385 4386</script>
4386 4387 4388 4389<style> 4390 #scrollTopButton { 4391 position: fixed; 4392 right: 0px; 4393 bottom: 110px; 4394 cursor: pointer; 4395 width: 45px; 4396 height: 45px; 4397 display: flex; 4398 justify-content: center; 4399 align-items: center; 4400 z-index: 3; 4401 color: #FFFFFF; 4402 background-color: #007A3D; 4403 border-radius: 0px; 4404 } 4405</style> 4406<div id="scrollTopButton" style="display: none"> 4407 <svg class="svg-icon" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M22,18.25a1.21,1.21,0,0,1-.88-.37L12,8.77,2.88,17.88a1.24,1.24,0,0,1-1.76-1.76l10-10a1.24,1.24,0,0,1,1.76,0l10,10a1.24,1.24,0,0,1,0,1.76A1.21,1.21,0,0,1,22,18.25Z"/></svg> 4408</div> 4409
4410<script> 4411 $( document ).ready(function() { 4412 var winScroll = $(this).scrollTop(), 4413 this_el = $("#scrollTopButton"); 4414 4415 if(winScroll > 400){ 4416 this_el.fadeIn(); 4417 }else{ 4418 this_el.fadeOut(); 4419 } 4420 4421 $("#scrollTopButton").click(function() { 4422 $('html,body').animate({ scrollTop: 0 }); 4423 }); 4424 4425 $(window).scroll(function(){ 4426 var winScroll = $(this).scrollTop(); 4427 4428 if(winScroll > 400){ 4429 this_el.fadeIn(); 4430 }else{ 4431 this_el.fadeOut(); 4432 } 4433 4434 }); 4435 }); 4436</script>
4436 4437 4438</body> 4439</html> 4440
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.