:root{
  --ink:#14181A;
  --ink-soft:#1D2326;
  --parchment:#F3EFE6;
  --parchment-dim:#EAE4D6;
  --brass:#9C7A45;
  --brass-light:#C7A667;
  --pine:#1F3630;
  --ivory:#F3EFE6;
  --charcoal:#201D18;
  --line-on-ink: rgba(243,239,230,0.18);
  --line-on-parchment: rgba(32,29,24,0.14);
  --serif: 'Fraunces', serif;
  --sans: 'Inter', sans-serif;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--parchment);
  color:var(--charcoal);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img,svg{display:block; max-width:100%;}
a{color:inherit;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
@media (max-width:640px){ .wrap{padding:0 22px;} }

h1,h2,h3,h4{font-family:var(--serif); font-weight:500; line-height:1.08; letter-spacing:-0.01em;}

/* ---------- Nav ---------- */
header.site{
  position:sticky; top:0; z-index:50;
  background:rgba(243,239,230,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line-on-parchment);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 0;
}
.nav-mark{
  font-family:var(--serif); font-size:20px; font-weight:500; letter-spacing:0.01em;
  text-decoration:none; color:var(--charcoal);
}
.nav-mark em{font-style:italic; color:var(--brass);}
.nav-links{display:flex; align-items:center; gap:30px; font-size:14.5px;}
.nav-links a{text-decoration:none; color:var(--charcoal); opacity:0.75; transition:opacity .2s;}
.nav-links a:hover, .nav-links a.current{opacity:1;}
.nav-links a.current{color:var(--brass);}
.nav-cta{
  border:1px solid var(--charcoal); padding:9px 18px; border-radius:2px;
  font-size:13.5px; text-decoration:none; white-space:nowrap;
  transition:background .2s, color .2s;
}
.nav-cta:hover{background:var(--charcoal); color:var(--parchment);}
.nav-toggle{display:none;}
@media (max-width:860px){
  .nav-links{display:none;}
  .nav-toggle{display:block; font-size:13.5px; border:1px solid var(--charcoal); padding:8px 16px; border-radius:2px; text-decoration:none;}
}

/* ---------- Hero (home) ---------- */
.hero{ background:var(--ink); color:var(--ivory); padding:96px 0 76px; }
.hero-grid{ display:grid; grid-template-columns:1.5fr 1fr; gap:60px; align-items:end; }
.hero-kicker{ font-size:14px; color:var(--brass-light); margin-bottom:22px; max-width:32ch; }
.hero h1{ font-size:clamp(40px, 5.6vw, 74px); color:var(--ivory); }
.hero h1 .accent{font-style:italic; color:var(--brass-light);}
.hero-side{ border-left:1px solid var(--line-on-ink); padding-left:32px; }
.hero-side p{font-size:16.5px; color:rgba(243,239,230,0.8); margin-bottom:26px;}
@media (max-width:800px){
  .hero-grid{grid-template-columns:1fr; gap:34px;}
  .hero-side{border-left:none; border-top:1px solid var(--line-on-ink); padding-left:0; padding-top:28px;}
}
.stat-row{
  border-top:1px solid var(--line-on-ink); margin-top:64px; padding-top:28px;
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
}
.stat-row div span{display:block; font-family:var(--serif); font-size:30px; color:var(--brass-light);}
.stat-row div p{font-size:13.5px; color:rgba(243,239,230,0.65); margin-top:4px;}
@media (max-width:640px){ .stat-row{grid-template-columns:1fr; gap:18px;} }

/* ---------- Page hero (service subpages) ---------- */
.page-hero{ background:var(--ink); color:var(--ivory); padding:64px 0 56px; }
.page-hero .crumb{ font-size:13.5px; color:rgba(243,239,230,0.55); margin-bottom:18px; }
.page-hero .crumb a{text-decoration:none; color:rgba(243,239,230,0.55);}
.page-hero .crumb a:hover{color:var(--brass-light);}
.page-hero .tag{
  display:inline-block; font-size:12px; color:var(--ink); background:var(--brass-light);
  padding:4px 10px; border-radius:2px; margin-bottom:16px;
}
.page-hero h1{ font-size:clamp(34px,5vw,58px); color:var(--ivory); max-width:18ch; }
.page-hero .lede{ font-size:17px; color:rgba(243,239,230,0.78); max-width:56ch; margin-top:20px; }
.page-hero .actions{ margin-top:32px; }

/* ---------- Buttons ---------- */
.btn-primary{
  display:inline-block; background:var(--brass-light); color:var(--ink);
  padding:14px 26px; border-radius:2px; text-decoration:none;
  font-size:14.5px; font-weight:600; transition:background .2s;
}
.btn-primary:hover{background:#DAB876;}
.btn-ghost{
  display:inline-block; border:1px solid var(--line-on-ink); color:var(--ivory);
  padding:13px 25px; border-radius:2px; text-decoration:none; font-size:14.5px;
  margin-left:14px; transition:border-color .2s;
}
.btn-ghost:hover{border-color:var(--brass-light);}
@media (max-width:640px){ .btn-ghost{margin-left:0; margin-top:12px; display:inline-block;} }

/* ---------- Section shell ---------- */
section{padding:88px 0;}
.section-head{
  display:grid; grid-template-columns:1fr 1.2fr; gap:48px;
  margin-bottom:56px; align-items:baseline;
}
.section-head h2{font-size:clamp(30px,3.4vw,42px);}
.section-head .desc{font-size:16px; color:rgba(32,29,24,0.72); max-width:46ch;}
@media (max-width:800px){ .section-head{grid-template-columns:1fr; gap:16px;} }
.label{font-size:13.5px; color:var(--brass); margin-bottom:10px;}

/* ---------- Service teaser list (home) ---------- */
.service-list{display:flex; flex-direction:column; border-top:1px solid var(--line-on-parchment);}
.service{
  display:grid; grid-template-columns:0.9fr 1.6fr 0.9fr;
  gap:32px; padding:38px 0; border-bottom:1px solid var(--line-on-parchment);
  align-items:start;
}
.service h3{font-size:26px;}
.service .num{font-family:var(--serif); font-style:italic; font-size:20px; color:var(--brass);}
.service p{font-size:15px; color:rgba(32,29,24,0.72); max-width:44ch;}
.service ul{list-style:none; font-size:14px; color:var(--charcoal);}
.service ul li{padding:5px 0 5px 18px; position:relative;}
.service ul li::before{content:""; position:absolute; left:0; top:13px; width:6px; height:1px; background:var(--brass);}
.service .more{display:inline-block; font-size:13.5px; margin-top:14px; text-decoration:none; color:var(--brass); border-bottom:1px solid var(--brass);}
.service.featured{
  background:var(--pine); color:var(--ivory); border-radius:2px;
  padding:38px 32px; margin:20px 0; border-bottom:1px solid var(--pine);
}
.service.featured .num{color:var(--brass-light);}
.service.featured p{color:rgba(243,239,230,0.78);}
.service.featured ul{color:var(--ivory);}
.service.featured ul li::before{background:var(--brass-light);}
.service.featured .more{color:var(--brass-light); border-bottom-color:var(--brass-light);}
.service.featured .tag{
  display:inline-block; font-size:12px; color:var(--ink); background:var(--brass-light);
  padding:4px 10px; border-radius:2px; margin-bottom:10px;
}
@media (max-width:860px){ .service{grid-template-columns:1fr; gap:14px;} }

/* ---------- Process / Roadmap ---------- */
.process{background:var(--ink); color:var(--ivory);}
.process .section-head .desc{color:rgba(243,239,230,0.72);}
.process .label{color:var(--brass-light);}
.roadmap{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--line-on-ink); }
.phase{ padding:30px 26px; border-right:1px solid var(--line-on-ink); position:relative; }
.phase:last-child{border-right:none;}
.phase .pnum{font-family:var(--serif); font-style:italic; font-size:15px; color:var(--brass-light); margin-bottom:14px;}
.phase .prange{font-size:12.5px; color:rgba(243,239,230,0.55); margin-bottom:10px;}
.phase h4{font-size:19px; color:var(--ivory); margin-bottom:10px;}
.phase p{font-size:14px; color:rgba(243,239,230,0.68);}
@media (max-width:900px){ .roadmap{grid-template-columns:1fr;} .phase{border-right:none; border-bottom:1px solid var(--line-on-ink); padding:26px 0;} }

/* ---------- Support / differentiators ---------- */
.support{background:var(--parchment-dim);}
.support-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-on-parchment); border:1px solid var(--line-on-parchment); }
.support-item{background:var(--parchment-dim); padding:34px 30px;}
.support-item h4{font-size:19px; margin-bottom:10px;}
.support-item p{font-size:14.5px; color:rgba(32,29,24,0.72);}
@media (max-width:800px){ .support-grid{grid-template-columns:1fr;} }

