:root {
  --primary-color: #8B1A1A; /* Deep Maroon */
  --secondary-color: #D4AF37; /* Gold */
  --bg-color: #FDF5E6; /* Off-white */
  --text-dark: #333333;
  --text-light: #FFFFFF;
  --font-heading: 'Playfair Display', serif;
  --font-body: 'Lato', sans-serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: var(--font-body); background-color: var(--bg-color); color: var(--text-dark); }

h1, h2, h3 { font-family: var(--font-heading); color: var(--primary-color); }

.navbar { display: flex; justify-content: space-between; padding: 1rem 5%; background: var(--primary-color); color: var(--text-light); }
.navbar a { color: var(--text-light); text-decoration: none; font-weight: bold; }
.btn { background: var(--secondary-color); color: var(--text-dark); padding: 10px 20px; border: none; cursor: pointer; font-weight: bold; border-radius: 4px; }
.btn:hover { opacity: 0.9; }

.container { max-width: 1200px; margin: 0 auto; padding: 2rem 5%; }
.card { background: white; padding: 20px; border-radius: 8px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); border-top: 4px solid var(--secondary-color); }

form { display: grid; gap: 15px; grid-template-columns: 1fr 1fr; }
@media (max-width: 768px) { form { grid-template-columns: 1fr; } }
input, select, textarea { padding: 10px; border: 1px solid #ccc; border-radius: 4px; width: 100%; }

/* Utilities */
.hidden { display: none !important; }
.spinner { border: 4px solid rgba(0,0,0,0.1); border-left-color: var(--primary-color); border-radius: 50%; width: 24px; height: 24px; animation: spin 1s linear infinite; }
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }