/* ===== BIKE PAGE SPECIFIC STYLES ===== */ .page-hero { background: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)), url('../images/Bike-bg.png') no-repeat center center/cover; color: white; text-align: center; padding: 120px 0 80px; margin-top: 70px; } .page-hero h1 { font-size: 2.8rem; margin-bottom: 15px; } .page-hero p { font-size: 1.2rem; opacity: 0.9; } /* Filter Section */ .bike-filter { background-color: var(--light); padding: 30px 0; position: sticky; top: 70px; z-index: 100; box-shadow: 0 2px 10px rgba(0,0,0,0.1); } .filter-container { display: flex; flex-wrap: wrap; gap: 20px; justify-content: center; } .filter-group { flex: 1; min-width: 200px; max-width: 300px; } .filter-group label { display: block; margin-bottom: 8px; font-weight: 600; color: var(--dark); } .filter-group select { width: 100%; padding: 12px 15px; border-radius: 5px; border: 1px solid #ddd; background-color: white; font-size: 1rem; transition: var(--transition); } .filter-group select:focus { border-color: var(--primary); outline: none; box-shadow: 0 0 0 2px rgba(37, 211, 102, 0.2); } #reset-filters { align-self: flex-end; margin-bottom: 5px; } /* Bike Categories */ .category-section { margin: 60px 0; } .category-title { font-size: 1.8rem; margin-bottom: 30px; display: flex; align-items: center; gap: 10px; color: var(--dark); } .category-title i { color: var(--primary); } .bike-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 30px; margin-top: 20px; } .bike-card { background-color: white; border-radius: 10px; overflow: hidden; box-shadow: var(--shadow); transition: var(--transition); position: relative; } .bike-card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(0,0,0,0.15); } .bike-badge { position: absolute; top: 15px; right: 15px; background-color: var(--primary); color: white; padding: 5px 15px; border-radius: 50px; font-size: 0.8rem; font-weight: 600; z-index: 2; } .bike-img { height: 200px; overflow: hidden; } .bike-img img { width: 100%; height: 100%; object-fit: cover; transition: var(--transition); } .bike-card:hover .bike-img img { transform: scale(1.05); } .bike-details { padding: 20px; } .bike-details h3 { font-size: 1.3rem; margin-bottom: 10px; color: var(--dark); } .bike-specs { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 15px; font-size: 0.9rem; color: var(--gray); } .bike-specs i { margin-right: 5px; color: var(--primary); } .price-box { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; } .bike-price { font-size: 1.5rem; font-weight: 700; color: var(--primary); } .bike-price span { font-size: 1rem; font-weight: 400; color: var(--gray); } .hourly-price { font-size: 0.9rem; color: var(--gray); background-color: var(--light-gray); padding: 3px 10px; border-radius: 50px; } .bike-actions { display: flex; gap: 10px; } .bike-actions .btn { flex: 1; text-align: center; padding: 10px; } /* Modal Styles */ .modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.8); z-index: 2000; overflow-y: auto; } .modal-content { background-color: white; margin: 50px auto; padding: 30px; border-radius: 10px; max-width: 800px; width: 90%; position: relative; animation: modalFadeIn 0.3s ease; } .close-modal { position: absolute; top: 15px; right: 15px; font-size: 1.8rem; color: var(--gray); cursor: pointer; transition: var(--transition); } .close-modal:hover { color: var(--primary); } @keyframes modalFadeIn { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } } /* No Results Message */ .no-results { text-align: center; padding: 50px 0; grid-column: 1 / -1; } .no-results h3 { font-size: 1.5rem; margin-bottom: 10px; color: var(--dark); } .no-results p { color: var(--gray); } /* Responsive Styles */ @media (max-width: 768px) { .filter-container { flex-direction: column; gap: 15px; } .filter-group { max-width: 100%; } #reset-filters { align-self: center; } .bike-grid { grid-template-columns: 1fr; } .modal-content { margin: 20px auto; padding: 20px; } }