*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --ink:#080807;
  --mid:#525250;
  --faint:#9a9890;
  --paper:#f0ede4;
  --rule:rgba(8,8,7,0.105);
  --rule-strong:rgba(8,8,7,0.22);
  --accent:#d4891f;
  --accent-dark:#8a4e10;
  --pad:clamp(1.5rem,5vw,5rem);
}
html{scroll-behavior:smooth;background:var(--paper);}
body{
  min-height:100%;
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Sans',sans-serif;
  font-weight:300;
  font-size:clamp(14px,1.1vw,16px);
  line-height:1.6;
  overflow-x:hidden;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background:
    linear-gradient(90deg,rgba(8,8,7,0.032) 1px,transparent 1px),
    linear-gradient(rgba(8,8,7,0.026) 1px,transparent 1px);
  background-size:clamp(4.5rem,8vw,8rem) clamp(4.5rem,8vw,8rem);
  mask-image:linear-gradient(90deg,transparent 0%,#000 16%,#000 74%,transparent 100%);
  opacity:0.52;
}
nav{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1.5rem;
  padding:clamp(1.2rem,2.5vh,2rem) var(--pad);
  position:sticky;
  top:0;
  background:rgba(240,237,228,0.93);
  backdrop-filter:blur(16px);
  border-bottom:0.5px solid var(--rule);
  z-index:100;
}
.wordmark{
  color:var(--ink);
  text-decoration:none;
  font-size:clamp(12px,1vw,14px);
  font-weight:500;
  letter-spacing:0.02em;
  line-height:1;
}
.nav-links{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  flex-wrap:wrap;
  gap:clamp(1rem,2.4vw,2.8rem);
}
.nav-links a{
  position:relative;
  color:var(--mid);
  text-decoration:none;
  font-size:clamp(10px,0.85vw,12px);
  font-weight:400;
  letter-spacing:0.11em;
  line-height:1;
  text-transform:uppercase;
  padding-bottom:0.42rem;
  transition:color 0.2s ease;
}
.nav-links a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:0.5px;
  background:var(--ink);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform 0.22s ease;
}
.nav-links a:hover,.nav-links a.active{color:var(--ink);}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1);}

.hero{
  position:relative;
  min-height:calc(100vh - 72px);
  padding:clamp(5rem,10vh,9rem) var(--pad) clamp(3rem,6vh,5rem);
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(300px,0.76fr);
  gap:clamp(2rem,5vw,7rem);
  align-items:center;
  overflow:hidden;
  border-bottom:0.5px solid var(--rule);
}
.hero::before{
  content:"";
  position:absolute;
  right:calc(var(--pad) * -0.2);
  top:clamp(5rem,14vh,9rem);
  width:min(48vw,680px);
  aspect-ratio:1;
  pointer-events:none;
  opacity:0.92;
  background:
    linear-gradient(90deg,transparent 49.9%,rgba(8,8,7,0.14) 50%,transparent 50.1%),
    linear-gradient(0deg,transparent 49.9%,rgba(8,8,7,0.11) 50%,transparent 50.1%),
    repeating-radial-gradient(circle at 50% 50%,transparent 0 12.5%,rgba(8,8,7,0.105) 12.6% 12.75%,transparent 12.9% 25%),
    conic-gradient(from 18deg,transparent 0 16%,rgba(212,137,31,0.42) 16.2% 16.55%,transparent 16.8% 47%,rgba(8,8,7,0.16) 47.1% 47.45%,transparent 47.7% 72%,rgba(212,137,31,0.34) 72.1% 72.5%,transparent 72.7% 100%);
  mask-image:radial-gradient(circle,#000 0 64%,transparent 72%);
}
.hero::after{
  content:"";
  position:absolute;
  right:var(--pad);
  bottom:clamp(2.5rem,7vh,5.5rem);
  width:min(31vw,420px);
  height:0.5px;
  background:linear-gradient(90deg,transparent,rgba(8,8,7,0.45),transparent);
}
.eyebrow,.section-label,.kicker{
  color:var(--faint);
  font-size:clamp(9px,0.8vw,11px);
  font-weight:400;
  letter-spacing:0.14em;
  line-height:1.4;
  text-transform:uppercase;
}
.hero h1{
  max-width:980px;
  margin-top:clamp(0.9rem,1.8vh,1.4rem);
  color:var(--ink);
  font-size:clamp(46px,8.4vw,116px);
  font-weight:200;
  letter-spacing:-0.043em;
  line-height:0.92;
}
.hero-copy{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:clamp(1rem,2vh,1.5rem);
  padding:clamp(1.15rem,2vw,1.6rem) 0 0 clamp(1rem,2vw,1.6rem);
  border-left:0.5px solid var(--rule-strong);
}
.hero-copy::before{
  content:"";
  position:absolute;
  left:-0.5px;
  top:0;
  width:2px;
  height:clamp(1.5rem,4vh,2.4rem);
  background:var(--accent);
}
.hero-copy p,.section-intro,.cta-block p,.form-side p,.thank-you p{
  max-width:520px;
  color:var(--mid);
  font-size:clamp(13px,1vw,15px);
  line-height:1.82;
}
.cta-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:0.75rem;
}
.btn,.submit-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0.76rem 1.15rem;
  border:0.5px solid var(--rule-strong);
  border-radius:0;
  background:transparent;
  color:var(--ink);
  font-family:'IBM Plex Sans',sans-serif;
  font-size:clamp(10px,0.85vw,12px);
  font-weight:500;
  letter-spacing:0.09em;
  line-height:1.18;
  text-decoration:none;
  text-transform:uppercase;
  cursor:pointer;
  transition:background 0.2s,border-color 0.2s,color 0.2s,opacity 0.2s;
  -webkit-appearance:none;
  appearance:none;
}
.btn:hover,.submit-btn:hover{border-color:var(--ink);}
.btn.accent,.submit-btn{
  background:var(--ink);
  color:var(--paper);
  border-color:var(--ink);
  box-shadow:inset 0 -2px 0 var(--accent);
}
.btn.accent:hover,.submit-btn:hover{opacity:0.82;}
.btn.secondary{background:rgba(240,237,228,0.25);}

