* {
  scroll-behavior: smooth;
}

@font-face {
  font-family: 'Display';
  font-family: 'Playfair Display', serif;
}

:root {
  --color-amber-900: #78350f;
  --color-amber-600: #d97706;
  --color-stone-900: #1c1917;
  --color-white: #ffffff;
}

/* Hero Section Animations */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(40px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translateX(40px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.animate-fadeInUp {
  animation: fadeInUp 0.8s ease-out forwards;
}

.animate-fadeInRight {
  animation: fadeInRight 0.8s ease-out forwards;
}

/* Smooth link underlines on hover */
a {
  position: relative;
}

a.nav-link::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 2px;
  background-color: #d97706;
  transition: width 0.3s ease;
}

a.nav-link:hover::after {
  width: 100%;
}

/* Button hover effect */
button, a[role="button"], .hover\:scale-105 {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Card hover shadow effect */
.shadow-md {
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.hover\:shadow-xl:hover {
  transform: translateY(-4px);
}

/* Mobile menu smooth transitions */
#mobileMenu {
  transition: all 0.3s ease;
}

/* Marquee/scrolling text effect if needed */
@keyframes scroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}

/* Custom focus styles for accessibility */
input:focus,
button:focus,
a:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

input:focus-visible,
button:focus-visible,
a:focus-visible {
  outline: 2px solid #d97706;
  outline-offset: 2px;
}

/* Smooth transitions for all interactive elements */
a, button, input, textarea {
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Form input styling */
input[type="email"]::placeholder {
  opacity: 0.7;
}

/* Section spacing consistency */
section {
  position: relative;
}

/* Image lazy loading fallback */
img {
  display: block;
}

/* Grain overlay effect */
.grain {
  background-image: 
    url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"><filter id="noise"><feTurbulence type="fractalNoise" baseFrequency="0.9" numOctaves="4" /></filter><rect width="100" height="100" fill="%23000" filter="url(%23noise)" opacity="0.03"/></svg>');
}

/* Typography enhancements */
.font-display {
  font-family: 'Playfair Display', serif;
  letter-spacing: -0.02em;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Playfair Display', serif;
}

body {
  font-family: 'DM Sans', sans-serif;
}

/* Ensure form inputs are properly styled */
form input {
  font-family: 'DM Sans', sans-serif;
}

