:root{
  --ink:#1F2E22;
  --ink-soft:#2C3B2C;
  --sage:#7C9473;
  --sage-pale:#C9D3BE;
  --marigold:#E08E2B;
  --marigold-deep:#B96E1A;
  --cream:#F6F1E4;
  --cream-dim:#EFE8D6;
  --charcoal:#2A2A24;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Public Sans', sans-serif;
  color:var(--charcoal);
  background:var(--cream);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{
  font-family:'Fraunces', serif;
  font-weight:450;
  letter-spacing:-0.01em;
}
.eyebrow{
  font-family:'Public Sans', sans-serif;
  text-transform:uppercase;
  letter-spacing:0.14em;
  font-size:0.72rem;
  font-weight:600;
  color:var(--marigold-deep);
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}

/* ---- Nav ---- */
nav{
  position:sticky; top:0; z-index:40;
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 6vw;
  background:rgba(246,241,228,0.9);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--cream-dim);
}
.logo{font-family:'Fraunces',serif; font-size:1.25rem; font-weight:600; color:var(--ink);}
.logo span{color:var(--marigold-deep);}
.navlinks{display:flex; gap:2.2rem; font-size:0.85rem; font-weight:500;}
.navlinks a{opacity:0.75; transition:opacity .2s;}
.navlinks a:hover{opacity:1;}
.nav-cta{
  background:var(--marigold); color:var(--ink);
  padding:9px 18px; border-radius:999px; font-size:0.82rem; font-weight:600;
  white-space:nowrap;
}
@media (max-width:820px){ .navlinks{display:none;} }

/* ---- Hero ---- */
.hero{
  background:var(--ink);
  color:var(--cream);
  padding:6vw 6vw 5vw;
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:4vw;
  align-items:center;
  overflow:hidden;
  position:relative;
}
@media (max-width:900px){ .hero{grid-template-columns:1fr; padding-top:12vw;} }
.hero .eyebrow{color:var(--sage-pale);}
.hero h1{
  font-size:clamp(2.3rem, 5vw, 3.6rem);
  color:var(--cream);
  margin:0.6rem 0 1.2rem;
  max-width:11ch;
}
.hero h1 em{color:var(--marigold); font-style:normal;}
.hero p{
  max-width:42ch;
  color:var(--sage-pale);
  font-size:1.02rem;
  margin-bottom:2rem;
}
.hero-ctas{display:flex; gap:0.9rem; flex-wrap:wrap;}
.btn-primary{
  background:var(--marigold); color:var(--ink);
  padding:13px 26px; border-radius:999px;
  font-weight:600; font-size:0.92rem;
  display:inline-block; border:none; cursor:pointer;
}
.btn-ghost{
  border:1px solid rgba(246,241,228,0.35); color:var(--cream);
  padding:13px 26px; border-radius:999px;
  font-weight:600; font-size:0.92rem;
  display:inline-block;
}

/* Signature element: breath circle */
.breath-wrap{
  display:flex; align-items:center; justify-content:center;
  position:relative; height:340px;
}
.breath-ring{
  position:absolute; border-radius:50%;
  border:1px solid rgba(224,142,43,0.35);
}
.ring1{width:340px; height:340px;}
.ring2{width:270px; height:270px; border-color:rgba(124,148,115,0.4);}
.breath-circle{
  width:150px; height:150px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #F3B15C, var(--marigold-deep));
  display:flex; align-items:center; justify-content:center;
  animation:breathe 11s ease-in-out infinite;
  box-shadow:0 0 60px rgba(224,142,43,0.35);
}
.breath-circle span{
  font-family:'Public Sans',sans-serif;
  font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--ink); font-weight:700;
}
@keyframes breathe{
  0%{transform:scale(0.72);}
  36%{transform:scale(1);}
  50%{transform:scale(1);}
  86%{transform:scale(0.72);}
  100%{transform:scale(0.72);}
}
@media (prefers-reduced-motion: reduce){
  .breath-circle{animation:none; transform:scale(0.88);}
}

section{padding:5.5vw 6vw;}
.section-head{max-width:62ch; margin-bottom:2.6rem;}
.section-head h2{font-size:clamp(1.7rem,3vw,2.3rem); margin-top:0.5rem;}

/* ---- About ---- */
.about{
  display:grid; grid-template-columns:0.85fr 1.15fr; gap:4vw; align-items:center;
}
@media (max-width:820px){ .about{grid-template-columns:1fr;} }
.about-photo{
  aspect-ratio:4/5; border-radius:18px;
  background:linear-gradient(160deg, var(--sage-pale), var(--sage));
  display:flex; align-items:center; justify-content:center;
  color:var(--ink); font-family:'Fraunces',serif; font-style:italic; font-size:0.95rem; text-align:center; padding:2rem;
  overflow:hidden;
}
.about-photo img{width:100%; height:100%; object-fit:cover;}
.about p{margin-bottom:1rem; max-width:56ch; color:var(--ink-soft);}

