:root{
  --ink:#1B2430;
  --black:#131313;
  --paper:#F7F5F1;
  --white:#FFFFFF;
  --hairline:#E2DED6;
  --stone:#5E645F;
  --accent:#A18C5B;
  --maxw:1140px;
  --radius:4px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  font-family:'Jost',system-ui,sans-serif;
  background:var(--paper);color:var(--ink);
  line-height:1.7;font-size:17px;-webkit-font-smoothing:antialiased;
}
h1,h2,h3,.serif{font-family:'Fraunces',Georgia,serif;font-weight:500;line-height:1.12;color:var(--black)}
h1{font-size:clamp(2.5rem,5.4vw,4.4rem);letter-spacing:-.015em}
h2{font-size:clamp(1.8rem,3.4vw,2.7rem);margin-bottom:.7rem}
h3{font-size:1.32rem;margin-bottom:.45rem}
p{margin-bottom:1rem;color:var(--stone)}
a{color:var(--ink)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.eyebrow{
  font-size:.72rem;font-weight:600;letter-spacing:.32em;text-transform:uppercase;
  color:var(--accent);margin-bottom:1rem;
}
.lead{font-size:1.16rem;max-width:62ch}
.rule{height:1px;background:var(--hairline);border:none}

/* NAV */
header{position:sticky;top:0;z-index:100;background:rgba(247,245,241,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--hairline)}
.navbar{display:flex;align-items:center;justify-content:space-between;height:84px;max-width:var(--maxw);margin:0 auto;padding:0 28px;gap:20px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand img.mono{height:44px;width:auto}
.brand img.word{height:48px;width:auto}
nav.links{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
nav.links a{
  text-decoration:none;font-size:.74rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink);padding:8px 10px;border-bottom:1px solid transparent;transition:border-color .18s;
}
nav.links a:hover{border-bottom-color:var(--accent)}
nav.links a.active{border-bottom-color:var(--black);font-weight:600}
nav.links a.cta{background:var(--black);color:var(--paper);border-radius:999px;padding:9px 20px;border:none;margin-left:8px}
nav.links a.cta:hover{background:var(--ink)}
.hamburger{display:none;background:none;border:1px solid var(--hairline);border-radius:6px;padding:8px 13px;cursor:pointer;font-size:1.15rem;color:var(--ink)}
.mobile-menu{display:none;flex-direction:column;background:var(--paper);border-bottom:1px solid var(--hairline);padding:8px 20px 18px}
.mobile-menu a{text-decoration:none;font-size:1rem;font-weight:500;color:var(--ink);padding:12px 8px;border-bottom:1px solid var(--hairline)}
.mobile-menu a:last-child{border-bottom:none}
.mobile-menu.open{display:flex}

/* SECTIONS */
section.block{padding:88px 0}
section.block.tight{padding:56px 0}
section.dark{background:var(--ink);color:var(--paper)}
section.dark h1,section.dark h2,section.dark h3{color:var(--white)}
section.dark p{color:#C4C9CF}
section.dark .eyebrow{color:var(--accent)}
section.linen{background:var(--white);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}

/* HERO */
.hero{padding:110px 0 90px;position:relative}
.hero .tagline{
  font-family:'Fraunces',serif;font-style:italic;font-size:1.35rem;color:var(--accent);margin:14px 0 22px;
}
.hero p.sub{font-size:1.18rem;max-width:58ch;margin-bottom:36px}
.hero-mono{
  position:absolute;right:0;top:50%;transform:translateY(-50%);height:78%;opacity:.06;pointer-events:none;
}
.trustbar{display:flex;gap:0;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);margin-top:70px;flex-wrap:wrap}
.trustbar div{flex:1;min-width:190px;padding:26px 22px;border-right:1px solid var(--hairline);text-align:center}
.trustbar div:last-child{border-right:none}
.trustbar b{display:block;font-family:'Fraunces',serif;font-size:1.7rem;color:var(--black);font-weight:500}
.trustbar span{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--stone)}

/* BUTTONS */
.btn{
  display:inline-block;background:var(--black);color:var(--paper);text-decoration:none;
  font-family:'Jost';font-weight:500;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;
  padding:16px 34px;border-radius:999px;border:1px solid var(--black);cursor:pointer;
  transition:background .18s,color .18s;
}
.btn:hover{background:transparent;color:var(--black)}
.btn.outline{background:transparent;color:var(--black)}
.btn.outline:hover{background:var(--black);color:var(--paper)}
.btn.onDark{background:var(--paper);color:var(--black);border-color:var(--paper)}
.btn.onDark:hover{background:transparent;color:var(--paper)}
.btn + .btn{margin-left:14px}

/* CARDS */
.grid{display:grid;gap:28px}
.grid.c2{grid-template-columns:1fr 1fr}
.grid.c3{grid-template-columns:repeat(3,1fr)}
.grid.c4{grid-template-columns:repeat(4,1fr)}
.card{background:var(--white);border:1px solid var(--hairline);border-radius:var(--radius);padding:34px 30px}
.card.paper{background:var(--paper)}
.kicker{font-size:.7rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
ul.checks{list-style:none;margin:0 0 1.2rem}
ul.checks li{padding:8px 0 8px 26px;position:relative;color:var(--stone)}
ul.checks li::before{content:"";position:absolute;left:0;top:17px;width:12px;height:1px;background:var(--accent)}

/* PRICING */
.price-card{background:var(--white);border:1px solid var(--hairline);border-radius:var(--radius);padding:40px 34px;text-align:center;position:relative}
.price-card.featured{border:1px solid var(--black)}
.price-card .badge{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--black);color:var(--paper);font-size:.62rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;padding:5px 18px;border-radius:999px;white-space:nowrap}
.price-card .price{font-family:'Fraunces',serif;font-size:3.1rem;color:var(--black);margin:10px 0 2px;font-weight:500}
.price-card .price small{font-size:.95rem;color:var(--stone);font-family:'Jost'}
.price-card .size{font-size:.85rem;color:var(--stone);margin-bottom:20px;letter-spacing:.04em}
.price-card ul{list-style:none;text-align:left;margin:22px 0 26px;font-size:.95rem}
.price-card ul li{padding:8px 0;border-bottom:1px solid var(--hairline);color:var(--stone)}
.price-card ul li:last-child{border:none}

table.menu{width:100%;border-collapse:collapse;background:var(--white);border:1px solid var(--hairline);font-size:.96rem}
table.menu th{background:var(--ink);color:var(--paper);text-align:left;padding:15px 20px;font-weight:500;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase}
table.menu td{padding:13px 20px;border-bottom:1px solid var(--hairline);color:var(--stone)}
table.menu td b{color:var(--black);font-weight:600}
table.menu tr:last-child td{border-bottom:none}
table.menu td.p{font-weight:600;color:var(--black);white-space:nowrap}

/* PROCESS */
.step{display:grid;grid-template-columns:90px 1fr;gap:26px;padding:34px 0;border-bottom:1px solid var(--hairline);align-items:start}
.step:last-child{border-bottom:none}
.step .n{font-family:'Fraunces',serif;font-size:2.6rem;color:var(--accent);line-height:1;font-weight:400}

/* FAQ */
details{background:var(--white);border:1px solid var(--hairline);border-radius:var(--radius);margin-bottom:14px}
details summary{list-style:none;cursor:pointer;padding:22px 26px;font-weight:500;color:var(--black);display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:1.05rem}
details summary::-webkit-details-marker{display:none}
details summary::after{content:"+";font-family:'Fraunces',serif;font-size:1.5rem;color:var(--accent);transition:transform .2s;flex-shrink:0}
details[open] summary::after{transform:rotate(45deg)}
details .a{padding:0 26px 24px;color:var(--stone)}

/* FORMS */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.field{display:flex;flex-direction:column;gap:8px}
.field.full{grid-column:1/-1}
.field label{font-size:.7rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--black)}
.field input,.field select,.field textarea{
  font-family:'Jost';font-size:1rem;padding:14px 16px;border:1px solid var(--hairline);
  border-radius:var(--radius);background:var(--white);color:var(--ink);
}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
.confirm{display:none;background:var(--white);border:1px solid var(--accent);border-radius:var(--radius);padding:36px;text-align:center}
.confirm.show{display:block}
.err{display:none;color:#8A3226;font-weight:500;margin-top:12px}

/* CTA BAND */
.cta-band{background:var(--ink);padding:72px 56px;text-align:center;position:relative;overflow:hidden}
.cta-band h2{color:var(--white)}
.cta-band p{color:#C4C9CF;max-width:52ch;margin:0 auto 30px}
.cta-band img{position:absolute;right:-30px;bottom:-40px;height:130%;opacity:.07;pointer-events:none}

/* FOOTER */
footer{background:var(--black);color:#9BA1A8;padding:64px 0 36px}
footer .grid.c4{gap:44px}
footer h4{color:var(--paper);font-family:'Jost';font-weight:600;font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;margin-bottom:16px}
footer a{color:#9BA1A8;text-decoration:none;display:block;padding:4px 0;font-size:.94rem}
footer a:hover{color:var(--paper)}
footer img.fmono{height:60px;margin-bottom:18px}
footer .creed{font-family:'Fraunces',serif;font-style:italic;color:var(--accent);font-size:1rem;margin-top:14px}
footer .bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:48px;padding-top:26px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.8rem;letter-spacing:.06em}

/* PAGE HEADS */
.pagehead{padding:88px 0 40px}
.pagehead h1{font-size:clamp(2.2rem,4.4vw,3.5rem)}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}
.panel{background:var(--ink);color:var(--paper);padding:46px;position:relative;overflow:hidden}
.panel h3{color:var(--white)}
.panel p{color:#C4C9CF}
.panel ul.checks li{color:#D5DAD3}
.panel img.watermark{position:absolute;right:-24px;bottom:-40px;height:110%;opacity:.08;pointer-events:true;pointer-events:none}

@media (max-width:1020px){
  nav.links{display:none}
  .hamburger{display:block}
  .grid.c3,.grid.c4{grid-template-columns:1fr 1fr}
  .split{grid-template-columns:1fr;gap:38px}
  .hero-mono{display:none}
}
@media (max-width:640px){
  .brand img.word{height:38px}
  .grid.c2,.grid.c3,.grid.c4{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .hero{padding:70px 0 60px}
  section.block{padding:60px 0}
  .btn + .btn{margin-left:0;margin-top:14px}
  .cta-band{padding:52px 26px}
  .step{grid-template-columns:60px 1fr;gap:16px}
}
