* { margin: 0; padding: 0; box-sizing: border-box; } :root { --primary: #C8102E; --primary-dark: #8B0A1F; --secondary: #1A1A1A; --gold: #D4A017; --bg: #FFFFFF; --bg-alt: #F8F9FA; --text: #2C2C2C; --text-light: #6B7280; --border: #E5E7EB; --shadow: 0 2px 8px rgba(0,0,0,0.08); --shadow-lg: 0 10px 30px rgba(0,0,0,0.12); } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; line-height: 1.6; color: var(--text); background: var(--bg); scroll-behavior: smooth; } /* Nav */ nav { position: sticky; top: 0; background: rgba(255,255,255,0.97); backdrop-filter: blur(10px); border-bottom: 1px solid var(--border); z-index: 100; padding: 0.75rem 0; } .nav-container { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; } .brand { display: flex; align-items: center; gap: 0.6rem; font-weight: 800; color: var(--primary); font-size: 1.1rem; text-decoration: none; } .brand img { width: 36px; height: 36px; } .nav-links { display: flex; gap: 1.5rem; list-style: none; } .nav-links a { color: var(--text); text-decoration: none; font-weight: 500; font-size: 0.9rem; transition: color 0.2s; } .nav-links a:hover { color: var(--primary); } .nav-cta { background: var(--primary); color: #fff !important; padding: 0.5rem 1rem; border-radius: 6px; font-weight: 600; } .nav-cta:hover { background: var(--primary-dark) !important; } .nav-cta-sara { background: linear-gradient(135deg, #25D366 0%, #128C7E 100%); color: #fff !important; padding: 0.5rem 1rem; border-radius: 6px; font-weight: 600; box-shadow: 0 2px 8px rgba(37,211,102,0.3); animation: saraPulse 3s infinite; display: inline-flex; align-items: center; gap: 0.35rem; white-space: nowrap; } .sara-icon { font-size: 1rem; line-height: 1; } .sara-text { line-height: 1; } .nav-cta-sara:hover { box-shadow: 0 4px 12px rgba(37,211,102,0.5); } .nav-highlight { background: #fbbf24; color: #78350f !important; padding: 0.4rem 0.8rem; border-radius: 6px; font-weight: 700; font-size: 0.9rem; white-space: nowrap; animation: navPulse 2s infinite; } .nav-highlight:hover { background: #f59e0b; color: #fff !important; } @keyframes navPulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.05); } } /* Fix overflow nav untuk 9 link */ .nav-links { display: flex; flex-wrap: nowrap; align-items: center; gap: 0.3rem; } .nav-links li { white-space: nowrap; } .nav-links a { padding: 0.4rem 0.6rem; font-size: 0.92rem; } .brand img { width: 28px; height: 28px; } .brand { font-size: 1rem; white-space: nowrap; display: inline-flex; align-items: center; gap: 0.5rem; } /* Responsive nav - kurangkan item pada mobile */ @media (max-width: 1100px) { .nav-links a { font-size: 0.85rem; padding: 0.4rem 0.5rem; } .nav-cta, .nav-cta-sara { padding: 0.4rem 0.7rem !important; font-size: 0.85rem; } .nav-highlight { font-size: 0.8rem; padding: 0.35rem 0.6rem; } } @media (max-width: 900px) { .nav-links { gap: 0.2rem; } .nav-links a { font-size: 0.78rem; padding: 0.3rem 0.4rem; } .nav-cta, .nav-cta-sara, .nav-highlight { padding: 0.3rem 0.5rem !important; font-size: 0.75rem; } } @keyframes saraPulse { 0%,100% { box-shadow: 0 2px 8px rgba(37,211,102,0.3); } 50% { box-shadow: 0 2px 12px rgba(37,211,102,0.6); } } @media (max-width: 768px) { .nav-links { display: none; } } /* Hero */ .hero { background: linear-gradient(135deg, #FFF5F5 0%, #FFFFFF 50%, #FFF8E1 100%); padding: 3rem 1.5rem 4rem; } .hero-container { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; } @media (max-width: 768px) { .hero-container { grid-template-columns: 1fr; text-align: center; } } .hero h1 { font-size: clamp(2rem, 5vw, 3.2rem); font-weight: 900; line-height: 1.1; margin-bottom: 1rem; color: var(--secondary); } .hero h1 .highlight { color: var(--primary); } .hero-tagline { font-size: 1.15rem; color: var(--text-light); margin-bottom: 1.5rem; font-weight: 500; } .hero-features { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 2rem; } @media (max-width: 768px) { .hero-features { justify-content: center; } } .feature-pill { background: #fff; border: 1px solid var(--border); padding: 0.4rem 0.9rem; border-radius: 999px; font-size: 0.85rem; font-weight: 600; color: var(--text); box-shadow: var(--shadow); } .hero-cta { display: flex; gap: 0.75rem; flex-wrap: wrap; } @media (max-width: 768px) { .hero-cta { justify-content: center; } } .btn { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.85rem 1.5rem; border-radius: 8px; font-weight: 600; text-decoration: none; transition: transform 0.2s, box-shadow 0.2s; font-size: 0.95rem; } .btn-primary { background: var(--primary); color: #fff; box-shadow: 0 4px 14px rgba(200, 16, 46, 0.3); } .btn-primary:hover { background: var(--primary-dark); transform: translateY(-2px); } .btn-secondary { background: #25D366; color: #fff; box-shadow: 0 4px 14px rgba(37, 211, 102, 0.3); } .btn-secondary:hover { background: #1FAD53; transform: translateY(-2px); } .hero-logo { text-align: center; } .hero-logo img { max-width: 320px; width: 100%; height: auto; filter: drop-shadow(0 20px 40px rgba(0,0,0,0.15)); animation: float 4s ease-in-out infinite; } @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } } /* Sections */ section { padding: 4rem 1.5rem; } .container { max-width: 1200px; margin: 0 auto; } .section-alt { background: var(--bg-alt); } .section-title { text-align: center; font-size: clamp(1.7rem, 3vw, 2.2rem); font-weight: 800; margin-bottom: 0.5rem; color: var(--secondary); } .section-subtitle { text-align: center; color: var(--text-light); margin-bottom: 2.5rem; max-width: 600px; margin-left: auto; margin-right: auto; } /* Products */ .products-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; } .product-card { background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 1.5rem; transition: transform 0.2s, box-shadow 0.2s; } .product-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); } .product-card h3 { color: var(--primary); font-size: 1.15rem; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.5rem; } .product-card .icon { width: 32px; height: 32px; background: rgba(200, 16, 46, 0.1); border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; font-size: 1.1rem; } .product-card p { color: var(--text-light); font-size: 0.92rem; margin-bottom: 0.75rem; } .product-card .price { font-weight: 700; color: var(--secondary); font-size: 1rem; } .product-card .price-note { font-size: 0.8rem; color: var(--text-light); font-weight: 400; display: block; margin-top: 0.2rem; } /* Iframe Kedai */ .iframe-wrap { position: relative; width: 100%; border-radius: 14px; overflow: hidden; box-shadow: 0 6px 24px rgba(0,0,0,0.1); border: 2px solid var(--primary); background: white; margin-top: 1.5rem; padding-bottom: 150%; /* 3:2 ratio tinggi untuk shop */ } .iframe-wrap iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; } @media (min-width: 900px) { .iframe-wrap { padding-bottom: 110%; } } /* Tempoh Siap */ .tempoh-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-top: 2rem; } @media (max-width: 900px) { .tempoh-grid { grid-template-columns: 1fr; } } .tempoh-card { background: white; border-radius: 14px; padding: 2rem 1.5rem; text-align: center; box-shadow: 0 4px 16px rgba(0,0,0,0.06); border: 2px solid transparent; transition: transform 0.2s, border-color 0.2s; position: relative; } .tempoh-card:hover { transform: translateY(-4px); border-color: var(--primary); } .tempoh-card.express { background: linear-gradient(135deg, #fff5f5 0%, #ffffff 100%); border-color: var(--primary); } .tempoh-card.esok { background: linear-gradient(135deg, #fff9e6 0%, #ffffff 100%); } .tempoh-card.normal { background: linear-gradient(135deg, #e6f7f0 0%, #ffffff 100%); } .tempoh-badge { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--primary); color: white; font-size: 0.7rem; font-weight: 700; padding: 4px 12px; border-radius: 20px; letter-spacing: 0.5px; } .tempoh-card.esok .tempoh-badge { background: #d4a017; } .tempoh-card.normal .tempoh-badge { background: #2e7d5b; } .tempoh-icon { font-size: 2.5rem; margin-bottom: 0.5rem; } .tempoh-card h3 { color: var(--primary); font-size: 1.15rem; margin-bottom: 0.5rem; } .tempoh-price { font-size: 1.5rem; font-weight: 800; color: var(--secondary); margin-bottom: 0.75rem; } .tempoh-price span { font-size: 0.85rem; font-weight: 400; color: var(--text-light); display: block; } .tempoh-card p { color: var(--text-light); font-size: 0.92rem; line-height: 1.5; } /* About */ .about-content { display: grid; grid-template-columns: 2fr 1fr; gap: 2.5rem; align-items: start; } @media (max-width: 768px) { .about-content { grid-template-columns: 1fr; } } .about-stats { display: grid; gap: 1rem; } .stat-card { background: #fff; padding: 1.25rem; border-radius: 10px; border-left: 4px solid var(--primary); box-shadow: var(--shadow); } .stat-card .number { font-size: 1.8rem; font-weight: 800; color: var(--primary); line-height: 1; } .stat-card .label { font-size: 0.85rem; color: var(--text-light); margin-top: 0.3rem; } .about-text p { margin-bottom: 1rem; color: var(--text); } .about-text p strong { color: var(--secondary); } /* Timeline */ .timeline { position: relative; padding-left: 30px; margin: 1rem 0 1.5rem; } .timeline::before { content: ''; position: absolute; left: 8px; top: 8px; bottom: 8px; width: 2px; background: linear-gradient(to bottom, var(--primary) 0%, var(--primary) 80%, #ddd 100%); } .timeline-item { position: relative; padding-bottom: 1.5rem; } .timeline-item:last-child { padding-bottom: 0; } .timeline-item::before { content: ''; position: absolute; left: -27px; top: 6px; width: 14px; height: 14px; border-radius: 50%; background: var(--primary); border: 3px solid #fff; box-shadow: 0 0 0 1px var(--primary); } .timeline-item.timeline-now::before { background: #ff8800; box-shadow: 0 0 0 1px #ff8800, 0 0 0 6px rgba(255,136,0,0.15); animation: pulseNow 2s infinite; } @keyframes pulseNow { 0%,100% { box-shadow: 0 0 0 1px #ff8800, 0 0 0 6px rgba(255,136,0,0.15); } 50% { box-shadow: 0 0 0 1px #ff8800, 0 0 0 12px rgba(255,136,0,0.05); } } .timeline-year { display: inline-block; background: var(--primary); color: white; font-weight: 700; font-size: 0.78rem; padding: 3px 10px; border-radius: 12px; margin-bottom: 0.5rem; letter-spacing: 0.5px; } .timeline-item.timeline-now .timeline-year { background: #ff8800; } .timeline-content h4 { font-size: 1.05rem; color: var(--secondary); margin-bottom: 0.35rem; font-weight: 700; } .timeline-content p { font-size: 0.92rem; color: var(--text-light); line-height: 1.55; margin: 0; } /* Values */ .values-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.5rem; margin-top: 2rem; } .value-item { text-align: center; padding: 1.5rem; background: #fff; border-radius: 10px; border-top: 3px solid var(--gold); } .value-item .emoji { font-size: 2rem; margin-bottom: 0.5rem; } .value-item h4 { color: var(--secondary); margin-bottom: 0.5rem; } .value-item p { font-size: 0.88rem; color: var(--text-light); } /* FAQ */ .faq-list { max-width: 800px; margin: 0 auto; } .faq-item { background: #fff; border: 1px solid var(--border); border-radius: 10px; margin-bottom: 0.75rem; overflow: hidden; } .faq-q { padding: 1rem 1.25rem; font-weight: 600; color: var(--secondary); cursor: pointer; display: flex; justify-content: space-between; align-items: center; list-style: none; } .faq-q::-webkit-details-marker { display: none; } .faq-q::after { content: '+'; font-size: 1.4rem; color: var(--primary); font-weight: 700; transition: transform 0.2s; } details[open] .faq-q::after { content: '−'; } .faq-a { padding: 0 1.25rem 1.25rem; color: var(--text-light); font-size: 0.95rem; } /* FAQ Category */ .faq-category { font-size: 1.25rem; color: var(--secondary); margin: 1.5rem 0 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--primary); font-weight: 700; } .faq-category:first-child { margin-top: 0; } /* Komisen Table */ .komisen-table { width: 100%; border-collapse: collapse; margin-top: 0.5rem; font-size: 0.92rem; } .komisen-table th, .komisen-table td { padding: 0.6rem 0.8rem; border: 1px solid var(--border); text-align: center; } .komisen-table th { background: var(--primary); color: white; font-weight: 700; } .komisen-table td { color: var(--text); } .komisen-table tr:nth-child(even) td { background: #fff8f8; } /* Contact */ .contact-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.5rem; } .contact-card { background: #fff; padding: 1.5rem; border-radius: 12px; border: 1px solid var(--border); text-align: center; } .contact-card .icon-circle { width: 50px; height: 50px; background: rgba(200, 16, 46, 0.1); border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 1.5rem; margin-bottom: 0.75rem; } .contact-card h4 { color: var(--secondary); margin-bottom: 0.4rem; } .contact-card a { color: var(--primary); text-decoration: none; font-weight: 600; } .contact-card p { font-size: 0.9rem; color: var(--text-light); } .contact-card.highlight-card { background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%); border: 2px solid #f59e0b; position: relative; } .contact-card.highlight-card::before { content: "HOT"; position: absolute; top: -10px; right: -10px; background: #ef4444; color: #fff; font-size: 0.7rem; font-weight: 800; padding: 0.2rem 0.5rem; border-radius: 4px; letter-spacing: 1px; } /* Promo banner */ .promo { background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); color: #fff; padding: 2.5rem 1.5rem; text-align: center; } .promo h2 { font-size: 1.8rem; margin-bottom: 0.5rem; } .promo p { font-size: 1.05rem; opacity: 0.95; margin-bottom: 1rem; } .promo .coupons { display: inline-flex; gap: 0.75rem; flex-wrap: wrap; justify-content: center; } .coupon { background: rgba(255,255,255,0.2); border: 1px dashed rgba(255,255,255,0.5); padding: 0.5rem 1rem; border-radius: 6px; font-family: monospace; font-weight: 700; letter-spacing: 1px; } /* Footer */ footer { background: var(--secondary); color: #ccc; padding: 2.5rem 1.5rem 1.5rem; } .footer-grid { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 2rem; margin-bottom: 2rem; } @media (max-width: 768px) { .footer-grid { grid-template-columns: 1fr; } } .footer-col h5 { color: #fff; margin-bottom: 0.75rem; font-size: 1rem; } .footer-col a { color: #ccc; text-decoration: none; display: block; margin-bottom: 0.4rem; font-size: 0.9rem; } .footer-col a:hover { color: #fff; } .footer-col p { font-size: 0.88rem; line-height: 1.6; } .footer-bottom { border-top: 1px solid #444; padding-top: 1.25rem; text-align: center; font-size: 0.82rem; color: #999; max-width: 1200px; margin: 0 auto; } /* Floating WhatsApp Button */ .float-wa { position: fixed; bottom: 1.5rem; right: 1.5rem; background: #25D366; color: #fff; width: 56px; height: 56px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.6rem; box-shadow: 0 6px 20px rgba(37, 211, 102, 0.4); z-index: 99; text-decoration: none; animation: pulse 2s infinite; } @keyframes pulse { 0% { box-shadow: 0 6px 20px rgba(37, 211, 102, 0.4); } 50% { box-shadow: 0 6px 30px rgba(37, 211, 102, 0.7); } 100% { box-shadow: 0 6px 20px rgba(37, 211, 102, 0.4); } } .article-card { max-width: 850px; margin: 0 auto 1rem; background:#fff; padding:1.5rem; border-radius:12px; border:1px solid var(--border); box-shadow:var(--shadow); } .article-card h2 { margin-bottom:.5rem; } .article-card a { color:var(--primary); }