:root{--primary:#8B5CF6;--secondary:#EC4899;--accent:#F59E0B;--bg:#FDFBFF;--card:#fff;--text:#1E1B4B;--text-soft:#6B7280;--gradient:linear-gradient(135deg,#8B5CF6 0%,#EC4899 100%)}
body.dark{--bg:#0F0A1A;--card:#1A142E;--text:#F3F4F6;--text-soft:#9CA3AF}
*{margin:0;padding:0;box-sizing:border-box;font-family:'Poppins',sans-serif;scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);transition:.3s}
.header{background:rgba(255,255,255,.7);backdrop-filter:blur(20px);padding:10px 5%;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;border-bottom:1px solid rgba(139,92,246,.1);min-height:90px}
body.dark .header{background:rgba(26,20,46,.7)}
.header img{height:100%;max-height:80px;width:auto}
.dark-btn{background:var(--card);border:2px solid var(--primary);color:var(--primary);width:45px;height:45px;border-radius:50%;cursor:pointer;font-size:18px;transition:.3s}
.dark-btn:hover{background:var(--gradient);color:#fff;transform:rotate(180deg)}
.hero-wrap{background:var(--gradient);padding:80px 5%;color:#fff;text-align:center;position:relative;overflow:hidden}
.hero-wrap::before{content:'';position:absolute;width:400px;height:400px;background:rgba(255,255,255,.1);border-radius:50%;top:-100px;left:-100px}
.hero h1{font-size:56px;font-weight:800;margin-bottom:20px;letter-spacing:-1px}
.hero p{font-size:18px;max-width:700px;margin:0 auto;opacity:.9}
.banner{width:100%;max-width:1200px;margin:-40px auto 60px;border-radius:25px;overflow:hidden;box-shadow:0 25px 60px rgba(139,92,246,.3);position:relative;z-index:10}
.slide-content{position:relative;width:100%;aspect-ratio:979/431;overflow:hidden}
.parallax-bg{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0}
.container{max-width:1200px;margin:0 auto;padding:60px 5%}
.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;flex-wrap:wrap;gap:15px}
.section-title{font-size:32px;font-weight:800;display:flex;align-items:center;gap:12px}
.section-title i{color:var(--secondary)}
.filter-tags{display:flex;gap:10px;flex-wrap:wrap}
.tag{padding:8px 18px;background:var(--card);border:2px solid #E5E7EB;border-radius:50px;font-weight:600;color:var(--text-soft);cursor:pointer;transition:.3s;white-space:nowrap}
.tag.active,.tag:hover{background:var(--gradient);color:#fff;border-color:transparent}
.promo-body h3{font-size:17px;font-weight:700;margin-bottom:8px;color:var(--text);line-height:1.4;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;text-overflow:ellipsis;min-height:2.8em}
@media(min-width:1024px){.promo-body{padding:16px}}
.promo-subtitle{text-align:center;font-size:16px;font-weight:700;color:var(--secondary);margin:-10px 0 25px 0;letter-spacing:1px;text-transform:uppercase;min-height:22px}
body.dark .promo-subtitle{color:var(--accent)}
.promo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:25px}
.promo-item{transition:all .3s ease}
.promo-item.hide{display:none!important}
.promo-card{background:var(--card);border-radius:20px;overflow:hidden;box-shadow:0 4px 15px rgba(0,0,0,.05);transition:.4s;border:1px solid #F3F4F6;position:relative;height:100%}
.promo-card:hover{transform:translateY(-8px);box-shadow:0 20px 40px rgba(139,92,246,.2)}
.promo-img{position:relative;overflow:hidden;width:100%;aspect-ratio:4/5;background:#f3f4f6;cursor:pointer}
.promo-img .thumb-link{display:block;width:100%;height:100%}
.promo-img img{width:100%;height:100%;object-fit:cover;transition:.5s}
.promo-card:hover .promo-img img{transform:scale(1.1)}
.promo-badge{position:absolute;bottom:18px;left:18px;background:var(--gradient);color:#fff;padding:7px 16px;border-radius:50px;font-size:12px;font-weight:700;box-shadow:0 4px 15px rgba(139,92,246,.4);z-index:5;pointer-events:none}
.promo-icons-wrap{position:absolute;bottom:18px;right:18px;display:flex;flex-direction:column;gap:14px;z-index:10}
.promo-icon{background:rgba(255,255,255,1);backdrop-filter:blur(8px);padding:0;border-radius:50%;font-size:24px;color:var(--primary);box-shadow:0 8px 25px rgba(0,0,0,.35);border:3px solid #fff;transition:.3s;width:58px;height:58px;display:flex;align-items:center;justify-content:center;text-decoration:none;position:relative;overflow:visible}
.promo-icon.pdf{color:#E63946;border-color:#E63946}
.promo-icon.link{color:#2563EB;border-color:#2563EB}
.promo-icon::before,.promo-icon::after{content:'';position:absolute;top:50%;left:50%;width:100%;height:100%;border-radius:50%;transform:translate(-50%,-50%);z-index:-1}
.promo-icon::before{animation:ripple 2s infinite}
.promo-icon::after{animation:ripple 2s infinite .5s}
.promo-icon.pdf::before,.promo-icon.pdf::after{box-shadow:0 0 0 0 rgba(230,57,70,.6)}
.promo-icon.link::before,.promo-icon.link::after{box-shadow:0 0 0 0 rgba(37,99,235,.6)}
.promo-icon:hover{transform:scale(1.2);color:#fff}
.promo-icon.pdf:hover{background:#E63946;border-color:#E63946;box-shadow:0 10px 30px rgba(230,57,70,.7)}
.promo-icon.link:hover{background:#2563EB;border-color:#2563EB;box-shadow:0 10px 30px rgba(37,99,235,.7)}
.promo-icon:hover::before,.promo-icon:hover::after{animation:none}
@keyframes ripple{0%{box-shadow:0 0 0 0 rgba(139,92,246,.6);transform:translate(-50%,-50%) scale(1)}70%{box-shadow:0 0 0 20px rgba(139,92,246,0);transform:translate(-50%,-50%) scale(1.2)}100%{box-shadow:0 0 0 0 rgba(139,92,246,0);transform:translate(-50%,-50%) scale(1.2)}}
.promo-body{padding:20px}
.promo-body h3{font-size:18px;font-weight:700;margin-bottom:8px;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.promo-body p{font-size:14px;color:var(--text-soft);margin-bottom:15px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.promo-footer{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--text-soft)}
.promo-footer i{color:var(--accent)}
.why{background:var(--card);padding:80px 5%;margin:60px 0;border-radius:30px;box-shadow:0 10px 40px rgba(0,0,0,.05)}
body.dark .why{box-shadow:0 10px 40px rgba(139,92,246,.15)}
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:40px;text-align:center}
.why-item h3{font-size:16px;font-weight:700;margin-bottom:8px;color:var(--text)}
.why-item p{font-size:13px;color:var(--text-soft);line-height:1.6}
.why-icon{width:80px;height:80px;border:2px solid rgba(139,92,246,.2);background:rgba(139,92,246,.08);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 15px;transition:.3s}
.why-icon i{font-size:32px;color:var(--primary);transition:.3s}
.why-item:hover .why-icon{border-color:var(--primary);background:var(--gradient);transform:scale(1.05)}
.why-item:hover .why-icon i{color:#fff}
.wa-float{position:fixed;bottom:30px;right:30px;background:linear-gradient(135deg,#25D366,#20BA5A);color:#fff;padding:16px 24px;border-radius:50px;display:flex;align-items:center;gap:12px;font-weight:700;font-size:16px;text-decoration:none;z-index:9999;transition:.3s;animation:pulseGlow 2s infinite;box-shadow:0 0 0 0 rgba(37,211,102,.7)}
.wa-float:hover{transform:scale(1.05);animation:none;box-shadow:0 0 25px 5px rgba(37,211,102,.9)}
@keyframes pulseGlow{0%{box-shadow:0 0 0 0 rgba(37,211,102,.7);transform:scale(1)}70%{box-shadow:0 0 0 15px rgba(37,211,102,0);transform:scale(1.03)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0);transform:scale(1)}}
.footer{background:var(--text);color:#fff;padding:60px 5% 30px}
body.dark .footer{background:linear-gradient(180deg,#0F0A1A 0%,#000 100%);border-top:1px solid rgba(139,92,246,.2)}
.footer-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:40px;align-items:start}
.footer h4{margin-bottom:15px;font-size:18px;display:flex;align-items:center;gap:8px}
.footer p{color:rgba(255,255,255,.8);margin-bottom:8px;font-size:14px}
.footer a{color:rgba(255,255,255,.8);text-decoration:none}
.footer a:hover{color:#fff}
.sosmed{display:flex;gap:12px;margin-top:15px;flex-wrap:wrap}
.sosmed a{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;text-decoration:none;transition:.3s}
.sosmed a:hover{transform:translateY(-4px) scale(1.1)}
.sosmed .ig:hover{background:linear-gradient(45deg,#F58529,#DD2A7B,#8134AF)}
.sosmed .fb:hover{background:#1877F2}
.sosmed .yt:hover{background:#FF0000}
.sosmed .tt:hover{background:#000}
.sosmed .wa:hover{background:#25D366}
.store-btn{display:inline-flex;align-items:center;gap:10px;margin-top:15px;padding:12px 22px;background:var(--gradient);color:#fff;font-weight:700;font-size:14px;border-radius:50px;text-decoration:none;box-shadow:0 8px 25px rgba(139,92,246,.4);transition:.3s}
#toTop{position:fixed;bottom:100px;right:30px;background:var(--gradient);color:#fff;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;text-decoration:none;z-index:9998;opacity:0;visibility:hidden;transform:translateY(20px);transition:.4s}
#toTop.show{opacity:1;visibility:visible;transform:translateY(0)}
#gpsModal,#blockModal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.7);z-index:99999;justify-content:center;align-items:center;backdrop-filter:blur(5px)}
.gps-box{background:var(--card);padding:30px;border-radius:20px;max-width:380px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.gps-box h3{margin:15px 0;font-size:22px}
.gps-box p{font-size:14px;color:var(--text-soft);margin-bottom:20px}
.btn-primary{background:var(--gradient);color:#fff;border:none;padding:14px 20px;border-radius:12px;width:100%;font-weight:700;cursor:pointer;font-size:16px}
.btn-secondary{background:#eee;color:#333;border:none;padding:14px 20px;border-radius:12px;width:100%;font-weight:600;cursor:pointer;font-size:16px;margin-top:10px}
body.dark .btn-secondary{background:#2A2342;color:#fff}
@media(max-width:768px){
 .promo-badge{bottom:12px;left:12px;padding:5px 12px;font-size:11px}
 .promo-icons-wrap{bottom:12px;right:12px;gap:12px}
 .promo-icon{font-size:20px;width:50px;height:50px;border-width:2px}
 .filter-tags{display:flex;flex-wrap:nowrap;width:100%;gap:5px;overflow-x:auto}
 .tag{flex:1 1 auto;min-width:0;padding:5px 8px;font-size:clamp(10px,2.8vw,12px);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-width:1px}
 .footer-grid{grid-template-columns:1fr;gap:30px}
 .wa-float{padding:18px;border-radius:50%;right:20px;bottom:20px}
 .wa-float span{display:none}
 #toTop{right:20px;bottom:80px;width:45px;height:45px}
}
/* MINI BOX - SELALU PUTIH BIAR KONTRAST */
.promo-mini-box{margin:10px 0;padding:10px;background:#fff!important;border:1px solid #e5e7eb;border-radius:8px}
.promo-mini-title{font-weight:600;font-size:13px;margin-bottom:4px;color:#1e1b4b!important}
.promo-mini-tag{background:#fff3cd;color:#856404;font-size:9px;font-weight:700;padding:2px 6px;border-radius:3px;display:inline-block}
.promo-mini-coret{text-decoration:line-through;color:#9ca3af!important;font-size:11px}
.promo-mini-price{color:#e63946!important;font-weight:800;font-size:13px}
.promo-mini-satuan{color:#6b7280!important;font-size:11px}