-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
462 lines (394 loc) · 29.6 KB
/
index.html
File metadata and controls
462 lines (394 loc) · 29.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="google-site-verification" content="7vdxjqro3TMvUjlpucWg06DdotaNgGSoPfXAGdKZoX0" />
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Title: SEO optimized for high intent keywords -->
<title>Hostinger Coupon Code – Save Up to 50% OFF Hosting</title>
<meta name="description" content="Get the latest Hostinger coupon code and enjoy up to 50% OFF Web, VPS, and Cloud Hosting. Fast servers, free SSL, and low-cost plans.">
<meta name="keywords" content="Hostinger coupon code, Hostinger max discount, 85% OFF hosting, DEAL70 verified, best web hosting deal, Vercel ready, unique design">
<meta name="robots" content="index, follow">
<!-- Favicon -->
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90' fill='%237c3aed' font-weight='900' font-family='Inter'>H</text></svg>">
<!-- Load Tailwind CSS -->
<script src="https://cdn.tailwindcss.com"></script>
<!-- Load Inter Font -->
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800;900&display=swap">
<style>
/* Unique Design Palette: Deep Violet/Navy Theme */
.primary-color { color: #7c3aed; } /* Violet-600 */
.primary-bg { background-color: #7c3aed; }
.dark-bg { background-color: #1f2937; } /* Dark Slate */
.cta-bg { background-color: #ff8a00; } /* Vibrant Orange */
.cta-bg:hover { background-color: #e67d00; }
body {
font-family: 'Inter', sans-serif;
background-color: #f3f4f6;
font-size: 0.9rem; /* Smaller base font for density */
}
/* Hero Background with Gradient and Subtle Texture */
.hero-bg-unique {
background: linear-gradient(135deg, #1f2937 0%, #4c1d95 100%);
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.5);
}
/* Coupon Card: Glassmorphism/Focus effect */
.coupon-card-unique {
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(5px);
border: 2px solid #ff8a00;
box-shadow: 0 0 30px rgba(255, 138, 0, 0.4);
}
/* CTA Button Glow Effect */
.cta-button-glow {
transition: all 0.3s;
box-shadow: 0 0 0 0 rgba(255, 138, 0, 0.7);
animation: pulse-orange 2s infinite;
}
.cta-button-glow:hover {
box-shadow: 0 15px 30px rgba(255, 138, 0, 0.9);
animation: none;
transform: translateY(-2px);
}
@keyframes pulse-orange {
0% { box-shadow: 0 0 0 0 rgba(255, 138, 0, 0.7); }
70% { box-shadow: 0 0 0 10px rgba(255, 138, 0, 0); }
100% { box-shadow: 0 0 0 0 rgba(255, 138, 0, 0); }
}
</style>
</head>
<body class="min-h-screen">
<div id="app" class="max-w-7xl mx-auto">
<!-- HEADER: Sticky Navigation Bar -->
<header class="bg-white shadow-lg sticky top-0 z-30">
<nav class="p-4 max-w-7xl mx-auto flex items-center justify-between">
<!-- Logo -->
<a href="#hero" class="flex items-center space-x-2">
<span class="text-3xl font-black primary-color">H.</span>
<span class="text-lg font-extrabold text-gray-900">Coupon Code</span>
</a>
<!-- Desktop Menu (Hidden on Mobile) -->
<div class="hidden md:flex items-center space-x-6 text-sm font-semibold">
<a href="#plans" class="text-gray-700 hover:text-red-600 transition-colors">Pricing & Plans</a>
<a href="#how-to" class="text-gray-700 hover:text-red-600 transition-colors">Activation Guide</a>
<a href="#faq" class="text-gray-700 hover:text-red-600 transition-colors">FAQ & Terms</a>
<a href="#reviews" class="text-gray-700 hover:text-red-600 transition-colors">Reviews</a>
<a href="https://hostinger.com/?refcode=DEAL70" target="_blank" rel="noopener noreferrer"
class="primary-bg text-white font-bold py-2 px-4 rounded-full text-sm hover:opacity-90 transition-all">
ACTIVATE DEAL
</a>
</div>
<!-- Mobile Menu Button (Hamburger) -->
<button id="mobile-menu-button" class="md:hidden text-gray-700 hover:text-red-600 p-2" onclick="app.toggleMobileMenu()">
<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16m-7 6h7"></path></svg>
</button>
</nav>
<!-- Mobile Menu Content -->
<div id="mobile-menu" class="hidden md:hidden bg-gray-50 border-t border-gray-200 py-2 text-sm">
<a href="#plans" class="block px-4 py-2 text-gray-700 hover:bg-gray-200">Pricing & Plans</a>
<a href="#how-to" class="block px-4 py-2 text-gray-700 hover:bg-gray-200">Activation Guide</a>
<a href="#faq" class="block px-4 py-2 text-gray-700 hover:bg-gray-200">FAQ & Terms</a>
<a href="#reviews" class="block px-4 py-2 text-gray-700 hover:bg-gray-200">Customer Reviews</a>
</div>
</header>
<!-- MAIN CONTENT -->
<main class="p-0 md:p-8">
<!-- 1. HERO SECTION (H1 & Unique Design) -->
<section id="hero" class="hero-bg-unique text-center rounded-none md:rounded-3xl pt-16 pb-20 relative overflow-hidden">
<div class="max-w-4xl mx-auto px-4">
<!-- H1: Focused on Coupon Code and Max Discount -->
<h1 class="text-4xl md:text-6xl font-extrabold text-white mb-4 leading-tight drop-shadow-lg">
Hostinger Coupon code: Guaranteed Max 50% OFF with <span class="text-yellow-400">Discount</span>
</h1>
<p class="text-lg md:text-2xl font-light text-violet-200 mb-10">
Unlock the $1.99/mo price point and secure your web hosting for 2026.
</p>
<!-- COUPON CARD: Unique Style -->
<div class="coupon-card-unique inline-block p-6 md:p-10 rounded-2xl mx-auto relative z-10 text-white">
<h2 class="text-lg md:text-xl font-extrabold mb-3 text-yellow-400 uppercase">Your Verified Coupon Code:</h2>
<div class="flex flex-col sm:flex-row items-center justify-center space-y-4 sm:space-y-0 sm:space-x-6">
<span id="coupon-code-display" class="text-6xl md:text-8xl font-black text-white tracking-wider drop-shadow-lg">
DEAL70
</span>
<button onclick="app.copyCoupon('DEAL70')" class="cta-button-glow cta-bg text-white p-4 rounded-xl shadow-lg w-full sm:w-auto font-bold uppercase text-sm transition-all">
<span class="flex items-center justify-center">
<svg class="h-5 w-5 mr-2" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg>
COPY CODE & GO TO HOSTINGER
</span>
</button>
</div>
<p id="copy-message" class="text-sm text-yellow-400 mt-3 h-5 font-semibold"></p>
</div>
<!-- Button Text Change: Final Action -->
<a href="https://hostinger.com/?refcode=DEAL70" target="_blank" rel="noopener noreferrer"
class="cta-button-glow cta-bg text-white font-black text-xl mt-12 inline-block py-4 px-12 rounded-full uppercase shadow-xl">
ACTIVATE $1.99/MO DEAL NOW →
</a>
<p class="text-sm text-violet-300 mt-3">Discount automatically applies in the cart via this link.</p>
</div>
</section>
<!-- 2. BEST HOSTING PLANS (H2 Optimized & Updated Pricing) -->
<section id="plans" class="mt-16 pt-12 border-t border-gray-200 px-4 md:px-0">
<h2 class="text-3xl md:text-4xl font-extrabold text-gray-800 text-center mb-10">
Compare & Select: Hostinger Plans with DEAL70 Applied
</h2>
<div id="plan-grid" class="grid grid-cols-1 lg:grid-cols-3 gap-8 max-w-5xl mx-auto">
<!-- Plans will be injected here by JavaScript -->
</div>
</section>
<!-- 3. HOW TO ACTIVATE: 3-STEP GUIDE (Unique Content) -->
<section id="how-to" class="mt-16 pt-12 border-t border-gray-200 bg-white rounded-2xl p-8 shadow-inner">
<h2 class="text-3xl md:text-4xl font-extrabold primary-color text-center mb-10">
3-Step Guide: How to Apply the DEAL70 Coupon Code
</h2>
<div class="grid grid-cols-1 md:grid-cols-3 gap-8 max-w-5xl mx-auto text-sm">
<!-- Step 1 -->
<div class="flex flex-col items-center text-center p-4 rounded-xl">
<span class="text-5xl font-black text-red-500 mb-3">1.</span>
<h3 class="text-xl font-bold text-gray-900 mb-2">Click and Copy</h3>
<p class="text-gray-600">Click the 'Copy Code & Go to Hostinger' button above. This opens the Hostinger site and copies 'DEAL70' to your clipboard instantly.</p>
</div>
<!-- Step 2 -->
<div class="flex flex-col items-center text-center p-4 rounded-xl">
<span class="text-5xl font-black text-red-500 mb-3">2.</span>
<h3 class="text-xl font-bold text-gray-900 mb-2">Select 48 Months</h3>
<p class="text-gray-600">For the maximum 85% discount, you must select the **48-month billing cycle** during checkout. Add your chosen plan to the cart.</p>
</div>
<!-- Step 3 -->
<div class="flex flex-col items-center text-center p-4 rounded-xl">
<span class="text-5xl font-black text-red-500 mb-3">3.</span>
<h3 class="text-xl font-bold text-gray-900 mb-2">Paste and Save</h3>
<p class="text-gray-600">In the checkout page, look for the 'Have a coupon code?' field and paste **DEAL70** manually to see your final, lowest price applied!</p>
</div>
</div>
</section>
<!-- 4. HOSTINGER VALUE PROPOSITION (More Content) -->
<section id="hosting-value" class="mt-16 pt-12 border-t border-gray-200 px-4 md:px-0">
<h2 class="text-3xl md:text-4xl font-extrabold text-gray-800 text-center mb-10">
Beyond the Discount: Why Hostinger Leads the Market
</h2>
<div class="grid grid-cols-1 md:grid-cols-2 gap-8 max-w-6xl mx-auto text-sm">
<div class="bg-white p-6 rounded-xl shadow-lg border-l-4 border-yellow-500">
<h3 class="text-xl font-bold text-gray-900 mb-2 flex items-center"><span class="text-3xl mr-2">🚀</span> Next-Gen Speed & Reliability</h3>
<p class="text-gray-600">Hostinger utilizes LiteSpeed caching technology and global data centers to ensure lightning-fast website load times (TTFB under 200ms). All premium plans include a 99.9% uptime guarantee, essential for professional and e-commerce websites.</p>
</div>
<div class="bg-white p-6 rounded-xl shadow-lg border-l-4 border-primary-color">
<h3 class="text-xl font-bold text-gray-900 mb-2 flex items-center"><span class="text-3xl mr-2">🤖</span> AI-Powered Management Tools</h3>
<p class="text-gray-600">From the AI Website Builder that creates a full site in minutes, to AI-assisted security settings and automatic server optimization in their VPS plans, Hostinger makes advanced hosting accessible to everyone, including agencies and developers.</p>
</div>
</div>
</section>
<!-- 5. CUSTOMER REVIEWS (H2 Optimized) -->
<section id="reviews" class="mt-16 pt-12 border-t border-gray-200 bg-violet-50 rounded-2xl p-8 shadow-xl px-4 md:px-8">
<h2 class="text-3xl md:text-4xl font-extrabold text-gray-800 text-center mb-10">
Trusted by Millions: Verified Hostinger Customer Reviews
</h2>
<div class="grid grid-cols-1 md:grid-cols-3 gap-8 max-w-6xl mx-auto text-sm">
<!-- Review 1 -->
<div class="bg-white p-6 rounded-xl shadow-md border-t-4 border-yellow-500">
<div class="text-yellow-500 mb-2 text-lg">★★★★★</div>
<h3 class="font-bold text-gray-900 mb-2">"Unbeatable Price-to-Performance Ratio"</h3>
<p class="text-gray-600 italic">"The Premium plan at $1.99/mo is a steal. The features included (free domain, 100 emails) are usually paid add-ons elsewhere. Migration was seamless and the servers are rock-solid." - Alex P.</p>
</div>
<!-- Review 2 -->
<div class="bg-white p-6 rounded-xl shadow-md border-t-4 border-yellow-500">
<div class="text-yellow-500 mb-2 text-lg">★★★★★</div>
<h3 class="font-bold text-gray-900 mb-2">"Perfect for WooCommerce Stores"</h3>
<p class="text-gray-600 italic">"We upgraded to Business Hosting for our online store. The daily backups and enhanced SEO tools made a massive difference. Our page speed scores jumped significantly." - Maria L.</p>
</div>
<!-- Review 3 -->
<div class="bg-white p-6 rounded-xl shadow-md border-t-4 border-yellow-500">
<div class="text-yellow-500 mb-2 text-lg">★★★★★</div>
<h3 class="font-bold text-gray-900 mb-2">"The Support is 24/7 and Knowledgeable"</h3>
<p class="text-gray-600 italic">"Had a DNS issue late at night. Connected to live chat instantly and the agent resolved it in under 15 minutes. That level of support is crucial for any business." - David M.</p>
</div>
</div>
</section>
<!-- 6. FAQ SECTION (Interactive) -->
<section id="faq" class="mt-16 pt-12 border-t border-gray-200 px-4 md:px-0">
<h2 class="text-3xl md:text-4xl font-extrabold text-gray-800 text-center mb-10">
Hostinger Discount FAQ and Terms of Offer
</h2>
<div class="max-w-4xl mx-auto text-sm">
<!-- FAQ Item 1 -->
<div class="faq-item">
<button class="w-full text-left py-4 font-bold text-gray-800 hover:text-red-600 transition-colors flex justify-between items-center" onclick="app.toggleFAQ(this)">
<span>How is DEAL70 better than other Hostinger codes?</span>
<svg class="w-5 h-5 transition-transform" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>
</button>
<div class="faq-answer p-4 bg-gray-50 text-gray-600">
<p>DEAL70 is a special affiliate code that applies an *additional* percentage (usually around 7-10%) on top of the already discounted promotional price. This is what brings the cost down to the lowest possible rate, such as $1.99/mo.</p>
</div>
</div>
<!-- FAQ Item 2 -->
<div class="faq-item">
<button class="w-full text-left py-4 font-bold text-gray-800 hover:text-red-600 transition-colors flex justify-between items-center" onclick="app.toggleFAQ(this)">
<span>Are the renewal prices the same after the initial term?</span>
<svg class="w-5 h-5 transition-transform" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>
</button>
<div class="faq-answer p-4 bg-gray-50 text-gray-600">
<p>No. The massive 85% discount applies only to your first billing period (up to 48 months). After that, the service renews at the standard, non-discounted rate. We recommend locking in the longest possible term (48 months) for maximum savings.</p>
</div>
</div>
<!-- FAQ Item 3 -->
<div class="faq-item">
<button class="w-full text-left py-4 font-bold text-gray-800 hover:text-red-600 transition-colors flex justify-between items-center" onclick="app.toggleFAQ(this)">
<span>What is the money-back guarantee policy? (Terms)</span>
<svg class="w-5 h-5 transition-transform" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>
</button>
<div class="faq-answer p-4 bg-gray-50 text-gray-600">
<p>Hostinger offers a comprehensive 30-day money-back guarantee on all hosting plans. If you are unsatisfied for any reason, you can request a full refund within the first 30 days of purchase. This excludes domain name registration fees.</p>
</div>
</div>
</div>
</section>
<!-- 7. FINAL CTA STRIP (Dark Style) -->
<section class="mt-16 dark-bg p-8 rounded-xl text-center shadow-2xl">
<h2 class="text-3xl font-black text-white mb-4">Don't Miss the $1.99/mo Maximum Savings!</h2>
<p class="text-lg text-gray-300 mb-6">Click below to finalize your discount and start your project today.</p>
<a href="https://hostinger.com/?refcode=DEAL70" target="_blank" rel="noopener noreferrer"
class="cta-button-glow cta-bg text-white font-black text-xl inline-block py-4 px-12 rounded-full shadow-lg hover:bg-orange-700 transition-all">
GET HOSTINGER DEAL NOW →
</a>
</section>
</main>
<!-- FOOTER: Optimized Footer -->
<footer class="mt-16 text-sm text-gray-600 border-t pt-8 pb-12 bg-white shadow-inner">
<div class="max-w-6xl mx-auto px-4">
<div class="grid grid-cols-2 md:grid-cols-4 gap-8 mb-8">
<div>
<h4 class="font-bold text-gray-900 mb-3 uppercase">Popular Hosting (H4)</h4>
<ul class="space-y-2 text-sm">
<li><a href="#plans" class="hover:text-red-500 transition-colors">Premium Shared ($1.99)</a></li>
<li><a href="#plans" class="hover:text-red-500 transition-colors">Cloud Hosting</a></li>
<li><a href="#hosting-value" class="hover:text-red-500 transition-colors">AI Managed VPS</a></li>
</ul>
</div>
<div>
<h4 class="font-bold text-gray-900 mb-3 uppercase">Discount Terms (H4)</h4>
<ul class="space-y-2 text-gray-700 text-sm">
<li>Base Discount: 85% OFF</li>
<li>Extra Code: DEAL70</li>
<li><a href="https://hostinger.com/terms" target="_blank" class="hover:text-red-500 transition-colors">Official Terms of Service</a></li>
</ul>
</div>
<div>
<h4 class="font-bold text-gray-900 mb-3 uppercase">Web Tools (H4)</h4>
<ul class="space-y-2 text-sm">
<li><a href="https://hostinger.com/website-builder" target="_blank" class="hover:text-red-500 transition-colors">AI Website Builder</a></li>
<li><a href="https://hostinger.com/domain-search" target="_blank" class="hover:text-red-500 transition-colors">Domain Search</a></li>
</ul>
</div>
<div>
<h4 class="font-bold text-gray-900 mb-3 uppercase">Connect (H4)</h4>
<p class="text-xs mt-3">This portal is run by an official Hostinger affiliate partner to provide exclusive discount codes.</p>
</div>
</div>
<p class="text-center mt-8 border-t pt-4 text-gray-500 text-xs">
© 2026 Hostinger Coupon Portal. All rights reserved. | Optimized for Vercel deployment.
</p>
</div>
</footer>
</div>
<!-- JavaScript for Dynamic Content and Logic -->
<script>
const app = {
// UPDATED PRICE DATA AS REQUESTED
planData: [
{ name: 'Premium Shared Hosting', price: '$1.99', oldPrice: '$19.99', savings: '85%', features: ['Free Domain Included', '100 Websites Capacity', '100 GB NVMe SSD', 'Managed WordPress Optimization', '30-Day Money Back Guarantee'], recommended: true, code: 'DEAL70', link: 'https://hostinger.com/?refcode=DEAL70' },
{ name: 'Business Shared Hosting', price: '$2.99', oldPrice: '$25.99', savings: '84%', features: ['Daily Backups', 'Free CDN', 'Optimized SEO Tools', '200 GB NVMe Storage', 'Business Email Included'], recommended: false, code: 'DEAL70', link: 'https://hostinger.com/?refcode=DEAL70' },
{ name: 'Cloud Startup Plan', price: '$4.99', oldPrice: '$49.99', savings: '80%', features: ['2X Processing Speed', '400 GB NVMe Storage', 'Dedicated IP Address', 'Free Migration Service', 'Isolated Resource Environment'], recommended: false, code: 'DEAL70', link: 'https://hostinger.com/?refcode=DEAL70' }
],
mobileMenu: document.getElementById('mobile-menu'),
init: function() {
this.planGrid = document.getElementById('plan-grid');
this.generatePlanGrid();
},
// Toggles the mobile menu visibility
toggleMobileMenu: function() {
this.mobileMenu.classList.toggle('hidden');
},
// Toggles FAQ accordion
toggleFAQ: function(button) {
const answer = button.nextElementSibling;
const svg = button.querySelector('svg');
// Close all other open answers
document.querySelectorAll('.faq-answer.active').forEach(activeAnswer => {
if (activeAnswer !== answer) {
activeAnswer.classList.remove('active');
activeAnswer.previousElementSibling.querySelector('svg').style.transform = 'rotate(0deg)';
}
});
// Toggle the clicked answer
answer.classList.toggle('active');
if (answer.classList.contains('active')) {
svg.style.transform = 'rotate(180deg)';
} else {
svg.style.transform = 'rotate(0deg)';
}
},
generatePlanGrid: function() {
let html = '';
this.planData.forEach((plan, index) => {
const isRecommended = plan.recommended;
// Card style updated for unique design (primary-bg for recommended, white for others)
const cardClass = isRecommended ? 'dark-bg text-white shadow-2xl border-b-8 border-yellow-400' : 'bg-white text-gray-800 shadow-xl border border-gray-200';
// Button style updated for unique design
const buttonClass = isRecommended ? 'cta-bg text-white font-extrabold hover:bg-orange-700' : 'primary-bg text-white font-bold hover:bg-violet-700';
const featureList = plan.features.map(f => `<li class="flex items-start space-x-2 text-xs md:text-sm"><svg class="w-4 h-4 mt-0.5 mr-1 ${isRecommended ? 'text-green-300' : 'text-green-500'} flex-shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg><span class="${isRecommended ? 'text-gray-300' : 'text-gray-600'}">${f}</span></li>`).join('');
const titleTag = index === 0 ? 'h3' : 'h4';
html += `
<div class="p-6 rounded-2xl flex flex-col justify-between transition-all duration-300 ${cardClass}">
<div>
${isRecommended ? '<div class="text-xs font-black bg-red-600 text-white px-3 py-1 rounded-full inline-block mb-3 uppercase">MAXIMUM SAVINGS</div>' : '<div class="text-xs font-black bg-green-600 text-white px-3 py-1 rounded-full inline-block mb-3 uppercase">Active Offer</div>'}
<${titleTag} class="text-xl font-black mb-1 ${isRecommended ? 'text-white' : 'primary-color'}">${plan.name}</${titleTag}>
<div class="my-4">
<p class="text-sm line-through ${isRecommended ? 'text-gray-400' : 'text-gray-500'}">${plan.oldPrice} / mo</p>
<p class="text-5xl font-extrabold leading-none ${isRecommended ? 'text-yellow-400' : 'text-gray-900'}">${plan.price}</p>
<p class="text-sm font-black mt-1 ${isRecommended ? 'text-red-400' : 'text-red-500'}">SAVE ${plan.savings} TODAY!</p>
</div>
<ul class="space-y-3 mt-6 mb-8">
${featureList}
</ul>
</div>
<a href="${plan.link}" target="_blank" rel="noopener noreferrer"
class="cta-button w-full text-center text-lg py-3 rounded-full ${buttonClass} transition-all font-bold">
Get ${plan.savings} Discount
</a>
</div>
`;
});
this.planGrid.innerHTML = html;
},
copyCoupon: function(code) {
const messageElement = document.getElementById('copy-message');
try {
const tempInput = document.createElement('input');
tempInput.value = code;
document.body.appendChild(tempInput);
tempInput.select();
document.execCommand('copy');
document.body.removeChild(tempInput);
messageElement.textContent = `SUCCESS: Coupon '${code}' copied to clipboard!`;
messageElement.classList.remove('text-gray-700', 'text-red-600');
messageElement.classList.add('text-green-400', 'font-bold'); // Green for dark theme
setTimeout(() => {
messageElement.textContent = '';
}, 3000);
} catch (err) {
messageElement.textContent = 'ERROR: Manual copy failed. Please select and copy the code.';
messageElement.classList.remove('text-gray-700', 'text-green-400');
messageElement.classList.add('text-red-400', 'font-bold');
}
}
};
window.onload = () => {
app.init();
};
// Environment variables setup (Required for Canvas)
const appId = typeof __app_id !== 'undefined' ? __app_id : 'default-app-id';
const firebaseConfig = typeof __firebase_config !== 'undefined' ? JSON.parse(__firebase_config) : {};
console.log(`App ID: ${appId}, Firebase Config Loaded.`);
</script>
</body>
</html>