.section{
  position:relative;
  padding:clamp(4.5rem,9vh,8.5rem) var(--pad);
  display:grid;
  grid-template-columns:minmax(0,0.86fr) minmax(0,2.18fr);
  gap:clamp(2rem,5vw,7rem);
  align-items:start;
  border-bottom:0.5px solid var(--rule);
}
.section::before{
  content:"";
  position:absolute;
  top:-0.5px;
  left:var(--pad);
  width:clamp(2rem,5vw,4rem);
  height:0.5px;
  background:var(--accent);
}
.section-label{
  position:sticky;
  top:clamp(5rem,8vh,7rem);
  padding-top:0.35rem;
}
.section-body{
  display:flex;
  flex-direction:column;
  gap:clamp(1.55rem,3vh,2.6rem);
}
h2{
  max-width:830px;
  color:var(--ink);
  font-size:clamp(30px,4.7vw,64px);
  font-weight:200;
  letter-spacing:-0.034em;
  line-height:1.03;
}
.section-intro{max-width:720px;}

.rows{
  display:flex;
  flex-direction:column;
  border-top:0.5px solid var(--rule);
  counter-reset:row;
}
.row{
  position:relative;
  display:grid;
  grid-template-columns:minmax(150px,0.72fr) minmax(0,1.65fr);
  gap:clamp(1rem,3vw,3rem);
  padding:clamp(1.25rem,2.5vh,2.15rem) 0 clamp(1.25rem,2.5vh,2.15rem) clamp(2.4rem,4vw,3.4rem);
  border-bottom:0.5px solid var(--rule);
  counter-increment:row;
}
.row::before{
  content:counter(row,decimal-leading-zero);
  position:absolute;
  left:0;
  top:clamp(1.35rem,2.5vh,2.15rem);
  color:var(--accent-dark);
  font-size:clamp(10px,0.82vw,12px);
  font-weight:500;
  letter-spacing:0.08em;
}
.row h3,.mini-grid h3{
  color:var(--ink);
  font-size:clamp(14px,1.2vw,17px);
  font-weight:400;
  line-height:1.35;
}
.row p,.mini-grid p,.faq details p,.thank-you-links a{
  color:var(--mid);
  font-size:clamp(12px,0.95vw,14px);
  line-height:1.82;
}

