:root{
  --cream:#faf6f0;
  --cream-dark:#f0e9de;
  --terracotta:#c47a5a;
  --terracotta-dark:#a15f43;
  --sage:#8a9a7e;
  --ink:#3a332c;
  --ink-light:#6b6259;
  --white:#ffffff;
  --radius:14px;
  --shadow:0 8px 24px rgba(58,51,44,0.08);
}

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

body{
  font-family:'Jost', sans-serif;
  background:var(--cream);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

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

a{ color:inherit; text-decoration:none; }

.btn{
  display:inline-block;
  padding:14px 32px;
  border-radius:999px;
  font-family:'Jost', sans-serif;
  font-size:15px;
  letter-spacing:0.03em;
  cursor:pointer;
  border:none;
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn:hover{ transform:translateY(-2px); }
.btn-primary{ background:var(--terracotta); color:#fff; box-shadow:0 6px 16px rgba(196,122,90,0.35); }
.btn-primary:hover{ background:var(--terracotta-dark); }
.btn-secondary{ background:var(--sage); color:#fff; }

/* Navbar */
.navbar{
  position:sticky; top:0; z-index:50;
  background:rgba(250,246,240,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--cream-dark);
}
.nav-inner{
  max-width:1000px; margin:0 auto; padding:14px 24px;
  display:flex; align-items:center; justify-content:space-between;
}
.nav-brand{ font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:600; color:var(--terracotta-dark); }
.nav-links{ display:flex; gap:28px; list-style:none; }
.nav-links a{ font-size:14px; color:var(--ink); letter-spacing:.02em; }
.nav-links a:hover{ color:var(--terracotta); }
.nav-toggle{ display:none; background:none; border:none; font-size:22px; cursor:pointer; color:var(--ink); }

@media (max-width:720px){
  .nav-toggle{ display:block; }
  .nav-links{
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; background:var(--cream);
    padding:16px 24px; gap:16px;
    border-bottom:1px solid var(--cream-dark);
    display:none;
  }
  .nav-links.open{ display:flex; }
}

/* Hero */
.hero{
  min-height:90vh;
  display:flex; align-items:center; justify-content:center; text-align:center;
  background:linear-gradient(180deg, var(--cream) 0%, var(--cream-dark) 100%);
  padding:60px 24px;
}
.hero-eyebrow{ letter-spacing:.15em; text-transform:uppercase; font-size:13px; color:var(--ink-light); margin-bottom:18px; }
.hero h1{ font-size:clamp(48px,10vw,88px); line-height:1.05; color:var(--terracotta-dark); }
.hero-divider{ width:60px; height:2px; background:var(--sage); margin:24px auto; }
.hero-date{ font-size:19px; letter-spacing:.03em; }
.hero-place{ font-size:15px; color:var(--ink-light); margin-bottom:32px; }

/* Countdown */
.countdown-section{ text-align:center; padding:60px 24px 40px; }
.section-kicker{ text-transform:uppercase; letter-spacing:.15em; font-size:12px; color:var(--terracotta); margin-bottom:8px; }
.countdown{ display:flex; justify-content:center; gap:16px; margin-top:20px; flex-wrap:wrap; }
.countdown-box{
  background:#fff; border-radius:var(--radius); box-shadow:var(--shadow);
  padding:20px 22px; min-width:80px;
}
.countdown-box span{ display:block; font-family:'Cormorant Garamond',serif; font-size:36px; font-weight:700; color:var(--terracotta-dark); }
.countdown-box label{ font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--ink-light); }

/* Sections */
.section{ max-width:900px; margin:0 auto; padding:70px 24px; text-align:center; }
.section-alt{ background:var(--white); max-width:none; }
.section-alt > *{ max-width:900px; margin-left:auto; margin-right:auto; }
.section-title{ font-size:38px; margin-bottom:18px; }
.section-text{ color:var(--ink-light); max-width:600px; margin:0 auto 32px; }

.event-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:18px; margin-bottom:36px; }
.event-card{ background:var(--cream); border-radius:var(--radius); padding:26px 16px; }
.event-icon{ font-size:26px; }
.event-card h3{ font-size:18px; margin:10px 0 6px; }
.event-card p{ font-size:14px; color:var(--ink-light); }

.map-wrapper{ border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); }

/* Gifts */
.gift-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; text-align:left; }
.gift-card{
  background:#fff; border-radius:var(--radius); box-shadow:var(--shadow);
  padding:20px; display:flex; flex-direction:column; gap:10px;
}
.gift-card h3{ font-size:18px; }
.gift-card .gift-price{ color:var(--terracotta-dark); font-weight:500; font-size:16px; }
.gift-card .gift-progress{ height:6px; background:var(--cream-dark); border-radius:4px; overflow:hidden; }
.gift-card .gift-progress-fill{ height:100%; background:var(--sage); }
.gift-card .gift-status{ font-size:12px; color:var(--ink-light); }
.gift-card.gift-complete{ opacity:0.55; }
.gift-card button{ margin-top:auto; }

/* Forms */
.form-card{
  max-width:520px; margin:0 auto; background:#fff; border-radius:var(--radius);
  box-shadow:var(--shadow); padding:32px; text-align:left;
}
.form-row{ margin-bottom:18px; }
.form-row label{ display:block; font-size:13px; margin-bottom:6px; color:var(--ink-light); }
.form-row input[type="text"],
.form-row input[type="email"],
.form-row input[type="number"],
.form-row select,
.form-row textarea{
  width:100%; padding:11px 14px; border:1px solid var(--cream-dark); border-radius:8px;
  font-family:'Jost',sans-serif; font-size:15px; background:var(--cream);
}
.form-row textarea{ resize:vertical; }
.radio-group{ display:flex; gap:20px; }
.radio-option, .checkbox-option{ font-size:14px; display:flex; align-items:center; gap:6px; color:var(--ink); }
.form-card button[type="submit"]{ width:100%; }
.form-feedback{ margin-top:14px; font-size:14px; text-align:center; min-height:20px; }
.form-feedback.success{ color:var(--sage); }
.form-feedback.error{ color:#b5473c; }

/* Messages wall */
.messages-wall{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; margin-top:36px; text-align:left; }
.message-card{ background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); padding:18px; }
.message-card h4{ font-size:15px; margin-bottom:6px; color:var(--terracotta-dark); }
.message-card p{ font-size:14px; color:var(--ink-light); }

.loading-text{ color:var(--ink-light); font-size:14px; grid-column:1/-1; text-align:center; }

/* Modal */
.modal-overlay{
  display:none; position:fixed; inset:0; background:rgba(58,51,44,0.5);
  align-items:center; justify-content:center; z-index:100; padding:20px;
}
.modal-overlay.open{ display:flex; }
.modal-box{
  background:#fff; border-radius:var(--radius); padding:32px; max-width:420px; width:100%;
  position:relative; box-shadow:var(--shadow);
}
.modal-close{
  position:absolute; top:14px; right:16px; background:none; border:none; font-size:22px; cursor:pointer; color:var(--ink-light);
}
.modal-desc{ font-size:14px; color:var(--ink-light); margin:8px 0 18px; }
.modal-note{ font-size:12px; color:var(--ink-light); margin-top:10px; text-align:center; }

.footer{ text-align:center; padding:40px 24px; color:var(--ink-light); font-size:13px; }
