:root {
  /* Colors from palette: #27AE60, #5F6F52, #F39C12, #FEFAE0 */
  --primary-color: #27AE60;
  --secondary-color: #5F6F52;
  --accent-color: #F39C12;
  --light-color: #FEFAE0;
  --dark-color: #1A2E1A;
  
  --gradient-primary: linear-gradient(135deg, #2ECC71 0%, #27AE60 100%);
  --hover-color: #219653;
  --background-color: #F9FDF9;
  --text-color: #2D3748;
  --border-color: rgba(39, 174, 96, 0.2);
  --divider-color: rgba(95, 111, 82, 0.1);
  --shadow-color: rgba(95, 111, 82, 0.1);
  
  /* Complementary to Primary */
  --highlight-color: #C0392B; 
  
  --main-font: 'Montserrat', sans-serif;
  --alt-font: 'Poppins', sans-serif;
}

body {
    font-family: var(--alt-font);
    background-color: var(--background-color);
    margin: 0;
    padding: 0;
}

.pattern-bg {
    background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%2327ae60' fill-opacity='0.05' fill-rule='evenodd'%3E%3Ccircle cx='3' cy='3' r='3'/%3E%3Ccircle cx='13' cy='13' r='3'/%3E%3C/g%3E%3C/svg%3E");
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--main-font);
}

.animate-pulse-slow {
    animation: pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.9; }
}