/* ---------- Detail list (service pages: what's included) ---------- */
.detail-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line-on-parchment); border:1px solid var(--line-on-parchment); }
.detail-item{ background:var(--parchment); padding:30px 32px; }
.detail-item h4{font-size:18px; margin-bottom:8px;}
.detail-item p{font-size:14.5px; color:rgba(32,29,24,0.72);}
@media (max-width:700px){ .detail-grid{grid-template-columns:1fr;} }

/* ---------- Who it's for ---------- */
.fitcheck{ display:grid; grid-template-columns:1fr 1fr; gap:48px; }
.fitcheck > div{padding:28px 0;}
.fitcheck h4{font-size:16.5px; margin-bottom:14px; color:var(--brass);}
.fitcheck ul{list-style:none;}
.fitcheck li{ font-size:15px; padding:9px 0; border-top:1px solid var(--line-on-parchment); }
.fitcheck li:first-of-type{border-top:none;}
@media (max-width:700px){ .fitcheck{grid-template-columns:1fr; gap:0;} }

/* ---------- Cross-links between services ---------- */
.crosslinks{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line-on-ink); }
.crosslink{ background:var(--ink-soft); padding:30px 28px; text-decoration:none; color:var(--ivory); transition:background .2s; }
.crosslink:hover{background:#242B2E;}
.crosslink .label{color:var(--brass-light); margin-bottom:8px;}
.crosslink h4{font-size:20px; margin-bottom:8px;}
.crosslink p{font-size:14px; color:rgba(243,239,230,0.68);}
@media (max-width:700px){ .crosslinks{grid-template-columns:1fr;} }

/* ---------- About ---------- */
.about{padding-top:88px;}
.about-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;}
.about h2{font-size:clamp(28px,3.4vw,40px); margin-bottom:22px;}
.about p{font-size:16px; color:rgba(32,29,24,0.75); margin-bottom:16px; max-width:52ch;}
.about-marks{border-top:1px solid var(--line-on-parchment); padding-top:26px; margin-top:10px;}
.about-marks div{display:flex; justify-content:space-between; padding:14px 0; border-bottom:1px solid var(--line-on-parchment); font-size:14.5px;}
.about-marks div span:first-child{color:rgba(32,29,24,0.6);}
@media (max-width:800px){ .about-grid{grid-template-columns:1fr; gap:30px;} }

