/* Custom styles and overrides */
:root {
  --color-emerald-950: #052e16;
  --color-emerald-900: #14532d;
  --color-emerald-800: #166534;
  --color-emerald-700: #15803d;
  --color-emerald-600: #16a34a;
  --color-cream-50: #fefdf8;
  --color-cream-100: #fdf9ee;
}

html {
  scroll-padding-top: 5rem;
}

body {
  font-family: 'Lato', Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, .font-serif {
  font-family: 'Cormorant Garamond', Georgia, serif;
}

/* Smooth scroll for Safari */
@supports (scroll-behavior: smooth) {
  html { scroll-behavior: smooth; }
}

/* Custom scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #fdf9ee; }
::-webkit-scrollbar-thumb { background: #166534; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #14532d; }

/* Selection color */
::selection {
  background: #166534;
  color: #fefdf8;
}

/* Focus visible styles */
:focus-visible {
  outline: 2px solid #16a34a;
  outline-offset: 2px;
}

/* Mobile menu animation */
#mobile-menu {
  animation: slideDown 0.25s ease-out;
}

@keyframes slideDown {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Header shadow on scroll */
#site-header.scrolled {
  box-shadow: 0 1px 20px rgba(20, 83, 45, 0.1);
}

/* Print styles */
@media print {
  header, footer, #contact-form, #mobile-menu { display: none; }
  body { color: #000; background: #fff; }
  a { color: #000; }
}
