:root{
  --ink:#0E1B2C;
  --paper:#FAFAF7;
  --brass:#B08D3E;
  --brass-soft:#C9A85C;
  --ink-60:rgba(14,27,44,.6);
  --ink-30:rgba(14,27,44,.28);
  --ink-12:rgba(14,27,44,.12);
  --paper-60:rgba(250,250,247,.6);
  --paper-25:rgba(250,250,247,.22);
  --max:1120px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Public Sans',sans-serif;
  font-weight:300;
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--brass-soft);color:var(--ink)}

.mono{font-family:'IBM Plex Mono',monospace}
.wrap{max-width:var(--max);margin:0 auto;padding:0 32px}

/* ---------- pillar motif ---------- */
.pillars{display:inline-flex;gap:5px;align-items:stretch}
.pillars span{width:2px;background:var(--brass)}

/* ---------- nav ---------- */
nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  background:rgba(250,250,247,.88);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--ink-12);
}
.nav-inner{
  max-width:var(--max);margin:0 auto;padding:0 32px;
  height:72px;display:flex;align-items:center;justify-content:space-between;
}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--ink)}
.brand-mark{display:flex;align-items:center;gap:4px;height:26px}
.brand-mark .f{
  font-family:'Spectral',serif;font-weight:500;font-size:26px;line-height:1;
  color:var(--brass);letter-spacing:0;
}
.brand-mark .pillars{height:34px;margin:0 3px}
.brand-name{
  font-family:'Spectral',serif;font-weight:400;font-size:15px;
  letter-spacing:.22em;text-transform:uppercase;
}
.nav-links{display:flex;gap:36px;align-items:center}
.nav-links a{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;text-decoration:none;color:var(--ink-60);
  padding-bottom:3px;border-bottom:1px solid transparent;
  transition:color .2s,border-color .2s;
}
.nav-links a:hover,.nav-links a:focus-visible{color:var(--ink);border-color:var(--brass)}
.nav-links a:focus-visible{outline:2px solid var(--brass);outline-offset:4px}
@media(max-width:760px){.nav-links{display:none}}

/* ---------- hero ---------- */
header{
  min-height:92vh;display:flex;align-items:center;
  padding:160px 0 96px;position:relative;
}
.hero-grid{
  max-width:var(--max);margin:0 auto;padding:0 32px;width:100%;
  display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:stretch;
}
.hero-pillars{display:flex;gap:7px}
.hero-pillars span{width:2px;background:var(--brass);display:block}
.hero-body{max-width:760px}
.eyebrow{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--brass);display:block;margin-bottom:36px;
}
h1{
  font-family:'Spectral',serif;font-weight:300;
  font-size:clamp(42px,6.2vw,76px);line-height:1.08;letter-spacing:-.01em;
  margin-bottom:40px;
}
h1 em{font-style:italic;font-weight:300;color:var(--brass)}
.hero-sub{
  font-size:19px;line-height:1.7;color:var(--ink-60);max-width:560px;margin-bottom:56px;
}
.cta{
  display:inline-flex;align-items:center;gap:14px;text-decoration:none;
  font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink);
  border:1px solid var(--ink);padding:18px 32px;
  transition:background .25s,color .25s;
}
.cta:hover,.cta:focus-visible{background:var(--ink);color:var(--paper)}
.cta:focus-visible{outline:2px solid var(--brass);outline-offset:4px}
.cta .arrow{transition:transform .25s}
.cta:hover .arrow{transform:translateX(4px)}
@media(max-width:760px){
  .hero-grid{grid-template-columns:1fr}
  .hero-pillars{display:none}
  header{min-height:auto;padding:140px 0 72px}
}

/* ---------- sections ---------- */
section{padding:120px 0}
.sec-head{display:flex;align-items:center;gap:18px;margin-bottom:72px}
.sec-head .pillars{height:30px}
.sec-head h2{
  font-family:'IBM Plex Mono',monospace;font-weight:400;font-size:13px;
  letter-spacing:.26em;text-transform:uppercase;color:var(--ink-60);
}
.sec-lede{
  font-family:'Spectral',serif;font-weight:300;
  font-size:clamp(28px,3.4vw,40px);line-height:1.25;
  max-width:720px;margin:-40px 0 72px;
}
@media(max-width:760px){section{padding:80px 0}.sec-head{margin-bottom:48px}.sec-lede{margin:-24px 0 48px}}