/* ---------- CTA / Contact ---------- */
.cta{background:var(--ink); color:var(--ivory); text-align:left;}
.cta-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:56px; align-items:center;}
.cta h2{font-size:clamp(30px,4vw,50px); color:var(--ivory); margin-bottom:18px;}
.cta p{color:rgba(243,239,230,0.75); font-size:16px; max-width:44ch; margin-bottom:0;}
.cta-contact{margin-top:24px; font-size:15px;}
.cta-contact a{text-decoration:none; color:var(--brass-light); display:block; margin-bottom:6px;}
.cta-form{display:flex; flex-direction:column; gap:12px;}
.cta-form input, .cta-form select{
  background:transparent; border:1px solid var(--line-on-ink); color:var(--ivory);
  padding:13px 14px; font-family:var(--sans); font-size:14.5px; border-radius:2px;
}
.cta-form input::placeholder{color:rgba(243,239,230,0.5);}
.cta-form button{
  background:var(--brass-light); color:var(--ink); border:none; padding:14px;
  font-family:var(--sans); font-weight:600; font-size:14.5px; border-radius:2px; cursor:pointer;
  transition:background .2s;
}
.cta-form button:hover{background:#DAB876;}
@media (max-width:800px){ .cta-grid{grid-template-columns:1fr; gap:32px;} }

/* ---------- Footer ---------- */
footer{background:var(--ink); color:rgba(243,239,230,0.6); border-top:1px solid var(--line-on-ink);}
.foot-row{
  display:flex; justify-content:space-between; align-items:center;
  padding:26px 0; font-size:13px; flex-wrap:wrap; gap:12px;
}
.foot-links{display:flex; gap:22px; flex-wrap:wrap;}
.foot-links a{text-decoration:none; color:rgba(243,239,230,0.6);}
.foot-links a:hover{color:var(--brass-light);}
.foot-contact{display:flex; gap:18px; flex-wrap:wrap;}
.foot-contact a{text-decoration:none; color:rgba(243,239,230,0.6);}
.foot-contact a:hover{color:var(--brass-light);}

/* reveal */
.reveal{opacity:0; transform:translateY(14px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:translateY(0);}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  html{scroll-behavior:auto;}
}
