PageSourceSearch

https://esimcard.biz/

html esimcard.biz collected 2026-10-05 02:33:57 UTC 51,111 bytes, 952 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3
4<head>
5    <meta charset="UTF-8">
6    <meta name="viewport" content="width=device-width, initial-scale=1.0">
7    <link rel="icon" href="img/favicon.ico">
8    <title>Get eSIMCard: Best eSIM data plans for international travel</title>
9    <meta name="title" content="Buy eSIM Online - Instant Activation for Any eSIM Device">
10    <meta name="description" content="Buy international eSIMs for travel in 200+ destinations. Activate instantly with plans from $0.07. No SIM cards, no roaming—just seamless connectivity.">
11    <!-- Open Graph / Facebook -->
12      <meta property="og:title" content="Get eSIMCard: Best eSIM data plans for international travel">
13      <meta property="og:description" content="Buy international eSIMs for travel in 200+ destinations. Activate instantly with plans from $0.07. No SIM cards, no roaming—just seamless connectivity.">
14    <!-- Twitter -->
15      <meta property="twitter:title" content="Get eSIMCard: Best eSIM data plans for international travel">
16      <meta property="twitter:description" content="Buy international eSIMs for travel in 200+ destinations. Activate instantly with plans from $0.07. No SIM cards, no roaming—just seamless connectivity.">
17    <!-- <link rel="stylesheet" href="css/bootstrap-grid.css"> -->
18    <link rel="stylesheet" href="https://esimcard.biz/css/bootstrap.min.css?v=1.0.0">
19    <link rel="stylesheet" href="https://esimcard.biz/css/custom-style.css?v=1.0.0">
20    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.css"
21        integrity="sha512-wR4oNhLBHf7smjy0K4oqzdWumd+r5/+6QO/vDda76MW5iug4PT7v86FoEkySIJft3XA0Ae6axhIvHrqwm793Nw=="
22        crossorigin="anonymous" referrerpolicy="no-referrer" />
23    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.css"
24        integrity="sha512-6lLUdeQ5uheMFbWm3CP271l14RsX1xtx+J5x2yeIDkkiBpeVTNhTqijME7GgRKKi6hCqovwCoBTlRBEC20M8Mg=="
25        crossorigin="anonymous" referrerpolicy="no-referrer" />
26    <!-- Google tag (gtag.js) -->
vendor: 68 bytes, lines 26-27
26
27    <script async src="https://www.googletagmanager.com/gtag/js?id=
27G-TPMR26GY7S
vendor: 16 bytes, lines 27-28
27"></script>
28    
28<script>
29        
vendor: 152 bytes, lines 29-33
29window.dataLayer = window.dataLayer || [];
30        function gtag(){dataLayer.push(arguments);}
31        gtag('js', new Date());
32
33        gtag('config', '
33G-TPMR26GY7S
vendor: 8 bytes, lines 33-34
33');
34    
34</script>
vendor: 68 bytes, lines 34-35
34
35    <script async src="https://www.googletagmanager.com/gtag/js?id=
35AW-16922117406
vendor: 21 bytes, lines 35-37
35">
36    </script>
37    
37<script>
38        
vendor: 152 bytes, lines 38-42
38window.dataLayer = window.dataLayer || [];
39        function gtag(){dataLayer.push(arguments);}
40        gtag('js', new Date());
41
42        gtag('config', '
42AW-16922117406
vendor: 8 bytes, lines 42-43
42');
43    
43</script>
43
44    
44<script>
45        gtag('event', 'conversion', {
46            'send_to': 'AW-16922117406/2TvCCIX8lqwaEJ6KjIU_',
47            'value': 1.0,
48            'currency': 'INR'
49        });
50    </script>
50
51    
52</head>
53
54<body>
55    <!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 55-56
55
56<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
56GTM-P74H323J
vendor: 83 bytes, lines 56-57
56"
57height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
58<!-- End Google Tag Manager (noscript) -->
59    <header>
60    <nav class="navbar navbar-expand-xl navbar-light fixed-top header-top d-block">
61        <div class="container">
62            <div class="header">
63                <a class="navbar-brand" href="https://esimcard.biz"><img src="https://esimcard.biz/images/logo-new.svg" alt="eSIM Card Logo"></a>
64                                <button class="navbar-toggler" type="button" data-bs-toggle="collapse"
65                    data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
66                    aria-expanded="false" aria-label="Toggle navigation">
67                    <span class="navbar-toggler-icon"></span>
68                </button>
69                
70                <div class="collapse navbar-collapse navbar-content justify-content-between align-items-center"
71                    id="navbarSupportedContent">
72                                        <ul class="navbar-nav mx-auto align-items-center header-nav-links">
73                        <li class="nav-item">
74                            <a class="nav-link" href="https://esimcard.biz/esim-destinations">Destinations</a>
75                        </li>
76                        <li class="nav-item">
77                            <a class="nav-link" href="#how-it-works">How It Works</a>
78                        </li>
79                        <li class="nav-item">
80                            <a class="nav-link" href="#download-app">Download App</a>
81                        </li>
82                        <li class="nav-item">
83                            <a class="nav-link" href="https://esimcard.biz/contact-us">Contact Us</a>
84                        </li>
85                        <!-- Mobile-only Get Started Button / Status Pill (Hidden on Mobile) -->
86                        <li class="nav-item d-xl-none mt-3 w-100 text-center">
87                                                            <a class="btn-get-started-mobile" href="https://esimcard.biz/esim-destinations">Get Started <span style="margin-left: 8px;">&rarr;</span></a>
88                                                    </li>
89                    </ul>
90                                        <!-- Desktop-only Get Started Button / Progress Indicator -->
91                    <div class="header-action-btn-container d-none d-xl-block ">
92                                                    <a class="btn-get-started" href="https://esimcard.biz/esim-destinations">Get Started <span style="margin-left: 8px;">&rarr;</span></a>
93                                            </div>
94                </div>
95            </div>
96        </div>
97    </nav>
98</header>
99
100<script>
101    (function () {
102        const TARGET_ID = 'how-it-works';
103
104        function smoothScrollToTarget(targetId) {
105            const target = document.getElementById(targetId);
106            if (!target) return;
107
108            const header = document.querySelector('.header-top') || document.querySelector('header');
109            const headerHeight = header ? header.offsetHeight : 0;
110            const extraOffset = 20;
111
112            const targetY =
113                target.getBoundingClientRect().top +
114                window.pageYOffset -
115                headerHeight -
116                extraOffset;
117
118            window.scrollTo({
119                top: targetY,
120                behavior: 'smooth'
121            });
122        }
123
124        function resolveTargetId(hash) {
125            if (hash === '#how-it-works') {
126                return 'how-it-works';
127            }
128            if (hash === '#download-app') {
129                return 'download-app';
130            }
131            return null;
132        }
133
134        if (resolveTargetId(window.location.hash)) {
135            window.scrollTo(0, 0);
136            if ('scrollRestoration' in history) {
137                history.scrollRestoration = 'manual';
138            }
139        }
140
141        function closeMobileMenuThen(callback) {
142            const navbarCollapse = document.getElementById('navbarSupportedContent');
143            const navbarToggler = document.querySelector('.navbar-toggler');
144            const menuOpen = navbarCollapse && navbarCollapse.classList.contains('show');
145
146            if (menuOpen && navbarToggler) {
147                navbarToggler.click();
148                setTimeout(callback, 320);
149                return;
150            }
151
152            callback();
153        }
154
155        document.addEventListener('DOMContentLoaded', function () {
156            document.querySelectorAll('a[href*="#how-it-works"], a[href*="#download-app"]').forEach(function (link) {
157                link.addEventListener('click', function (e) {
158                    const href = link.getAttribute('href') || '';
159                    const hashIndex = href.indexOf('#');
160                    if (hashIndex === -1) return;
161
162                    const targetId = resolveTargetId(href.substring(hashIndex));
163                    if (!targetId || !document.getElementById(targetId)) return;
164
165                    e.preventDefault();
166
167                    closeMobileMenuThen(function () {
168                        smoothScrollToTarget(targetId);
169                        history.pushState(null, '', '#' + targetId);
170                    });
171                });
172            });
173        });
174
175        window.addEventListener('load', function () {
176            const targetId = resolveTargetId(window.location.hash);
177            if (targetId && document.getElementById(targetId)) {
178                setTimeout(function () {
179                    smoothScrollToTarget(targetId);
180                }, 150);
181            }
182        });
183    })();
184</script>
184
185
186
187
188
189    <main id="top">
190        <section class="banner-section">
191            <div class="container">
192
193                <div class="d-flex align-items-center section-wrap">
194                    <div class="col-xl-7 col-lg-8 col-md-10 col-sm-12 hero-left-section">
195                        <h1>Travel data in 200+ <br> destinations</h1>
196                        <p class="hero-desc">Prepaid plans from $1.99. Activate your eSIM in seconds and roam like you're at home.</p>
197                        <div class="search-container hero-search-container">
198                            <div class="input-wrapper hero-search-wrapper">
199                                <input type="text" id="heroDestinationSearch" class="search-box hero-search-pill" placeholder="Where do you need data for?"
200                                    autocomplete="off" />
201                                <button type="button" class="hero-search-btn" aria-label="Search">
202                                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
203                                        <path d="M21 21L15 15M17 10C17 13.866 13.866 17 10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10Z" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
204                                    </svg>
205                                </button>
206                            </div>
207                            <div id="heroSearchDropdown" class="hero-search-dropdown" role="listbox"></div>
208                            <!-- Modal Popup -->
209                            <div class="modal" id="searchModal">
210                                <div class="modal-content">
211                                <span class="close-modal" onclick="closeModal()">×</span>
212                                <h2>Where?</h2>
213                                <div class="modal-input-wrapper input-wrapper">
214                                    <input type="text" class="modal-input" id="countrySearch" placeholder="Enter your destination" />
215                                </div>
216                                <p>Most popular destinations</p>
217
218                                <div class="destinations" id="destinations">
219                                    <div class="card-country-popular"></div>
220                                    <div class="card-country" style="display: none;"></div>
221                                </div>
222                                </div>
223                            </div>
224                        </div>
225                    </div>
226                </div>
227
228            </div>
229        </section>
230
231        <section class="destination-section">
232            <div class="container">
233                <div class="data-structure destination-head">
234                    <div class="destination-head-text">
235                        <h2 class="home-section-title">Most popular destinations</h2>
236                        <p>Travelling to Turkey, the USA, or the UAE? We've got you covered. Our global eSIM plans are designed to match your data needs wherever you go. Just pick your destination, select an affordable eSIM plan, and enjoy instant activation—no roaming fees, no hassle.</p>
237                    </div>
238                    <div class="duration-tabs" id="durationTabs" role="tablist" aria-label="Plan data allowance">
239                        <button type="button" class="duration-tab active" data-gb="Unlimited" role="tab" aria-selected="true">Unlimited</button>
240                        <button type="button" class="duration-tab" data-gb="1 GB" role="tab" aria-selected="false">1 GB</button>
241                        <button type="button" class="duration-tab" data-gb="10 GB" role="tab" aria-selected="false">10 GB</button>
242                    </div>
243                </div>
244                <div class="tab-content mt-5">
245                    <!-- Country Tab -->
246                    <div class="tab-pane fade show active country-region" id="country" role="tabpanel">
247                        <div class="row g-3" id="country-list">
248                        </div>
249                    </div>
250
251                </div>
252
253                <div class="destination-btn">
254                    <a href="https://esimcard.biz/esim-destinations" class="arrow-right">View All Destinations</a>
255                </div>
256            </div>
257        </section>
258
259        <section class="home-stats-section">
260            <div class="container">
261                <div class="home-stats-grid">
262                    <div class="home-stat-item">
263                        <div class="home-stat-number">200+</div>
264                        <div class="home-stat-label">Destinations covered</div>
265                    </div>
266                    <div class="home-stat-item">
267                        <div class="home-stat-number">10K+</div>
268                        <div class="home-stat-label">Travelers connected</div>
269                    </div>
270                    <div class="home-stat-item">
271                        <div class="home-stat-number">4.7★</div>
272                        <div class="home-stat-label">App Store rating</div>
273                    </div>
274                    <div class="home-stat-item">
275                        <div class="home-stat-number">⚡Instant</div>
276                        <div class="home-stat-label">Activation, no delays</div>
277                    </div>
278                </div>
279            </div>
280        </section>
281
282        <section class="benefits features-revamp" id="features">
283            <div class="container">
284                <div class="features-header">
285                    <span class="features-eyebrow">WHY ESIM CARD?</span>
286                    <h2 class="features-title home-section-title">Enjoy reliable and affordable internet anytime, anywhere.</h2>
287                    <p class="features-subtitle">Connect globally with seamless, fast internet — no SIM cards, no extra hassle.</p>
288                </div>
289                <div class="features-grid">
290                    <div class="feature-card">
291                        <div class="feature-icon">
292                            <svg viewBox="0 0 24 24" width="26" height="26" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
293                                <path d="M18.178 8c5.096 0 5.096 8 0 8-5.095 0-7.133-8-12.739-8-4.585 0-4.585 8 0 8 5.606 0 7.644-8 12.74-8z"/>
294                            </svg>
295                        </div>
296                        <h3 class="feature-card-title">Unlimited Data</h3>
297                        <p class="feature-card-text">Access unlimited data for work, streaming, and browsing without worrying about extra charges.</p>
298                    </div>
299                    <div class="feature-card">
300                        <div class="feature-icon">
301                            <svg viewBox="0 0 24 24" width="26" height="26" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
302                                <rect x="5" y="2" width="14" height="20" rx="2" ry="2"/>
303                                <path d="M12 18h.01"/>
304                            </svg>
305                        </div>
306                        <h3 class="feature-card-title">Use Your Favourite Apps</h3>
307                        <p class="feature-card-text">Stay connected to social media, video calls and all your apps wherever you are.</p>
308                    </div>
309                    <div class="feature-card">
310                        <div class="feature-icon">
311                            <svg viewBox="0 0 24 24" width="26" height="26" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
312                                <path d="M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3"/>
313                            </svg>
314                        </div>
315                        <h3 class="feature-card-title">24/7 Customer Support</h3>
316                        <p class="feature-card-text">Our support team is just a message away, ready to assist with any queries or issues.</p>
317                    </div>
318                    <div class="feature-card">
319                        <div class="feature-icon">
320                            <svg viewBox="0 0 24 24" width="26" height="26" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
321                                <path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"/>
322                            </svg>
323                        </div>
324                        <h3 class="feature-card-title">Fast Internet Connection</h3>
325                        <p class="feature-card-text">Seamless and fast internet with a secure, reliable connection tailored to your needs.</p>
326                    </div>
327                </div>
328            </div>
329        </section>
330
331        <section class="testimonial-section home-testimonials-section">
332            <div class="container">
333                <div class="home-testimonials-header">
334                    <span class="home-testimonials-eyebrow">REAL CUSTOMERS</span>
335                    <h2 class="home-testimonials-title home-section-title">Why People Are Choosing <br> eSIM Card</h2>
336                    <p class="home-testimonials-subtitle">A game-changer for global connectivity.</p>
337                </div>
338                <div class="home-testimonials-grid">
339                    <div class="home-review-card">
340                        <div class="home-review-stars" aria-label="Rated 5 out of 5 stars">★★★★★</div>
341                        <p class="home-review-text">"This app is a game-changer! Activating my eSIM was quick and hassle-free. The connection was super reliable, even in remote areas."</p>
342                        <div class="home-reviewer">
343                            <div class="home-reviewer-avatar">J</div>
344                            <div class="home-reviewer-meta">
345                                <span class="home-reviewer-name">John Martinez</span>
346                                <span class="home-reviewer-date">April 2026</span>
347                            </div>
348                        </div>
349                    </div>
350                    <div class="home-review-card">
351                        <div class="home-review-stars" aria-label="Rated 5 out of 5 stars">★★★★★</div>
352                        <p class="home-review-text">"I love the flexibility of the data plans. It's perfect for someone who needs internet for both work and personal use."</p>
353                        <div class="home-reviewer">
354                            <div class="home-reviewer-avatar">E</div>
355                            <div class="home-reviewer-meta">
356                                <span class="home-reviewer-name">Emma Wilson</span>
357                                <span class="home-reviewer-date">March 2026</span>
358                            </div>
359                        </div>
360                    </div>
361                    <div class="home-review-card">
362                        <div class="home-review-stars" aria-label="Rated 5 out of 5 stars">★★★★</div>
363                        <p class="home-review-text">"The app interface is so user-friendly! I had my eSIM activated within minutes. Highly recommended for seamless connectivity."</p>
364                        <div class="home-reviewer">
365                            <div class="home-reviewer-avatar">M</div>
366                            <div class="home-reviewer-meta">
367                                <span class="home-reviewer-name">Michael Jones</span>
368                                <span class="home-reviewer-date">March 2026</span>
369                            </div>
370                        </div>
371                    </div>
372                    <div class="home-review-card">
373                        <div class="home-review-stars" aria-label="Rated 5 out of 5 stars">★★★★</div>
374                        <p class="home-review-text">"Fast internet and no more swapping SIM cards — this app made my life so much easier. Great customer support too!"</p>
375                        <div class="home-reviewer">
376                            <div class="home-reviewer-avatar">S</div>
377                            <div class="home-reviewer-meta">
378                                <span class="home-reviewer-name">Sarah Anderson</span>
379                                <span class="home-reviewer-date">February 2026</span>
380                            </div>
381                        </div>
382                    </div>
383                    <div class="home-review-card">
384                        <div class="home-review-stars" aria-label="Rated 5 out of 5 stars">★★★★</div>
385                        <p class="home-review-text">"Affordable and reliable internet everywhere I go. This app exceeded my expectations. The 24/7 support is a big plus!"</p>
386                        <div class="home-reviewer">
387                            <div class="home-reviewer-avatar">D</div>
388                            <div class="home-reviewer-meta">
389                                <span class="home-reviewer-name">Daniel Clark</span>
390                                <span class="home-reviewer-date">February 2026</span>
391                            </div>
392                        </div>
393                    </div>
394                    <div class="home-review-card">
395                        <div class="home-review-stars" aria-label="Rated 5 out of 5 stars">★★★★★</div>
396                        <p class="home-review-text">"Impressive app! The QR code activation was seamless, and the connection speed was excellent throughout my trip."</p>
397                        <div class="home-reviewer">
398                            <div class="home-reviewer-avatar">O</div>
399                            <div class="home-reviewer-meta">
400                                <span class="home-reviewer-name">Olivia Brown</span>
401                                <span class="home-reviewer-date">January 2026</span>
402                            </div>
403                        </div>
404                    </div>
405                </div>
406            </div>
407        </section>
408
409        <section class="global-users">
410            <div class="container">
411                <div class="row">
412                    <div class="col">
413                        <div class="user-review text-center">
414                            <div class="user-img">
415                                <img src="img/trust-us.svg" alt="trust-us">
416                            </div>
417                            <h3>Trusted by 10K+ Travelers</h3>
418                            <span class="customer-review">Thousands of satisfied users trust our eSIM service for
419                                seamless and reliable global
420                                connectivity, supported by excellent customer reviews.</span>
421                        </div>
422                        <p class="text-center">Stay connected wherever you go with an affordable and reliable eSIM.
423                            Enjoy hassle-free global communication without worrying about high roaming charges and SIM
424                            swaps.</p>
425                    </div>
426                </div>
427            </div>
428        </section>
429
430        <section class="home-how-section" id="how-it-works">
431            <span class="home-how-shape" aria-hidden="true"></span>
432            <div class="container">
433                <div class="home-how-header">
434                    <span class="home-how-eyebrow">SIMPLE &amp; FAST</span>
435                    <h2 class="home-how-title">How does it work?</h2>
436                    <p class="home-how-subtitle">New to eSIM? No Problem! It's simple, affordable, and convenient. With eSIM Card, purchase your data plan now and activate it whenever you're ready to roam!</p>
437                </div>
438                <div class="home-how-grid">
439                    <div class="home-how-step">
440                        <div class="home-how-placeholder">
441                            <img src="https://esimcard.biz/img/Step 1.jpg" alt="Select destination step">
442                        </div>
443                        <div class="home-how-number">1</div>
444                        <p class="home-how-text">Select your destination and pick the data plan most suited to your travel needs.</p>
445                    </div>
446                    <div class="home-how-step">
447                        <div class="home-how-placeholder">
448                            <img src="https://esimcard.biz/img/Step 2.jpg" alt="Activate eSIM step">
449                        </div>
450                        <div class="home-how-number">2</div>
451                        <p class="home-how-text">Download the eSIM Card app and follow the easy on-screen steps to install your eSIM instantly.</p>
452                    </div>
453                    <div class="home-how-step">
454                        <div class="home-how-placeholder">
455                            <img src="https://esimcard.biz/img/Step 3.jpg" alt="Connected plan step">
456                        </div>
457                        <div class="home-how-number">3</div>
458                        <p class="home-how-text">Activate your plan on the app when you're ready, switch your settings and you're good to go!</p>
459                    </div>
460                </div>
461                <div class="home-how-download-container" id="download-app">
462                    <h3 class="home-how-download-title">Download the eSIM Card App</h3>
463                    <div class="home-how-actions">
464                        <a href="https://apple.co/3FNFgsN" target="_blank" rel="noopener" class="home-how-store">
465                            <img src="https://esimcard.biz/img/app-store.svg" alt="Download on the App Store">
466                        </a>
467                    </div>
468                </div>
469            </div>
470        </section>
471
472        <section class="digital-sim" id="digital-sim-card">
473            <div class="container">
474                <div class="d-flex align-items-center section-wrap">
475                    <div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 col-xs-12">
476                        <img src="img/what-is-an-esim.png" alt="What is an eSIM?">
477                    </div>
478                    <div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 col-xs-12">
479                        <h2>What is an eSIM?</h2>
480                        <p>An eSIM card is a built-in digital SIM that allows you to connect to mobile networks instantly no physical SIM, no store visits required. It's the fastest, easiest way to stay connected worldwide, making it the best eSIM for international travel.</p>
481                    </div>
482                </div>
483            </div>
484        </section>
485
486        <section class="home-footer" id="site-footer">
487    <div class="container">
488        <div class="home-footer-inner">
489            <nav class="home-footer-links" aria-label="Footer">
490                <a href="https://esimcard.biz/privacy">Privacy Policy</a>
491                <a href="https://esimcard.biz/terms">Terms of Use</a>
492                <a href="https://esimcard.freshdesk.com/support/home" target="_blank" rel="noopener">FAQs</a>
493                <a href="https://esimcard.biz/contact-us">Contact Us</a>
494                <a href="#digital-sim-card">What is an eSIM?</a>
495            </nav>
496            <p class="home-footer-copy">© 2026 eSIM Card Connect. Seamless
497                Connectivity, Anytime, Anywhere.
498            </p>
499        </div>
500    </div>
501</section>
502
503
504    </main>
505
506    
506<script>
507        var newClass = document.getElementById("searchModal");
508        function openModal() {
509            document.getElementById("searchModal").style.display = "flex";
510            newClass.classList.add('modal-popup-open');
511        }
512
513        function closeModal() {
514            document.getElementById("searchModal").style.display = "none";
515            newClass.classList.remove('modal-popup-open');
516        }
517
518        // Optional: Close on outside click
519        window.onclick = function (event) {
520            const modal = document.getElementById("searchModal");
521            if (event.target === modal) {
522                modal.style.display = "none";
523                newClass.classList.remove('modal-popup-open');
524            }
525        };
526    </script>
526
527
528
529    
529<script src="https://esimcard.biz/js/jquery.min.js"></script>
529
530    
531    
531<script src="https://esimcard.biz/js/jquery.validate.min.js"></script>
531
532    
532<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.js"
533        integrity="sha512-eP8DK17a+MOcKHXC5Yrqzd8WI5WKh6F1TIk5QZ/8Lbv+8ssblcz7oGC8ZmQ/ZSAPa7ZmsCU4e/hcovqR8jfJqA=="
534        crossorigin="anonymous" referrerpolicy="no-referrer"></script>
534
535    
535<script src="https://esimcard.biz/js/script.js"></script>
535
536    
536<script src="https://esimcard.biz/js/bootstrap.bundle.min.js"></script>
536
537    
537<script src="https://esimcard.biz/js/popper.min.js"></script>
537
538
539    
539<script>
540        jQuery(document).ready(function () {
541            // ===== Hero inline search dropdown =====
542            var heroBaseUrl = "https://esimcard.biz";
543            var heroDefaultImg = heroBaseUrl + '/images/country/default.png';
544
545            function renderHeroDropdown() {
546                var term = ($('#heroDestinationSearch').val() || '').trim().toLowerCase();
547                var data = window.heroData;
548                var $dd = $('#heroSearchDropdown');
549
550                if (!data) {
551                    $dd.html('<div class="hero-search-empty">Loading destinations...</div>');
552                    return;
553                }
554
555                var list = term === ''
556                    ? data.popular
557                    : data.all.filter(function (item) {
558                        if (item.name.toLowerCase().indexOf(term) !== -1) {
559                            return true;
560                        }
561                        // Match by city name (e.g. "dubai" -> United Arab Emirates)
562                        return (item.cities || []).some(function (city) {
563                            return String(city).toLowerCase().indexOf(term) !== -1;
564                        });
565                    });
566
567                if (!list.length) {
568                    $dd.html('<div class="hero-search-empty">No destinations found</div>');
569                    return;
570                }
571                var html = list.map(function (item) {
572                    return '<a href="' + item.url + '" class="hero-search-result" role="option">'
573                        + '<img src="' + item.img + '" class="hero-search-result-flag" alt="" '
574                        + 'onerror="this.onerror=null;this.src=\'' + heroDefaultImg + '\';">'
575                        + '<span class="hero-search-result-name"></span>'
576                        + '</a>';
577                }).join('');
578                $dd.html(html);
579                // set names via text() to avoid HTML injection from response data
580                $dd.find('.hero-search-result-name').each(function (i) {
581                    $(this).text(list[i].name);
582                });
583            }
584            function showHeroDropdown() {
585                renderHeroDropdown();
586                $('#heroSearchDropdown').addClass('open');
587            }
588            function hideHeroDropdown() {
589                $('#heroSearchDropdown').removeClass('open');
590            }
591
592            $('#heroDestinationSearch').on('focus click', function () { showHeroDropdown(); });
593            $('#heroDestinationSearch').on('input', function () { showHeroDropdown(); });
594            $('.hero-search-btn').on('click', function (e) {
595                e.preventDefault();
596                $('#heroDestinationSearch').trigger('focus');
597                showHeroDropdown();
598            });
599            $(document).on('click', function (e) {
600                if (!$(e.target).closest('.hero-search-container').length) {
601                    hideHeroDropdown();
602                }
603            });
604            $(document).on('keydown', function (e) {
605                if (e.key === 'Escape' || e.keyCode === 27) { hideHeroDropdown(); }
606            });
607
608            // ===== Destination plan GB tabs =====
609            window.selectedPlanGb = window.selectedPlanGb || 'Unlimited';
610            var heroSearchDestinations = [];
611            var popularDestinations = [];
612
613            function normalizeGbKey(value) {
614                return String(value || '')
615                    .toLowerCase()
616                    .replace(/\s+/g, '')
617                    .replace('-', '');
618            }
619
620            function parsePriceNumber(value) {
621                var number = Number(String(value || '').replace(/[^0-9.]/g, ''));
622                return Number.isFinite(number) && number > 0 ? number : Number.POSITIVE_INFINITY;
623            }
624
625            function getSelectedGbPriceRaw(item, selectedGbKey) {
626                if (!item) return null;
627
628                var prices = item.prices || {};
629                if (prices[selectedGbKey] !== undefined && prices[selectedGbKey] !== null) {
630                    return prices[selectedGbKey];
631                }
632
633                var matchingKey = Object.keys(prices).find(function (key) {
634                    return normalizeGbKey(key) === selectedGbKey;
635                });
636
637                if (matchingKey) {
638                    return prices[matchingKey];
639                }
640
641                return null;
642            }
643
644            function getSelectedGbPrice(item, selectedGbKey) {
645                return parsePriceNumber(getSelectedGbPriceRaw(item, selectedGbKey));
646            }
647
648            function renderPopularCountries(gbCategory) {
649                var $grid = $('#country-list');
650                if (!$grid.length) {
651                    console.error('Popular destinations grid not found');
652                    return;
653                }
654
655                $grid.empty();
656                var url = "https://esimcard.biz";
657                var allItems = window.popularCountriesData || popularDestinations || [];
658                if (!Array.isArray(allItems)) return;
659
660                var selectedGbKey = normalizeGbKey(gbCategory);
661                var filteredDestinations = allItems.filter(function (country) {
662                    return country && country.code && getSelectedGbPrice(country, selectedGbKey) !== Number.POSITIVE_INFINITY;
663                });
664
665                if (!filteredDestinations.length) {
666                    console.warn('Popular filter returned empty for ' + gbCategory + ', falling back to full data');
667                    filteredDestinations = allItems.filter(function (country) { return country && country.code; });
668                }
669
670                var sortedDestinations = filteredDestinations.slice();
671                try {
672                    sortedDestinations.sort(function (a, b) {
673                        return getSelectedGbPrice(a, selectedGbKey) - getSelectedGbPrice(b, selectedGbKey);
674                    });
675                } catch (error) {
676                    console.error('Sorting popular destinations failed:', error);
677                    sortedDestinations = filteredDestinations;
678                }
679
680                $.each(sortedDestinations, function (index, country) {
681                    var countrySlug = (country.sitemapSlug && country.sitemapSlug.trim() !== '')
682                        ? country.sitemapSlug
683                        : 'esim-' + country.code.toLowerCase();
684                    var priceVal = getSelectedGbPriceRaw(country, selectedGbKey);
685
686                    if (priceVal === undefined || priceVal === null) {
687                        priceVal = country.minPrice || '';
688                    }
689
690                    var countryCard = `
691                    <div class="col-12 col-md-6 col-lg-4 country-card">
692                        <a href="${url + (countrySlug.charAt(0) === '/' ? countrySlug : '/' + countrySlug)}" class="card-destination">
693                            <img src="${country.flag || url + '/images/country/default.png'}" class="flag-img" alt="${country.name}"
694                                onerror="this.onerror=null; this.src='${url}/images/country/default.png';">
695                            <div>
696                                <div class="fw-bold country-name">${country.name}</div>
697                                <div class="plans-row">
698                                    <span class="country-rate">From USD ${priceVal}</span>
699                                    <div class="discount-badge">10% OFF</div>                                </div>
700                            </div>
701                        </a>
702                    </div>`;
703                    $grid.append(countryCard);
704                });
705            }
706            $('#durationTabs').on('click', '.duration-tab', function () {
707                var $tab = $(this);
708                if ($tab.hasClass('active')) { return; }
709                $tab.siblings('.duration-tab').removeClass('active').attr('aria-selected', 'false');
710                $tab.addClass('active').attr('aria-selected', 'true');
711
712                const selectedGb = $tab.data('gb');
713                window.selectedPlanGb = selectedGb;
714
715                // Height locking and smooth fade transition
716                const $list = $('#country-list');
717                const currentHeight = $list.outerHeight();
718                $list.css('min-height', currentHeight + 'px');
719
720                $list.fadeOut(100, function () {
721                    renderPopularCountries(selectedGb);
722                    $list.fadeIn(100, function () {
723                        $list.css('min-height', '');
724                    });
725                });
726            });
727
728            $.ajax({
729                url: "https://esimcard.biz/api/countries-regions",
730                method: 'GET',
731                dataType: 'json',
732                success: function (response) {
733                    let url = "https://esimcard.biz";
734                    let countries = Array.isArray(response.country_list) ? response.country_list : [];
735                    let regions = Array.isArray(response.continent_list) ? response.continent_list : [];
736
737                    let selectedCountries = ['TR', 'US', 'TH', 'MY', 'AE', 'CN', 'JP', 'FR', 'IN']; // Example selected countries
738                    let filteredCountries = selectedCountries.map(code =>
739                        countries.find(country => country && country.code && normalizeGbKey(country.code) === normalizeGbKey(code))
740                    ).filter(Boolean);
741
742                    if (!filteredCountries.length) {
743                        console.warn('Popular country codes were not found; falling back to first countries in response.');
744                        filteredCountries = countries.slice(0, selectedCountries.length);
745                    }
746
747                    popularDestinations = filteredCountries;
748                    window.popularCountriesData = popularDestinations;
749
750                    // Render default active tab (Unlimited)
751                    renderPopularCountries('Unlimited');
752
753                    $('#destinations .card-country-popular, #destinations .card-country').empty();
754
755                    let popularCountries = ['TR', 'US', 'TH', 'MY', 'AE', 'CN', 'IN'];
756                    let filterPopularCountries = popularCountries.map(code =>
757                        countries.find(country => country && country.code && normalizeGbKey(country.code) === normalizeGbKey(code))
758                    ).filter(Boolean);
759
760                    $.each(filterPopularCountries, function (index, country) {
761                        let countrySlug = (country.sitemapSlug && country.sitemapSlug.trim() !== '')
762                            ? country.sitemapSlug
763                            : 'esim-'+country.code.toLowerCase();
764                        let countryCard = `
765                        <div class="destination">
766                            <a href="${url+countrySlug}" class="card-destination">
767                                <img src="${country.flag || url + '/images/country/default.png'}" alt="${country.name}"
768                                    onerror="this.onerror=null; this.src='${url}/images/country/default.png';">
769                                <div class="destination-info">
770                                    <span class="destination-name">${country.name}</span>
771                                    <div class="plans-row">
772                                        <span class="destination-price">From USD ${country.minPrice}</span>
773                                        <div class="discount-badge">10% OFF</div>                                    </div>
774                                </div>
775                            </a>
776                        </div>`;
777
778                        $('#destinations .card-country-popular').append(countryCard);
779                    });
780
781                    $.each(countries, function (index, country) {
782                        let countrySlug = (country.sitemapSlug && country.sitemapSlug.trim() !== '')
783                            ? country.sitemapSlug
784                            : 'esim-'+country.code.toLowerCase();
785                        let countryCard = `
786                        <div class="destination">
787                            <a href="${url+countrySlug}" class="card-destination">
788                                <img src="${country.flag || url + '/images/country/default.png'}" alt="${country.name}"
789                                    onerror="this.onerror=null; this.src='${url}/images/country/default.png';">
790                                <div class="destination-info">
791                                    <span class="destination-name">${country.name}</span>
792                                    <div class="plans-row">
793                                        <span class="destination-price">From USD ${country.minPrice}</span>
794                                        <div class="discount-badge">10% OFF</div>                                    </div>
795                                </div>
796                            </a>
797                        </div>`;
798
799                        $('#destinations .card-country').append(countryCard);
800                    });
801
802                    $.each(regions, function (index, region) {
803                        let regionSlug = (region.sitemapSlug && region.sitemapSlug.trim() !== '')
804                            ? region.sitemapSlug
805                            : 'esim-'+region.code.toLowerCase();
806                        let regionCard = `
807                        <div class="destination">
808                            <a href="${url+regionSlug}" class="card-destination">
809                                <img src="${region.flag || url + '/images/country/default.png'}" alt="${region.name}"
810                                    onerror="this.onerror=null; this.src='${url}/images/country/default.png';">
811                                <div class="destination-info">
812                                    <span class="destination-name">${region.name}</span>
813                                    <div class="plans-row">
814                                        <span class="destination-price">From USD ${region.minPrice}</span>
815                                        <div class="discount-badge">10% OFF</div>                                    </div>
816                                </div>
817                            </a>
818                        </div>`;
819
820                        $('#destinations .card-country').append(regionCard);
821                    });
822
823                    // ---- Hero inline search: build data from the same response ----
824                    function heroCountryItem(c) {
825                        var slug = (c.sitemapSlug && c.sitemapSlug.trim() !== '')
826                            ? c.sitemapSlug
827                            : 'esim-' + c.code.toLowerCase();
828                        return {
829                            name: c.name,
830                            img: c.flag || heroDefaultImg,
831                            url: url + slug,
832                            cities: Array.isArray(c.cities) ? c.cities : []
833                        };
834                    }
835                    function heroRegionItem(r) {
836                        var slug = (r.sitemapSlug && r.sitemapSlug.trim() !== '')
837                            ? r.sitemapSlug
838                            : 'esim-' + r.code.toLowerCase();
839                        return { name: r.name, img: r.flag || heroDefaultImg, url: url + slug };
840                    }
841                    var heroPopularSpec = [
842                        { kind: 'region', key: 'Europe' },
843                        { kind: 'country', key: 'US' },
844                        { kind: 'country', key: 'TR' },
845                        { kind: 'country', key: 'AE' },
846                        { kind: 'country', key: 'JP' },
847                        { kind: 'country', key: 'IN' },
848                        { kind: 'country', key: 'TH' },
849                        { kind: 'country', key: 'MY' },
850                        { kind: 'country', key: 'FR' }
851                    ];
852                    var heroPopular = [];
853                    heroPopularSpec.forEach(function (spec) {
854                        if (spec.kind === 'country') {
855                            var c = countries.find(function (x) { return x.code === spec.key; });
856                            if (c) heroPopular.push(heroCountryItem(c));
857                        } else {
858                            var r = regions.find(function (x) {
859                                return x.name && x.name.toLowerCase() === spec.key.toLowerCase();
860                            });
861                            if (r) heroPopular.push(heroRegionItem(r));
862                        }
863                    });
864                    window.heroData = {
865                        popular: heroPopular,
866                        all: countries.map(heroCountryItem).concat(regions.map(heroRegionItem))
867                    };
868                    heroSearchDestinations = window.heroData.all;
869                    // refresh if the dropdown is already open while data loads
870                    if ($('#heroSearchDropdown').hasClass('open')) { renderHeroDropdown(); }
871                },
872                error: function () {
873                    console.warn('Failed to fetch data');
874                }
875            });
876            $('#countrySearch').on('input', function () {
877                const searchTerm = this.value.toLowerCase();
878                if (searchTerm !== '') {
879                    $('.card-country-popular').hide();
880                    $('.card-country').show();
881
882                    $('.destinations .card-country .destination').each(function () {
883                        const name = $(this).find('.destination-name').text().toLowerCase();
884                        $(this).toggle(name.includes(searchTerm));
885                    });
886                } else {
887                    $('.card-country-popular').show();
888                    $('.card-country').hide();
889                    $('.destinations .card-country .destination').each(function () {
890                        $(this).show();
891                    });
892                }
893            });
894        });
895    </script>
895
896
897
898    <link rel="stylesheet" href="https://esimcard.biz/css/promo-coupon.css?v=1.0.0">
899
900<!-- Overlay Background -->
901<div class="promo-overlay" aria-hidden="true"></div>
902
903<!-- Desktop/Tablet Modal -->
904<div class="promo-modal" role="dialog" aria-modal="true" aria-labelledby="promoModalTitle" aria-describedby="promoModalDesc">
905    <button class="promo-close-btn" id="promoModalCloseBtn" aria-label="Close promotion">
906        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
907            <line x1="18" y1="6" x2="6" y2="18"></line>
908            <line x1="6" y1="6" x2="18" y2="18"></line>
909        </svg>
910    </button>
911    <img src="https://esimcard.biz/images/logo-new.svg" alt="eSIM Card" class="promo-logo">
912    <h2 class="promo-title" id="promoModalTitle">Special Offer Just For You</h2>
913    <p class="promo-description" id="promoModalDesc">
914        Get 10% OFF on your first eSIM purchase.<br>Use the coupon code below at checkout.
915    </p>
916    <div class="promo-coupon-card" aria-label="Coupon code">GLOBAL10</div>
917    <button class="promo-primary-btn" id="promoModalCopyBtn">Copy Coupon Code</button>
918    <button class="promo-secondary-btn" id="promoModalLaterBtn">Maybe Later</button>
919</div>
920
921<!-- Mobile Bottom Sheet -->
922<div class="promo-sheet" role="dialog" aria-modal="true" aria-labelledby="promoSheetTitle" aria-describedby="promoSheetDesc">
923    <div class="promo-sheet-handle" aria-hidden="true"></div>
924    <img src="https://esimcard.biz/images/logo-new.svg" alt="eSIM Card" class="promo-logo">
925    <h2 class="promo-title" id="promoSheetTitle">Special Offer Just For You</h2>
926    <p class="promo-description" id="promoSheetDesc">
927        Get 10% OFF on your first eSIM purchase.<br>Use the coupon code below at checkout.
928    </p>
929    <div class="promo-coupon-card" aria-label="Coupon code">GLOBAL10</div>
930    <button class="promo-primary-btn" id="promoSheetCopyBtn">Copy Coupon Code</button>
931    <button class="promo-secondary-btn" id="promoSheetCloseBtn">Close</button>
932</div>
933
934<!-- Premium Floating Coupon Pill Trigger (All Devices) -->
935<div class="promo-pill-wrapper" id="promoPillWrapper">
936    <div class="promo-pill-float-container">
937        <button class="promo-floating-pill" id="promoFloatingPill" aria-label="Open first purchase 10% off coupon promotion">
938            <div class="promo-pill-left">
939                <span class="promo-pill-title">🎁 10% OFF Available</span>
940                <span class="promo-pill-subtitle">Use Code: <strong class="promo-pill-code">GLOBAL10</strong></span>
941            </div>
942            <div class="promo-pill-right">
943                <span class="promo-pill-tag">Offer Saved</span>
944            </div>
945        </button>
946    </div>
947</div>
948
949<script src="https://esimcard.biz/js/promo-coupon.js" defer></script>
949
950</body>
951
952</html>

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