<style>
/* Main card container */
.discount-section {
max-width: 1300px;
width: 100%;
background: rgba(255, 255, 255, 0.92);
backdrop-filter: blur(2px);
border-radius: 3.5rem;
box-shadow: 0 25px 45px -12px rgba(0, 0, 0, 0.25), 0 8px 18px rgba(0, 0, 0, 0.05);
overflow: hidden;
transition: all 0.3s ease;
}
/* decorative eid pattern overlay */
.discount-section {
position: relative;
background-image: radial-gradient(circle at 10% 20%, rgba(255, 215, 150, 0.2) 2px, transparent 2px),
radial-gradient(circle at 85% 70%, rgba(212, 175, 55, 0.15) 1.5px, transparent 1.5px);
background-size: 32px 32px, 28px 28px;
}
/* inner content wrapper */
.sale-content {
padding: 2.8rem 3rem;
position: relative;
z-index: 2;
}
/* header / badge */
.eid-badge {
display: inline-flex;
align-items: center;
gap: 12px;
background: rgba(46, 34, 21, 0.08);
backdrop-filter: blur(4px);
padding: 0.5rem 1.5rem;
border-radius: 60px;
margin-bottom: 1.5rem;
font-weight: 500;
letter-spacing: 0.3px;
border: 1px solid rgba(212, 175, 55, 0.4);
font-size: 0.9rem;
color: #7a5c2e;
}
.eid-badge span:first-child {
font-size: 1.25rem;
}
/* main headline */
.big-offer {
margin-bottom: 1.2rem;
}
.big-offer h1 {
font-size: 3.8rem;
font-weight: 800;
background: linear-gradient(135deg, #C49A2C, #9C6E1F, #e7b42c);
background-clip: text;
-webkit-background-clip: text;
color: transparent;
letter-spacing: -0.02em;
line-height: 1.2;
}
.highlight {
font-size: 1.2rem;
color: #aa7a2c;
font-weight: 500;
margin-top: 0.25rem;
letter-spacing: -0.2px;
}
/* 40% off hero block */
.discount-hero {
display: flex;
flex-wrap: wrap;
align-items: baseline;
gap: 0.75rem;
margin: 1.8rem 0 1.5rem 0;
background: rgba(241, 226, 190, 0.5);
padding: 0.8rem 1.8rem;
border-radius: 100px;
width: fit-content;
backdrop-filter: blur(4px);
border: 1px solid rgba(212, 175, 55, 0.6);
}
.percent {
font-size: 5rem;
font-weight: 800;
color: #bf8722;
line-height: 1;
text-shadow: 2px 2px 10px rgba(0,0,0,0.05);
}
.off-text {
font-size: 2rem;
font-weight: 600;
color: #4e3a22;
letter-spacing: 1px;
}
.discount-tagline {
font-size: 1.35rem;
font-weight: 500;
color: #664d26;
margin-left: 0.5rem;
}
/* date range stylish */
.date-range {
background: #ffffffcc;
backdrop-filter: blur(8px);
border-radius: 50px;
padding: 0.6rem 1.8rem;
display: inline-flex;
align-items: center;
gap: 0.8rem;
flex-wrap: wrap;
margin: 1rem 0 1.8rem 0;
box-shadow: 0 6px 12px -8px rgba(0,0,0,0.1);
font-weight: 500;
border: 1px solid #f3e2be;
}
.calendar-icon {
font-size: 1.6rem;
}
.date-text {
font-size: 1.25rem;
font-weight: 600;
background: linear-gradient(145deg, #b87c2e, #8b5e2c);
background-clip: text;
-webkit-background-clip: text;
color: transparent;
}
.date-detail {
color: #5c431f;
font-weight: 500;
}
/* cta & grid */
.sale-actions {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
margin-top: 2rem;
gap: 1.5rem;
}
.btn-group {
display: flex;
gap: 1rem;
flex-wrap: wrap;
}
.btn {
padding: 0.9rem 2rem;
border-radius: 50px;
font-weight: 600;
font-size: 0.95rem;
transition: all 0.2s ease;
cursor: pointer;
border: none;
font-family: inherit;
display: inline-flex;
align-items: center;
gap: 0.6rem;
background: white;
box-shadow: 0 5px 12px rgba(0,0,0,0.05);
}
.btn-primary {
background: #e9b13b;
color: #2a1f0e;
border: 1px solid #dba32e;
box-shadow: 0 8px 18px rgba(233, 177, 59, 0.3);
}
.btn-primary:hover {
background: #daa12e;
transform: translateY(-3px);
box-shadow: 0 16px 22px -8px rgba(218, 161, 46, 0.4);
}
.btn-secondary {
background: rgba(46, 34, 21, 0.08);
backdrop-filter: blur(8px);
border: 1px solid #dcb572;
color: #6b4c24;
}
.btn-secondary:hover {
background: rgba(212, 175, 55, 0.2);
transform: translateY(-2px);
}
/* countdown timer premium */
.countdown-wrap {
background: #2e2415d9;
backdrop-filter: blur(12px);
border-radius: 2rem;
padding: 1rem 1.6rem;
color: #feeed6;
display: flex;
align-items: center;
gap: 1rem;
flex-wrap: wrap;
justify-content: center;
}
.countdown-label {
font-weight: 500;
letter-spacing: 1px;
font-size: 0.9rem;
text-transform: uppercase;
background: #c9a03d33;
padding: 0.3rem 0.8rem;
border-radius: 40px;
}
.timer {
display: flex;
gap: 1rem;
font-family: monospace;
}
.time-box {
background: #00000055;
backdrop-filter: blur(4px);
padding: 0.3rem 0.8rem;
border-radius: 1rem;
text-align: center;
min-width: 60px;
}
.time-number {
font-size: 1.8rem;
font-weight: 800;
line-height: 1;
color: #f7d78c;
}
.time-unit {
font-size: 0.7rem;
text-transform: uppercase;
letter-spacing: 1px;
}
/* features grid */
.features-row {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
gap: 1.2rem;
margin-top: 2.8rem;
margin-bottom: 1rem;
}
.feature-card {
background: rgba(255, 248, 235, 0.8);
backdrop-filter: blur(4px);
border-radius: 1.8rem;
padding: 1rem 1.2rem;
display: flex;
align-items: center;
gap: 0.8rem;
transition: all 0.2s;
border: 1px solid rgba(212, 175, 55, 0.3);
}
.feature-emoji {
font-size: 2rem;
}
.feature-text {
font-weight: 500;
color: #4e3620;
font-size: 0.9rem;
}
.feature-text strong {
color: #c1841f;
display: block;
font-size: 1rem;
}
/* shine effect */
.glow-text {
position: relative;
}
/* responsive adjustments */
@media (max-width: 780px) {
.sale-content {
padding: 2rem 1.5rem;
}
.big-offer h1 {
font-size: 2.2rem;
}
.percent {
font-size: 3.2rem;
}
.off-text {
font-size: 1.4rem;
}
.discount-hero {
padding: 0.5rem 1rem;
}
.date-text {
font-size: 1rem;
}
.sale-actions {
flex-direction: column;
align-items: stretch;
}
.btn-group {
justify-content: center;
}
.countdown-wrap {
justify-content: center;
}
.time-number {
font-size: 1.4rem;
}
.time-box {
min-width: 45px;
}
}
@media (max-width: 480px) {
.discount-hero {
flex-direction: column;
align-items: center;
border-radius: 2rem;
width: 100%;
text-align: center;
}
.percent {
font-size: 2.8rem;
}
}
/* decorative crescent */
.crescent-moon {
position: absolute;
top: -15px;
right: 20px;
font-size: 6rem;
opacity: 0.1;
pointer-events: none;
transform: rotate(15deg);
z-index: 1;
}
/* for small screens fine-tune */
</style>
<div class="discount-section">
<div class="crescent-moon">🌙✨</div>
<div class="sale-content">
<!-- Eid greeting badge -->
<div class="eid-badge">
<span>🌟</span>
<span>Azadi Sale</span>
<span>🐏</span>
</div>
<!-- Headline section -->
<div class="big-offer">
<h1>Big Sale - Coupon Code: 1947</h1>
<div class="highlight">Celebrate with extraordinary savings</div>
</div>
<!-- 40% off discount block -->
<div class="discount-hero">
<div class="percent">70%</div>
<div class="off-text">OFF</div>
<div class="discount-tagline">Sitewide Discount</div>
</div>
<!-- date range stylish -->
<div class="date-range">
<div class="calendar-icon">📅</div>
<div class="date-text">13 August — 15 August</div>
<div class="date-detail">| Limited time only</div>
</div>
<!-- call to action & countdown timer -->
<div class="sale-actions">
<div class="btn-group">
<button class="btn btn-primary" id="shopNowBtn">🛍️ Shop the Sale →</button>
<button class="btn btn-secondary" id="exploreBtn">✨ Explore Offers</button>
</div>
<div class="countdown-wrap">
<div class="countdown-label">⏳ Offer ends in</div>
<div class="timer" id="countdownTimer">
<div class="time-box"><span class="time-number" id="days">00</span><div class="time-unit">Days</div></div>
<div class="time-box"><span class="time-number" id="hours">00</span><div class="time-unit">Hrs</div></div>
<div class="time-box"><span class="time-number" id="minutes">00</span><div class="time-unit">Mins</div></div>
<div class="time-box"><span class="time-number" id="seconds">00</span><div class="time-unit">Secs</div></div>
</div>
</div>
</div>
<!-- extra stylish features -->
<div class="features-row">
<div class="feature-card">
<div class="feature-emoji">🎁</div>
<div class="feature-text"><strong>Coupon Code</strong> 40PERCENT</div>
</div>
<div class="feature-card">
<div class="feature-emoji">🚚</div>
<div class="feature-text"><strong>Free Shipping</strong> On all prepaid orders</div>
</div>
<div class="feature-card">
<div class="feature-emoji">⭐</div>
<div class="feature-text"><strong>40% OFF</strong> + Coupon: EID40</div>
</div>
</div>
<!-- subtle note -->
<div style="margin-top: 1.5rem; font-size: 0.75rem; text-align: center; color: #b69158; border-top: 1px dashed #f1dfbc; padding-top: 1rem;">
🕌 Big Sale — Discount applied automatically at checkout. Offer valid from 13 Aug to 15 Aug.
</div>
</div>
</div>
<script>
(function() {
// Set the end date: 3rd June of current year, 23:59:59 local time.
// Note: Sale runs from 25 May to 3 June. We'll make the timer countdown to August 13, 23:59:59.
// For demo, if current date is past august 13, we still show but timer shows negative? We'll prevent negative and show 'expired'.
// we need the target date based on current year.
const now = new Date();
let targetYear = now.getFullYear();
// Sale end: 13th Augustof current year, at 23:59:59
let endDateObj = new Date(targetYear, 5, 3, 23, 59, 59); // month 5 = June
// If current date is beyond 3rd June (and current time past 23:59:59) but we also need to handle if we are after June 3 but before next year?
// For a genuine sale, if we are past the end date, we show "Sale ended" style message but maintain elegance.
// Also to handle edge: if current month is after june (july, etc) or same month after day 3, then show timer = 0, or message.
// Let's implement logic: if now > endDateObj, set timer to 0 and display "Expired" maybe with custom text.
// but keep the UI aesthetic positive.
// Also start date not mandatory for timer just showing time left until end.
function updateTimer() {
const currentTime = new Date();
let difference = endDateObj - currentTime;
const daysElem = document.getElementById('days');
const hoursElem = document.getElementById('hours');
const minutesElem = document.getElementById('minutes');
const secondsElem = document.getElementById('seconds');
// If sale ended
if (difference <= 0) {
daysElem.innerText = '00';
hoursElem.innerText = '00';
minutesElem.innerText = '00';
secondsElem.innerText = '00';
// optional add a small ended label near countdown
const countdownWrap = document.querySelector('.countdown-wrap');
if (!document.querySelector('.expired-label')) {
const expiredSpan = document.createElement('div');
expiredSpan.className = 'expired-label';
expiredSpan.style.fontSize = '0.8rem';
expiredSpan.style.background = '#cea55433';
expiredSpan.style.padding = '0.2rem 0.8rem';
expiredSpan.style.borderRadius = '2rem';
expiredSpan.style.marginLeft = '0.5rem';
expiredSpan.innerText = 'Sale Ended';
const timerDiv = document.querySelector('.timer');
if (timerDiv && !timerDiv.parentNode.querySelector('.expired-label')) {
countdownWrap.appendChild(expiredSpan);
}
}
return;
} else {
// remove expired label if exists
const expiredLabel = document.querySelector('.expired-label');
if (expiredLabel) expiredLabel.remove();
}
const days = Math.floor(difference / (1000 * 60 * 60 * 24));
const hours = Math.floor((difference % (86400000)) / (3600000));
const minutes = Math.floor((difference % 3600000) / 60000);
const seconds = Math.floor((difference % 60000) / 1000);
daysElem.innerText = days < 10 ? '0' + days : days;
hoursElem.innerText = hours < 10 ? '0' + hours : hours;
minutesElem.innerText = minutes < 10 ? '0' + minutes : minutes;
secondsElem.innerText = seconds < 10 ? '0' + seconds : seconds;
}
// call every second
updateTimer();
const timerInterval = setInterval(updateTimer, 1000);
// optional: if sale ended, we clean interval a bit but not necessary, just keeps updating but difference <=0 condition will set zeros.
// Buttons interactive: just show an alert for demonstration (stylish mock)
const shopBtn = document.getElementById('shopNowBtn');
const exploreBtn = document.getElementById('exploreBtn');
if (shopBtn) {
shopBtn.addEventListener('click', () => {
// stylish simulation: apply a ripple or toast effect
showMessage('✨ Welcome to the Big Eid Sale! 40% OFF applied. Enjoy shopping! ✨');
});
}
if (exploreBtn) {
exploreBtn.addEventListener('click', () => {
showMessage('🎁 Discover exclusive Eid collections with up to 40% discount + free gifts!');
});
}
function showMessage(msg) {
// create a floating toast that disappears after 2 sec
const toast = document.createElement('div');
toast.innerText = msg;
toast.style.position = 'fixed';
toast.style.bottom = '25px';
toast.style.left = '50%';
toast.style.transform = 'translateX(-50%)';
toast.style.backgroundColor = '#2e2415e6';
toast.style.backdropFilter = 'blur(12px)';
toast.style.color = '#fbe6b0';
toast.style.padding = '12px 28px';
toast.style.borderRadius = '60px';
toast.style.fontWeight = '500';
toast.style.fontSize = '0.9rem';
toast.style.zIndex = '1000';
toast.style.fontFamily = 'inherit';
toast.style.boxShadow = '0 10px 20px rgba(0,0,0,0.2)';
toast.style.border = '1px solid #e9b13b';
toast.style.letterSpacing = '0.3px';
document.body.appendChild(toast);
setTimeout(() => {
toast.style.opacity = '0';
toast.style.transition = 'opacity 0.3s';
setTimeout(() => {
if (toast.parentNode) toast.parentNode.removeChild(toast);
}, 300);
}, 2200);
}
// Ensure that if the sale hasn't started yet? (optional: Check if current date is before 25 May, we can still show countdown but to start date?
// Actually we show the sale period dates visually, but timer counts down to END date (3 June) normally.
// If current date is before 25 May, still counting to end which is fine. Provide clarity. Also show a pre-sale message? but not required.
// For extra style, we could detect if current date < start date (25 May) and display "Starts in" but we decide to keep original offer but we have date range visually.
// Good to also check start date for optional note: but not mandatory. Added check for style context.
// optional extra: show a tiny note if sale hasn't started yet and timer to end might be confusing? Actually sale dates: from 25 May to 3 June. So timer counts until end.
// if current date < 25 may, we may add a pill "Soon" but it's minor. To maintain professionalism we won't overcomplicate; the dates are clearly displayed.
// However to reflect accurate context: Countdown to "End of Sale" on June 3. That works across before and during sale.
const startDate = new Date(targetYear, 4, 25, 0, 0, 0); // 25 May
const currentCheck = new Date();
if (currentCheck < startDate) {
// optional notify in console or show a tiny indicator? we can add a badge but not needed. Instead I will add pre sale note via tooltip but non-intrusive
const countdownWrap = document.querySelector('.countdown-wrap');
if (countdownWrap && !document.querySelector('.presale-note')) {
const noteSpan = document.createElement('span');
noteSpan.className = 'presale-note';
noteSpan.style.fontSize = '0.7rem';
noteSpan.style.background = '#cb9f45';
noteSpan.style.padding = '0.2rem 0.7rem';
noteSpan.style.borderRadius = '30px';
noteSpan.style.marginLeft = '0.6rem';
noteSpan.style.color = '#2b1e0c';
noteSpan.innerText = 'Starts May 25';
countdownWrap.appendChild(noteSpan);
}
}
// add minor shine to discount section initial load effect
const discountHero = document.querySelector('.discount-hero');
if (discountHero) {
discountHero.style.transition = 'all 0.2s';
discountHero.addEventListener('mouseenter', () => {
discountHero.style.transform = 'scale(1.01)';
discountHero.style.backgroundColor = 'rgba(252, 235, 185, 0.8)';
});
discountHero.addEventListener('mouseleave', () => {
discountHero.style.transform = 'scale(1)';
discountHero.style.backgroundColor = 'rgba(241, 226, 190, 0.5)';
});
}
// and the feature cards on click gentle
document.querySelectorAll('.feature-card').forEach(card => {
card.addEventListener('click', () => {
const featureText = card.querySelector('.feature-text strong')?.innerText || 'special offer';
showMessage(`🎉 ${featureText} is part of our Big Eid Sale — 40% OFF included!`);
});
});
})();
</script>