/* ========================================================= GLOBAL ========================================================= */ * { box-sizing: border-box; } body { font-family: 'Poppins', sans-serif; background-color: #f8f9fa; color: #1a1a1a; } /* ========================================================= NAVBAR ========================================================= */ .navbar { background-color: #ffffff; border-bottom: 1px solid #e8e8e8; padding: 12px 0; position: sticky; top: 0; z-index: 1050; box-shadow: 0 2px 12px rgba(0, 0, 0, .06); } .navbar-brand { display: flex; align-items: center; gap: 10px; text-decoration: none; } .navbar-brand .brand-logo { width: 46px; height: 46px; /* HAPUS background linear-gradient dan border-radius jika ingin logo tampil apa adanya tanpa bingkai bulat biru */ background: transparent; display: flex; align-items: center; justify-content: center; flex-shrink: 0; overflow: hidden; /* Memastikan jika gambar logo lebih besar, tidak keluar jalur */ } /* Tambahkan ini agar gambar di dalam logo pas ukurannya */ .navbar-brand .brand-logo img { width: 100%; height: 100%; object-fit: contain; /* Kunci agar logo tidak gepeng/penyet */ } .navbar-brand .brand-text { font-weight: 700; font-size: 20px; line-height: 1.2; color: #1a1a1a; } .navbar-brand .brand-text span { display: block; font-weight: 700; font-size: 20px; color: #1a1a1a; } .nav-link { font-size: 14px; font-weight: 500; color: #333 !important; padding: 6px 14px !important; transition: color .2s; } .nav-link:hover, .nav-link.active { color: #2563eb !important; } .nav-link.active { border-bottom: 2px solid #2563eb; } /* Search bar */ .search-form .input-group { width: 200px; } .search-form .form-control { border-radius: 10px 0 0 10px; border: 1px solid #ddd; font-size: 13px; padding: 6px 14px; } .search-form .btn-search { background: #2D9CDB; color: #fff; border: none; border-radius: 0 10px 10px 0; padding: 6px 14px; } .search-form .btn-search:hover { background: #2D9CDB; } /* Login button */ .btn-login { background: #0F1C2E; color: #fff !important; border-radius: 8px; font-size: 13px; font-weight: 500; padding: 7px 28px 7px 16px; display: flex; align-items: center; gap: 6px; border: none; text-decoration: none; transition: background .2s; } .btn-login:hover { background: #1e3a8a; color: #fff; } .btn-login i { font-size: 28px; /* Sesuaikan ukurannya di sini */ } /* Cart icon */ .cart-icon { position: relative; font-size: 24px; color: #0f172a; text-decoration: none; display: inline-block; /* Ubah ke inline-block agar badge absolute presisi */ } .cart-icon .cart-badge { position: absolute; top: -4px; right: -8px; background: #ef4444; color: #fff; font-size: 11px; font-weight: 700; border-radius: 50%; width: 18px; height: 18px; /* MEMAKSA ANGKA KE TENGAH TANPA FLEXBOX */ display: block; text-align: center; line-height: 19px; /* Samakan dengan height, atau lebihkan 1px untuk vertikal tengah */ /* KUNCI: Mendorong angka sedikit ke kanan agar visualnya seimbang */ padding-left: 1px; margin: 0; letter-spacing: 0; } /* ========================================================= HERO CAROUSEL ========================================================= */ /* 1. Berikan ruang di bawah keseluruhan slider */ .hero-carousel { margin-bottom: 40px; /* Jarak yang sudah disesuaikan agar dekat */ } /* 2. Tarik indikator keluar, dekatkan ke gambar, dan geser ke KIRI */ .hero-carousel .carousel-indicators { bottom: -25px; /* Jarak dekat dengan gambar */ margin-bottom: 0; justify-content: flex-start; /* KUNCI: Menggeser semua dot ke kiri */ margin-left: 2%; /* Memberi jarak aman dari ujung kiri layar (bisa disesuaikan) */ margin-right: 0; /* Menghapus margin kanan bawaan Bootstrap */ } /* 3. Atur Dimensi Dasar dan Warna Non-Aktif (abu-abu lingkaran) */ .hero-carousel .carousel-indicators [data-bs-target] { height: 12px; /* Tinggi yang sedikit lebih besar untuk bentuk pil */ width: 12px; /* Lebar lingkaran dasar */ border-radius: 50%; /* Menjadi lingkaran dasar */ /* Warna abu-abu sedang (sesuai image_3.png) */ background-color: #8c9ab3; border: none; /* Tanpa batas */ margin: 0 6px; /* Jarak antar titik */ transition: all 0.3s ease; /* Transisi halus */ } /* 4. Atur Dimensi dan Warna Indikator Aktif (biru tua pil memanjang) */ .hero-carousel .carousel-indicators .active { /* Warna biru tua (sesuai image_3.png dan tema navy image_2.png) */ background-color: #1d2f5a; width: 48px; /* Lebar pil memanjang */ border-radius: 12px; /* Setengah tinggi pil untuk bentuk sempurna */ } .hero-carousel .carousel-item { height: 580px; background: #111; position: relative; overflow: hidden; } .hero-carousel .carousel-item img { width: 100%; height: 100%; object-fit: cover; opacity: .7; } /* Tambahan class untuk menengahkan teks secara vertikal & horizontal */ .carousel-caption-custom.caption-center { top: 50%; bottom: auto; /* Membatalkan efek bottom: 60px dari class utamanya */ transform: translate(-50%, -50%); } /* Placeholder hero jika belum ada gambar */ .hero-placeholder { width: 100%; height: 420px; background: linear-gradient(135deg, #0f1923 0%, #1e3a5f 50%, #0f2744 100%); display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; } .hero-placeholder::before { content: ''; position: absolute; inset: 0; background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); } .carousel-caption-custom { position: absolute; bottom: 60px; left: 50%; transform: translateX(-50%); text-align: center; color: #fff; width: 100%; } .carousel-caption-custom h2 { font-size: 36px; font-weight: 700; letter-spacing: 1px; text-shadow: 0 2px 8px rgba(0, 0, 0, .5); margin-bottom: 4px; } .carousel-caption-custom p { font-size: 20px; font-weight: 300; color: rgba(255, 255, 255, .85); margin: 0; } /* Carousel indicators - dots */ .carousel-indicators [data-bs-target] { width: 28px; height: 6px; border-radius: 3px; background: rgba(255, 255, 255, .4); border: none; } .carousel-indicators .active { background: #2563eb; width: 36px; } /* ========================================================= SECTION TITLES ========================================================= */ .section-title { font-size: 22px; font-weight: 700; color: #1a1a1a; margin-bottom: 20px; } .section-title-center { font-size: 24px; font-weight: 700; color: #1a1a1a; text-align: center; margin-bottom: 24px; } /* ========================================================= KATEGORI PRODUK ========================================================= */ .kategori-section { padding: 40px 0 30px; background: #f8fafc; } .kategori-card { background: #fff; border: 1px solid #e8e8e8; border-radius: 12px; padding: 60px 16px 20px; text-align: center; position: relative; width: 100%; max-width: 300px; height: 245px; margin: 0 auto; box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.15); transition: all .25s; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; } .kategori-card:hover { box-shadow: 0px 8px 12px rgba(0, 0, 0, 0.12); transform: translateY(-3px); border-color: #2563eb; } .kategori-card .badge-status { position: absolute; top: 15px; right: 15px; font-size: 12px; font-weight: 700; padding: 6px 14px; border-radius: 20px; letter-spacing: .5px; } .badge-new { background: #22c55e; color: #fff; } .badge-second { background: #374151; color: #fff; } .kategori-card .icon-wrap { font-size: 48px; margin-bottom: 15px; height: 55px; display: flex; align-items: center; justify-content: center; } .kategori-card h6 { font-weight: 700; font-size: 16px; color: #1a1a1a; margin-bottom: 6px; } .kategori-card p { font-size: 12px; color: #777; margin: 0; line-height: 1.5; } /* ========================================================= PRODUK TERBARU ========================================================= */ .produk-section { padding: 36px 0; background: #f8f9fa; } .product-card { background: #fff; border: 1px solid #e5e7eb; /* Border sedikit lebih terang */ border-radius: 12px; overflow: hidden; transition: all .25s; height: 100%; display: flex; flex-direction: column; } .product-card:hover { box-shadow: 0 8px 24px rgba(0, 0, 0, .08); /* Bayangan sedikit diperhalus */ transform: translateY(-3px); } /* KUNCI: Latar belakang abu-abu terang untuk gambar */ .product-img-wrap { position: relative; width: 100%; padding-top: 100%; /* Rasio 1:1 (persegi) cocok untuk produk pakaian/sepatu */ background: #f3f4f6; /* Latar abu-abu persis desain */ overflow: hidden; } /* KUNCI: Menyesuaikan gambar agar tidak terpotong (contain) */ .product-img-wrap img { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); /* --- THE FIX (PEMBESARAN GAMBAR) --- */ /* Ganti max-width: 90% menjadi width: 100% */ width: 100%; /* Ganti max-height: 90% menjadi height: 100% */ height: 100%; /* Tetap gunakan object-fit: contain agar gambar proporsional (tidak gepeng) tapi sekarang dia akan mengisi penuh ruang 100% */ object-fit: contain; transition: transform .3s; } /* Penyesuaian hover jika menggunakan teknik transform center */ .product-card:hover .product-img-wrap img { transform: translate(-50%, -50%) scale(1.05); } /* Badge New/Second */ .product-badge { position: absolute; top: 12px; /* Jarak dari atas kotak abu-abu */ left: 12px; /* Jarak dari kiri kotak abu-abu */ font-size: 12px; font-weight: 700; padding: 4px 14px; /* Sedikit dilebarkan ke samping agar proporsional */ /* PERBAIKAN: Ubah menjadi membulat penuh (bentuk pil) seperti di desain */ border-radius: 20px; letter-spacing: .5px; z-index: 2; } /* Badge Baru disesuaikan warnanya */ .badge-new { background: #22c55e; color: #fff; } /* Ruang untuk teks */ .product-body { padding: 16px; /* Sedikit lebih lega */ flex: 1; display: flex; flex-direction: column; } .product-name { font-weight: 700; font-size: 20px; color: #111827; /* Diselaraskan menjadi 8px */ margin-bottom: 8px; line-height: 1.3; } .product-cat { font-size: 14px; color: #6b7280; /* Diselaraskan menjadi 8px */ margin-bottom: 8px; } /* Harga dengan warna oranye spesifik */ .product-price { font-size: 20px; font-weight: 700; color: #FF7A00; /* Diselaraskan menjadi 8px agar jarak ke tombol sama konsistennya */ margin-bottom: 8px; } /* TOMBOL */ .product-actions { display: flex; gap: 8px; align-items: stretch; /* Memastikan kedua tombol sama tingginji */ margin-top: auto; } /* Tombol Keranjang Biru Terang */ .btn-keranjang { background: #3ba1eb; color: #fff; border: none; border-radius: 6px; font-size: 12px; font-weight: 600; padding: 8px 12px; display: flex; align-items: center; justify-content: center; gap: 6px; text-decoration: none; transition: background .2s; /* UBAH INI: Menjadi 1 agar seimbang */ flex: 1; } .btn-keranjang:hover { background: #2563eb; /* Biru gelap saat hover */ color: #fff; } /* Tombol Detail Putih Berbingkai */ .btn-detail { background: #fff; border: 1px solid #e5e7eb; color: #4b5563; border-radius: 6px; font-size: 12px; font-weight: 500; padding: 8px 12px; display: flex; align-items: center; justify-content: center; gap: 4px; text-decoration: none; transition: all .2s; /* TETAPKAN INI: 1 agar seimbang dengan tombol keranjang */ flex: 1; } .btn-detail:hover { background: #f3f4f6; color: #111827; border-color: #d1d5db; } /* ========================================================= SHOES TREATMENT ========================================================= */ .treatment-section { padding: 40px 0; background: #fff; } .treatment-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; } .treatment-header a { font-size: 13px; color: #2563eb; text-decoration: none; font-weight: 500; } .treatment-header a:hover { text-decoration: underline; } .treatment-card { background: #fff; border: 1px solid #e8e8e8; border-radius: 14px; padding: 28px 20px; text-align: center; transition: all .25s; height: 100%; } .treatment-card:hover { box-shadow: 0 6px 20px rgba(0, 0, 0, .1); transform: translateY(-2px); } .treatment-icon { width: 64px; height: 64px; background: #f97316; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; font-size: 26px; color: #fff; } .treatment-card h6 { font-weight: 700; font-size: 14px; color: #1a1a1a; margin-bottom: 8px; } .treatment-card p { font-size: 12px; color: #777; margin: 0; line-height: 1.6; } /* ========================================================= CSS MODAL DAFTAR MENU (Sesuai Permintaan) ========================================================= */ /* 1. Overlay (Latar Belakang Gelap) */ .modal-menu-overlay { display: none; /* Sembunyi secara default */ position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.7); /* Hitam transparan */ z-index: 9999; /* Pastikan di atas segalanya */ justify-content: center; align-items: center; opacity: 0; transition: opacity 0.3s ease; } /* State Aktif (Saat Modal Muncul) */ .modal-menu-overlay.active { display: flex; opacity: 1; } /* 2. Kontainer Konten Modal */ .modal-menu-content { background-color: transparent; /* Gambar sudah punya background */ position: relative; /* UKURAN PRESISI SESUAI PERMINTAAN */ width: 383px; height: 575px; border-radius: 12px; /* Sedikit membulat agar elegan */ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3); overflow: visible; /* Agar tombol X bisa melayang keluar sedikit */ /* Animasi muncul */ transform: scale(0.8); transition: transform 0.3s ease; } /* Animasi konten saat aktif */ .modal-menu-overlay.active .modal-menu-content { transform: scale(1); } /* 3. Tombol Close (X) */ .modal-menu-close { position: absolute; top: -15px; /* Sedikit melayang ke atas */ right: -15px; /* Sedikit melayang ke kanan */ width: 35px; height: 35px; background-color: #ef4444; /* Merah cerah */ color: white; border: 2px solid white; /* Frame putih */ border-radius: 50%; /* Bulat sempurna */ font-size: 20px; font-weight: bold; cursor: pointer; display: flex; align-items: center; justify-content: center; z-index: 10; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); transition: all 0.2s ease; } .modal-menu-close:hover { background-color: #dc2626; /* Merah lebih gelap saat hover */ transform: scale(1.1); } /* 4. Body Modal (Tempat Gambar) */ .modal-menu-body { width: 100%; height: 100%; border-radius: 12px; overflow: hidden; /* Memastikan gambar mengikuti border-radius konten */ } .modal-menu-body img { width: 100%; height: 100%; object-fit: cover; /* Memastikan gambar memenuhi frame tanpa penyet */ display: block; } /* RESPONSIVE: Agar pop-up tidak melebih layar HP */ @media (max-width: 420px) { .modal-menu-content { width: 90%; /* Gunakan persentase di layar kecil */ height: auto; /* Biarkan tinggi menyesuaikan proporsi */ aspect-ratio: 383 / 575; /* Menjaga rasio gambar */ } } /* ========================================================= FOOTER ========================================================= */ /* ========================================================= FOOTER ========================================================= */ .footer { background: #0f172a; color: #f1f5f9; padding: 60px 0 24px; } .footer-logo .brand-logo-footer { width: 80px; height: 80px; background: transparent; display: flex; align-items: center; justify-content: center; margin-bottom: 20px; } .brand-logo-footer img { width: 100%; height: 100%; object-fit: contain; } .footer-logo p { font-size: 15px; color: #f8fafc; line-height: 1.6; margin-bottom: 24px; max-width: 250px; } .footer-social { display: flex; gap: 12px; } /* Lingkaran abu-abu transparan untuk ikon sosial media */ .footer-social a { display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; background: rgba(255, 255, 255, 0.1); border-radius: 50%; color: #fff; font-size: 16px; text-decoration: none; transition: all 0.3s ease; } .footer-social a:hover { background: #3b82f6; color: #fff; } .footer h6 { color: #fff; font-weight: 700; font-size: 18px; margin-bottom: 24px; } .footer-links { list-style: none; padding: 0; margin: 0; } .footer-links li { margin-bottom: 16px; } .footer-links a { color: #f1f5f9; text-decoration: none; font-size: 15px; transition: color .2s; } .footer-links a:hover { color: #3b82f6; } .footer-contact { list-style: none; padding: 0; margin: 0; } .footer-contact li { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; font-size: 15px; color: #f1f5f9; } .footer-contact li i { color: #3ba1eb; font-size: 20px; flex-shrink: 0; } .footer-divider { border-top: 1px solid rgba(255, 255, 255, 0.2); margin: 40px 0 24px; } .footer-copy { text-align: center; font-size: 14px; color: #cbd5e1; } /* ========================================================= RESPONSIVE TWEAKS ========================================================= */ @media (max-width: 768px) { .hero-carousel .carousel-item, .hero-placeholder { height: 260px; } .carousel-caption-custom h2 { font-size: 20px; } .section-title-center { font-size: 20px; } .search-form .input-group { width: 140px; } }