/* ---------- practice ---------- */
.practice-list{border-top:1px solid var(--ink-12)}
.practice-row{
  display:grid;grid-template-columns:minmax(220px,340px) 1fr;gap:32px;
  padding:34px 0;border-bottom:1px solid var(--ink-12);
  transition:background .2s;
}
.practice-row:hover{background:rgba(176,141,62,.05)}
.practice-row h3{
  font-family:'Spectral',serif;font-weight:400;font-size:22px;line-height:1.3;
}
.practice-row p{color:var(--ink-60);font-size:16px;max-width:560px}
@media(max-width:760px){.practice-row{grid-template-columns:1fr;gap:8px;padding:26px 0}}

/* ---------- membership (single tier) ---------- */
#plans{background:#fff;border-top:1px solid var(--ink-12);border-bottom:1px solid var(--ink-12)}
.m-cards{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--ink-12);border:1px solid var(--ink-12);margin-bottom:64px}
.m-card{padding:44px 36px;display:flex;flex-direction:column;gap:10px}
.m-card-dark{background:var(--ink);color:var(--paper)}
.m-card-light{background:#F1EDE3}
.m-label{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--brass-soft);
}
.m-card-light .m-label{color:var(--brass)}
.m-price{font-family:'Spectral',serif;font-weight:300;font-size:44px;line-height:1;color:var(--paper)}
.m-price small{font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--paper-60);letter-spacing:.04em}
.m-price-dark{color:var(--ink)}
.m-price-dark + .m-sub{color:var(--ink-60)}
.m-card-dark .m-sub{color:var(--paper-60);font-size:14px;font-style:italic}
.m-card-light .m-sub{color:var(--ink-60);font-size:14px;font-style:italic}

.m-body{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:start}
.m-included h3,.m-value h3{
  font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink);margin-bottom:22px;
}
.m-included ul{list-style:none;display:flex;flex-direction:column;gap:16px}
.m-included li{font-size:16px;color:var(--ink-60);padding-left:22px;position:relative;line-height:1.6}
.m-included li::before{content:"";position:absolute;left:0;top:9px;width:10px;height:2px;background:var(--brass)}

.value-row{
  display:flex;justify-content:space-between;gap:16px;padding:16px 20px;
  background:#F1EDE3;border-bottom:1px solid var(--ink-12);font-size:15px;
}
.value-row span{color:var(--ink-60)}
.value-row strong{color:var(--ink);font-weight:500}
.value-row:first-child{border-radius:0}
.value-row:not(.value-total):nth-child(2){background:#fff}
.value-total{background:var(--ink);color:var(--paper);border-bottom:none}
.value-total span{color:var(--paper-60)}
.value-total b{color:var(--brass-soft);font-size:17px;font-weight:500}
.value-note{font-size:12.5px;color:var(--ink-60);line-height:1.6;margin-top:16px}

.plan-note{
  margin-top:56px;font-size:13.5px;color:var(--ink-60);max-width:760px;line-height:1.7;
}
@media(max-width:900px){
  .m-cards{grid-template-columns:1fr}
  .m-body{grid-template-columns:1fr;gap:40px}
}

/* ---------- digital / ledger ---------- */
.digital-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.digital-copy p{color:var(--ink-60);margin-bottom:24px;max-width:480px}
.ledger{
  background:var(--ink);color:var(--paper);padding:40px;
  font-family:'IBM Plex Mono',monospace;font-size:13px;
  box-shadow:0 24px 60px -24px rgba(14,27,44,.35);
}
.ledger-head{
  display:flex;justify-content:space-between;align-items:center;
  padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--paper-25);
  letter-spacing:.14em;text-transform:uppercase;font-size:11px;color:var(--brass-soft);
}
.ledger-row{display:flex;justify-content:space-between;padding:11px 0;color:var(--paper-60)}
.ledger-row strong{color:var(--paper);font-weight:500}
.ledger-total{
  display:flex;justify-content:space-between;padding-top:20px;margin-top:14px;
  border-top:1px solid var(--paper-25);color:var(--paper);letter-spacing:.06em;
}
.ledger-total b{color:var(--brass-soft);font-weight:500}
@media(max-width:900px){.digital-grid{grid-template-columns:1fr;gap:48px}}

