/* ReservaLuxe-inspired theme tokens and utility styles */
:root {
  --rl-gold: #C5A059;
  --rl-gold-hover: #b28e4a;
  --rl-bg-dark: #0f172a;
  --rl-bg-panel: #0a0f1d;
  --rl-border-dark: #1e293b;
  --rl-text-light: #f8fafc;
  --rl-text-muted: #94a3b8;
  --rl-bg-light: #f8fafc;
  --rl-text-dark: #0f172a;
  /* Light theme high contrast values */
  --rl-text-high-contrast: #334155; /* slate-700 */
  --rl-text-medium: #475569; /* slate-600 */
  --rl-bg-input-light: #f1f5f9; /* slate-100 */
  --rl-border-light: #e2e8f0; /* slate-200 */
}

.font-display {
  font-family: "Playfair Display", serif;
}

body {
  transition: background-color 0.3s ease, color 0.3s ease;
}

.dark body {
  background-color: var(--rl-bg-dark);
  color: var(--rl-text-light);
}

.rl-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  box-shadow: 0 10px 30px -12px rgba(15, 23, 42, 0.15);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.dark .rl-card {
  background: var(--rl-bg-panel);
  border-color: var(--rl-border-dark);
  box-shadow: 0 18px 38px -18px rgba(0, 0, 0, 0.45);
}

.rl-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 45px -20px rgba(0, 0, 0, 0.25);
}

.btn-primary {
  background: var(--rl-gold);
  color: #fff;
  border-radius: 12px;
  border: 1px solid transparent;
  transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease;
}

.btn-primary:hover {
  background: var(--rl-gold-hover);
  box-shadow: 0 10px 30px -12px rgba(197, 160, 89, 0.5);
}

.btn-primary:active {
  transform: translateY(1px);
}

.btn-ghost {
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  color: var(--rl-text-dark);
  background: transparent;
}

.dark .btn-ghost {
  border-color: var(--rl-border-dark);
  color: var(--rl-text-light);
  background: rgba(255, 255, 255, 0.04);
}

.btn-ghost:hover {
  border-color: var(--rl-gold);
  color: var(--rl-gold);
}

.rl-input {
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  background: #fff;
  padding: 0.65rem 0.9rem;
}

.dark .rl-input {
  border-color: var(--rl-border-dark);
  background: #0b1224;
  color: var(--rl-text-light);
}

/* Navigation item styles */
.nav-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  font-weight: 500;
  border-radius: 0.75rem;
  border: 1px solid transparent;
  transition: all 0.2s ease;
  color: var(--rl-text-high-contrast);
}

.nav-item:hover {
  background-color: var(--rl-bg-input-light);
  color: var(--rl-text-dark);
}

.dark .nav-item {
  color: var(--rl-text-muted);
}

.dark .nav-item:hover {
  background-color: rgba(30, 41, 59, 0.5);
  color: var(--rl-text-light);
}

.nav-item.active {
  background-color: rgba(197, 160, 89, 0.1);
  border-color: rgba(197, 160, 89, 0.3);
  color: var(--rl-gold);
}

.dark .nav-item.active {
  background-color: rgba(197, 160, 89, 0.1);
  border-color: rgba(197, 160, 89, 0.2);
  color: var(--rl-gold);
}

/* Search input light theme enhancement */
.search-input-container {
  background-color: #f1f5f9 !important; /* slate-100 */
  border: 1px solid #e2e8f0 !important; /* slate-200 */
  border-radius: 9999px;
}

/* Dark mode using both selector patterns for compatibility */
.dark .search-input-container,
.search-input-container:is(.dark *) {
  background-color: rgba(15, 23, 42, 0.6) !important;
  border-color: #1e293b !important; /* slate-800 */
}
