:root{
  --peach:#f4c9a8;
  --peach-soft:#fadfc9;
  --coral:#e89b7d;
  --rose:#c97b6a;
  --sage:#8fa585;
  --cream:#fdf6ec;
  --cream-2:#f6ead8;
  --ink:#3b2a24;
  --ink-soft:#6a4f44;
  --gold:#a97a4a;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Nunito Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --maxw:1100px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--cream);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{font-family:var(--serif);font-weight:500;color:var(--ink);margin:0}
p{margin:0 0 1em}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:6rem 1.5rem 5rem;
  overflow:hidden;
  color:var(--ink);
  isolation:isolate;
}
.hero__sky{
  position:absolute;inset:0;z-index:-3;
  background:
    radial-gradient(ellipse at 50% 78%, #ffe6b8 0%, transparent 45%),
    linear-gradient(180deg,
      #b7c5d6 0%,
      #e6b8b0 22%,
      #f2c1a4 42%,
      #f4c9a8 58%,
      #e89b7d 78%,
      #c97b6a 100%);
}
.hero__hills{
  position:absolute;left:0;right:0;bottom:0;height:35%;z-index:-2;
  background:
    radial-gradient(ellipse 60% 90% at 20% 100%, #6b7a5c 0%, #6b7a5c 40%, transparent 41%),
    radial-gradient(ellipse 55% 80% at 80% 100%, #5a6a4e 0%, #5a6a4e 40%, transparent 41%),
    radial-gradient(ellipse 90% 60% at 50% 100%, #4a5a42 0%, #4a5a42 45%, transparent 46%);
  opacity:.85;
}
.hero__inner{position:relative;max-width:720px;z-index:1}
.mark{color:var(--ink);width:130px;margin:0 auto 1.2rem;opacity:.85}
.mark svg{width:100%;height:auto}
.hero h1{
  font-size:clamp(2.2rem,6vw,4rem);
  letter-spacing:.16em;
  text-transform:uppercase;
  line-height:1.15;
  margin-bottom:.7rem;
  color:#3a231a;
}
.eyebrow{
  font-family:var(--sans);
  letter-spacing:.35em;
  text-transform:uppercase;
  font-size:.75rem;
  color:var(--ink-soft);
  margin-bottom:2.2rem;
  position:relative;
}
.eyebrow::after{
  content:"";display:block;width:60px;height:1px;
  background:var(--ink-soft);margin:1.2rem auto 0;opacity:.5;
}
.tagline{
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(1.5rem,3.2vw,2.1rem);
  color:#4a2a1e;
  margin-bottom:2.5rem;
}
.btn{
  display:inline-block;
  padding:.9rem 2.2rem;
  background:var(--ink);
  color:var(--cream);
  text-decoration:none;
  border-radius:999px;
  font-family:var(--sans);
  letter-spacing:.15em;
  text-transform:uppercase;
  font-size:.78rem;
  transition:transform .2s ease, background .2s ease, box-shadow .2s ease;
  box-shadow:0 6px 20px rgba(59,42,36,.18);
}
.btn:hover{background:var(--rose);transform:translateY(-2px);box-shadow:0 10px 26px rgba(59,42,36,.25)}
.btn--ghost{
  background:transparent;color:var(--ink);
  border:1px solid var(--ink);box-shadow:none;
  text-transform:none;letter-spacing:.05em;font-size:.95rem;
  padding:.85rem 1.8rem;
}
.btn--ghost:hover{background:var(--ink);color:var(--cream)}

/* ---------- ABOUT ---------- */
.about{
  max-width:var(--maxw);
  margin:0 auto;
  padding:6rem 1.5rem;
  display:grid;
  grid-template-columns:1fr 1.4fr;
  gap:4rem;
  align-items:center;
}
.about__portrait{text-align:center}
.about__portrait img{
  width:min(100%,340px);
  margin:0 auto;
  border-radius:50%;
  box-shadow:0 20px 50px rgba(59,42,36,.18), 0 0 0 8px var(--cream), 0 0 0 9px var(--peach);
}
.about__label{
  margin-top:1.4rem;
  font-family:var(--serif);
  font-style:italic;
  color:var(--ink-soft);
  font-size:1.05rem;
  line-height:1.4;
}
.about__label strong{
  display:inline-block;
  margin-top:.2rem;
  font-style:normal;
  letter-spacing:.35em;
  color:var(--ink);
  font-weight:500;
}
.about__label small{
  display:block;
  font-family:var(--sans);
  font-style:normal;
  letter-spacing:.25em;
  text-transform:uppercase;
  font-size:.65rem;
  color:var(--ink-soft);
  margin-top:.4rem;
}
.about__text h2{
  font-size:clamp(1.8rem,3.5vw,2.6rem);
  margin-bottom:1.4rem;
  color:var(--rose);
}
.about__text p{font-size:1.08rem;color:var(--ink-soft)}
.quote{
  font-family:var(--serif);
  font-style:italic;
  font-size:1.35rem;
  color:var(--ink);
  border-left:2px solid var(--peach);
  padding-left:1.2rem;
  margin-top:2rem;
}

/* ---------- OFFERINGS ---------- */
.offerings{
  background:linear-gradient(180deg,var(--cream) 0%,var(--cream-2) 100%);
  padding:5rem 1.5rem;
}
.offerings__grid{
  max-width:var(--maxw);
  margin:0 auto;
  padding:0;
  list-style:none;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:2rem;
  text-align:center;
}
.offerings__grid li{
  background:var(--cream);
  padding:2.5rem 1.5rem;
  border-radius:14px;
  box-shadow:0 8px 24px rgba(59,42,36,.06);
  border:1px solid rgba(201,123,106,.15);
}
.offerings__grid h3{
  font-size:1.35rem;
  color:var(--rose);
  margin-bottom:.6rem;
  letter-spacing:.02em;
}
.offerings__grid p{color:var(--ink-soft);margin:0}

/* ---------- INVITE ---------- */
.invite{
  padding:5rem 1.5rem;
  text-align:center;
  color:var(--ink);
}
.waves{width:80px;height:auto;color:var(--peach);margin:0 auto 1.5rem;display:block}
.invite p{
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(1.4rem,3vw,1.9rem);
  max-width:640px;margin:0 auto;
  color:var(--ink-soft);
}

/* ---------- CONTACT ---------- */
.contact{
  background:linear-gradient(180deg,var(--peach-soft) 0%,var(--peach) 100%);
  padding:6rem 1.5rem;
  text-align:center;
}
.contact h2{
  font-size:clamp(2rem,4vw,2.8rem);
  margin-bottom:.8rem;
  letter-spacing:.05em;
}
.contact p{color:var(--ink-soft);margin-bottom:2rem;font-size:1.05rem}

footer{
  background:var(--ink);
  color:var(--cream);
  text-align:center;
  padding:1.6rem 1rem;
  font-size:.85rem;
  letter-spacing:.05em;
}
footer p{margin:0;opacity:.75}

/* ---------- RESPONSIVE ---------- */
@media (max-width:820px){
  .about{grid-template-columns:1fr;gap:2.5rem;padding:4rem 1.5rem;text-align:center}
  .quote{border-left:none;border-top:2px solid var(--peach);padding:1.2rem 0 0;margin-top:1.5rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .btn{transition:none}
}
