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

:root {
  --background: 30 25% 97%;
  --foreground: 25 20% 15%;
  --card: 30 20% 95%;
  --card-foreground: 25 20% 15%;
  --primary: 18 65% 45%;
  --primary-foreground: 40 30% 96%;
  --secondary: 85 25% 35%;
  --secondary-foreground: 40 30% 96%;
  --muted: 30 15% 90%;
  --muted-foreground: 25 10% 45%;
  --accent: 40 60% 50%;
  --accent-foreground: 25 20% 15%;
  --border: 30 15% 85%;
  --olive: 85 25% 35%;
  --olive-light: 85 20% 92%;
  --terracotta: 18 65% 45%;
  --terracotta-light: 18 40% 90%;
  --gold: 40 60% 50%;
  --gold-light: 40 40% 88%;
  --cream: 30 25% 97%;
  --warm-dark: 25 20% 15%;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: 'Lato', sans-serif;
  background-color: hsl(var(--background));
  color: hsl(var(--foreground));
  min-height: 100vh;
}

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

.font-display { font-family: 'Playfair Display', serif; }
.font-body { font-family: 'Lato', sans-serif; }

.text-gradient-gold {
  background: linear-gradient(135deg, hsl(40 60% 50%), hsl(40 70% 65%));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.bg-hero-overlay {
  background: linear-gradient(
    180deg,
    hsla(25, 20%, 10%, 0.3) 0%,
    hsla(25, 20%, 10%, 0.6) 50%,
    hsla(25, 20%, 10%, 0.8) 100%
  );
}

@keyframes fade-in-up {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

.animate-fade-in-up {
  animation: fade-in-up 0.8s ease-out forwards;
  opacity: 0;
}

.animate-fade-in {
  animation: fade-in 1s ease-out forwards;
  opacity: 0;
}

/* Lightbox */
.lightbox-overlay {
  position: fixed;
  inset: 0;
  z-index: 50;
  background: rgba(0,0,0,0.92);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}
.lightbox-overlay.active {
  opacity: 1;
  pointer-events: all;
}
.lightbox-overlay img {
  max-width: 90vw;
  max-height: 85vh;
  object-fit: contain;
  border-radius: 0.5rem;
}
.lightbox-btn {
  position: absolute;
  background: none;
  border: none;
  color: rgba(255,255,255,0.8);
  cursor: pointer;
  transition: color 0.2s;
  padding: 0.5rem;
}
.lightbox-btn:hover { color: #fff; }
.lightbox-close { top: 1.5rem; right: 1.5rem; }
.lightbox-prev { left: 1rem; }
.lightbox-next { right: 1rem; }
.lightbox-counter {
  position: absolute;
  bottom: 1.5rem;
  color: rgba(255,255,255,0.6);
  font-size: 0.875rem;
}