/* ---------- team band ---------- */
.team-band{position:relative;width:100%;overflow:hidden;border-top:1px solid var(--ink-12);border-bottom:1px solid var(--ink-12)}
.team-band img{width:100%;height:auto;display:block;max-height:520px;object-fit:cover;object-position:center 30%;filter:saturate(0.94) contrast(1.03)}
.team-band-caption{
  position:absolute;left:0;right:0;bottom:0;
  background:linear-gradient(to top, rgba(14,27,44,.80) 0%, rgba(14,27,44,.42) 42%, rgba(14,27,44,0) 100%);
  color:var(--paper);padding:56px 32px 18px;
  display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:8px;
  pointer-events:none;
}
.team-band-caption span:first-child{
  font-family:'Spectral',serif;font-weight:400;font-size:19px;letter-spacing:.01em;
}
.team-band-loc{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--brass-soft);
}

/* Short viewports render the banner near its natural 2:1 ratio, so an
   overlaid caption lands across the faces. Below 900px the caption
   becomes a solid band beneath the photograph instead. */
@media(max-width:900px){
  .team-band-caption{
    position:static;
    background:var(--ink);
    padding:18px 24px;
    display:flex;flex-direction:column;align-items:flex-start;gap:5px;
  }
  .team-band-caption span:first-child{font-size:17px;line-height:1.35}
  .team-band-loc{font-size:11px}
}
@media(max-width:760px){
  .team-band img{max-height:340px}
  .team-band-caption{padding:16px 20px}
  .team-band-caption span:first-child{font-size:16px}
}

/* ---------- attorney headshots ---------- */
.att-photo{
  width:100%;aspect-ratio:4/5;overflow:hidden;margin-bottom:24px;
  border-bottom:2px solid var(--brass);
}
.att-photo img{width:100%;height:100%;object-fit:cover;object-position:center 15%;filter:saturate(0.96) contrast(1.02)}
.att-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}
.att .att-rule{height:2px;width:56px;background:var(--brass);margin-bottom:28px}
.att h3{font-family:'Spectral',serif;font-weight:400;font-size:28px;margin-bottom:6px}
.att .title{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--brass);display:block;margin-bottom:24px;
}
.att p{color:var(--ink-60);font-size:16px;max-width:460px}
@media(max-width:900px){.att-grid{grid-template-columns:1fr;gap:56px}}

/* ---------- contact ---------- */
#contact{background:var(--ink);color:var(--paper);padding:140px 0}
#contact .sec-head h2{color:var(--paper-60)}
#contact .sec-head .pillars span{background:var(--brass-soft)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.contact-lede{
  font-family:'Spectral',serif;font-weight:300;
  font-size:clamp(30px,3.6vw,44px);line-height:1.2;
}
.contact-lede em{font-style:italic;color:var(--brass-soft)}
.contact-detail{display:flex;flex-direction:column;gap:28px;padding-top:10px}
.contact-detail .label{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--brass-soft);display:block;margin-bottom:6px;
}
.contact-detail a{color:var(--paper);text-decoration:none;border-bottom:1px solid var(--paper-25);transition:border-color .2s}
.contact-detail a:hover{border-color:var(--brass-soft)}
.contact-detail p{color:var(--paper-60)}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;gap:48px}}

/* ---------- footer ---------- */
footer{background:var(--ink);color:var(--paper-60);border-top:1px solid var(--paper-25);padding:36px 0}
.foot{
  max-width:var(--max);margin:0 auto;padding:0 32px;
  display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.1em;
}

/* ---------- draft tag ---------- */
.draft-tag{
  position:fixed;bottom:20px;left:20px;z-index:60;
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.2em;
  background:var(--brass);color:var(--ink);padding:6px 12px;
}

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

/* ---------- multi-page additions ---------- */
.nav-links a.active{color:var(--ink);border-color:var(--brass)}

.page-header{padding:168px 0 56px;border-bottom:1px solid var(--ink-12)}
.page-header .eyebrow{margin-bottom:18px}
.page-h1{font-family:'Spectral',serif;font-weight:300;font-size:clamp(34px,5vw,54px);line-height:1.14;margin:0 0 18px}
.page-lede{font-size:18px;line-height:1.7;color:var(--ink-60);max-width:620px}

