:root{
  --paper:#FBFAF6;
  --bone:#F4EFE6;
  --beige:#EBE3D5;
  --beige-deep:#C9B9A0;
  --ink:#1C1813;
  --ink-soft:#4C453B;
  --stone:#8C8276;
  --line:#E5DDCF;
  --line-strong:#D2C7B4;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--paper);color:var(--ink);
  font-family:"Inter",system-ui,sans-serif;font-size:17px;line-height:1.72;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:inherit}
.serif{font-family:"Newsreader",Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.01em}
.wrap{max-width:1140px;margin:0 auto;padding:0 32px}
.label{font-family:"Inter",sans-serif;text-transform:uppercase;letter-spacing:.24em;font-size:.7rem;font-weight:500;color:var(--stone)}

.btn{display:inline-flex;align-items:center;gap:.55rem;background:var(--ink);color:#FFFFFF;text-decoration:none;
  font-family:"Inter",sans-serif;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;
  padding:.95rem 1.6rem;border:1px solid var(--ink);transition:background .25s ease,color .25s ease}
.btn:hover{background:#332D23;color:#FFFFFF}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.textlink{text-decoration:none;border-bottom:1px solid var(--beige-deep);padding-bottom:2px;transition:border-color .25s}
.textlink:hover{border-color:var(--ink)}

.site-head{position:sticky;top:0;z-index:50;background:rgba(251,250,246,.86);backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid transparent;transition:border-color .3s ease}
.site-head.scrolled{border-color:var(--line)}
.head-row{display:flex;align-items:center;justify-content:space-between;height:86px}
.brand{display:flex;align-items:baseline;gap:.7rem;text-decoration:none}
.brand .mark{font-family:"Newsreader",serif;font-weight:500;font-size:1.5rem;letter-spacing:-.01em}
.brand .mark em{font-style:italic;color:var(--ink-soft)}
.nav{display:flex;align-items:center;gap:2.4rem}
.nav a{font-family:"Inter",sans-serif;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;
  text-decoration:none;color:var(--ink-soft);position:relative;padding:.4rem 0;transition:color .2s}
.nav a:hover{color:var(--ink)}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--ink);transition:right .3s ease}
.nav a:hover::after,.nav a[aria-current="page"]::after{right:0}
.nav .btn{margin-left:.4rem;color:#FFFFFF}
.nav .btn:hover{color:#FFFFFF}
.nav .btn::after{display:none}
.menu-toggle{display:none;background:none;border:0;cursor:pointer;font-family:"Inter",sans-serif;font-size:.72rem;
  letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--ink)}

.hero{padding:clamp(64px,10vw,140px) 0 clamp(64px,9vw,120px)}
.hero .label{margin-bottom:1.8rem}
.hero h1{font-size:clamp(2.7rem,6.4vw,5rem);line-height:1.04;max-width:17ch;font-weight:400}
.hero h1 em{font-style:italic}
.hero .lead{margin-top:1.9rem;max-width:50ch;font-size:1.2rem;color:var(--ink-soft);line-height:1.65}
.hero .cta-row{margin-top:2.6rem;display:flex;gap:1.4rem;align-items:center;flex-wrap:wrap}
.reveal{opacity:0;transform:translateY(16px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}

.block{padding:clamp(72px,11vw,140px) 0}
.block.beige{background:var(--beige)}
.block.bone{background:var(--bone)}
.sec-head{max-width:46ch;margin-bottom:3.4rem}
.sec-head .label{margin-bottom:1.2rem}
.sec-head h2{font-size:clamp(1.9rem,4vw,3rem);line-height:1.1;font-weight:400}
.sec-head p{margin-top:1rem;color:var(--ink-soft);font-size:1.08rem}

.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.6rem,4vw,3.4rem)}
.step{padding-top:1.6rem;border-top:1px solid var(--line-strong)}
.step .rn{font-family:"Newsreader",serif;font-style:italic;font-size:1.5rem;color:var(--beige-deep)}
.step h3{font-family:"Newsreader",serif;font-weight:500;font-size:1.5rem;margin:1.2rem 0 .7rem;letter-spacing:-.01em}
.step p{color:var(--ink-soft);font-size:1rem}

.points{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.8rem,4vw,3.4rem)}
.point .label{display:block;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--line-strong)}
.point p{font-size:1.06rem;color:var(--ink-soft)}
.point strong{color:var(--ink);font-weight:600}

