:root{
  --ivory:#FAF5E6;
  --ink:#2A332B;
  --ink60:rgba(42,51,43,.62);
  --ink12:rgba(42,51,43,.12);
  --sage:#A2BF8A;
  --sage-tint:rgba(162,191,138,.16);
  --gold:#D5B06B;
  --ease:cubic-bezier(.2,.65,.2,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
img{display:block;max-width:100%}
body{font-family:'Jost',sans-serif;background:var(--ivory);color:var(--ink);
  -webkit-font-smoothing:antialiased;font-size:16px;overflow-x:hidden}
body.noscroll{overflow:hidden}
.col{max-width:520px;margin:0 auto;padding:0 26px}
.display{font-family:'Fraunces',serif;font-weight:300;line-height:1.14;letter-spacing:-.01em}
.display em{font-style:italic;font-weight:300}
.eyebrow{font-size:11px;letter-spacing:.26em;text-transform:uppercase;
  color:var(--ink60);font-weight:500}

/* top bar */
.topbar{position:sticky;top:0;z-index:40;
  background:rgba(250,245,230,.88);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--ink12)}
.topbar .col{display:flex;align-items:center;justify-content:space-between;
  padding-top:16px;padding-bottom:16px}
.wordmark{display:flex;align-items:center;gap:10px;font-size:13px;
  letter-spacing:.34em;font-weight:500;color:var(--ink);text-decoration:none}
.wordmark img{height:26px;width:auto}
.wordmark b{font-weight:500;color:var(--ink60)}
.topicons{display:flex;gap:10px;align-items:center}
.topwa{width:38px;height:38px;border-radius:50%;border:1px solid var(--ink12);
  display:flex;align-items:center;justify-content:center}
.topwa svg{width:17px;height:17px;fill:var(--ink)}
.burger{width:38px;height:38px;border-radius:50%;border:1px solid var(--ink12);
  background:none;display:flex;flex-direction:column;gap:5px;
  align-items:center;justify-content:center;cursor:pointer}
.burger span{width:15px;height:1.6px;background:var(--ink);display:block}

/* menu overlay */
.menu{position:fixed;inset:0;background:var(--ivory);z-index:70;
  display:flex;flex-direction:column;
  transform:translateY(-102%);transition:transform .55s var(--ease)}
.menu.open{transform:none}
.menu-top{display:flex;justify-content:space-between;align-items:center;
  padding-top:16px;padding-bottom:16px;width:100%}
.mclose{background:none;border:1px solid var(--ink12);border-radius:50%;
  width:38px;height:38px;font-size:14px;color:var(--ink);cursor:pointer}
.mlinks{display:flex;flex-direction:column;margin-top:34px;flex:1;width:100%}
.mlinks a{font-family:'Fraunces',serif;font-size:33px;font-weight:300;
  color:var(--ink);text-decoration:none;padding:10px 0}
.mlinks a.on{color:var(--gold)}
.mfoot{padding-bottom:44px;width:100%}
.mcontact{margin-top:16px;font-size:13px;color:var(--ink60);letter-spacing:.04em}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  background:var(--ink);color:var(--ivory);
  padding:16px 30px;border-radius:100px;
  font-size:15px;font-weight:500;text-decoration:none;
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),opacity .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(42,51,43,.22)}
.btn:active{transform:scale(.97)}
.btn svg{width:17px;height:17px;fill:var(--ivory)}
.btn svg.stroke{fill:none;stroke:var(--ivory);stroke-width:1.8}
.link-quiet{color:var(--ink);font-size:15px;font-weight:500;text-decoration:none;
  border-bottom:1px solid var(--gold);padding-bottom:3px}
.cta-row{display:flex;align-items:center;gap:22px;margin-top:32px}

/* hero + sections */
.hero{padding:64px 0 0}
.hero h1{font-size:46px;margin:20px 0 18px}
.hero p{font-size:16.5px;line-height:1.66;color:var(--ink60);max-width:32ch}
section{padding:84px 0}
.sec-eyebrow{margin-bottom:16px}
h2.display{font-size:34px}
.lede{font-size:15.5px;line-height:1.7;color:var(--ink60);margin-top:16px}
.illus{border-radius:20px;overflow:hidden;margin-top:48px}
.tint{background:var(--sage-tint)}

