:root{
  --ivory:#F7F3EC;
  --ivory-deep:#EFE8DA;
  --plum:#2B2430;
  --plum-soft:#4A4051;
  --gold:#B08D57;
  --gold-soft:#D8C7A1;
  --rose-taupe:#A8877C;
  --line:#E1D8C4;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--ivory);
  color:var(--plum);
  font-family:'Jost', sans-serif;
  font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.serif{
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  letter-spacing:0.01em;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1120px; margin:0 auto; padding:0 32px;}
ul{list-style:none;}

/* ---------- Header / nav ---------- */
header.site{
  border-bottom:1px solid var(--line);
  background:var(--ivory);
  position:sticky; top:0; z-index:50;
}
.nav-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:22px 0;
}
.brand{
  font-family:'Cormorant Garamond', serif;
  font-size:1.6rem;
  letter-spacing:0.04em;
}
.brand span{color:var(--gold);}
nav.main-nav ul{display:flex; gap:32px;}
nav.main-nav a{
  font-size:0.92rem;
  letter-spacing:0.03em;
  text-transform:uppercase;
  color:var(--plum-soft);
  transition:color .2s ease;
}
nav.main-nav a:hover, nav.main-nav a.active{color:var(--gold);}
.nav-toggle{display:none;}

@media (max-width:820px){
  nav.main-nav{
    display:none; position:absolute; left:0; right:0; top:100%;
    background:var(--ivory); border-bottom:1px solid var(--line);
    padding:16px 32px;
  }
  nav.main-nav.open{display:block;}
  nav.main-nav ul{flex-direction:column; gap:18px;}
  .nav-toggle{
    display:block; background:none; border:none; font-size:1.4rem;
    color:var(--plum); cursor:pointer;
  }
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;
  padding:14px 30px;
  border-radius:2px;
  font-size:0.92rem;
  letter-spacing:0.04em;
  text-transform:uppercase;
  transition:all .2s ease;
  border:1px solid transparent;
  cursor:pointer;
}
.btn-primary{background:var(--plum); color:var(--ivory);}
.btn-primary:hover{background:var(--gold); color:var(--plum);}
.btn-outline{border-color:var(--plum); color:var(--plum);}
.btn-outline:hover{background:var(--plum); color:var(--ivory);}

/* ---------- Hero ---------- */
.hero{
  padding:96px 0 72px;
  text-align:center;
}
.hero .eyebrow{
  color:var(--gold);
  letter-spacing:0.18em;
  text-transform:uppercase;
  font-size:0.8rem;
  margin-bottom:18px;
}
.hero h1{
  font-size:clamp(2.4rem, 5vw, 3.6rem);
  max-width:760px;
  margin:0 auto 20px;
}
.hero p.lead{
  max-width:560px;
  margin:0 auto 34px;
  color:var(--plum-soft);
  font-size:1.05rem;
}
.hero-arc{
  width:120px; height:2px; margin:0 auto 34px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
}
.hero-ctas{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}

/* ---------- Sections ---------- */
section{padding:72px 0;}
.section-head{text-align:center; max-width:640px; margin:0 auto 48px;}
.section-head .eyebrow{
  color:var(--gold); letter-spacing:0.18em; text-transform:uppercase; font-size:0.78rem; margin-bottom:12px;
}
.section-head h2{font-size:clamp(1.8rem,3.5vw,2.4rem); margin-bottom:14px;}
.section-head p{color:var(--plum-soft);}

.two-col{
  display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center;
}
@media (max-width:820px){.two-col{grid-template-columns:1fr;}}

/* ---------- Cards ---------- */
.card-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:24px;
}
.card{
  background:#fff;
  border:1px solid var(--line);
  padding:32px 28px;
  border-radius:2px;
}
.card h3{font-size:1.4rem; margin-bottom:8px;}
.card .price{
  color:var(--gold); font-family:'Cormorant Garamond', serif; font-size:1.6rem; margin-bottom:14px;
}
.card p{color:var(--plum-soft); font-size:0.94rem; margin-bottom:20px;}

.tier-block{margin-bottom:56px;}
.tier-block h3.tier-title{
  font-size:1.5rem; margin-bottom:20px; padding-bottom:10px; border-bottom:1px solid var(--line);
}

/* ---------- Forms ---------- */
form.card-form{
  background:#fff; border:1px solid var(--line); padding:36px; border-radius:2px; max-width:640px; margin:0 auto;
}
.field{margin-bottom:20px;}
.field label{
  display:block; font-size:0.85rem; letter-spacing:0.03em; text-transform:uppercase; color:var(--plum-soft); margin-bottom:8px;
}
.field input, .field select, .field textarea{
  width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:2px;
  font-family:'Jost', sans-serif; font-size:0.98rem; background:var(--ivory);
}
.field textarea{min-height:120px; resize:vertical;}
.field-note{font-size:0.82rem; color:var(--rose-taupe); margin-top:6px;}
.form-msg{
  padding:14px 18px; border-radius:2px; margin-bottom:20px; font-size:0.92rem;
}
.form-msg.success{background:#EAF3E9; color:#3B6B3E; border:1px solid #C9E0C7;}
.form-msg.error{background:#F6E7E4; color:#8C3B2E; border:1px solid #E7C8C1;}

/* ---------- FAQ ---------- */
.faq-item{border-bottom:1px solid var(--line); padding:20px 0;}
.faq-q{
  display:flex; justify-content:space-between; align-items:center; cursor:pointer;
  font-family:'Cormorant Garamond', serif; font-size:1.2rem;
}
.faq-a{max-height:0; overflow:hidden; transition:max-height .25s ease; color:var(--plum-soft); font-size:0.95rem;}
.faq-item.open .faq-a{max-height:400px; margin-top:12px;}
.faq-toggle{color:var(--gold); font-size:1.3rem;}

/* ---------- Footer ---------- */
footer.site{
  background:var(--plum); color:var(--ivory-deep); padding:56px 0 28px; margin-top:80px;
}
.footer-grid{
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px; margin-bottom:36px;
}
@media (max-width:820px){.footer-grid{grid-template-columns:1fr 1fr;}}
.footer-grid h5{
  color:var(--gold-soft); font-size:0.82rem; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:16px;
}
.footer-grid ul li{margin-bottom:10px;}
.footer-grid a{color:var(--ivory-deep); opacity:0.85; font-size:0.94rem;}
.footer-grid a:hover{opacity:1; color:var(--gold-soft);}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,0.12); padding-top:22px;
  font-size:0.82rem; opacity:0.7; text-align:center;
}

/* ---------- Legal pages ---------- */
.legal-content{max-width:760px; margin:0 auto;}
.legal-content h2{margin-top:36px; margin-bottom:14px; font-size:1.4rem;}
.legal-content p, .legal-content li{color:var(--plum-soft); margin-bottom:14px;}
.legal-content li{margin-left:22px; list-style:disc;}
