:root{
  --ink:#2A2118;
  --ink-deep:#EADFC0;
  --gold:#C9A24B;
  --gold-light:#E4C983;
  --cream:#FBF6EC;
  --cream-dim:#F3EBDA;
  --wine:#5F2430;
  --line:rgba(201,162,75,0.35);
  --muted:#5c5548;
}

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

html{scroll-behavior:smooth;}

body{
  background:var(--cream);
  color:var(--ink);
  font-family:'Cormorant Garamond', serif;
  font-size:19px;
  line-height:1.6;
}

h1,h2,h3,.display{font-family:'Playfair Display', serif;}
.script{font-family:'Tangerine', cursive;}
a{color:inherit;}

/* ---------- top nav ---------- */
.site-nav{
  background:var(--cream-dim);
  border-bottom:1px solid var(--line);
  padding:16px 24px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:28px;
  flex-wrap:wrap;
}
.site-nav a{
  color:var(--wine);
  text-transform:uppercase;
  letter-spacing:0.18em;
  font-size:12px;
  font-weight:600;
  font-family:'Cormorant Garamond', serif;
  padding:6px 4px;
  border-bottom:1px solid transparent;
  transition:border-color 0.2s ease;
}
.site-nav a:hover, .site-nav a.active{border-color:var(--gold);}

/* ---------- page header ---------- */
.page-hero{
  background:
    radial-gradient(ellipse 900px 400px at 50% -10%, rgba(201,162,75,0.28), transparent 60%),
    linear-gradient(180deg, var(--ink-deep) 0%, var(--cream) 55%, var(--ink-deep) 100%);
  color:var(--ink);
  text-align:center;
  padding:64px 24px 56px;
}
.page-hero .eyebrow{
  color:var(--wine);
  letter-spacing:0.3em;
  text-transform:uppercase;
  font-size:12px;
  font-weight:600;
  margin-bottom:16px;
}
.page-hero h1{
  font-size:clamp(32px,6vw,52px);
  color:var(--wine);
  font-weight:600;
}
.page-hero p{
  margin-top:14px;
  font-style:italic;
  color:var(--muted);
  font-size:18px;
  max-width:520px;
  margin-left:auto;
  margin-right:auto;
}

/* ---------- ornament divider ---------- */
.ornament{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  color:var(--gold);
  margin:0 auto;
}
.ornament::before,.ornament::after{
  content:"";
  height:1px;
  width:52px;
  background:linear-gradient(90deg, transparent, var(--gold));
}
.ornament::after{background:linear-gradient(90deg, var(--gold), transparent);}
.ornament svg{width:14px;height:14px;flex-shrink:0;}

/* ---------- form section ---------- */
.form-section{
  padding:64px 24px 100px;
  max-width:600px;
  margin:0 auto;
}

.field{margin-bottom:22px;}
.field label{
  display:block;
  font-family:'Playfair Display', serif;
  font-size:13px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--wine);
  margin-bottom:8px;
}
.field .hint{
  display:block;
  font-size:14px;
  font-style:italic;
  color:#8a8272;
  margin-top:6px;
}
.field input[type=text],
.field input[type=tel],
.field input[type=number],
.field textarea{
  width:100%;
  font-family:'Cormorant Garamond', serif;
  font-size:18px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:4px;
  background:#fff;
  color:var(--ink);
}
.field input:focus, .field textarea:focus{
  outline:none;
  border-color:var(--gold);
}
.field textarea{resize:vertical; min-height:110px;}

.field-row{display:flex; gap:16px;}
.field-row .field{flex:1;}

/* honeypot - hidden from real visitors */
.hp-field{position:absolute; left:-9999px; top:-9999px;}

.btn{
  display:inline-block;
  width:100%;
  text-align:center;
  background:var(--wine);
  color:var(--cream);
  font-family:'Playfair Display', serif;
  font-size:17px;
  letter-spacing:0.05em;
  padding:14px 24px;
  border:none;
  border-radius:4px;
  cursor:pointer;
  transition:background 0.2s ease, opacity 0.2s ease;
}
.btn:hover{background:#712C39;}
.btn:disabled{opacity:0.6; cursor:default;}

.form-msg{
  margin-top:18px;
  padding:14px 16px;
  border-radius:4px;
  font-size:16px;
  display:none;
}
.form-msg.success{display:block; background:#E6EFE3; color:#2B5A2E; border:1px solid #B7D2B0;}
.form-msg.error{display:block; background:#F6E4E2; color:#7A2A22; border:1px solid #E3B6AF;}

/* ---------- misc ---------- */
footer.site-footer{
  background:var(--ink-deep);
  color:var(--muted);
  text-align:center;
  padding:40px 24px 32px;
}
footer.site-footer .fine{
  font-size:12px;
  letter-spacing:0.15em;
  text-transform:uppercase;
  color:#8a8272;
}
