:root{
  --bg:#f2ebdd;
  --panel:#f7f2e8;
  --ink:#221f1c;
  --body:#6b665f;
  --accent:#a26c53;
  --accent-dark:#8f5c45;
  --line:#e2d9c8;
  --wrap:1000px;
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Poppins",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}

body{
  font-family:var(--sans);
  background:var(--bg);
  color:var(--body);
  line-height:1.7;
  font-weight:300;
  -webkit-font-smoothing:antialiased;
}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}
.wrap.narrow{max-width:1000px}

/* ---------------- header ---------------- */
header{position:sticky;top:0;z-index:60;padding:22px 0 0;background:transparent}
.nav-wrap{max-width:1340px;margin:0 auto;padding:0 28px}
.navbar{
  background:#f7f2e8;
  border-radius:999px;
  padding:16px 34px;
  display:flex;align-items:center;justify-content:space-between;gap:30px;
  position:relative;
}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--ink)}
.brand-dot{
  width:38px;height:38px;border-radius:50%;flex:none;
  background:#efe7d9;display:grid;place-items:center;
}
.brand-dot::after{content:"";width:15px;height:15px;border-radius:50%;background:#a4664a}
.brand-name{font-family:var(--serif);font-size:1.28rem;font-weight:500;letter-spacing:-.01em;white-space:nowrap}

.nav-links{display:flex;gap:36px;list-style:none;align-items:center}
.nav-links a{
  text-decoration:none;color:#7d766c;
  font-size:.79rem;font-weight:400;
  letter-spacing:.11em;text-transform:uppercase;
  transition:color .15s ease;
}
.nav-links a:hover{color:var(--accent)}
.nav-toggle{
  display:none;background:none;border:none;font-size:1.3rem;
  color:var(--ink);cursor:pointer;line-height:1;
}

/* ---------------- hero ---------------- */
.hero{padding:96px 0 40px;text-align:center}
.eyebrow-pill{
  display:inline-block;background:#f7f2e8;color:#a4664a;
  padding:11px 26px;border-radius:999px;
  font-size:.78rem;font-weight:400;letter-spacing:.16em;text-transform:uppercase;
  margin-bottom:44px;
}
.hero h1{
  font-family:var(--serif);
  font-size:clamp(2.6rem,6.4vw,4.6rem);
  line-height:1.08;font-weight:500;letter-spacing:-.02em;
  color:var(--ink);margin-bottom:34px;
}
.lede{
  font-size:1.12rem;color:#7d766c;font-weight:300;
  max-width:47ch;margin:0 auto 62px;line-height:1.75;
}

.hero-image{border-radius:20px;overflow:hidden;margin-bottom:60px;line-height:0}
.hero-image img{width:100%;height:auto;display:block}

.hero-actions{display:flex;gap:22px;justify-content:center;flex-wrap:wrap}

/* ---------------- buttons ---------------- */
.btn{
  display:inline-block;
  background:#a26c53;color:#fff;
  padding:19px 46px;border-radius:16px;
  font-family:var(--sans);font-size:1.02rem;font-weight:500;
  text-decoration:none;border:none;cursor:pointer;
  transition:background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.btn:hover{
  background:var(--accent-dark);
  transform:translateY(-3px);
  box-shadow:0 10px 24px rgba(120,80,55,.18);
}
.btn:active{transform:translateY(-1px)}
.btn.light{background:#f7f2e8;color:var(--ink)}
.btn.light:hover{
  background:#f0e9db;
  box-shadow:0 10px 24px rgba(120,80,55,.12);
}
.btn.block{display:block;width:100%;text-align:center;margin-top:34px;padding:21px}

/* ---------------- sections ---------------- */
.pad{padding:38px 0}

/* keep anchored sections clear of the sticky header */
section[id]{scroll-margin-top:104px}
.panel{background:#f7f2e8;border-radius:22px;padding:52px 56px}

.eyebrow{
  display:block;color:#a4664a;
  font-size:.79rem;font-weight:400;
  letter-spacing:.16em;text-transform:uppercase;
  margin-bottom:22px;
}

h2{
  font-family:var(--serif);
  font-size:clamp(1.9rem,3.6vw,2.5rem);
  font-weight:500;color:var(--ink);letter-spacing:-.015em;
  line-height:1.2;margin-bottom:20px;
}
h3{
  font-family:var(--serif);font-size:1.4rem;font-weight:500;
  color:var(--ink);letter-spacing:-.01em;margin-bottom:12px;
}

.panel-lede,.section-lede{font-size:1.04rem;color:#7d766c;font-weight:300;line-height:1.75}
.panel-lede{margin-bottom:44px}
.section-lede{margin-bottom:36px}

/* split panel */
.split{display:flex;align-items:center;gap:56px}
.split-text{flex:1}
.split-text p{font-size:1.04rem;color:#7d766c;font-weight:300;line-height:1.75;max-width:46ch}
.split-media{flex:none;width:260px}
.split-media img{width:100%;height:auto;display:block;border-radius:14px}

/* ---------------- form ---------------- */
.field-row{display:flex;gap:36px;margin-bottom:30px}
.field-row .field{flex:1;margin-bottom:0}
.field{margin-bottom:30px}

label,.field-label{
  display:block;font-family:var(--sans);
  font-size:.97rem;font-weight:500;color:var(--ink);
  margin-bottom:14px;
}

input[type=text],input[type=email]{
  width:100%;padding:19px 22px;
  background:#f0e9dc;border:none;border-radius:14px;
  font-family:var(--sans);font-size:1rem;font-weight:300;color:var(--ink);
}
input::placeholder{color:#b0a89c;font-weight:300}
input:focus{outline:2px solid #d8c3b3;outline-offset:0}

.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.choice{
  display:flex;align-items:center;gap:14px;
  background:#f0e9dc;border-radius:14px;
  padding:19px 24px;cursor:pointer;
  font-size:1rem;font-weight:300;color:var(--ink);
  transition:background .15s ease;
}
.choice:hover{background:#eae2d2}
.choice input{
  appearance:none;-webkit-appearance:none;
  width:19px;height:19px;flex:none;border-radius:50%;
  border:1.5px solid #b9ae9e;background:transparent;cursor:pointer;
  display:grid;place-items:center;
}
.choice input:checked{border-color:#a26c53}
.choice input:checked::after{content:"";width:10px;height:10px;border-radius:50%;background:#a26c53}
.choice:has(input:checked){background:#e9dfcd}

.form-status{margin-top:18px;font-size:.96rem;font-weight:400;display:none}
.form-status.ok{display:block;color:#4a6b4f}
.form-status.err{display:block;color:#9a4a3a}

/* ---------------- success state ---------------- */
.success{
  text-align:center;padding:24px 10px 8px;outline:none;
  animation:rise .45s cubic-bezier(.2,.7,.3,1) both;
}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

.success-check{
  width:66px;height:66px;border-radius:50%;margin:0 auto 26px;
  background:#e9dfcd;color:#8a6a4a;display:grid;place-items:center;
  animation:pop .5s cubic-bezier(.2,.9,.3,1.25) .1s both;
}
.success-check svg{width:31px;height:31px}
@keyframes pop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}

.success h3{font-size:1.7rem;margin-bottom:16px}
.success-body{
  font-size:1.04rem;color:#7d766c;font-weight:300;line-height:1.75;
  max-width:46ch;margin:0 auto 14px;
}
.success-body strong{color:var(--ink);font-weight:500}
.success-body a{color:#a4664a;text-decoration:none}
.success-body a:hover{text-decoration:underline}
.success-body.muted{font-size:.95rem}

.preview-note{
  display:block;width:fit-content;margin:18px auto 0;
  background:#efe4d2;color:#8a6a4a;
  border-radius:11px;padding:11px 18px;
  font-size:.88rem;font-weight:400;
}

.btn.small{
  display:block;width:fit-content;margin:30px auto 0;
  padding:14px 32px;font-size:.94rem;
}
@media(max-width:900px){
  .btn.small{width:100%}
}

/* ---------------- past gatherings ---------------- */
.entry{padding:44px 48px}
.entry .eyebrow{margin-bottom:16px}
.entry p{font-size:1.02rem;color:#7d766c;font-weight:300}
.entry p + p{margin-top:14px}

.entry-list{display:flex;flex-direction:column;gap:22px}

.tag-next{
  display:inline-block;margin-left:10px;
  background:#dfe8d9;color:#4a6b4f;
  border-radius:999px;padding:4px 12px;
  font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;
  vertical-align:middle;
}

.themes{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}
.theme{
  background:#efe7d9;color:#7d6a58;
  border-radius:999px;padding:7px 15px;
  font-size:.83rem;font-weight:400;
}

.more-row{margin-top:26px}

/* ---------------- inner page head ---------------- */
.page-head{padding:70px 0 26px;text-align:center}
.page-head h1{
  font-family:var(--serif);
  font-size:clamp(2.2rem,5vw,3.3rem);
  line-height:1.1;font-weight:500;letter-spacing:-.02em;
  color:var(--ink);margin-bottom:26px;
}
.page-head .eyebrow-pill{margin-bottom:34px}
.page-head .lede{margin-bottom:0}

.cta-panel{text-align:center}
.cta-panel p{
  font-size:1.04rem;color:#7d766c;font-weight:300;
  max-width:46ch;margin:0 auto 30px;
}
.cta-panel .btn{width:auto}

.contact-card.wide{width:100%;padding:40px 30px}

/* ---------------- mission / contact ---------------- */
.mission{display:flex;gap:60px;align-items:flex-start;padding:34px 0 20px}
.mission-text{flex:1}
.mission-text p{font-size:1.04rem;color:#7d766c;font-weight:300;line-height:1.75;max-width:44ch}
.contact-card{
  flex:none;width:452px;background:#f7f2e8;
  border-radius:18px;padding:34px 30px;text-align:center;
}
.contact-label{font-size:1rem;color:#7d766c;font-weight:300;margin-bottom:10px}
.contact-email{
  font-family:var(--serif);font-size:1.28rem;font-weight:500;
  color:#a4664a;text-decoration:none;letter-spacing:-.01em;word-break:break-word;
}
.contact-email:hover{text-decoration:underline}

/* respect reduced-motion preferences */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .btn,.btn:hover,.btn:active{transform:none;transition:background .18s ease}
}

/* ---------------- footer ---------------- */
footer{padding:0 0 74px}
footer hr{border:none;border-top:1px solid #ded4c1;margin:44px 0 34px}
footer p{
  text-align:center;font-size:.79rem;color:#928b81;
  letter-spacing:.13em;text-transform:uppercase;font-weight:300;
}

/* ---------------- responsive ---------------- */
@media(max-width:900px){
  .brand-name{font-size:1.05rem;white-space:normal}
  .nav-toggle{display:block}
  .nav-links{
    display:none;position:absolute;top:calc(100% + 10px);left:0;right:0;
    flex-direction:column;gap:0;align-items:stretch;
    background:#f7f2e8;border-radius:22px;padding:10px 30px;
    box-shadow:0 12px 32px rgba(60,45,30,.11);
  }
  .nav-links.open{display:flex}
  .nav-links li{padding:14px 0;border-bottom:1px solid var(--line)}
  .nav-links li:last-child{border-bottom:none}

  .hero{padding:58px 0 30px}
  .panel{padding:38px 26px}
  .entry{padding:34px 26px}
  .split{flex-direction:column-reverse;gap:32px;align-items:flex-start}
  .split-media{width:100%;max-width:280px}
  .field-row{flex-direction:column;gap:30px}
  .choice-grid{grid-template-columns:1fr}
  .mission{flex-direction:column;gap:32px}
  .contact-card{width:100%}
  .btn{width:100%;text-align:center}
  .hero-actions{flex-direction:column}
}