/* ---- Offerings carousel ---- */
.offerings-track{
  display:flex; gap:1.3rem; overflow-x:auto; padding-bottom:1rem;
  scroll-snap-type:x mandatory;
}
.offer-card{
  scroll-snap-align:start;
  flex:0 0 clamp(240px, 30vw, 300px);
  background:var(--ink);
  color:var(--cream);
  border-radius:16px;
  padding:1.8rem 1.6rem;
  min-height:280px;
  display:flex; flex-direction:column; justify-content:space-between;
}
.offer-card:nth-child(2){background:var(--marigold-deep);}
.offer-card:nth-child(3){background:var(--sage);}
.offer-card:nth-child(4){background:#4A5C3F;}
.offer-num{font-family:'Fraunces',serif; font-size:0.85rem; opacity:0.7;}
.offer-card h3{font-size:1.35rem; margin:1.6rem 0 0.6rem; color:inherit;}
.offer-card p{font-size:0.88rem; opacity:0.88;}

/* ---- Corporate strip ---- */
.corporate{
  background:var(--sage-pale);
  border-radius:20px;
  display:grid; grid-template-columns:1.2fr 0.8fr; gap:2rem; align-items:center;
  padding:3rem 3rem;
  margin:0 6vw 5.5vw;
}
@media (max-width:820px){ .corporate{grid-template-columns:1fr; padding:2rem;} }
.corporate h3{font-size:1.6rem; margin-bottom:0.8rem;}
.corporate a.btn-primary{background:var(--ink); color:var(--cream);}

/* ---- Quote ---- */
.quote{ text-align:center; padding:5vw 12vw; }
.quote p{
  font-family:'Fraunces',serif; font-style:italic;
  font-size:clamp(1.3rem,2.4vw,1.8rem);
  color:var(--ink);
  max-width:38ch; margin:0 auto 1.2rem;
}
.quote span{font-size:0.85rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--marigold-deep); font-weight:600;}

/* ---- Booking ---- */
.booking{
  background:var(--ink); color:var(--cream);
  border-radius:24px; margin:0 6vw 5.5vw;
  padding:4vw; display:grid; grid-template-columns:1fr 1fr; gap:3vw; align-items:center;
}
@media (max-width:820px){ .booking{grid-template-columns:1fr;} }
.booking h2{color:var(--cream); font-size:clamp(1.6rem,2.6vw,2.1rem);}
.booking p{color:var(--sage-pale); margin:1rem 0 1.6rem; max-width:42ch;}
.calendly-mock{
  background:var(--cream); border-radius:14px; padding:1.6rem;
  color:var(--charcoal);
}
.cal-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:0.5rem; margin-top:1rem;}
.cal-slot{
  border:1px solid var(--cream-dim); border-radius:8px; padding:0.5rem 0;
  text-align:center; font-size:0.78rem; background:#fff;
}
.cal-slot.active{background:var(--marigold); border-color:var(--marigold); color:var(--ink); font-weight:600;}

/* ---- CTA strip (homepage -> contact page) ---- */
.cta-strip{
  text-align:center; padding:4vw 6vw 6vw;
}
.cta-strip h2{font-size:clamp(1.6rem,2.6vw,2.1rem); margin-bottom:1rem;}
.cta-strip p{color:var(--ink-soft); margin-bottom:1.6rem; max-width:46ch; margin-left:auto; margin-right:auto;}

/* ---- Contact page ---- */
.contact{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:4vw; }
@media (max-width:780px){ .contact{grid-template-columns:1fr;} }
.contact-info h1{ font-size:clamp(1.9rem,3.4vw,2.5rem); margin:0.5rem 0 1rem; }
.contact-info p{ margin-bottom:0.6rem; color:var(--ink-soft); }
.social-row{ display:flex; gap:0.8rem; margin-top:1.4rem; }
.social-pill{ border:1px solid var(--ink); border-radius:999px; padding:8px 16px; font-size:0.82rem; font-weight:600; }

form{ display:flex; flex-direction:column; gap:0.9rem; }
label{ font-size:0.82rem; font-weight:600; color:var(--ink-soft); margin-bottom:-0.4rem; }
input, textarea, select{
  background:#fff; border:1px solid var(--cream-dim); border-radius:10px;
  padding:0.85rem 1rem; font-family:inherit; font-size:0.92rem; width:100%;
}
textarea{ min-height:130px; resize:vertical; }
input:focus, textarea:focus, select:focus{ outline:2px solid var(--marigold); outline-offset:1px; }
button[type="submit"]{
  background:var(--ink); color:var(--cream); border:none; border-radius:999px;
  padding:1rem; font-weight:600; cursor:pointer; font-size:0.95rem;
}
button[type="submit"]:hover{ background:var(--ink-soft); }
.hp-field{ position:absolute; left:-9999px; }

.status{ display:none; border-radius:10px; padding:0.9rem 1.1rem; font-size:0.88rem; margin-top:0.4rem; }
.status.success{ display:block; background:#E5EEDF; color:var(--ink); border:1px solid var(--sage); }
.status.error{ display:block; background:#FBE7DA; color:#7A3A0F; border:1px solid var(--marigold); }

.setup-note{
  margin-top:3rem; padding:1.4rem 1.6rem; border:1px dashed var(--sage);
  border-radius:14px; font-size:0.85rem; color:var(--ink-soft); background:var(--cream-dim);
}
.setup-note strong{ color:var(--ink); }
.setup-note code{ background:#fff; padding:0.1rem 0.4rem; border-radius:4px; font-size:0.82rem; }

footer{
  padding:3rem 6vw 2.4rem;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem;
  border-top:1px solid var(--cream-dim);
  font-size:0.82rem; color:var(--ink-soft);
}
