From a22f5d94293d3e5a906f47201a27ce65afded5ec Mon Sep 17 00:00:00 2001 From: Cipher Vance Date: Wed, 23 Jul 2025 11:15:51 -0500 Subject: [PATCH] feat: Add styles for Open Source Compliance page Added extensive CSS styles for the Open Source Compliance page, including hero section, compliance grid, benefits section, and CTA styling. Included responsive design adjustments for mobile and tablet views. --- app/static/css/styles.css | 434 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 434 insertions(+) diff --git a/app/static/css/styles.css b/app/static/css/styles.css index c99466a..ae81afd 100644 --- a/app/static/css/styles.css +++ b/app/static/css/styles.css @@ -5147,4 +5147,438 @@ footer { .service-category { padding: 1.5rem; } +} + +/* Open Source Compliance Hero */ +.oss-compliance-hero { + background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%); + color: #fff; + padding: 6rem 2rem 4rem; + text-align: center; +} + +.oss-compliance-hero .hero-title { + font-size: 3.5rem; + font-weight: 800; + margin-bottom: 1.5rem; +} + +.oss-compliance-hero .hero-subtitle { + font-size: 1.3rem; + max-width: 800px; + margin: 0 auto 3rem; + opacity: 0.9; + line-height: 1.6; +} + +.oss-compliance-hero .hero-stats { + display: flex; + justify-content: center; + gap: 4rem; + margin-top: 3rem; +} + +.oss-compliance-hero .stat { + text-align: center; +} + +.oss-compliance-hero .stat-number { + font-size: 2.5rem; + font-weight: 700; + margin-bottom: 0.5rem; +} + +.oss-compliance-hero .stat-label { + font-size: 0.9rem; + opacity: 0.8; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +/* Compliance Grid */ +.compliance-grid-section { + padding: 6rem 2rem; + background: #f8f9fa; +} + +.compliance-container { + max-width: 1400px; + margin: 0 auto; +} + +.compliance-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); + gap: 3rem; + margin-top: 4rem; +} + +.compliance-card { + background: #fff; + border-radius: 20px; + padding: 3rem; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); + transition: all 0.3s ease; + border: 1px solid #e9ecef; + position: relative; + overflow: hidden; +} + +.compliance-card:hover { + transform: translateY(-10px); + box-shadow: 0 20px 50px rgba(0, 0, 0, 0.15); +} + +.compliance-header { + display: flex; + align-items: center; + gap: 1.5rem; + margin-bottom: 2rem; + padding-bottom: 1.5rem; + border-bottom: 1px solid #f1f3f4; +} + +.compliance-logo { + position: relative; + width: 60px; + height: 60px; + display: flex; + align-items: center; + justify-content: center; +} + +.compliance-logo img { + max-width: 100%; + max-height: 100%; + object-fit: contain; +} + +.compliance-icon { + font-size: 2.5rem; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +.compliance-title { + font-size: 1.8rem; + font-weight: 700; + color: #2c3e50; + margin: 0 0 0.5rem 0; +} + +.compliance-category { + background: linear-gradient(135deg, #3498db, #2980b9); + color: #fff; + padding: 0.3rem 1rem; + border-radius: 20px; + font-size: 0.8rem; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +.compliance-description { + margin-bottom: 2rem; +} + +.compliance-description p { + color: #7f8c8d; + line-height: 1.7; + font-size: 1rem; +} + +.compliance-links { + display: flex; + gap: 1rem; + flex-wrap: wrap; +} + +.compliance-link { + display: flex; + align-items: center; + gap: 0.5rem; + padding: 0.8rem 1.5rem; + border-radius: 8px; + text-decoration: none; + font-weight: 600; + font-size: 0.9rem; + transition: all 0.3s ease; +} + +.compliance-link.primary { + background: linear-gradient(135deg, #3498db, #2980b9); + color: #fff; +} + +.compliance-link.primary:hover { + transform: translateY(-2px); + box-shadow: 0 4px 15px rgba(52, 152, 219, 0.3); +} + +.compliance-link.secondary { + background: #f8f9fa; + color: #555; + border: 1px solid #e9ecef; +} + +.compliance-link.secondary:hover { + background: #e9ecef; + color: #2c3e50; +} + +/* Why Compliance Matters */ +.why-compliance { + padding: 6rem 2rem; + background: #fff; +} + +.compliance-container { + max-width: 1400px; + margin: 0 auto; +} + +.benefits-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2.5rem; + margin-top: 4rem; +} + +.benefit-card { + text-align: center; + padding: 2.5rem; + border-radius: 16px; + background: #f8f9fa; + transition: all 0.3s ease; + border: 1px solid #e9ecef; +} + +.benefit-card:hover { + transform: translateY(-5px); + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); + background: #fff; +} + +.benefit-icon { + font-size: 3rem; + margin-bottom: 1.5rem; +} + +.benefit-card h3 { + font-size: 1.4rem; + font-weight: 700; + color: #2c3e50; + margin-bottom: 1rem; +} + +.benefit-card p { + color: #7f8c8d; + line-height: 1.6; +} + +/* Compliance CTA */ +.compliance-cta { + padding: 6rem 2rem; + background: linear-gradient(135deg, #2c3e50 0%, #34495e 100%); + color: #fff; + text-align: center; +} + +.compliance-cta h2 { + font-size: 3rem; + font-weight: 700; + margin-bottom: 1.5rem; +} + +.compliance-cta p { + font-size: 1.2rem; + max-width: 800px; + margin: 0 auto 3rem; + opacity: 0.9; + line-height: 1.6; +} + +.cta-actions { + display: flex; + gap: 1.5rem; + justify-content: center; + flex-wrap: wrap; +} + +.cta-button { + display: inline-flex; + align-items: center; + gap: 0.5rem; + padding: 1rem 2rem; + border-radius: 12px; + font-weight: 600; + font-size: 1.1rem; + text-decoration: none; + transition: all 0.3s ease; + position: relative; + overflow: hidden; +} + +.cta-button.primary { + background: linear-gradient(135deg, #ffd700, #ffed4e); + color: #1e3c72; + box-shadow: 0 8px 25px rgba(255, 215, 0, 0.3); +} + +.cta-button.primary:hover { + transform: translateY(-2px); + box-shadow: 0 12px 35px rgba(255, 215, 0, 0.4); +} + +.cta-button.secondary { + background: transparent; + color: #fff; + border: 2px solid rgba(255, 255, 255, 0.3); + backdrop-filter: blur(10px); +} + +.cta-button.secondary:hover { + background: rgba(255, 255, 255, 0.1); + border-color: rgba(255, 255, 255, 0.5); +} + +/* Responsive Design */ +@media (max-width: 1024px) { + .compliance-grid { + grid-template-columns: 1fr; + } + + .benefits-grid { + grid-template-columns: 1fr; + } +} + +@media (max-width: 768px) { + .oss-compliance-hero .hero-title { + font-size: 2.5rem; + } + + .oss-compliance-hero .hero-stats { + gap: 2rem; + } + + .compliance-card { + padding: 2rem; + } + + .compliance-header { + flex-direction: column; + text-align: center; + gap: 1rem; + } + + .compliance-links { + flex-direction: column; + } +} + +/* Overarching CTA Section */ +.cta-section { + padding: 6rem 2rem; + background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%); + color: #fff; + text-align: center; + position: relative; + overflow: hidden; +} + +.cta-section::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: url('data:image/svg+xml,'); + pointer-events: none; +} + +.cta-section .container { + max-width: 800px; + margin: 0 auto; + position: relative; + z-index: 1; +} + +.cta-section h2 { + font-size: 3rem; + font-weight: 800; + margin-bottom: 1.5rem; +} + +.cta-section p { + font-size: 1.3rem; + line-height: 1.6; + margin-bottom: 3rem; + opacity: 0.9; + max-width: 800px; + margin-left: auto; + margin-right: auto; +} + +.cta-section .cta-actions { + display: flex; + gap: 1.5rem; + justify-content: center; + flex-wrap: wrap; +} + +.cta-section .btn { + display: inline-flex; + align-items: center; + gap: 0.5rem; + padding: 1rem 2rem; + border-radius: 12px; + font-weight: 600; + font-size: 1.1rem; + text-decoration: none; + transition: all 0.3s ease; + position: relative; + overflow: hidden; +} + +.cta-section .btn-primary { + background: linear-gradient(135deg, #ffd700, #ffed4e); + color: #1e3c72; + box-shadow: 0 8px 25px rgba(255, 215, 0, 0.3); +} + +.cta-section .btn-primary:hover { + transform: translateY(-2px); + box-shadow: 0 12px 35px rgba(255, 215, 0, 0.4); +} + +.cta-section .btn-secondary { + background: transparent; + color: #fff; + border: 2px solid rgba(255, 255, 255, 0.3); + backdrop-filter: blur(10px); +} + +.cta-section .btn-secondary:hover { + background: rgba(255, 255, 255, 0.1); + border-color: rgba(255, 255, 255, 0.5); +} + +/* Responsive Design */ +@media (max-width: 768px) { + .cta-section h2 { + font-size: 2.5rem; + } + + .cta-section p { + font-size: 1.1rem; + } + + .cta-section .cta-actions { + flex-direction: column; + align-items: stretch; + } } \ No newline at end of file