:root{
  --ink:#1B2027;
  --ink-soft:#2E353E;
  --paper:#EDEFEE;
  --card:#FFFFFF;
  --line:#D7DAD6;
  --brass:#A9814A;
  --brass-dark:#8C6B3B;
  --steel:#4C6478;
  --steel-dark:#374C5D;
  --redline:#A63A2E;
  --muted:#5C6470;
  --muted-2:#8B9096;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Source Serif 4',serif;
  background:var(--paper);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,.brand-text,.step-num,.cred-num{
  font-family:'Big Shoulders Display',sans-serif;
  text-transform:uppercase;
  letter-spacing:0.01em;
}
.mono,.service-fee,.cred-num.mono-sm,.stamp-arc-text,.form-note{font-family:'IBM Plex Mono',monospace;}
a{color:inherit;text-decoration:none;}
img,svg{display:block;}
::selection{background:var(--brass);color:#fff;}

.wrap{max-width:1120px;margin:0 auto;padding:0 28px;}
.eyebrow{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--brass-dark);margin:0 0 10px;font-weight:600;
}
.section-lead{max-width:640px;color:var(--muted);font-size:17px;line-height:1.6;margin:12px 0 40px;}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(237,239,238,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:76px;}
.brand{display:flex;align-items:center;gap:10px;}
.brand-mark{width:30px;height:30px;fill:var(--ink);}
.brand-text{font-size:15px;line-height:1.05;font-weight:700;color:var(--ink);}
.brand-text span{color:var(--brass-dark);}
.brand-text.small{font-size:14px;}
.main-nav{display:flex;align-items:center;gap:30px;font-family:'IBM Plex Mono',monospace;font-size:13px;}
.main-nav a{color:var(--ink-soft);padding:6px 0;border-bottom:2px solid transparent;}
.main-nav a:hover{border-color:var(--brass);}
.nav-cta{
  background:var(--ink);color:#fff !important;padding:10px 18px !important;
  border-radius:2px;border-bottom:none !important;
}
.nav-cta:hover{background:var(--brass-dark);border-color:transparent;}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:8px;cursor:pointer;}
.nav-toggle span{width:24px;height:2px;background:var(--ink);display:block;}

/* ---------- Hero ---------- */
.hero{padding:72px 0 40px;}
.hero-grid{display:grid;grid-template-columns:1.15fr 0.85fr;gap:40px;align-items:center;}
.hero-copy h1{
  font-size:56px;line-height:1.02;font-weight:800;margin:6px 0 22px;color:var(--ink);
}
.hero-copy h1 .hl{color:var(--brass-dark);}
.hero-sub{font-size:18px;line-height:1.65;color:var(--muted);max-width:560px;margin:0 0 30px;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:18px;}
.hero-coverage{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--muted-2);letter-spacing:0.02em;}

