/* Modern blue theme using Prompt font */ * { box-sizing: border-box; font-family: 'Prompt', system-ui, -apple-system, 'Segoe UI', Roboto, 'Noto Sans', 'Helvetica', 'Arial', "Microsoft JhengHei", sans-serif; } :root { --bg-0: #f5f9ff; --bg-1: #e8f1ff; --blue-600: #0d6efd; /* primary */ --blue-500: #1e88ff; --blue-400: #66a8ff; --muted: #6b7280; --card-bg: rgba(255, 255, 255, 0.06); --glass: rgba(255, 255, 255, 0.06); } body { background: linear-gradient(180deg, #eaf4ff 0%, #f8fbff 100%); color: #07203a; min-height: 100vh; } .navbar { background: linear-gradient(90deg, rgba(255, 255, 255, 0.8), rgba(240, 248, 255, 0.6)) !important; backdrop-filter: blur(8px); border-bottom: 1px solid rgba(13, 110, 253, 0.12); } .navbar-brand { color: var(--blue-600) !important; font-weight: 700; font-size: 1.6rem; } .nav-link { color: rgba(7, 32, 58, 0.85) !important; transition: color 0.2s; } .nav-link:hover { color: var(--blue-500) !important; } .hero-carousel { height: 62vh; position: relative; overflow: hidden; } .carousel-item img { height: 62vh; object-fit: cover; filter: saturate(1.05) contrast(0.95) brightness(0.9); } .carousel-caption { background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)); border-radius: 12px; padding: 28px; backdrop-filter: blur(6px); color: #042033; } .btn-gold { background: linear-gradient(90deg, var(--blue-500), var(--blue-400)); border: none; color: white; font-weight: 600; padding: 10px 22px; border-radius: 12px; transition: transform .18s ease, box-shadow .18s ease; } .btn-gold:hover { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(30, 136, 255, 0.18); } .card { background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(245, 250, 255, 0.98)); border: 1px solid rgba(13, 110, 253, 0.08); border-radius: 14px; transition: transform .18s ease, box-shadow .18s ease; } .card:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(14, 60, 105, 0.08); } .card-img-top { height: 240px; object-fit: cover; border-radius: 14px 14px 0 0; } .price { color: var(--blue-600); font-size: 1.25rem; font-weight: 700; } .original-price { color: var(--muted); text-decoration: line-through; font-size: 0.95rem; } .cart-count { background: var(--blue-400); color: white; border-radius: 50%; padding: 3px 7px; font-size: 0.8rem; font-weight: 700; } .modal-content { background: #ffffff; border: 1px solid rgba(13, 110, 253, 0.06); border-radius: 12px; } .form-control, .form-select { background: #fff; border: 1px solid rgba(7, 32, 58, 0.06); color: #07203a; border-radius: 8px; } .form-control:focus, .form-select:focus { outline: none; border-color: var(--blue-500); box-shadow: 0 6px 20px rgba(30, 136, 255, 0.08); } .form-control::placeholder { color: #94a3b8; } .section-title { color: var(--blue-600); font-weight: 700; position: relative; padding-bottom: 12px; margin-bottom: 26px; } .section-title::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 56px; height: 4px; background: linear-gradient(90deg, var(--blue-500), var(--blue-400)); border-radius: 4px; } .footer { background: linear-gradient(90deg, #fbfdff, #f5f9ff); border-top: 1px solid rgba(13, 110, 253, 0.06); margin-top: 40px; } .social-icon { width: 40px; height: 40px; background: var(--blue-500); color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; text-decoration: none; transition: transform .18s ease, background .18s ease; margin: 0 5px; } .social-icon:hover { transform: translateY(-3px); background: var(--blue-400); } .loading { display: none; text-align: center; padding: 20px; } .spinner { border: 3px solid rgba(30, 136, 255, 0.12); border-radius: 50%; border-top: 3px solid var(--blue-600); width: 30px; height: 30px; animation: spin 1s linear infinite; margin: 0 auto 10px; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .success-animation { animation: success 0.45s ease-in-out; } @keyframes success { 0% { transform: scale(1) } 50% { transform: scale(1.04) } 100% { transform: scale(1) } } /* Ensure headings inside semantic containers have explicit font sizes to avoid future browser default changes affecting layout. */ section h1, article h1, aside h1, nav h1 { /* responsive, clamped size for stability */ font-size: clamp(1.25rem, 1.6rem + 1vw, 2.25rem); line-height: 1.15; margin: 0 0 0.5rem; font-weight: 700; } /* small responsive tweaks */ @media (max-width: 767px) { .hero-carousel { height: 42vh; } .carousel-caption { padding: 18px; } .card-img-top { height: 200px; } }