.mini-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:0.5px solid var(--rule);
  border-left:0.5px solid var(--rule);
}
.mini-grid article,.mini-grid a{
  position:relative;
  min-height:clamp(142px,17vw,210px);
  padding:clamp(1.1rem,2vw,1.8rem);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:1rem;
  color:var(--ink);
  text-decoration:none;
  border-right:0.5px solid var(--rule);
  border-bottom:0.5px solid var(--rule);
  background:rgba(240,237,228,0.34);
  transition:background 0.2s,border-color 0.2s;
}
.mini-grid article::before,.mini-grid a::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:0.5px;
  background:linear-gradient(90deg,var(--accent),transparent 45%);
  opacity:0;
  transition:opacity 0.2s;
}
.mini-grid article::after,.mini-grid a::after{
  content:"";
  position:absolute;
  right:clamp(0.9rem,1.6vw,1.3rem);
  top:clamp(0.9rem,1.6vw,1.3rem);
  width:0.42rem;
  height:0.42rem;
  border-top:0.5px solid rgba(8,8,7,0.32);
  border-right:0.5px solid rgba(8,8,7,0.32);
  transform:rotate(45deg);
  opacity:0;
  transition:opacity 0.2s,transform 0.2s;
}
.mini-grid article:hover,.mini-grid a:hover{background:rgba(212,137,31,0.055);border-color:rgba(8,8,7,0.17);}
.mini-grid article:hover::before,.mini-grid a:hover::before,.mini-grid article:hover::after,.mini-grid a:hover::after{opacity:1;}
.mini-grid a:hover::after{transform:rotate(45deg) translate(2px,-2px);}
.mini-grid p{max-width:390px;}

.process{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  border-top:0.5px solid var(--rule);
  border-left:0.5px solid var(--rule);
  counter-reset:step;
}
.step{
  position:relative;
  min-height:clamp(128px,14vw,178px);
  padding:clamp(1rem,1.8vw,1.5rem);
  border-right:0.5px solid var(--rule);
  border-bottom:0.5px solid var(--rule);
  counter-increment:step;
}
.step::after{
  content:"";
  position:absolute;
  left:clamp(1rem,1.8vw,1.5rem);
  right:clamp(1rem,1.8vw,1.5rem);
  bottom:clamp(1rem,1.8vw,1.5rem);
  height:0.5px;
  background:linear-gradient(90deg,rgba(212,137,31,0.75),transparent);
}
.step span{
  display:block;
  margin-bottom:clamp(1.3rem,3vw,2.8rem);
  color:var(--accent-dark);
  font-size:clamp(10px,0.85vw,12px);
  font-weight:500;
  letter-spacing:0.1em;
}
.step p{
  max-width:150px;
  color:var(--ink);
  font-size:clamp(15px,1.25vw,18px);
  font-weight:400;
  line-height:1.2;
}

