/* Estilos Globales - La Plomería */ :root { --primary-color: #0066cc; --primary-dark: #004499; --primary-light: #0088ff; --secondary-color: #ffc107; --success-color: #28a745; --danger-color: #dc3545; --dark-color: #343a40; --light-color: #f8f9fa; --font-primary: 'Inter', system-ui, -apple-system, sans-serif; } * { font-family: var(--font-primary); margin: 0; padding: 0; box-sizing: border-box; } /* Animaciones Globales */ @keyframes float { 0% { transform: translateY(0px); } 50% { transform: translateY(-20px); } 100% { transform: translateY(0px); } } @keyframes gradient { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } @keyframes pulse-glow { 0%, 100% { box-shadow: 0 0 20px rgba(59, 130, 246, 0.5); } 50% { box-shadow: 0 0 40px rgba(59, 130, 246, 0.8); } } @keyframes slide-in { 0% { transform: translateY(100px); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } } .floating { animation: float 6s ease-in-out infinite; } .gradient-animation { background: linear-gradient(-45deg, #0066cc, #004499, #0088ff, #0055aa); background-size: 400% 400%; animation: gradient 15s ease infinite; } .pulse-glow { animation: pulse-glow 2s infinite; } .slide-in { animation: slide-in 0.8s ease; } /* Hover Effects */ .card-hover { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .card-hover:hover { transform: translateY(-10px) scale(1.02); box-shadow: 0 20px 40px rgba(0,0,0,0.1); } /* Glassmorphism */ .glass { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.2); } /* Custom Scrollbar */ ::-webkit-scrollbar { width: 12px; } ::-webkit-scrollbar-track { background: #f1f1f1; } ::-webkit-scrollbar-thumb { background: #3b82f6; border-radius: 6px; } ::-webkit-scrollbar-thumb:hover { background: #2563eb; } /* Loader */ .loader { border: 8px solid #f3f3f3; border-top: 8px solid #3b82f6; border-radius: 50%; width: 60px; height: 60px; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Product Grid */ .product-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 2rem; padding: 2rem 0; } .product-card { background: white; border-radius: 1rem; overflow: hidden; box-shadow: 0 4px 6px rgba(0,0,0,0.1); transition: all 0.3s ease; } .product-card:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0,0,0,0.15); } .product-image { width: 100%; height: 250px; object-fit: cover; background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); } .product-badge { position: absolute; top: 10px; right: 10px; padding: 0.5rem 1rem; border-radius: 2rem; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; } .badge-new { background: #28a745; color: white; } .badge-sale { background: #dc3545; color: white; } .badge-featured { background: #ffc107; color: #333; } /* Cart Button */ .cart-float { position: fixed; bottom: 30px; right: 30px; width: 60px; height: 60px; background: #28a745; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: white; font-size: 1.5rem; box-shadow: 0 4px 12px rgba(0,0,0,0.2); cursor: pointer; z-index: 1000; transition: all 0.3s ease; } .cart-float:hover { transform: scale(1.1); background: #218838; } .cart-badge { position: absolute; top: -5px; right: -5px; background: #dc3545; color: white; width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.75rem; font-weight: bold; } /* Price Display */ .price { font-size: 1.5rem; font-weight: bold; color: var(--primary-color); } .price-old { text-decoration: line-through; color: #999; font-size: 1.1rem; } .price-discount { background: #dc3545; color: white; padding: 0.25rem 0.5rem; border-radius: 0.25rem; font-size: 0.875rem; margin-left: 0.5rem; } /* Filters Sidebar */ .filters-sidebar { background: white; border-radius: 1rem; padding: 1.5rem; box-shadow: 0 4px 6px rgba(0,0,0,0.1); } .filter-group { margin-bottom: 2rem; } .filter-group h3 { font-size: 1.1rem; font-weight: 600; margin-bottom: 1rem; color: #333; } /* Smooth Scroll */ html { scroll-behavior: smooth; } /* Breadcrumb */ .breadcrumb { display: flex; align-items: center; gap: 0.5rem; padding: 1rem 0; font-size: 0.875rem; color: #666; } .breadcrumb a { color: var(--primary-color); text-decoration: none; } .breadcrumb a:hover { text-decoration: underline; } /* Quantity Selector */ .quantity-selector { display: flex; align-items: center; gap: 1rem; } .quantity-selector button { width: 40px; height: 40px; border: 1px solid #ddd; background: white; border-radius: 0.5rem; cursor: pointer; transition: all 0.3s ease; } .quantity-selector button:hover { background: var(--primary-color); color: white; } .quantity-selector input { width: 60px; height: 40px; text-align: center; border: 1px solid #ddd; border-radius: 0.5rem; font-size: 1rem; } /* Product Gallery */ .product-gallery { display: flex; gap: 1rem; } .gallery-main { flex: 1; } .gallery-thumbs { display: flex; flex-direction: column; gap: 0.5rem; width: 100px; } .gallery-thumb { width: 100px; height: 100px; object-fit: cover; border: 2px solid transparent; border-radius: 0.5rem; cursor: pointer; transition: all 0.3s ease; } .gallery-thumb:hover, .gallery-thumb.active { border-color: var(--primary-color); } /* Rating Stars */ .rating { display: flex; align-items: center; gap: 0.25rem; } .rating .star { color: #ffc107; font-size: 1rem; } .rating .star.empty { color: #ddd; } /* Search Bar */ .search-bar { position: relative; max-width: 600px; margin: 0 auto; } .search-bar input { width: 100%; padding: 1rem 3rem 1rem 1rem; border: 2px solid #ddd; border-radius: 2rem; font-size: 1rem; transition: all 0.3s ease; } .search-bar input:focus { outline: none; border-color: var(--primary-color); } .search-bar button { position: absolute; right: 5px; top: 50%; transform: translateY(-50%); background: var(--primary-color); color: white; border: none; border-radius: 50%; width: 40px; height: 40px; cursor: pointer; transition: all 0.3s ease; } .search-bar button:hover { background: var(--primary-dark); }