/* 送花服务页面样式 */ /* 页面头部样式 */ .flower-header { background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('data:image/svg+xml;utf8,'); background-size: cover; background-position: center; position: relative; overflow: hidden; padding: 3rem 0; } /* 鲜花卡片样式 */ .flower-card { transition: transform 0.3s ease, box-shadow 0.3s ease; border: none; border-radius: 10px; overflow: hidden; box-shadow: 0 5px 15px rgba(0,0,0,0.05); background: #fff; } .flower-card:hover { transform: translateY(-5px); box-shadow: 0 15px 30px rgba(0,0,0,0.1); } .flower-card .card-img-top { height: 250px; object-fit: cover; transition: transform 0.3s ease; } .flower-card:hover .card-img-top { transform: scale(1.05); } .flower-card .card-body { padding: 1.5rem; } .flower-card .flower-price { font-size: 1.5rem; font-weight: bold; color: #ff6b6b; } .flower-card .flower-original-price { text-decoration: line-through; color: #6c757d; font-size: 0.9rem; } .flower-card .flower-tags { margin-bottom: 1rem; } .flower-card .flower-tag { display: inline-block; padding: 0.25rem 0.75rem; border-radius: 15px; font-size: 0.75rem; font-weight: 500; margin-right: 0.5rem; margin-bottom: 0.5rem; } .flower-card .flower-tag.love { background-color: rgba(255, 107, 107, 0.1); color: #ff6b6b; } .flower-card .flower-tag.birthday { background-color: rgba(255, 193, 7, 0.1); color: #ffc107; } .flower-card .flower-tag.celebration { background-color: rgba(32, 201, 151, 0.1); color: #20c997; } .flower-card .flower-tag.sympathy { background-color: rgba(108, 117, 125, 0.1); color: #6c757d; } /* 筛选器样式 */ .flower-filter { background: #fff; padding: 20px; border-radius: 10px; box-shadow: 0 5px 15px rgba(0,0,0,0.05); margin-bottom: 2rem; } .flower-filter .filter-title { margin-bottom: 15px; font-weight: 600; color: #333; } /* 分类卡片样式 */ .category-card { padding: 30px 20px; text-align: center; background: #fff; border-radius: 10px; box-shadow: 0 5px 15px rgba(0,0,0,0.05); transition: transform 0.3s ease, box-shadow 0.3s ease; height: 100%; border: 1px solid #eee; } .category-card:hover { transform: translateY(-5px); box-shadow: 0 15px 30px rgba(0,0,0,0.1); } .category-card .category-icon { width: 70px; height: 70px; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #ff6b6b 0%, #e55a5a 100%); color: white; border-radius: 50%; font-size: 1.5rem; margin: 0 auto 20px; } .category-card h5 { font-weight: 600; color: #495057; margin-bottom: 0.5rem; } .category-card p { color: #6c757d; font-size: 0.9rem; } /* 流程步骤样式 */ .process-step { padding: 30px; text-align: center; transition: transform 0.3s ease, box-shadow 0.3s ease; height: 100%; border-radius: 10px; background: #fff; box-shadow: 0 5px 15px rgba(0,0,0,0.05); } .process-step:hover { transform: translateY(-10px); box-shadow: 0 15px 30px rgba(0,0,0,0.1); } .process-step .step-number { width: 40px; height: 40px; border-radius: 50%; background: linear-gradient(135deg, #ff6b6b, #e55a5a); color: white; display: flex; align-items: center; justify-content: center; font-weight: bold; margin: 0 auto 20px; } .process-step .step-icon { width: 80px; height: 80px; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #ff6b6b 0%, #e55a5a 100%); color: white; border-radius: 50%; font-size: 2rem; margin: 0 auto 20px; transition: transform 0.3s ease; } .process-step:hover .step-icon { transform: scale(1.1); } .process-step h5 { font-weight: 600; color: #495057; margin-bottom: 0.5rem; } .process-step p { color: #6c757d; font-size: 0.9rem; } /* 按钮样式 */ .btn-flower { background: linear-gradient(135deg, #ff6b6b, #e55a5a); border: none; border-radius: 50px; padding: 10px 30px; font-weight: 600; color: white; transition: all 0.3s ease; } .btn-flower:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(255, 107, 107, 0.3); color: white; } .btn-flower-outline { border: 2px solid #ff6b6b; border-radius: 50px; padding: 10px 30px; font-weight: 600; color: #ff6b6b; background: transparent; transition: all 0.3s ease; } .btn-flower-outline:hover { background: #ff6b6b; color: white; transform: translateY(-2px); } /* 响应式调整 */ @media (max-width: 768px) { .flower-card .card-img-top { height: 200px; } .category-card { padding: 1.5rem 0.5rem; } .category-card .category-icon { width: 60px; height: 60px; font-size: 1.5rem; } .process-step { padding: 1.5rem 0.5rem; } } /* 章节标题样式 */ .section-title { position: relative; padding-bottom: 15px; margin-bottom: 40px; color: #333; } .section-title::after { content: ""; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 60px; height: 3px; background: linear-gradient(135deg, #ff6b6b 0%, #e55a5a 100%); border-radius: 3px; } /* 动画效果 */ @keyframes flowerBloom { 0% { transform: scale(0.8); opacity: 0; } 100% { transform: scale(1); opacity: 1; } } .flower-card { animation: flowerBloom 0.6s ease-out; } /* 加载动画 */ .flower-loading { display: flex; justify-content: center; align-items: center; height: 200px; } .flower-loading .spinner-border { color: #ff6b6b; } /* 空状态样式 */ .flower-empty { text-align: center; padding: 3rem 1rem; color: #6c757d; } .flower-empty i { font-size: 4rem; color: #dee2e6; margin-bottom: 1rem; } .flower-empty h4 { color: #495057; margin-bottom: 1rem; } /* 价格标签样式 */ .price-badge { background: linear-gradient(135deg, #ff6b6b, #ff8e8e); color: white; padding: 0.25rem 0.75rem; border-radius: 15px; font-size: 0.8rem; font-weight: 600; } /* 折扣标签样式 */ .discount-badge { background: #20c997; color: white; padding: 0.25rem 0.5rem; border-radius: 10px; font-size: 0.7rem; font-weight: 600; position: absolute; top: 10px; right: 10px; z-index: 1; } /* 卡片悬停效果增强 */ .flower-card { position: relative; } .flower-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(135deg, rgba(255, 107, 107, 0.1), rgba(255, 142, 142, 0.1)); opacity: 0; transition: opacity 0.3s ease; pointer-events: none; } .flower-card:hover::before { opacity: 1; }