.cta-block{
  position:relative;
  padding:clamp(4.5rem,9vh,8rem) var(--pad);
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(280px,0.9fr);
  gap:clamp(2rem,5vw,6rem);
  align-items:center;
  border-bottom:0.5px solid var(--rule);
  overflow:hidden;
}
.cta-block::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(110deg,transparent 0 58%,rgba(212,137,31,0.09) 58.2% 58.6%,transparent 58.8% 100%),
    linear-gradient(90deg,rgba(8,8,7,0.02),transparent 42%);
}
.cta-block>*{position:relative;}
.form-grid{
  display:grid;
  grid-template-columns:minmax(0,0.84fr) minmax(320px,1.18fr);
  gap:clamp(2rem,5vw,6rem);
  align-items:start;
}
.form-side h2{margin-bottom:clamp(1rem,2vh,1.5rem);}
.direct{
  display:flex;
  flex-direction:column;
  gap:0.35rem;
  margin-top:clamp(1rem,2vh,1.4rem);
}
.direct a{
  color:var(--ink);
  text-decoration:none;
  font-size:clamp(12px,0.95vw,14px);
}
.direct a:hover{color:var(--mid);}
.form{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:clamp(0.85rem,1.7vh,1.25rem);
  padding-top:0.25rem;
}
.form::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:0.5px;
  background:linear-gradient(90deg,var(--accent),var(--rule) 36%,var(--rule));
}
.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(0.8rem,1.5vw,1rem);
}
.field{display:flex;flex-direction:column;gap:0.38rem;}
.field label{
  color:var(--faint);
  font-size:clamp(9px,0.8vw,11px);
  font-weight:400;
  letter-spacing:0.08em;
  line-height:1.3;
  text-transform:uppercase;
}
.field input,.field textarea,.field select{
  width:100%;
  padding:0.6rem 0;
  border:none;
  border-bottom:0.5px solid var(--rule);
  border-radius:0;
  outline:none;
  background:transparent;
  color:var(--ink);
  font-family:'IBM Plex Sans',sans-serif;
  font-size:clamp(13px,0.98vw,15px);
  font-weight:300;
  line-height:1.4;
  transition:border-color 0.2s;
  -webkit-appearance:none;
  appearance:none;
}
.field select{
  background-image:linear-gradient(45deg,transparent 50%,var(--mid) 50%),linear-gradient(135deg,var(--mid) 50%,transparent 50%);
  background-position:calc(100% - 12px) 52%,calc(100% - 7px) 52%;
  background-size:5px 5px,5px 5px;
  background-repeat:no-repeat;
}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--ink);}
.field textarea{min-height:clamp(92px,14vh,138px);resize:vertical;}
.submit-btn{align-self:flex-start;margin-top:0.35rem;}

.faq{
  display:flex;
  flex-direction:column;
  border-top:0.5px solid var(--rule);
}
.faq details{
  border-bottom:0.5px solid var(--rule);
  padding:clamp(1rem,2vh,1.45rem) 0;
}
.faq summary{
  position:relative;
  padding-right:2rem;
  color:var(--ink);
  cursor:pointer;
  font-size:clamp(14px,1.18vw,17px);
  font-weight:400;
  line-height:1.45;
  list-style:none;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{
  content:"+";
  position:absolute;
  right:0;
  top:0;
  color:var(--faint);
  font-size:1.15em;
  font-weight:200;
  line-height:1;
  transition:transform 0.2s;
}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq details p{
  max-width:790px;
  margin-top:0.85rem;
}

.thank-you{
  min-height:calc(100vh - 130px);
  padding:clamp(6rem,14vh,11rem) var(--pad);
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:clamp(1rem,2vh,1.5rem);
}
.thank-you h1{
  max-width:900px;
  color:var(--ink);
  font-size:clamp(46px,8vw,104px);
  font-weight:200;
  letter-spacing:-0.04em;
  line-height:0.96;
}
.thank-you p{max-width:540px;}
.thank-you-links{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  margin-top:0.5rem;
}
.thank-you-links a{
  color:var(--ink);
  text-decoration:none;
  border-bottom:0.5px solid rgba(8,8,7,0.28);
}
.thank-you-links a:hover{color:var(--mid);border-color:rgba(8,8,7,0.12);}
footer{
  padding:clamp(1.2rem,2vh,2rem) var(--pad);
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:0.5rem;
  color:var(--faint);
  font-size:clamp(9px,0.8vw,11px);
  letter-spacing:0.04em;
}
@media(max-width:980px){
  .hero,.section,.cta-block,.form-grid{grid-template-columns:1fr;}
  .hero{min-height:auto;align-items:start;}
  .hero::before{right:-18vw;top:clamp(6rem,14vh,8rem);width:min(78vw,560px);opacity:0.32;}
  .section-label{position:static;}
  .process{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:620px){
  body::before{background-size:4.75rem 4.75rem;mask-image:none;opacity:0.28;}
  nav{align-items:flex-start;gap:1rem;flex-wrap:wrap;}
  .nav-links{gap:0.9rem;}
  .hero{padding-top:clamp(4rem,8vh,5.5rem);}
  .hero h1{font-size:clamp(42px,14vw,70px);}
  .hero-copy{padding-left:1rem;}
  .row,.form-row{grid-template-columns:1fr;}
  .mini-grid,.process{grid-template-columns:1fr;}
  .row{padding-left:2.3rem;}
  footer{justify-content:center;text-align:center;}
}
@media(min-width:1800px){
  :root{--pad:clamp(5rem,8vw,12rem);}
}
