:root {
  --sand: #ede4d3;
  --dune: #8aa399;
  --sea: #4a7c82;
  --gold: #c9a227;
  --ink: #2f3b3a;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--sand);
  color: var(--ink);
  font-family: 'Nunito Sans', sans-serif;
  line-height: 1.6;
}

h1, h2, .script {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 600;
}

.hero {
  min-height: 60vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: linear-gradient(180deg, var(--sea) 0%, var(--dune) 100%);
  color: white;
  padding: 2rem 1rem;
}

.hero h1 { font-size: 3rem; margin: 0; }

.countdown {
  margin-top: 1.5rem;
  font-size: 1.25rem;
  letter-spacing: 0.05em;
}

main {
  max-width: 720px;
  margin: 0 auto;
  padding: 2rem 1.5rem;
}

section { margin-bottom: 3rem; }

.schedule { list-style: none; padding: 0; }
.schedule li {
  padding: 0.75rem 0;
  border-bottom: 1px solid rgba(0,0,0,0.1);
}

.practical-info { display: grid; grid-template-columns: auto 1fr; gap: 0.5rem 1rem; }
.practical-info dt { font-weight: 600; color: var(--sea); }

#rsvp-form fieldset {
  border: 1px solid var(--dune);
  border-radius: 8px;
  margin-bottom: 1rem;
}

button {
  background: var(--gold);
  color: var(--ink);
  border: none;
  padding: 0.6rem 1.2rem;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
}

.error { color: #a3342c; }

body.admin main { max-width: 960px; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 0.5rem; border-bottom: 1px solid rgba(0,0,0,0.1); }