.explore-list{border-top:1px solid var(--ink-12)}
.explore-row{
  display:grid;grid-template-columns:minmax(200px,300px) 1fr auto;gap:32px;align-items:center;
  padding:30px 0;border-bottom:1px solid var(--ink-12);text-decoration:none;color:var(--ink);
  transition:background .2s;
}
.explore-row:hover{background:rgba(176,141,62,.05)}
.explore-row h3{font-family:'Spectral',serif;font-weight:400;font-size:22px}
.explore-row p{color:var(--ink-60);font-size:15px;max-width:520px}
.explore-arrow{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--brass);white-space:nowrap;
}
@media(max-width:760px){
  .explore-row{grid-template-columns:1fr;gap:6px}
  .explore-arrow{display:none}
}
/* ---------- inquiry form ---------- */
.contact-grid.with-form{grid-template-columns:.85fr 1.15fr;gap:96px}
.contact-aside{display:flex;flex-direction:column;gap:48px}

.inquiry{display:flex;flex-direction:column;gap:32px}
.inquiry-head{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--brass-soft);
  padding-bottom:18px;border-bottom:1px solid var(--paper-25);
}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.field{display:flex;flex-direction:column;gap:8px}
.field label{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--brass-soft);
}
.field label .opt{color:var(--paper-25);letter-spacing:.12em}

.field input,
.field select,
.field textarea{
  font-family:'Public Sans',sans-serif;font-weight:300;font-size:17px;
  color:var(--paper);background:transparent;
  border:0;border-bottom:1px solid var(--paper-25);
  padding:10px 0;width:100%;
  transition:border-color .25s;
}
.field textarea{resize:vertical;min-height:104px;line-height:1.6}
.field input:focus,
.field select:focus,
.field textarea:focus{outline:0;border-bottom-color:var(--brass-soft)}
.field input:focus-visible,
.field select:focus-visible,
.field textarea:focus-visible{outline:2px solid var(--brass);outline-offset:6px}
.field input::placeholder,
.field textarea::placeholder{color:var(--paper-25)}
.field select{appearance:none;border-radius:0;cursor:pointer}
.field select option{background:var(--ink);color:var(--paper)}
.field-select{position:relative}
.field-select::after{
  content:'';position:absolute;right:2px;bottom:20px;pointer-events:none;
  width:7px;height:7px;border-right:1px solid var(--brass-soft);
  border-bottom:1px solid var(--brass-soft);transform:rotate(45deg);
}
.field.invalid input,
.field.invalid select,
.field.invalid textarea{border-bottom-color:var(--brass)}

.choice{display:flex;gap:28px;padding-top:4px}
.choice label{
  display:inline-flex;align-items:center;gap:9px;cursor:pointer;
  font-family:'Public Sans',sans-serif;font-weight:300;font-size:16px;
  letter-spacing:0;text-transform:none;color:var(--paper-60);
}
.choice input{accent-color:var(--brass-soft);width:auto}

.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.inquiry-note{font-size:14px;line-height:1.6;color:var(--paper-60);max-width:52ch}

.inquiry-submit{
  display:inline-flex;align-items:center;gap:14px;align-self:flex-start;
  font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--paper);
  background:transparent;border:1px solid var(--paper-25);
  padding:18px 32px;cursor:pointer;
  transition:background .25s,color .25s,border-color .25s;
}
.inquiry-submit:hover:not(:disabled),
.inquiry-submit:focus-visible:not(:disabled){
  background:var(--brass);border-color:var(--brass);color:var(--ink);
}
.inquiry-submit:focus-visible{outline:2px solid var(--brass);outline-offset:4px}
.inquiry-submit:disabled{opacity:.45;cursor:default}
.inquiry-submit .arrow{transition:transform .25s}
.inquiry-submit:hover:not(:disabled) .arrow{transform:translateX(4px)}

.form-status{font-size:15px;line-height:1.6;color:var(--paper-60);min-height:1px}
.form-status.error{color:var(--brass-soft)}

.inquiry-sent{
  border-left:2px solid var(--brass);padding:8px 0 8px 28px;
}
.inquiry-sent h3{
  font-family:'Spectral',serif;font-weight:300;font-size:30px;
  line-height:1.25;margin-bottom:14px;
}
.inquiry-sent p{color:var(--paper-60);font-size:16px;max-width:48ch}