/* steps */
.steps{margin-top:34px}
.step{display:flex;gap:18px;padding:20px 0;border-top:1px solid var(--ink12)}
.step:last-child{border-bottom:1px solid var(--ink12)}
.step b{font-family:'Fraunces',serif;font-weight:300;font-size:26px;
  color:var(--gold);line-height:1.1;min-width:26px}
.step h3{font-size:15.5px;font-weight:500;margin-bottom:5px}
.step p{font-size:14px;line-height:1.6;color:var(--ink60)}

/* row list (why choose it etc.) */
.rows{margin-top:34px}
.row{padding:16px 2px;border-top:1px solid var(--ink12);
  font-size:15px;line-height:1.6}
.row:last-child{border-bottom:1px solid var(--ink12)}
.row span{color:var(--ink60);font-size:13.5px;display:block;margin-top:3px}

/* highlight card */
.hcard{border:1px solid var(--ink12);border-radius:22px;
  padding:30px 26px;background:rgba(255,255,255,.4);margin-top:44px}
.hcard h3{font-family:'Fraunces',serif;font-weight:300;font-size:25px;margin-bottom:10px}
.hcard h3 em{font-style:italic}
.hcard p{font-size:14.5px;line-height:1.65;color:var(--ink60);margin-bottom:18px}

/* quote band */
.qband{margin-top:44px;padding:22px 24px;border-left:2px solid var(--gold);
  background:rgba(255,255,255,.5);border-radius:0 16px 16px 0}
.qband p{font-family:'Fraunces',serif;font-size:19px;line-height:1.5}
.qband span{display:block;margin-top:10px;font-family:'Jost',sans-serif;
  font-size:13.5px;color:var(--ink60);line-height:1.6}

/* faq */
.faq{margin-top:34px}
.faq details{border-top:1px solid var(--ink12)}
.faq details:last-child{border-bottom:1px solid var(--ink12)}
.faq summary{list-style:none;cursor:pointer;display:flex;
  justify-content:space-between;align-items:center;gap:14px;
  padding:17px 0;font-size:15.5px;font-weight:500}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:'Fraunces',serif;
  color:var(--gold);font-size:22px;flex-shrink:0;
  transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq div{padding:0 0 18px}
.faq div p{font-size:14.5px;line-height:1.65;color:var(--ink60)}

/* cta band */
.ctaband{background:var(--sage-tint);text-align:center;padding:80px 0}
.ctaband h2{font-size:32px}
.ctaband p{font-size:15px;color:var(--ink60);margin:14px auto 26px;max-width:36ch;line-height:1.65}

/* cross links */
.cross{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;
  padding:34px 0;font-size:13px;letter-spacing:.06em}
.cross a{color:var(--ink60);text-decoration:none;
  border-bottom:1px solid var(--ink12);padding-bottom:2px}

footer{border-top:1px solid var(--ink12);padding:40px 0 130px;
  text-align:center;font-size:12.5px;line-height:1.9;color:var(--ink60)}
footer img{height:38px;display:block;margin:0 auto 18px}
footer a{color:var(--ink60);text-decoration:none;
  border-bottom:1px solid rgba(42,51,43,.2)}

/* sticky bar */
.stickybar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);
  width:min(520px,100%);display:flex;gap:10px;align-items:center;
  padding:12px 20px calc(12px + env(safe-area-inset-bottom));
  background:rgba(250,245,230,.9);backdrop-filter:blur(14px);
  border-top:1px solid var(--ink12);z-index:50}
.stickybar .btn{flex:1;padding:15px 10px}
.stickybar .circle{display:flex;align-items:center;justify-content:center;
  width:52px;height:52px;border-radius:50%;
  border:1px solid var(--ink12);flex-shrink:0}
.stickybar .circle svg{width:19px;height:19px}

/* reveal */
.reveal{opacity:0;transform:translateY(22px);
  transition:opacity .8s var(--ease),transform .8s var(--ease);
  transition-delay:var(--d,0s)}
.reveal.in{opacity:1;transform:none}

@media(prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
  .reveal{opacity:1!important;transform:none!important}
  html{scroll-behavior:auto}
}
