feat: Redesign benefits list page with hero section and modern card design
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
This commit is contained in:
parent
813bb066e8
commit
80f79bd854
@ -4,77 +4,256 @@
|
||||
|
||||
{% block extra_css %}
|
||||
<style>
|
||||
.benefits-header {
|
||||
margin-bottom: var(--spacing-xl);
|
||||
}
|
||||
|
||||
.benefits-header h1 {
|
||||
font-size: var(--font-size-3xl);
|
||||
color: var(--text-primary);
|
||||
margin-bottom: var(--spacing-sm);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-md);
|
||||
}
|
||||
|
||||
.benefits-header p {
|
||||
color: var(--text-secondary);
|
||||
font-size: var(--font-size-lg);
|
||||
}
|
||||
|
||||
.test-mode-banner {
|
||||
background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
|
||||
border: 1px solid #f59e0b;
|
||||
border-radius: var(--radius-lg);
|
||||
padding: var(--spacing-lg);
|
||||
margin-bottom: var(--spacing-xl);
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: var(--spacing-md);
|
||||
}
|
||||
|
||||
.test-mode-banner svg {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
color: #d97706;
|
||||
flex-shrink: 0;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.test-mode-banner .info-content {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.test-mode-banner .info-title {
|
||||
font-weight: 600;
|
||||
color: #92400e;
|
||||
margin-bottom: var(--spacing-xs);
|
||||
}
|
||||
|
||||
.test-mode-banner .info-text {
|
||||
color: #b45309;
|
||||
font-size: var(--font-size-sm);
|
||||
}
|
||||
|
||||
.benefits-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
|
||||
gap: var(--spacing-lg);
|
||||
}
|
||||
|
||||
.benefit-card {
|
||||
background: white;
|
||||
border-radius: var(--radius-lg);
|
||||
border: 1px solid var(--border-color);
|
||||
box-shadow: var(--shadow);
|
||||
transition: all 0.2s ease;
|
||||
/* ============================================
|
||||
HERO SECTION
|
||||
============================================ */
|
||||
.benefits-hero {
|
||||
background: linear-gradient(135deg, #1e3a5f 0%, #2d5a87 50%, #3b7cb8 100%);
|
||||
color: white;
|
||||
padding: 3rem 0;
|
||||
margin: -2rem -1rem 2rem -1rem;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.benefits-hero::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 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.05'%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");
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.benefits-hero-content {
|
||||
max-width: 800px;
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
padding: 0 1rem;
|
||||
}
|
||||
|
||||
.benefits-hero-icon {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
background: rgba(255,255,255,0.15);
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: 0 auto 1.5rem;
|
||||
backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
.benefits-hero-icon svg {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.benefits-hero h1 {
|
||||
font-size: 2.5rem;
|
||||
font-weight: 700;
|
||||
margin-bottom: 1rem;
|
||||
text-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.benefits-hero p {
|
||||
font-size: 1.2rem;
|
||||
opacity: 0.9;
|
||||
max-width: 600px;
|
||||
margin: 0 auto 1.5rem;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.hero-stats {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 3rem;
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
.hero-stat {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.hero-stat-value {
|
||||
font-size: 2rem;
|
||||
font-weight: 700;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.hero-stat-label {
|
||||
font-size: 0.9rem;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
INFO BANNER
|
||||
============================================ */
|
||||
.info-banner {
|
||||
background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
|
||||
border: 1px solid #f59e0b;
|
||||
border-radius: 1rem;
|
||||
padding: 1.25rem 1.5rem;
|
||||
margin-bottom: 2rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
box-shadow: 0 4px 6px -1px rgba(245, 158, 11, 0.1);
|
||||
}
|
||||
|
||||
.info-banner-icon {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
background: #fbbf24;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.info-banner-icon svg {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
color: #78350f;
|
||||
}
|
||||
|
||||
.info-banner-content {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.info-banner-title {
|
||||
font-weight: 700;
|
||||
color: #92400e;
|
||||
font-size: 1rem;
|
||||
margin-bottom: 0.25rem;
|
||||
}
|
||||
|
||||
.info-banner-text {
|
||||
color: #a16207;
|
||||
font-size: 0.9rem;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
SECTION HEADER
|
||||
============================================ */
|
||||
.section-header {
|
||||
text-align: center;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.section-header h2 {
|
||||
font-size: 1.75rem;
|
||||
font-weight: 700;
|
||||
color: var(--text-primary);
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.section-header p {
|
||||
color: var(--text-secondary);
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
BENEFITS GRID
|
||||
============================================ */
|
||||
.benefits-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
|
||||
gap: 1.5rem;
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
BENEFIT CARD - REDESIGNED
|
||||
============================================ */
|
||||
.benefit-card {
|
||||
background: white;
|
||||
border-radius: 1rem;
|
||||
border: 1px solid #e2e8f0;
|
||||
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
|
||||
transition: all 0.3s ease;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.benefit-card:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: var(--shadow-lg);
|
||||
transform: translateY(-8px);
|
||||
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
|
||||
border-color: var(--primary);
|
||||
}
|
||||
|
||||
.benefit-card.featured {
|
||||
border: 2px solid var(--primary);
|
||||
}
|
||||
|
||||
.benefit-card.featured::before {
|
||||
content: 'Polecane';
|
||||
position: absolute;
|
||||
top: 16px;
|
||||
right: -32px;
|
||||
background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
|
||||
color: white;
|
||||
font-size: 0.75rem;
|
||||
font-weight: 700;
|
||||
padding: 6px 40px;
|
||||
transform: rotate(45deg);
|
||||
box-shadow: 0 2px 4px rgba(0,0,0,0.2);
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
/* Card Header with gradient accent */
|
||||
.benefit-card-header {
|
||||
padding: 1.5rem;
|
||||
background: linear-gradient(180deg, #f8fafc 0%, white 100%);
|
||||
border-bottom: 1px solid #e2e8f0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
.benefit-logo {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
border-radius: 12px;
|
||||
object-fit: contain;
|
||||
background: white;
|
||||
padding: 8px;
|
||||
border: 1px solid #e2e8f0;
|
||||
box-shadow: 0 2px 4px rgba(0,0,0,0.05);
|
||||
}
|
||||
|
||||
.benefit-logo-placeholder {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
border-radius: 12px;
|
||||
background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: white;
|
||||
font-weight: 700;
|
||||
font-size: 1.5rem;
|
||||
box-shadow: 0 4px 6px rgba(var(--primary-rgb), 0.3);
|
||||
}
|
||||
|
||||
.benefit-title-section {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.benefit-title {
|
||||
font-size: 1.25rem;
|
||||
font-weight: 700;
|
||||
color: var(--text-primary);
|
||||
margin-bottom: 4px;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
.benefit-card-link {
|
||||
@ -87,14 +266,141 @@
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
.benefit-more-link {
|
||||
.benefit-category {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
font-size: 0.8rem;
|
||||
color: var(--primary);
|
||||
font-size: var(--font-size-sm);
|
||||
background: rgba(var(--primary-rgb), 0.1);
|
||||
padding: 4px 10px;
|
||||
border-radius: 20px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* Card Body */
|
||||
.benefit-card-body {
|
||||
padding: 1.5rem;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.benefit-description {
|
||||
color: var(--text-secondary);
|
||||
font-size: 0.95rem;
|
||||
line-height: 1.6;
|
||||
margin-bottom: 1rem;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
/* Highlight features */
|
||||
.benefit-highlights {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.benefit-highlight {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
font-size: 0.8rem;
|
||||
color: #059669;
|
||||
background: #ecfdf5;
|
||||
padding: 4px 10px;
|
||||
border-radius: 20px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.benefit-highlight svg {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
}
|
||||
|
||||
/* Pricing section */
|
||||
.benefit-pricing {
|
||||
background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
|
||||
border-radius: 12px;
|
||||
padding: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
border: 1px solid #bbf7d0;
|
||||
}
|
||||
|
||||
.pricing-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.pricing-row:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.benefit-member-price {
|
||||
font-size: 1.5rem;
|
||||
font-weight: 700;
|
||||
color: #059669;
|
||||
}
|
||||
|
||||
.benefit-regular-price {
|
||||
font-size: 1rem;
|
||||
color: #9ca3af;
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
.benefit-discount-badge {
|
||||
background: linear-gradient(135deg, #059669 0%, #047857 100%);
|
||||
color: white;
|
||||
font-size: 0.75rem;
|
||||
font-weight: 700;
|
||||
padding: 4px 12px;
|
||||
border-radius: 20px;
|
||||
box-shadow: 0 2px 4px rgba(5, 150, 105, 0.3);
|
||||
}
|
||||
|
||||
/* Promo code */
|
||||
.benefit-promo-code {
|
||||
background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
|
||||
border: 2px dashed #3b82f6;
|
||||
border-radius: 12px;
|
||||
padding: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.promo-code-label {
|
||||
font-size: 0.85rem;
|
||||
color: #1e40af;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.promo-code-value {
|
||||
font-family: 'SF Mono', Monaco, monospace;
|
||||
font-weight: 700;
|
||||
color: #1d4ed8;
|
||||
font-size: 1.1rem;
|
||||
background: white;
|
||||
padding: 4px 12px;
|
||||
border-radius: 6px;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
/* More link */
|
||||
.benefit-more-link {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
color: var(--primary);
|
||||
font-size: 0.9rem;
|
||||
font-weight: 600;
|
||||
text-decoration: none;
|
||||
margin-top: var(--spacing-sm);
|
||||
margin-top: auto;
|
||||
padding-top: 0.5rem;
|
||||
}
|
||||
|
||||
.benefit-more-link:hover {
|
||||
@ -102,140 +408,20 @@
|
||||
}
|
||||
|
||||
.benefit-more-link svg {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
transition: transform 0.2s ease;
|
||||
}
|
||||
|
||||
.benefit-card.featured {
|
||||
border-color: var(--primary);
|
||||
border-width: 2px;
|
||||
}
|
||||
|
||||
.benefit-card.featured::before {
|
||||
content: 'Polecane';
|
||||
position: absolute;
|
||||
top: 12px;
|
||||
right: -28px;
|
||||
background: var(--primary);
|
||||
color: white;
|
||||
font-size: var(--font-size-xs);
|
||||
font-weight: 600;
|
||||
padding: 4px 36px;
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
|
||||
.benefit-card-header {
|
||||
padding: var(--spacing-lg);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-md);
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.benefit-logo {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border-radius: var(--radius-md);
|
||||
object-fit: contain;
|
||||
background: #f8fafc;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.benefit-logo-placeholder {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border-radius: var(--radius-md);
|
||||
background: linear-gradient(135deg, var(--primary-light) 0%, var(--primary) 100%);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: white;
|
||||
font-weight: 700;
|
||||
font-size: var(--font-size-lg);
|
||||
}
|
||||
|
||||
.benefit-title-section {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.benefit-title {
|
||||
font-size: var(--font-size-lg);
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.benefit-category {
|
||||
font-size: var(--font-size-sm);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.benefit-card-body {
|
||||
padding: var(--spacing-lg);
|
||||
}
|
||||
|
||||
.benefit-description {
|
||||
color: var(--text-secondary);
|
||||
font-size: var(--font-size-sm);
|
||||
line-height: 1.5;
|
||||
margin-bottom: var(--spacing-md);
|
||||
}
|
||||
|
||||
.benefit-pricing {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
gap: var(--spacing-sm);
|
||||
margin-bottom: var(--spacing-md);
|
||||
}
|
||||
|
||||
.benefit-member-price {
|
||||
font-size: var(--font-size-xl);
|
||||
font-weight: 700;
|
||||
color: var(--success);
|
||||
}
|
||||
|
||||
.benefit-regular-price {
|
||||
font-size: var(--font-size-sm);
|
||||
color: var(--text-secondary);
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
.benefit-discount-badge {
|
||||
background: #dcfce7;
|
||||
color: #16a34a;
|
||||
font-size: var(--font-size-xs);
|
||||
font-weight: 600;
|
||||
padding: 2px 8px;
|
||||
border-radius: var(--radius-sm);
|
||||
}
|
||||
|
||||
.benefit-promo-code {
|
||||
background: #f0f9ff;
|
||||
border: 1px dashed #0ea5e9;
|
||||
border-radius: var(--radius-md);
|
||||
padding: var(--spacing-sm) var(--spacing-md);
|
||||
margin-bottom: var(--spacing-md);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.promo-code-label {
|
||||
font-size: var(--font-size-xs);
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.promo-code-value {
|
||||
font-family: monospace;
|
||||
font-weight: 700;
|
||||
color: #0284c7;
|
||||
font-size: var(--font-size-md);
|
||||
.benefit-more-link:hover svg {
|
||||
transform: translateX(4px);
|
||||
}
|
||||
|
||||
/* Card Footer */
|
||||
.benefit-card-footer {
|
||||
padding: var(--spacing-md) var(--spacing-lg);
|
||||
background: #f8fafc;
|
||||
border-top: 1px solid var(--border-color);
|
||||
padding: 1rem 1.5rem;
|
||||
background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
|
||||
border-top: 1px solid #e2e8f0;
|
||||
}
|
||||
|
||||
.benefit-cta {
|
||||
@ -243,79 +429,162 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: var(--spacing-sm);
|
||||
padding: var(--spacing-sm) var(--spacing-md);
|
||||
background: var(--primary);
|
||||
gap: 0.5rem;
|
||||
padding: 0.875rem 1.5rem;
|
||||
background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
|
||||
color: white;
|
||||
border: none;
|
||||
border-radius: var(--radius-md);
|
||||
border-radius: 10px;
|
||||
font-weight: 600;
|
||||
font-size: 1rem;
|
||||
cursor: pointer;
|
||||
transition: background 0.2s ease;
|
||||
transition: all 0.2s ease;
|
||||
text-decoration: none;
|
||||
box-shadow: 0 4px 6px rgba(var(--primary-rgb), 0.25);
|
||||
}
|
||||
|
||||
.benefit-cta:hover {
|
||||
background: var(--primary-dark);
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 6px 12px rgba(var(--primary-rgb), 0.35);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.benefit-cta svg {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
EMPTY STATE
|
||||
============================================ */
|
||||
.empty-state {
|
||||
text-align: center;
|
||||
padding: var(--spacing-3xl);
|
||||
color: var(--text-secondary);
|
||||
padding: 4rem 2rem;
|
||||
background: linear-gradient(180deg, #f8fafc 0%, white 100%);
|
||||
border-radius: 1rem;
|
||||
border: 2px dashed #e2e8f0;
|
||||
}
|
||||
|
||||
.empty-state svg {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
margin-bottom: var(--spacing-md);
|
||||
opacity: 0.5;
|
||||
.empty-state-icon {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
background: #f1f5f9;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: 0 auto 1.5rem;
|
||||
}
|
||||
|
||||
.empty-state-icon svg {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
color: #94a3b8;
|
||||
}
|
||||
|
||||
.empty-state h3 {
|
||||
font-size: var(--font-size-xl);
|
||||
font-size: 1.5rem;
|
||||
color: var(--text-primary);
|
||||
margin-bottom: var(--spacing-sm);
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.empty-state p {
|
||||
color: var(--text-secondary);
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
/* ============================================
|
||||
MOBILE RESPONSIVE
|
||||
============================================ */
|
||||
@media (max-width: 768px) {
|
||||
.benefits-hero {
|
||||
padding: 2rem 0;
|
||||
margin: -1rem -1rem 1.5rem -1rem;
|
||||
}
|
||||
|
||||
.benefits-hero h1 {
|
||||
font-size: 1.75rem;
|
||||
}
|
||||
|
||||
.benefits-hero p {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.hero-stats {
|
||||
gap: 1.5rem;
|
||||
}
|
||||
|
||||
.hero-stat-value {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.benefits-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.info-banner {
|
||||
flex-direction: column;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container">
|
||||
<div class="benefits-header">
|
||||
<h1>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<!-- Hero Section -->
|
||||
<div class="benefits-hero">
|
||||
<div class="benefits-hero-content">
|
||||
<div class="benefits-hero-icon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M12 2L2 7l10 5 10-5-10-5z"></path>
|
||||
<path d="M2 17l10 5 10-5"></path>
|
||||
<path d="M2 12l10 5 10-5"></path>
|
||||
</svg>
|
||||
Korzyści Członkowskie
|
||||
</h1>
|
||||
<p>Ekskluzywne oferty i zniżki dla członków Izby Przedsiębiorców NORDA</p>
|
||||
</div>
|
||||
<h1>Korzyści Członkowskie</h1>
|
||||
<p>Ekskluzywne oferty, zniżki i narzędzia dla członków Izby Przedsiębiorców NORDA. Oszczędzaj na subskrypcjach i oprogramowaniu biznesowym.</p>
|
||||
|
||||
<div class="hero-stats">
|
||||
<div class="hero-stat">
|
||||
<span class="hero-stat-value">{{ benefits|length if benefits else 0 }}</span>
|
||||
<span class="hero-stat-label">Aktywnych ofert</span>
|
||||
</div>
|
||||
<div class="hero-stat">
|
||||
<span class="hero-stat-value">do 50%</span>
|
||||
<span class="hero-stat-label">Oszczędności</span>
|
||||
</div>
|
||||
<div class="hero-stat">
|
||||
<span class="hero-stat-value">14 dni</span>
|
||||
<span class="hero-stat-label">Darmowy trial</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<!-- Test mode banner -->
|
||||
<div class="test-mode-banner">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<div class="info-banner">
|
||||
<div class="info-banner-icon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path>
|
||||
<line x1="12" y1="9" x2="12" y2="13"></line>
|
||||
<line x1="12" y1="17" x2="12.01" y2="17"></line>
|
||||
</svg>
|
||||
<div class="info-content">
|
||||
<div class="info-title">Tryb testowy</div>
|
||||
<div class="info-text">
|
||||
</div>
|
||||
<div class="info-banner-content">
|
||||
<div class="info-banner-title">Tryb testowy</div>
|
||||
<div class="info-banner-text">
|
||||
Ta strona jest widoczna tylko dla administratorów. Po zakończeniu testów zostanie udostępniona wszystkim członkom Izby.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if benefits %}
|
||||
<div class="section-header">
|
||||
<h2>Dostępne oferty</h2>
|
||||
<p>Wybierz ofertę i zacznij oszczędzać już dziś</p>
|
||||
</div>
|
||||
|
||||
<div class="benefits-grid">
|
||||
{% for benefit in benefits %}
|
||||
<div class="benefit-card {% if benefit.is_featured %}featured{% endif %}">
|
||||
@ -328,7 +597,7 @@
|
||||
{% endif %}
|
||||
<div class="benefit-title-section">
|
||||
<div class="benefit-title">{{ benefit.name }}</div>
|
||||
<div class="benefit-category">{{ category_choices.get(benefit.category, benefit.category) }}</div>
|
||||
<span class="benefit-category">{{ category_choices.get(benefit.category, benefit.category) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
@ -338,25 +607,38 @@
|
||||
{{ benefit.short_description or benefit.description[:150] + '...' if benefit.description and benefit.description|length > 150 else benefit.description or 'Brak opisu.' }}
|
||||
</p>
|
||||
|
||||
<a href="{{ url_for('benefits.benefit_detail', slug=benefit.slug) }}" class="benefit-more-link">
|
||||
Zobacz szczegóły
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<polyline points="9 18 15 12 9 6"></polyline>
|
||||
<div class="benefit-highlights">
|
||||
<span class="benefit-highlight">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||||
<polyline points="20 6 9 17 4 12"></polyline>
|
||||
</svg>
|
||||
</a>
|
||||
14 dni za darmo
|
||||
</span>
|
||||
<span class="benefit-highlight">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||||
<polyline points="20 6 9 17 4 12"></polyline>
|
||||
</svg>
|
||||
Bez zobowiązań
|
||||
</span>
|
||||
</div>
|
||||
|
||||
{% if benefit.member_price or benefit.discount_description %}
|
||||
<div class="benefit-pricing">
|
||||
<div class="pricing-row">
|
||||
{% if benefit.member_price %}
|
||||
<span class="benefit-member-price">{{ benefit.member_price }}</span>
|
||||
{% endif %}
|
||||
{% if benefit.regular_price %}
|
||||
<span class="benefit-regular-price">{{ benefit.regular_price }}</span>
|
||||
{% endif %}
|
||||
{% if benefit.discount_description %}
|
||||
<span class="benefit-discount-badge">{{ benefit.discount_description }}</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if benefit.regular_price %}
|
||||
<div class="pricing-row">
|
||||
<span style="font-size: 0.85rem; color: #6b7280;">Cena regularna:</span>
|
||||
<span class="benefit-regular-price">{{ benefit.regular_price }}</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if benefit.promo_code %}
|
||||
@ -365,11 +647,18 @@
|
||||
<span class="promo-code-value">{{ benefit.promo_code }}</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<a href="{{ url_for('benefits.benefit_detail', slug=benefit.slug) }}" class="benefit-more-link">
|
||||
Zobacz szczegóły oferty
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<polyline points="9 18 15 12 9 6"></polyline>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="benefit-card-footer">
|
||||
<a href="{{ url_for('benefits.benefit_redirect', slug=benefit.slug) }}" class="benefit-cta" target="_blank" rel="noopener">
|
||||
Skorzystaj z oferty
|
||||
Wypróbuj za darmo
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path>
|
||||
<polyline points="15 3 21 3 21 9"></polyline>
|
||||
@ -382,11 +671,13 @@
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="empty-state">
|
||||
<div class="empty-state-icon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M12 2L2 7l10 5 10-5-10-5z"></path>
|
||||
<path d="M2 17l10 5 10-5"></path>
|
||||
<path d="M2 12l10 5 10-5"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<h3>Brak dostępnych ofert</h3>
|
||||
<p>Wkrótce pojawią się tutaj ekskluzywne korzyści dla członków Izby.</p>
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user