@media(max-width:900px){
  .contact-grid.with-form{grid-template-columns:1fr;gap:64px}
}
@media(max-width:560px){
  .field-row{grid-template-columns:1fr;gap:32px}
  .inquiry-submit{width:100%;justify-content:center}
}

/* ---------- footer consultation prompt ---------- */
.foot-cta{
  max-width:var(--max);margin:0 auto 32px;padding:0 32px;
  display:flex;justify-content:flex-end;
}
.cta-invert{color:var(--paper);border-color:var(--paper-25)}
.cta-invert:hover,.cta-invert:focus-visible{background:var(--brass);border-color:var(--brass);color:var(--ink)}
@media(max-width:760px){
  .foot-cta{justify-content:stretch;padding:0 20px;margin-bottom:24px}
  .foot-cta .cta{width:100%;justify-content:center}
}

/* ---------- client portal link ---------- */
.nav-portal{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;text-decoration:none;color:var(--brass);
  border:1px solid var(--brass);padding:9px 16px;
  transition:background .2s,color .2s;
}
.nav-portal:hover,.nav-portal:focus-visible{background:var(--brass);color:var(--paper);border-color:var(--brass)}
.nav-portal:focus-visible{outline:2px solid var(--brass);outline-offset:3px}

/* Below 760px the main nav links hide. The portal link stays,
   since returning clients need it more than prospects need the menu. */
@media(max-width:760px){
  .nav-links{display:flex;gap:0}
  .nav-links a:not(.nav-portal){display:none}
  .nav-portal{font-size:11px;padding:8px 13px}
}

/* ---------- illustrative ledger label ---------- */
.ledger-note{
  font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--paper-60);
  margin-top:20px;padding-top:14px;display:block;
  border-top:1px solid var(--paper-25);
}

.digital-cta-line{margin-top:36px}

/* ---------- membership: exclusions, steps, who for ---------- */
.m-fineprint{
  margin-top:20px;font-size:14px;line-height:1.65;color:var(--ink-45);
  padding-top:16px;border-top:1px solid var(--ink-12);
}

.m-excludes-band{background:var(--ink);color:var(--paper)}
.m-excludes-band .sec-head h2{color:var(--paper)}
.m-excludes{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.m-excludes-lede{
  font-family:'Spectral',serif;font-weight:300;font-size:21px;line-height:1.55;
  color:var(--paper);
}
.m-excludes ul{list-style:none;display:flex;flex-direction:column;gap:18px}
.m-excludes li{
  position:relative;padding-left:26px;font-size:16px;line-height:1.6;color:var(--paper-60);
}
.m-excludes li::before{
  content:'';position:absolute;left:0;top:11px;width:11px;height:1px;background:var(--brass);
}
.m-excludes-note{
  grid-column:1 / -1;margin-top:8px;padding-top:22px;border-top:1px solid var(--paper-25);
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em;
  line-height:1.7;color:var(--brass-soft);
}

.m-steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:40px;counter-reset:none}
.m-steps li{border-top:1px solid var(--ink-12);padding-top:24px}
.m-step-n{
  display:block;font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.2em;color:var(--brass);margin-bottom:14px;
}
.m-steps h3{font-family:'Spectral',serif;font-weight:400;font-size:22px;margin-bottom:10px}
.m-steps p{font-size:15px;line-height:1.65;color:var(--ink-60)}

.m-whofor{
  margin-top:88px;padding-top:44px;border-top:1px solid var(--ink-12);
  max-width:62ch;
}
.m-whofor h3{font-family:'Spectral',serif;font-weight:400;font-size:26px;margin-bottom:14px}
.m-whofor p{font-size:17px;line-height:1.7;color:var(--ink-60);margin-bottom:34px}

@media(max-width:900px){
  .m-excludes{grid-template-columns:1fr;gap:34px}
  .m-steps{grid-template-columns:1fr 1fr;gap:32px}
}
@media(max-width:560px){
  .m-steps{grid-template-columns:1fr;gap:28px}
  .m-excludes-lede{font-size:19px}
  .m-whofor .cta{width:100%;justify-content:center}
}
