:root {
  --deep: #37372F;
  --khaki: #6C6654;
  --sand: #BCB1A0;
  --paper: #F4F2EE;
  --white: #FAF9F6;
  --line: rgba(55,55,47,.18);
  --serif: "Montserrat", Arial, sans-serif;
  --max: 1240px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--deep);
  font-family: var(--serif);
  font-weight: 300;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
.site-header {
  position: fixed; z-index: 20; top: 0; left: 0; right: 0;
  height: 82px; padding: 0 4vw;
  display: flex; align-items: center; justify-content: space-between;
  background: rgba(244,242,238,.90); backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(55,55,47,.08);
}
.brand { display: flex; align-items: center; gap: 12px; }
.brand-mark { height: 26px; width: auto; display: block; flex-shrink: 0; }
.brand-name { font-weight: 600; letter-spacing: .19em; font-size: 12px; }
nav { display: flex; gap: 34px; align-items: center; font-size: 11px; letter-spacing: .11em; text-transform: uppercase; font-weight: 500; }
nav a { opacity: .72; transition: opacity .2s; }
nav a:hover { opacity: 1; }
.nav-cta { padding: 12px 17px; border: 1px solid var(--deep); opacity: 1; }
.menu-toggle { display:none; border:0; background:none; font-size:24px; color:var(--deep); }
.hero {
  min-height: 100svh; padding: 150px 8vw 80px;
  display: grid; place-items: center; position: relative; overflow: hidden;
  background: var(--deep); color: var(--white);
}
.hero:before, .hero:after { content:""; position:absolute; border:1px solid rgba(188,177,160,.20); border-radius:50%; }
.hero:before { width: 72vw; height: 72vw; right:-28vw; top:-32vw; }
.hero:after { width: 42vw; height: 42vw; left:-25vw; bottom:-22vw; }
.hero-inner { width:min(920px,100%); text-align:center; position:relative; z-index:1; }
.hero-kicker { color:var(--sand); font-size:11px; letter-spacing:.36em; font-weight:500; margin-bottom:35px; }
h1,h2,h3,p { margin-top:0; }
.hero h1 { font-size: clamp(48px,8vw,106px); line-height:1.02; letter-spacing:-.055em; font-weight:600; margin:0; }
.hero h1 em { color:var(--sand); font-style:normal; font-weight:300; }
.rule { width:76px; height:1px; background:var(--sand); margin:36px auto 27px; }
.hero-services { color:var(--sand); font-size:11px; letter-spacing:.25em; font-weight:300; }
.hero-services span { margin:0 10px; opacity:.5; }
.button {
  display:inline-flex; align-items:center; gap:28px; padding:16px 22px;
  border:1px solid var(--deep); font-size:11px; letter-spacing:.13em;
  text-transform:uppercase; font-weight:500; transition:.25s;
}
.button:hover { background:var(--deep); color:var(--paper); }
.button-light { border-color:var(--sand); color:var(--white); margin-top:34px; }
.button-light:hover { background:var(--sand); color:var(--deep); }
.hero-side {
  position:absolute; right:25px; top:50%; transform:rotate(90deg) translateX(50%);
  transform-origin:right center; color:rgba(188,177,160,.55); font-size:9px; letter-spacing:.25em;
}
.section { padding: 125px max(7vw, 32px); }
.eyebrow { color:var(--khaki); font-size:10px; letter-spacing:.27em; font-weight:500; margin-bottom:55px; }
.eyebrow.light { color:var(--sand); }
.intro-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:9vw; align-items:end; max-width:1120px; margin:auto; }
h2 { font-size:clamp(38px,5.2vw,70px); line-height:1.08; letter-spacing:-.045em; font-weight:600; }
h2 span { color:var(--khaki); font-weight:300; }
.lead { font-size:19px; line-height:1.7; }
.intro-grid p:not(.lead) { max-width:520px; color:rgba(55,55,47,.72); }
.dark { background:var(--deep); color:var(--white); }
.services-grid { max-width:1120px; margin:auto; display:grid; grid-template-columns:repeat(2,1fr); }
.service-card { min-height:280px; padding:36px 45px 42px 0; border-top:1px solid rgba(188,177,160,.28); }
.service-card:nth-child(odd) { padding-right:80px; border-right:1px solid rgba(188,177,160,.28); }
.service-card:nth-child(even) { padding-left:55px; }
.service-no, .step span { color:var(--sand); font-size:10px; letter-spacing:.2em; }
.service-card h3 { font-size:30px; font-weight:500; margin:42px 0 13px; }
.service-card p { max-width:430px; color:rgba(250,249,246,.66); font-size:14px; }
.method { background:#EAE7E0; }
.method-heading { display:flex; justify-content:space-between; gap:40px; align-items:end; max-width:1120px; margin:0 auto 85px; }
.method-heading h2 { margin-bottom:0; }
.method-heading p { max-width:230px; margin:0 0 8px; color:var(--khaki); font-size:13px; }
.steps { max-width:1120px; margin:auto; display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.step { padding:0 28px 0 0; border-top:1px solid var(--line); padding-top:24px; }
.step + .step { padding-left:28px; border-left:1px solid var(--line); }
.step h3 { font-size:20px; font-weight:500; margin:34px 0 10px; }
.step p { color:rgba(55,55,47,.68); font-size:13px; }
.statement { min-height:70vh; padding:100px 6vw; background:var(--khaki); color:var(--white); display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; }
.statement-mark { height:60px; width:auto; margin-bottom:28px; }
.statement h2 { font-size:clamp(38px,6vw,78px); margin-bottom:0; }
.statement .rule { background:var(--sand); margin:40px auto 30px; }
.statement p { color:var(--sand); font-size:10px; letter-spacing:.24em; }
.contact { background:var(--paper); }
.contact-grid { max-width:1120px; margin:auto; display:grid; grid-template-columns:1.05fr .95fr; gap:9vw; align-items:center; }
.contact h2 { margin-bottom:32px; }
.contact-card { padding:45px; border:1px solid var(--line); background:rgba(255,255,255,.26); }
.contact-label { font-size:10px; letter-spacing:.24em; color:var(--khaki); font-weight:500; }
.contact-link { display:block; font-size:22px; font-weight:500; margin:14px 0; }
.contact-link:hover { color:var(--khaki); }
.contact-card .small { color:rgba(55,55,47,.58); font-size:11px; margin:28px 0; }
footer { background:var(--deep); color:var(--white); padding:42px 6vw; display:grid; grid-template-columns:1fr 1fr 1fr; align-items:center; gap:20px; font-size:9px; letter-spacing:.18em; }
.footer-brand { display:flex; gap:11px; align-items:center; font-weight:500; }
.footer-mark { height:20px; }
footer p { margin:0; text-align:center; color:var(--sand); }
footer p:last-child { text-align:right; }
@media (max-width: 800px) {
  .site-header { height:70px; }
  nav { display:none; position:absolute; top:70px; left:0; right:0; padding:24px 6vw; background:var(--paper); flex-direction:column; align-items:stretch; gap:18px; border-bottom:1px solid var(--line); }
  nav.open { display:flex; }
  .menu-toggle { display:block; }
  .hero { padding:120px 7vw 65px; }
  .hero-side { display:none; }
  .hero-services { line-height:2.2; }
  .intro-grid, .contact-grid { grid-template-columns:1fr; gap:45px; }
  .services-grid { grid-template-columns:1fr; }
  .service-card, .service-card:nth-child(even), .service-card:nth-child(odd) { padding:34px 0; border-right:0; border-left:0; }
  .steps { grid-template-columns:1fr 1fr; }
  .step + .step { padding-left:20px; }
  .step:nth-child(3) { border-left:0; padding-left:0; margin-top:35px; }
  .step:nth-child(4) { margin-top:35px; }
  .method-heading { display:block; margin-bottom:55px; }
  .method-heading p { margin-top:25px; }
  .contact-card { padding:30px; }
  footer { grid-template-columns:1fr; text-align:center; }
  footer p, footer p:last-child { text-align:center; }
}
@media (max-width: 500px) {
  .section { padding:90px 24px; }
  .hero h1 { font-size:48px; }
  .steps { grid-template-columns:1fr; }
  .step, .step + .step, .step:nth-child(3), .step:nth-child(4) { border-left:0; padding-left:0; margin-top:0; padding-top:28px; padding-bottom:28px; }
}
