@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Source+Sans+3:wght@300;400;500;600;700&display=swap');

@import "tailwindcss";
@import "tw-animate-css";

@custom-variant dark (&:is(.dark *));

@theme inline {
  --color-background: var(--background);
  --color-foreground: var(--foreground);
  --font-sans: var(--font-source-sans);
  --font-display: var(--font-playfair);
  --color-sidebar-ring: var(--sidebar-ring);
  --color-sidebar-border: var(--sidebar-border);
  --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
  --color-sidebar-accent: var(--sidebar-accent);
  --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
  --color-sidebar-primary: var(--sidebar-primary);
  --color-sidebar-foreground: var(--sidebar-foreground);
  --color-sidebar: var(--sidebar);
  --color-chart-5: var(--chart-5);
  --color-chart-4: var(--chart-4);
  --color-chart-3: var(--chart-3);
  --color-chart-2: var(--chart-2);
  --color-chart-1: var(--chart-1);
  --color-ring: var(--ring);
  --color-input: var(--input);
  --color-border: var(--border);
  --color-destructive: var(--destructive);
  --color-accent-foreground: var(--accent-foreground);
  --color-accent: var(--accent);
  --color-muted-foreground: var(--muted-foreground);
  --color-muted: var(--muted);
  --color-secondary-foreground: var(--secondary-foreground);
  --color-secondary: var(--secondary);
  --color-primary-foreground: var(--primary-foreground);
  --color-primary: var(--primary);
  --color-popover-foreground: var(--popover-foreground);
  --color-popover: var(--popover);
  --color-card-foreground: var(--card-foreground);
  --color-card: var(--card);
  --radius-sm: calc(var(--radius) - 4px);
  --radius-md: calc(var(--radius) - 2px);
  --radius-lg: var(--radius);
  --radius-xl: calc(var(--radius) + 4px);
  
  --color-primary-green: #1a5d5d;
  --color-secondary-green: #0d4747;
  --color-accent-green: #32cd32;
  --color-light-green: #5fb3b3;
  --color-pale-green: #f0fffe;
  --color-sage-green: #7fc7c7;
  --color-forest-green: #0d4747;
  --color-mint-green: #32cd32;
  --color-gold-accent: #daa520;
  --color-orange-accent: #ff8c00;
}

:root {
  --radius: 0.625rem;
  --background: #fafffe;
  --foreground: #0d3333;
  --card: #ffffff;
  --card-foreground: #0d3333;
  --popover: #ffffff;
  --popover-foreground: #0d3333;
  --primary: #1a5d5d;
  --primary-foreground: #ffffff;
  --secondary: #f0fffe;
  --secondary-foreground: #1a5d5d;
  --muted: #e6f7f7;
  --muted-foreground: #5a6b6b;
  --accent: #0d4747;
  --accent-foreground: #ffffff;
  --destructive: #dc2626;
  --border: #b3dfdf;
  --input: #b3dfdf;
  --ring: #0d4747;
  --chart-1: #1a5d5d;
  --chart-2: #0d4747;
  --chart-3: #32cd32;
  --chart-4: #daa520;
  --chart-5: #ff8c00;
  --sidebar: #1a5d5d;
  --sidebar-foreground: #ffffff;
  --sidebar-primary: #0d4747;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #0a3030;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #2a7070;
  --sidebar-ring: #32cd32;
  
  --font-source-sans: 'Source Sans 3', system-ui, sans-serif;
  --font-playfair: 'Playfair Display', Georgia, serif;
}

.dark {
  --background: #0a2020;
  --foreground: #e6f7f7;
  --card: #0d3333;
  --card-foreground: #e6f7f7;
  --popover: #0d3333;
  --popover-foreground: #e6f7f7;
  --primary: #32cd32;
  --primary-foreground: #0a2020;
  --secondary: #1a5d5d;
  --secondary-foreground: #e6f7f7;
  --muted: #0d3333;
  --muted-foreground: #7fc7c7;
  --accent: #0d4747;
  --accent-foreground: #ffffff;
  --destructive: #ef4444;
  --border: #1a5d5d;
  --input: #1a5d5d;
  --ring: #32cd32;
  --chart-1: #32cd32;
  --chart-2: #0d4747;
  --chart-3: #5fb3b3;
  --chart-4: #daa520;
  --chart-5: #ff8c00;
  --sidebar: #0d3333;
  --sidebar-foreground: #e6f7f7;
  --sidebar-primary: #32cd32;
  --sidebar-primary-foreground: #0a2020;
  --sidebar-accent: #1a5d5d;
  --sidebar-accent-foreground: #e6f7f7;
  --sidebar-border: #2a7070;
  --sidebar-ring: #32cd32;
}

@layer base {
  * {
    @apply border-border outline-ring/50;
  }
  body {
    @apply bg-background text-foreground font-sans;
    font-family: var(--font-source-sans);
  }
  h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-playfair);
  }
}

@layer components {
  .btn-primary {
    @apply inline-flex items-center justify-center px-8 py-3 bg-primary-green text-white font-semibold rounded-lg transition-all duration-300 hover:bg-secondary-green hover:shadow-lg hover:-translate-y-0.5;
  }
  
  .btn-secondary {
    @apply inline-flex items-center justify-center px-8 py-3 bg-white/20 backdrop-blur-sm text-white font-semibold rounded-lg border-2 border-white/30 transition-all duration-300 hover:bg-white/30 hover:border-white/50;
  }
  
  .btn-outline {
    @apply inline-flex items-center justify-center px-8 py-3 bg-transparent text-primary-green font-semibold rounded-lg border-2 border-primary-green transition-all duration-300 hover:bg-primary-green hover:text-white;
  }
  
  .section-padding {
    @apply py-16 md:py-24;
  }
  
  .container-custom {
    @apply max-w-7xl mx-auto px-4 sm:px-6 lg:px-8;
  }
  
  .card-hover {
    @apply transition-all duration-300 hover:shadow-xl hover:-translate-y-1;
  }
  
  .gradient-green {
    background: linear-gradient(135deg, #1a5d5d 0%, #0d4747 50%, #1a5d5d 100%);
  }
  
  .gradient-text {
    @apply bg-gradient-to-r from-white to-mint-green bg-clip-text text-transparent;
  }
  
  .glass-effect {
    @apply bg-white/10 backdrop-blur-md border border-white/20;
  }

  .prose {
    @apply text-foreground;
  }

  .prose h2 {
    @apply text-2xl font-bold mt-8 mb-4 text-foreground;
    font-family: var(--font-playfair);
  }

  .prose h3 {
    @apply text-xl font-bold mt-6 mb-3 text-foreground;
    font-family: var(--font-playfair);
  }

  .prose p {
    @apply mb-4 leading-relaxed text-muted-foreground;
  }

  .prose ul {
    @apply list-disc pl-6 mb-4 space-y-2;
  }

  .prose ul li {
    @apply text-muted-foreground leading-relaxed;
  }

  .prose a {
    @apply text-primary-green hover:text-secondary-green underline transition-colors;
  }
}

@layer utilities {
  .text-balance {
    text-wrap: balance;
  }
  
  .animate-float {
    animation: float 6s ease-in-out infinite;
  }
  
  .animate-pulse-slow {
    animation: pulse 3s ease-in-out infinite;
  }
}

@keyframes float {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-20px); }
}

nextjs-portal {
  display: none !important;
}