.plans{display:flex;flex-direction:column;border-bottom:1px solid var(--line-strong)}
.plan{display:grid;grid-template-columns:minmax(230px,.85fr) 1.6fr;gap:clamp(2rem,5vw,4.5rem);padding:clamp(2.6rem,5vw,4rem) 0;border-top:1px solid var(--line-strong);align-items:start}
.plan-num{font-family:"Newsreader",serif;font-style:italic;font-size:1.3rem;color:var(--beige-deep)}
.plan-head h3{font-family:"Newsreader",serif;font-weight:500;font-size:clamp(1.7rem,2.6vw,2.05rem);letter-spacing:-.01em;margin:.5rem 0 0}
.plan-price{font-family:"Newsreader",serif;font-weight:500;font-size:1.7rem;margin-top:1.1rem}
.plan-price small{display:block;font-family:"Inter",sans-serif;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--stone);margin-top:.45rem;font-weight:500}
.plan-tagline{font-family:"Newsreader",serif;font-style:italic;font-size:1.16rem;color:var(--ink-soft);margin-top:1.2rem;line-height:1.4}
.plan-body p{color:var(--ink-soft);margin-bottom:1.5rem;font-size:1.04rem}
.plan-body ul{list-style:none;margin:0 0 1.9rem}
.plan-body li{padding:.62rem 0;border-top:1px solid var(--line);font-size:.98rem;color:var(--ink-soft);line-height:1.5}
.note{margin-top:2.4rem;font-size:1rem;color:var(--ink-soft);max-width:64ch;line-height:1.6}

.about-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2.4rem,5vw,5rem);align-items:start}
.about-grid h2{font-size:clamp(2rem,4.2vw,3.2rem);line-height:1.12;margin-bottom:1.6rem;font-weight:400}
.about-grid p{color:var(--ink-soft);margin-bottom:1.2rem;font-size:1.06rem}
.about-grid .pull{font-family:"Newsreader",serif;font-style:italic;font-size:1.3rem;color:var(--ink);margin:1.6rem 0}
.portrait{aspect-ratio:4/5;background:var(--beige);border:1px solid var(--line-strong);overflow:hidden}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:center 14%;display:block}

.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.4rem,5vw,5rem);align-items:start}
.contact-grid h2{font-size:clamp(2rem,4.2vw,3.2rem);line-height:1.12;margin-bottom:1.3rem;font-weight:400}
.contact-grid .lead{color:var(--ink-soft);max-width:44ch;font-size:1.08rem}
.field{margin-bottom:1.4rem}
.field label{display:block;font-family:"Inter",sans-serif;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;
  font-weight:500;color:var(--stone);margin-bottom:.55rem}
.field input,.field select,.field textarea{width:100%;background:var(--bone);border:1px solid var(--line-strong);
  padding:.95rem 1.1rem;font-family:inherit;font-size:1rem;color:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--ink)}
.field textarea{min-height:150px;resize:vertical}
.contact-meta dt{font-family:"Inter",sans-serif;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;
  font-weight:500;color:var(--stone);margin-top:1.8rem}
.contact-meta dd{font-size:1.08rem;margin-top:.3rem}

.site-foot{background:var(--ink);color:var(--bone);padding:clamp(56px,8vw,88px) 0 38px}
.foot-top{display:flex;justify-content:space-between;gap:2.4rem;flex-wrap:wrap;align-items:flex-start}
.foot-brand .mark{font-family:"Newsreader",serif;font-weight:500;font-size:1.7rem}
.foot-brand .mark em{font-style:italic;color:#A79E8E}
.foot-brand p{color:#A79E8E;margin-top:.7rem;font-size:.98rem;max-width:36ch;line-height:1.6}
.foot-nav{display:flex;gap:2.6rem;flex-wrap:wrap}
.foot-nav a{font-family:"Inter",sans-serif;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;
  font-weight:500;text-decoration:none;color:var(--bone);opacity:.82;transition:opacity .2s}
.foot-nav a:hover{opacity:1}
.foot-bot{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:3.4rem;padding-top:1.6rem;
  border-top:1px solid #322D26}
.foot-bot span{font-family:"Inter",sans-serif;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:#7C7466}

@media(max-width:840px){
  .nav{position:fixed;inset:86px 0 auto 0;background:var(--paper);border-bottom:1px solid var(--line);
    flex-direction:column;align-items:flex-start;gap:0;padding:1rem 32px 1.8rem;transform:translateY(-130%);
    transition:transform .32s ease;box-shadow:0 18px 34px rgba(28,24,19,.07)}
  .nav.open{transform:none}
  .nav a{padding:.9rem 0;width:100%;border-bottom:1px solid var(--line)}
  .nav a::after{display:none}
  .nav .btn{margin:1rem 0 0;width:100%;justify-content:center}
  .menu-toggle{display:inline-block}
  .steps,.points,.about-grid,.contact-grid{grid-template-columns:1fr}
  .plan{grid-template-columns:1fr;gap:.6rem}
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .reveal{opacity:1!important;transform:none!important;transition:none!important}
  .nav{transition:none}
}
