/* ============================================ OPTIMAL CROP SEASON PREDICTION - STYLE GUIDE Nature-Professional Theme ============================================ */ /* ============================================ 1. CSS VARIABLES - COLOR SYSTEM ============================================ */ :root { /* Primary Colors */ --color-deep-green: #1a5d3a; --color-accent-green: #198754; --color-darker-accent: #143d2e; /* Neutral Colors */ --color-background: #f8f9fa; --color-surface: #ffffff; --color-text-dark: #212529; --color-text-muted: #6c757d; --color-border: #dee2e6; /* Semantic Colors */ --color-success: #198754; --color-success-light: #e8f5e9; /* Spacing */ --spacing-xs: 0.5rem; --spacing-sm: 1rem; --spacing-md: 1.5rem; --spacing-lg: 2rem; --spacing-xl: 3rem; /* Border Radius */ --radius-sm: 8px; --radius-md: 12px; --radius-lg: 20px; --radius-pill: 50px; /* Shadows */ --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.05); --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.08); --shadow-lg: 0 10px 40px rgba(0, 0, 0, 0.08); --shadow-focus: 0 0 0 4px rgba(25, 135, 84, 0.1); } /* ============================================ 2. GLOBAL STYLES ============================================ */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Outfit', sans-serif; font-weight: 400; background-color: var(--color-background); color: var(--color-text-dark); line-height: 1.6; min-height: 100vh; } /* ============================================ 3. TYPOGRAPHY ============================================ */ h1, h2, h3, h4, h5, h6 { font-weight: 700; color: var(--color-text-dark); line-height: 1.2; } h1 { font-size: 2.5rem; font-weight: 700; } h2 { font-size: 2rem; font-weight: 600; } h4 { font-size: 1.25rem; font-weight: 600; } label { font-weight: 500; color: var(--color-text-dark); margin-bottom: var(--spacing-xs); display: block; } /* ============================================ 4. HEADER - CURVED BOTTOM HERO ============================================ */ .hero-header { background: var(--color-deep-green); color: white; padding: var(--spacing-xl) var(--spacing-md) 5rem; border-bottom-left-radius: 50% 20px; border-bottom-right-radius: 50% 20px; text-align: center; position: relative; margin-bottom: 3rem; } .hero-header h1 { color: white; margin-bottom: var(--spacing-sm); font-size: 2.5rem; } .hero-header p { color: rgba(255, 255, 255, 0.9); font-size: 1.1rem; font-weight: 300; max-width: 600px; margin: 0 auto; } /* ============================================ 5. CARDS ============================================ */ .card-floating { background: var(--color-surface); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); padding: var(--spacing-xl); position: relative; z-index: 10; border: 3px solid var(--color-accent-green); } .card-image { background: var(--color-surface); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); overflow: hidden; height: 100%; display: flex; align-items: center; justify-content: center; } .card-image img { width: 100%; height: 100%; object-fit: cover; } /* ============================================ 6. FORM ELEMENTS ============================================ */ .form-group { margin-bottom: var(--spacing-md); } .form-label-icon { display: flex; align-items: center; gap: var(--spacing-xs); margin-bottom: var(--spacing-xs); font-weight: 500; color: var(--color-text-dark); } .form-label-icon i { color: var(--color-accent-green); font-size: 1.1rem; } .form-control { width: 100%; padding: 0.75rem 1rem; background: var(--color-background); border: 1px solid var(--color-border); border-radius: var(--radius-sm); font-family: 'Outfit', sans-serif; font-size: 1rem; color: var(--color-text-dark); transition: all 0.3s ease; } .form-control:focus { outline: none; background: var(--color-surface); border-color: var(--color-accent-green); box-shadow: var(--shadow-focus); } .form-control::placeholder { color: var(--color-text-muted); } /* ============================================ 7. BUTTONS ============================================ */ .btn { padding: 0.875rem 2rem; font-family: 'Outfit', sans-serif; font-weight: 500; font-size: 1rem; border: none; border-radius: var(--radius-sm); cursor: pointer; transition: all 0.3s ease; display: inline-flex; align-items: center; gap: var(--spacing-xs); text-decoration: none; } .btn-primary { background: var(--color-deep-green); color: white; } .btn-primary:hover { background: var(--color-darker-accent); transform: translateY(-2px); box-shadow: var(--shadow-md); } .btn-primary:active { transform: translateY(0); } .btn-block { width: 100%; justify-content: center; } .btn i { font-size: 1.2rem; } /* ============================================ 8. RESULT BOX ============================================ */ .result-box { margin-top: var(--spacing-lg); padding: var(--spacing-lg); background: var(--color-success-light); border: 2px solid var(--color-accent-green); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); } .result-box h4 { color: var(--color-deep-green); margin-bottom: var(--spacing-sm); display: flex; align-items: center; gap: var(--spacing-sm); } .result-box h4 i { color: var(--color-accent-green); } .season-badge { display: inline-block; padding: 0.5rem 1.5rem; background: var(--color-accent-green); color: white; border-radius: var(--radius-pill); font-weight: 600; font-size: 1.1rem; margin-left: var(--spacing-sm); } .result-box p { color: var(--color-text-dark); line-height: 1.8; margin-top: var(--spacing-sm); } /* ============================================ 9. PROCESS VISUAL (3-STEP) ============================================ */ .process-steps { display: flex; justify-content: center; gap: var(--spacing-xl); margin-bottom: var(--spacing-xl); padding: 0 var(--spacing-md); } .process-step { text-align: center; flex: 1; max-width: 200px; } .process-icon { width: 80px; height: 80px; background: var(--color-surface); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto var(--spacing-sm); box-shadow: var(--shadow-md); transition: all 0.3s ease; } .process-icon i { font-size: 2rem; color: var(--color-accent-green); } .process-step:hover .process-icon { transform: translateY(-5px); box-shadow: var(--shadow-lg); } .process-step h5 { font-size: 1rem; font-weight: 600; color: var(--color-text-dark); margin-bottom: 0.25rem; } .process-step p { font-size: 0.875rem; color: var(--color-text-muted); font-weight: 300; } /* ============================================ 10. UTILITIES ============================================ */ .container-custom { max-width: 1200px; margin: 0 auto; padding: 0 var(--spacing-md) var(--spacing-xl); } .mt-4 { margin-top: var(--spacing-lg); } .mb-4 { margin-bottom: var(--spacing-lg); } /* ============================================ 11. RESPONSIVE DESIGN ============================================ */ @media (max-width: 768px) { .hero-header h1 { font-size: 2rem; } .hero-header p { font-size: 1rem; } .card-floating { padding: var(--spacing-lg); } .process-steps { flex-direction: column; gap: var(--spacing-md); } .process-step { max-width: 100%; } .btn { padding: 0.75rem 1.5rem; } .container-custom { padding-bottom: 4rem; } } /* ============================================ 12. ANIMATIONS ============================================ */ @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .card-floating { animation: fadeIn 0.6s ease-out; } .result-box { animation: fadeIn 0.4s ease-out; }