.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:14px 26px;font-family:'IBM Plex Mono',monospace;font-size:13.5px;font-weight:600;
  letter-spacing:0.03em;text-transform:uppercase;border-radius:2px;border:1.5px solid transparent;
  transition:transform .1s ease, background .15s ease;
}
.btn:active{transform:scale(0.98);}
.btn-primary{background:var(--redline);color:#fff;}
.btn-primary:hover{background:#8a2f25;}
.btn-ghost{border-color:var(--ink);color:var(--ink);}
.btn-ghost:hover{background:var(--ink);color:#fff;}
.btn-full{width:100%;}

.hero-stamp-wrap{display:flex;justify-content:center;}
.hero-stamp{width:100%;max-width:320px;}
.stamp-ring-outer{fill:none;stroke:var(--brass-dark);stroke-width:2;}
.stamp-ring-inner{fill:none;stroke:var(--brass-dark);stroke-width:1;stroke-dasharray:2 4;}
.stamp-arc-text{font-size:14px;letter-spacing:0.14em;fill:var(--ink-soft);font-weight:600;}
.stamp-ibeam{fill:var(--ink-soft);}

/* ---------- Credentials bar ---------- */
.credbar{background:var(--ink);color:#fff;padding:30px 0;}
.credbar-label{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--brass);margin:0 0 16px;}
.credbar-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;}
.cred{display:flex;flex-direction:column;gap:4px;flex:1;min-width:150px;}
.cred-num{font-size:26px;font-weight:700;color:var(--brass);}
.cred-num.mono-sm{font-size:19px;font-family:'IBM Plex Mono',monospace;letter-spacing:0.01em;}
.cred-label{font-size:12.5px;color:#C7CBCE;line-height:1.4;}
.cred-div{width:1px;height:38px;background:rgba(255,255,255,0.18);flex-shrink:0;}

/* ---------- Intro strip ---------- */
.intro{padding:0 0 48px;}
.intro-text{font-size:19px;line-height:1.6;color:var(--ink-soft);max-width:760px;margin:0;}

/* ---------- Services ---------- */
.services{padding:88px 0;}
.services h2,.process h2,.why h2,.about h2,.contact h2{
  font-size:38px;font-weight:800;color:var(--ink);margin:0;line-height:1.08;
}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.service-card{
  background:var(--card);border:1px solid var(--line);border-radius:3px;
  padding:26px 24px;display:flex;flex-direction:column;gap:10px;position:relative;
  border-top:3px solid var(--steel);
}
.service-card h3{font-family:'Source Serif 4',serif;text-transform:none;font-size:18px;font-weight:600;margin:0;letter-spacing:0;color:var(--ink);}
.service-card p{font-size:14.5px;color:var(--muted);line-height:1.55;margin:0;flex:1;}
.service-fee{font-size:17px;font-weight:600;color:var(--redline);margin-top:6px;}
.service-fee .per{font-size:12px;color:var(--muted);font-weight:400;}
.service-card-wide{grid-column:span 3;border-top-color:var(--brass);flex-direction:row;align-items:center;gap:24px;}
.service-card-wide h3{flex-shrink:0;width:260px;}
.service-card-wide p{flex:1;}

/* ---------- Process ---------- */
.process{background:var(--card);padding:88px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.process-list{list-style:none;margin:44px 0 0;padding:0;display:flex;flex-direction:column;}
.process-list li{
  display:flex;gap:28px;padding:26px 0;border-bottom:1px solid var(--line);align-items:flex-start;
}
.process-list li:last-child{border-bottom:none;}
.step-num{
  font-size:34px;font-weight:700;color:var(--line);flex-shrink:0;width:64px;
  -webkit-text-stroke:1px var(--brass-dark);color:transparent;
}
.step-body h3{font-family:'Source Serif 4',serif;text-transform:none;letter-spacing:0;font-size:20px;font-weight:600;margin:0 0 6px;color:var(--ink);}
.step-body p{margin:0;color:var(--muted);font-size:15.5px;line-height:1.6;max-width:600px;}

/* ---------- Why ---------- */
.why{padding:88px 0;}
.why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:40px;}
.why-grid-2{grid-template-columns:repeat(2,1fr);}
.why-grid-1{grid-template-columns:1fr;max-width:520px;}
.why-card{background:var(--card);border:1px solid var(--line);border-radius:3px;padding:30px 28px;position:relative;}
.redline-mark{
  display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;
  border:2px solid var(--redline);color:var(--redline);border-radius:50%;font-size:15px;font-weight:700;margin-bottom:14px;
}
.why-card h3{font-family:'Source Serif 4',serif;text-transform:none;letter-spacing:0;font-size:19px;font-weight:600;margin:0 0 8px;}
.why-card p{margin:0;color:var(--muted);font-size:15px;line-height:1.6;}

/* ---------- About ---------- */
.about{background:var(--ink);color:#EDEFEE;padding:88px 0;}
.about-grid{display:grid;grid-template-columns:0.32fr 0.68fr;gap:50px;align-items:start;}
.about .eyebrow{color:var(--brass);}
.about h2{color:#fff;font-size:34px;}
.about-copy p{font-size:16.5px;line-height:1.7;color:#C7CBCE;margin:20px 0 0;}
.about-newpractice{color:var(--brass) !important;font-style:italic;}
.about-tagline{font-family:'Big Shoulders Display',sans-serif;text-transform:uppercase;letter-spacing:0.02em;font-size:20px;font-weight:700;color:#fff !important;margin-top:26px !important;font-style:normal;}
.monogram{width:100%;max-width:180px;}
.mono-ring{fill:none;stroke:var(--brass);stroke-width:1.5;}
.mono-letters{font-family:'Big Shoulders Display',sans-serif;font-size:70px;font-weight:800;fill:var(--brass);}

/* ---------- Contact ---------- */
.contact{padding:88px 0;}
.contact-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:60px;align-items:start;}
.contact-copy p{color:var(--muted);font-size:16px;line-height:1.65;max-width:420px;}
.contact-email{
  display:inline-block;margin-top:18px;font-family:'IBM Plex Mono',monospace;font-size:17px;
  font-weight:600;color:var(--redline);border-bottom:1.5px solid var(--redline);padding-bottom:2px;
}
.contact-coverage{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--muted-2);margin-top:16px;}
.contact-form{background:var(--card);border:1px solid var(--line);border-radius:3px;padding:34px;display:flex;flex-direction:column;gap:18px;}
.form-row{display:flex;flex-direction:column;gap:6px;}
.form-row label{font-size:12.5px;font-weight:600;color:var(--ink-soft);text-transform:uppercase;letter-spacing:0.04em;font-family:'IBM Plex Mono',monospace;}
.form-row input,.form-row select,.form-row textarea{
  border:1px solid var(--line);border-radius:2px;padding:11px 13px;font-family:'Source Serif 4',serif;
  font-size:15px;background:var(--paper);color:var(--ink);
}
.form-row textarea{resize:vertical;min-height:90px;}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:2px solid var(--steel);outline-offset:1px;}
.form-note{font-size:11.5px;color:var(--muted-2);margin:0;text-align:center;}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink);color:#C7CBCE;padding:40px 0;border-top:1px solid rgba(255,255,255,0.08);}
.footer-inner{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:24px;}
.footer-legal{font-size:12.5px;color:var(--muted-2);line-height:1.6;margin-top:10px;max-width:340px;}
.footer-tagline{font-size:12px;color:var(--brass);letter-spacing:0.03em;margin-top:8px;}
.footer-links{display:flex;flex-direction:column;align-items:flex-end;gap:8px;font-family:'IBM Plex Mono',monospace;font-size:12.5px;}
.footer-links a{color:var(--brass);}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .main-nav{
    position:fixed;top:76px;left:0;right:0;background:var(--paper);
    flex-direction:column;align-items:flex-start;gap:0;
    border-bottom:1px solid var(--line);
    max-height:0;overflow:hidden;transition:max-height .25s ease;
  }
  .main-nav.open{max-height:320px;}
  .main-nav a{width:100%;padding:16px 28px;border-bottom:1px solid var(--line);box-sizing:border-box;}
  .nav-cta{margin:12px 28px;width:calc(100% - 56px);text-align:center;}
  .nav-toggle{display:flex;}
  .hero-grid{grid-template-columns:1fr;}
  .hero-stamp-wrap{order:-1;max-width:220px;margin:0 auto 20px;}
  .hero-copy h1{font-size:38px;}
  .credbar-inner{flex-direction:column;align-items:flex-start;}
  .cred-div{display:none;}
  .service-grid{grid-template-columns:1fr;}
  .service-card-wide{grid-column:span 1;flex-direction:column;align-items:flex-start;}
  .service-card-wide h3{width:auto;}
  .why-grid{grid-template-columns:1fr;}
  .about-grid{grid-template-columns:1fr;}
  .monogram{max-width:100px;}
  .contact-grid{grid-template-columns:1fr;}
  .footer-inner{flex-direction:column;}
  .footer-links{align-items:flex-start;}
}
