/** * Recurrr Website - Custom Styles * Built on top of Tabler UI Kit * * Design Philosophy: Calm, simple, modern - a "set it and forget it" solution * Premium feel through generous whitespace, refined typography, and subtle details */ /* ============================================ CSS CUSTOM PROPERTIES ============================================ */ :root { /* Typography Scale */ --font-family-base: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; /* Spacing Scale */ --space-xs: 0.5rem; --space-sm: 0.75rem; --space-md: 1rem; --space-lg: 1.5rem; --space-xl: 2rem; --space-2xl: 3rem; --space-3xl: 4rem; --space-4xl: 6rem; --space-5xl: 8rem; /* Colors - Refined palette */ --color-text-primary: #1a1a2e; --color-text-secondary: #5c6370; --color-text-muted: #8b919a; --color-border: #e8eaed; --color-border-light: #f1f3f4; --color-bg-subtle: #f9fafb; --color-bg-muted: #f4f6f7; /* Shadows - Subtle and refined */ --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04); --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.02); --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.05), 0 2px 4px rgba(0, 0, 0, 0.02); --shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.08), 0 4px 8px rgba(0, 0, 0, 0.04); --shadow-xl: 0 24px 48px rgba(0, 0, 0, 0.1), 0 8px 16px rgba(0, 0, 0, 0.04); /* Border Radius */ --radius-sm: 8px; --radius-md: 12px; --radius-lg: 16px; --radius-xl: 24px; --radius-full: 9999px; /* Transitions */ --transition-fast: 150ms ease; --transition-base: 200ms ease; --transition-slow: 300ms ease; } /* ============================================ BASE & TYPOGRAPHY ============================================ */ html { scroll-behavior: smooth; } body { font-family: var(--font-family-base); color: var(--color-text-primary); font-size: 1rem; line-height: 1.7; letter-spacing: -0.01em; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; background-color: #ffffff; background-image: url('/website/images/bg.png'); background-repeat: repeat; background-size: auto; } [data-bs-theme='dark'] { --color-text-primary: #e7e9ee; --color-text-secondary: #b8bec9; --color-text-muted: #8a94a6; --color-border: #2a3344; --color-border-light: #232c3b; --color-bg-subtle: #18202d; --color-bg-muted: #111827; --recurrr-cream: #0f1723; --recurrr-mint: #132521; } [data-bs-theme='dark'] body { background-color: var(--recurrr-dark-900); background-image: none; color: var(--color-text-primary); } [data-bs-theme='dark'] .text-dark { color: var(--color-text-primary) !important; } [data-bs-theme='dark'] .navbar { background-color: transparent !important; } [data-bs-theme='dark'] .nav-link { color: var(--color-text-secondary) !important; } [data-bs-theme='dark'] .nav-link:hover { color: #d7f5e5 !important; background-color: rgba(13, 20, 28, 0.6); } [data-bs-theme='dark'] .section-muted, [data-bs-theme='dark'] .feature-card-gray, [data-bs-theme='dark'] .feature-box, [data-bs-theme='dark'] .footer { background-color: var(--recurrr-dark-800); border-color: var(--recurrr-dark-border); } [data-bs-theme='dark'] .feature-card-cream, [data-bs-theme='dark'] .testimonials-section, [data-bs-theme='dark'] .feature-card-mint, [data-bs-theme='dark'] .bg-recurrr-cream, [data-bs-theme='dark'] .bg-recurrr-mint { background-color: var(--recurrr-dark-850) !important; border-color: var(--recurrr-dark-border); } [data-bs-theme='dark'] .testimonial-card, [data-bs-theme='dark'] .feature-card, [data-bs-theme='dark'] .feature-box, [data-bs-theme='dark'] .provider-card, [data-bs-theme='dark'] .app-mockup { background-color: var(--recurrr-dark-850); border-color: var(--recurrr-dark-border); box-shadow: none; } [data-bs-theme='dark'] .feature-box:hover { background-color: var(--recurrr-dark-750); border-color: var(--recurrr-dark-border); box-shadow: none; } [data-bs-theme='dark'] .footer .social-icon { background-color: var(--recurrr-dark-850); border-color: var(--recurrr-dark-border); color: var(--color-text-muted); } [data-bs-theme='dark'] .footer hr { border-color: var(--color-border); } [data-bs-theme='dark'] .navbar-brand-autodark img { filter: brightness(0) invert(1); } /* Headings - Clean and confident */ h1, h2, h3, h4, h5, h6 { font-weight: 600; line-height: 1.25; color: var(--color-text-primary); letter-spacing: -0.02em; } .display-3 { font-size: 3.25rem; font-weight: 700; letter-spacing: -0.03em; line-height: 1.1; } .display-4 { font-size: 2.5rem; font-weight: 700; letter-spacing: -0.025em; line-height: 1.15; } .display-5 { font-size: 2rem; font-weight: 700; letter-spacing: -0.02em; line-height: 1.2; } /* Lead text - Comfortable reading */ .lead { font-size: 1.125rem; font-weight: 400; line-height: 1.75; color: var(--color-text-secondary); letter-spacing: -0.005em; } /* Paragraph text */ p { color: var(--color-text-secondary); margin-bottom: 1rem; } /* ============================================ NAVBAR - Clean and minimal ============================================ */ .navbar { padding: 1.125rem 0; background-color: transparent !important; background: transparent !important; border-bottom: none !important; box-shadow: none !important; transition: all var(--transition-base); } .navbar-brand { font-weight: 600; } .navbar-brand img { height: 30px; transition: opacity var(--transition-fast); } .navbar-brand:hover img { opacity: 0.8; } .nav-link { font-weight: 500; font-size: 0.9375rem; color: var(--color-text-secondary) !important; padding: 0.5rem 1.125rem !important; border-radius: var(--radius-sm); transition: all var(--transition-fast); } .nav-link:hover { color: var(--recurrr-green) !important; background-color: var(--color-bg-subtle); } /* Login button in navbar */ .navbar .btn-primary { padding: 0.5rem 1.25rem; font-weight: 500; font-size: 0.9375rem; border-radius: var(--radius-sm); } /* ============================================ SECTIONS - Generous spacing ============================================ */ .section { padding: var(--space-5xl) 0; } .section-lg { padding: 10rem 0; } /* Subtle alternating backgrounds */ .section-muted { background-color: var(--color-bg-subtle); } /* Section headers */ .section .mb-5 { margin-bottom: var(--space-3xl) !important; } /* ============================================ MAIN HERO (TOP OF PAGE) ============================================ */ .main-hero { padding: var(--space-4xl) 0 var(--space-5xl); background: transparent; } .main-hero h1 { font-size: 3.75rem; line-height: 1.1; letter-spacing: -0.03em; margin-bottom: var(--space-lg); color: var(--color-text-primary); font-weight: 800!important; } .main-hero .lead { font-size: 1.25rem; line-height: 1.7; max-width: 640px; margin: 0 auto var(--space-xl); color: var(--color-text-secondary); } .main-hero .btn-lg { margin-bottom: var(--space-md); } .main-hero .trust-badges { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-lg); margin-top: var(--space-xl); padding-top: var(--space-lg); } .main-hero .trust-badges span { font-size: 0.875rem; font-weight: 500; color: var(--color-text-muted); display: inline-flex; align-items: center; } .main-hero .trust-badges .ti { font-size: 1.125rem; } /* ============================================ HERO SECTION (Featured Use Case) ============================================ */ .hero-section { background: linear-gradient(145deg, #185451 0%, #206D69 100%); color: white; padding: var(--space-5xl) 0; position: relative; overflow: hidden; } .hero-section::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.02'%3E%3Ccircle cx='30' cy='30' r='1.5'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); pointer-events: none; } .hero-section > .container-xl { position: relative; z-index: 1; } .hero-section h1 { color: white; font-size: 2.5rem; line-height: 1.2; margin-bottom: var(--space-lg); } .hero-section p { color: rgba(255, 255, 255, 0.85); font-size: 1.0625rem; line-height: 1.75; } .hero-section .lead { color: rgba(255, 255, 255, 0.9); } /* ============================================ FEATURE BADGES ============================================ */ .feature-badge { display: inline-block; padding: 0.5rem 1rem; font-size: 0.8125rem; font-weight: 600; border-radius: var(--radius-full); background-color: rgba(255, 255, 255, 0.15); color: white; letter-spacing: 0.01em; } .feature-badge-light { background-color: var(--color-bg-subtle); color: var(--color-text-secondary); border: none; } /* ============================================ HIGHLIGHT UNDERLINE EFFECT ============================================ */ .highlight { position: relative; display: inline; background-image: linear-gradient(transparent 60%, rgba(216, 243, 220, 0.7) 60%); background-repeat: no-repeat; background-size: 100% 100%; padding: 0 0.125em; } [data-bs-theme='dark'] .highlight { background-image: linear-gradient(transparent 60%, rgba(81, 168, 149, 0.6) 60%); } /* ============================================ CHECKMARK LISTS ============================================ */ .check-list { list-style: none; padding: 0; margin: 0; } .check-list li { position: relative; padding-left: 2rem; margin-bottom: 0.875rem; font-size: 1rem; line-height: 1.6; color: var(--color-text-secondary); } .check-list li::before { content: ""; position: absolute; left: 0; top: 0.25rem; width: 1.25rem; height: 1.25rem; background-color: rgba(32, 109, 105, 0.12); border-radius: 50%; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23206D69'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E"); background-size: 12px; background-position: center; background-repeat: no-repeat; } /* White checkmarks for dark backgrounds */ .hero-section .check-list li::before, .pricing-section .check-list li::before { background-color: rgba(255, 255, 255, 0.2); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E"); } .hero-section .check-list li, .pricing-section .check-list li { color: rgba(255, 255, 255, 0.95); } /* ============================================ BUTTONS - Refined and confident ============================================ */ .btn { font-weight: 500; padding: 0.75rem 1.5rem; border-radius: var(--radius-sm); transition: all var(--transition-base); font-size: 0.9375rem; letter-spacing: -0.005em; } .btn-lg { padding: 0.9375rem 2rem; font-size: 1rem; border-radius: var(--radius-md); } .btn-primary { background-color: var(--recurrr-green); border-color: var(--recurrr-green); box-shadow: var(--shadow-sm), 0 1px 2px rgba(32, 109, 105, 0.2); } .btn-primary:hover { background-color: var(--recurrr-green-dark); border-color: var(--recurrr-green-dark); transform: translateY(-1px); box-shadow: var(--shadow-md), 0 4px 12px rgba(32, 109, 105, 0.25); } .btn-primary:active { transform: translateY(0); } .btn-light { background-color: white; border-color: white; color: var(--recurrr-green-dark); box-shadow: var(--shadow-sm); } .btn-light:hover { background-color: #fafafa; border-color: #fafafa; color: var(--recurrr-green-dark); transform: translateY(-1px); box-shadow: var(--shadow-md); } /* Fix button colors in dark sections */ .hero-section .btn-light, .pricing-section .btn-light { color: var(--recurrr-green-dark) !important; } /* ============================================ APP MOCKUP / SCREENSHOTS ============================================ */ .app-mockup { background: white; border-radius: var(--radius-lg); box-shadow: var(--shadow-xl); overflow: hidden; transition: transform var(--transition-slow), box-shadow var(--transition-slow); } .app-mockup:hover { transform: translateY(-4px); box-shadow: 0 32px 64px rgba(0, 0, 0, 0.12), 0 12px 24px rgba(0, 0, 0, 0.06); } .app-mockup img { display: block; width: 100%; height: auto; } /* ============================================ FEATURE CARDS (Why Section) ============================================ */ .feature-card { padding: var(--space-xl); border-radius: var(--radius-lg); height: 100%; transition: transform var(--transition-base), box-shadow var(--transition-base); border: 1px solid transparent; } .feature-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); } .feature-card p { font-size: 0.9375rem; line-height: 1.7; } .feature-card p:last-child { margin-bottom: 0; } .feature-card p.text-muted { color: var(--color-text-muted) !important; } /* Feature card colors - Softer palette */ .feature-card-cream { background-color: #fdf9f5; border-color: #f5ebe0; } .feature-card-mint { background-color: #f0f9f4; border-color: #d8f3dc; } .feature-card-gray { background-color: var(--color-bg-subtle); border-color: var(--color-border-light); } /* ============================================ HOW SECTION - SCREENSHOT CARDS ============================================ */ .screenshot-card { background-color: var(--recurrr-green-dark); border-radius: var(--radius-lg); overflow: hidden; height: 100%; transition: transform var(--transition-base), box-shadow var(--transition-base); } .screenshot-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); } .screenshot-card img { width: 100%; display: block; } .screenshot-card .card-body { padding: var(--space-xl); } .screenshot-card h3 { color: white; font-size: 1.25rem; font-weight: 600; margin-bottom: 0.75rem; } .screenshot-card p { color: rgba(255, 255, 255, 0.8); font-size: 0.9375rem; line-height: 1.7; margin-bottom: 0; } .screenshot-card .badge { background-color: rgba(255, 255, 255, 0.12); color: rgba(255, 255, 255, 0.9); font-weight: 500; font-size: 0.75rem; padding: 0.4375rem 0.875rem; border-radius: var(--radius-sm); margin-bottom: var(--space-md); display: inline-block; letter-spacing: 0.01em; } /* ============================================ FEATURES GRID (How About Section) ============================================ */ .feature-box { padding: var(--space-xl); background-color: var(--color-bg-subtle); border-radius: var(--radius-lg); border: 1px solid var(--color-border-light); height: 100%; transition: all var(--transition-base); } .feature-box:hover { background-color: white; border-color: var(--color-border); box-shadow: var(--shadow-md); transform: translateY(-2px); } .icon-box { width: 3.25rem; height: 3.25rem; display: flex; align-items: center; justify-content: center; border-radius: var(--radius-md); background-color: rgba(32, 109, 105, 0.08); color: var(--recurrr-green); margin-bottom: var(--space-lg); transition: all var(--transition-base); } .icon-box .ti { font-size: 1.375rem; } .feature-box:hover .icon-box { background-color: var(--recurrr-green); color: white; transform: scale(1.05); } .feature-box h4 { font-size: 1.0625rem; font-weight: 600; margin-bottom: 0.625rem; color: var(--color-text-primary); } .feature-box p { font-size: 0.9375rem; color: var(--color-text-secondary); line-height: 1.65; margin-bottom: 0; } /* ============================================ TESTIMONIALS ============================================ */ .testimonials-section { background-color: #fdf9f5; } .testimonial-card { background-color: white; border-radius: var(--radius-lg); padding: var(--space-xl); height: 100%; border: 1px solid var(--color-border-light); transition: all var(--transition-base); } .testimonial-card:hover { border-color: var(--color-border); box-shadow: var(--shadow-md); transform: translateY(-2px); } .testimonial-card p { font-size: 0.9375rem; line-height: 1.75; color: var(--color-text-secondary); margin-bottom: var(--space-lg); font-style: normal; } .testimonial-card h6 { font-size: 0.9375rem; font-weight: 600; color: var(--color-text-primary); margin-bottom: 0.125rem; } .testimonial-card small { font-size: 0.8125rem; color: var(--color-text-muted); } .testimonial-card img.rounded-circle { width: 48px; height: 48px; object-fit: cover; border: 2px solid var(--color-border-light); box-shadow: var(--shadow-sm); } /* ============================================ EMAIL PROVIDERS SECTION ============================================ */ .provider-card { background-color: var(--color-bg-subtle); border-radius: var(--radius-md); padding: var(--space-lg); display: flex; align-items: center; justify-content: center; min-height: 88px; transition: all var(--transition-base); border: 1px solid transparent; } .provider-card:hover { background-color: rgba(32, 109, 105, 0.06); border-color: rgba(32, 109, 105, 0.1); } .provider-logo { max-height: 32px; max-width: 130px; opacity: 0.7; transition: opacity var(--transition-base); filter: grayscale(20%); } .provider-card:hover .provider-logo { opacity: 1; filter: grayscale(0%); } /* ============================================ PRICING SECTION ============================================ */ .pricing-section { background: linear-gradient(145deg, #185451 0%, #206D69 100%); color: white; padding: var(--space-4xl) 0; margin: 0 auto; max-width: 1000px; border-radius: var(--radius-xl); position: relative; overflow: hidden; } .pricing-section .app-mockup { max-width: 400px; margin: 0 auto; } .pricing-section::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.02'%3E%3Ccircle cx='30' cy='30' r='1.5'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); pointer-events: none; } .pricing-section > .container-xl { position: relative; z-index: 1; } .pricing-section h2 { color: white; } .pricing-section .display-3 { letter-spacing: -0.03em; } .pricing-section .lead { color: rgba(255, 255, 255, 0.8); } /* ============================================ FOOTER ============================================ */ .footer { background-color: var(--color-bg-subtle); padding: var(--space-4xl) 0 var(--space-xl); margin-top: var(--space-4xl); border-top: 1px solid var(--color-border-light); } .footer h5 { font-size: 0.875rem; font-weight: 600; color: var(--color-text-primary); margin-bottom: var(--space-lg); text-transform: uppercase; letter-spacing: 0.05em; } .footer p { color: var(--color-text-secondary); font-size: 0.9375rem; line-height: 1.7; } .footer a { color: var(--color-text-secondary); font-size: 0.9375rem; transition: color var(--transition-fast); text-decoration: none; } .footer a:hover { color: var(--recurrr-green); } .footer ul li { margin-bottom: 0.625rem; } .footer hr { border-color: var(--color-border); margin: var(--space-2xl) 0; } /* Social icons */ .footer .social-icon { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-sm); border: 1px solid var(--color-border); color: var(--color-text-secondary); background-color: white; transition: all var(--transition-fast); } .footer .social-icon:hover { border-color: var(--recurrr-green); color: var(--recurrr-green); background-color: rgba(32, 109, 105, 0.06); } .footer .social-icon .ti { font-size: 1.125rem; } /* Bottom bar */ .footer .text-muted { color: var(--color-text-muted) !important; font-size: 0.875rem; } /* ============================================ RESPONSIVE ADJUSTMENTS ============================================ */ @media (max-width: 991.98px) { .section { padding: var(--space-4xl) 0; } .display-3 { font-size: 2.5rem; } .display-4 { font-size: 2rem; } .display-5 { font-size: 1.625rem; } .hero-section, .pricing-section { padding: var(--space-3xl) 0; text-align: center; } .pricing-section { margin: 0 var(--space-md); border-radius: var(--radius-lg); } .hero-section .check-list, .pricing-section .check-list { display: inline-block; text-align: left; } .app-mockup { margin-top: var(--space-2xl); } .main-hero { padding: var(--space-3xl) 0 var(--space-4xl); } .main-hero h1 { font-size: 2.25rem; } .main-hero .lead { font-size: 1.0625rem; } } @media (max-width: 767.98px) { .section { padding: var(--space-3xl) 0; } .navbar-nav { padding-top: var(--space-md); } .testimonial-card { margin-bottom: var(--space-md); } .feature-box { padding: var(--space-lg); } .feature-card { padding: var(--space-lg); } .pricing-section { margin: 0 var(--space-sm); padding: var(--space-2xl) 0; } .footer { padding: var(--space-2xl) 0 var(--space-lg); margin-top: var(--space-2xl); } .main-hero { padding: var(--space-2xl) 0 var(--space-3xl); } .main-hero .trust-badges { gap: var(--space-md); flex-direction: column; align-items: center; } .main-hero .trust-badges span { font-size: 0.8125rem; } .hero-section h1 { font-size: 1.875rem; } } /* ============================================ UTILITY CLASSES ============================================ */ .text-recurrr { color: var(--recurrr-green) !important; } .bg-recurrr-dark { background-color: var(--recurrr-green-dark) !important; } .bg-recurrr { background-color: var(--recurrr-green) !important; } .bg-recurrr-cream { background-color: #fdf9f5 !important; } .bg-recurrr-mint { background-color: #f0f9f4 !important; } /* ============================================ ANIMATIONS - Subtle and smooth ============================================ */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } } /* Print styles */ @media print { .navbar, .footer { display: none; } }