@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;0,800;1,400&family=Open+Sans:wght@300;400;500;600;700&display=swap');

*, *::before, *::after { box-sizing: border-box; }

body {
  font-family: 'Open Sans', sans-serif;
  background-color: #0B0B0B;
  color: #fff;
  margin: 0;
  padding: 0;
}

.font-serif { font-family: 'Playfair Display', Georgia, serif; }
.font-sans  { font-family: 'Open Sans', sans-serif; }

/* Custom animations */
@keyframes pulse-green {
  0%, 100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.4); }
  50%       { box-shadow: 0 0 0 12px rgba(37, 211, 102, 0); }
}
@keyframes pulse-gold {
  0%, 100% { box-shadow: 0 0 0 0 rgba(212, 175, 55, 0.4); }
  50%       { box-shadow: 0 0 0 10px rgba(212, 175, 55, 0); }
}
@keyframes fade-in-up {
  0%   { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); }
}

.animate-pulse-green { animation: pulse-green 2s cubic-bezier(0.4,0,0.6,1) infinite; }
.animate-pulse-gold  { animation: pulse-gold  2s cubic-bezier(0.4,0,0.6,1) infinite; }
.animate-fade-in-up  { animation: fade-in-up 0.6s ease-out; }

/* Nav dropdown */
.nav-dropdown { visibility: hidden; opacity: 0; transition: opacity 0.15s, visibility 0.15s; }
.nav-item:hover .nav-dropdown { visibility: visible; opacity: 1; }
.nav-item:hover .chevron-down { transform: rotate(180deg); }
.chevron-down { transition: transform 0.2s; display: inline-block; }

/* Hover scale */
.hover-scale:hover { transform: scale(1.05); }
.transition-all { transition: all 0.2s ease; }

/* Scrolled header */
#site-header.scrolled { box-shadow: 0 25px 50px -12px rgba(0,0,0,0.6); }

/* Image hover zoom */
.img-zoom { transition: transform 0.5s ease; }
.img-zoom:hover { transform: scale(1.1); }

/* Focus styles */
button:focus-visible, a:focus-visible {
  outline: 2px solid #D4AF37;
  outline-offset: 2px;
}

/* Mobile menu */
#mobile-menu { display: none; }
#mobile-menu.open { display: block; }
