:root{
  --ink:#0e1410;
  --ink-2:#1a211c;
  --ink-soft:#3a423d;
  --ink-mute:#6b7269;
  --ivory:#f4eee2;
  --ivory-2:#ede6d6;
  --paper:#fbf7ee;
  --gold:#a88a4d;
  --gold-2:#c8a86b;
  --forest:#1f2a24;
  --rule:rgba(14,20,16,.14);
  --rule-soft:rgba(14,20,16,.08);
  --rule-on-ink:rgba(244,238,226,.18);
  --shadow-soft:0 24px 70px rgba(10,12,10,.16);
  --sans:"Geist",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --serif:"Cormorant Garamond","EB Garamond","Hoefler Text",Garamond,serif;
  --mono:ui-monospace,"SF Mono",Menlo,monospace;
  --gutter:clamp(20px,4vw,56px);
  --maxw:1320px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  background:var(--ivory);
  color:var(--ink);
  font-weight:400;
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  letter-spacing:.005em;
}
body.disclaimer-lock{overflow:hidden}
::selection{background:var(--ink);color:var(--ivory)}
a{color:inherit;text-decoration:none}
button{font:inherit}
img{display:block;max-width:100%}

.wrap{
  max-width:var(--maxw);
  margin:0 auto;
  padding-left:var(--gutter);
  padding-right:var(--gutter);
}

.eyebrow{
  font-family:var(--sans);
  font-size:11px;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ink-soft);
  display:inline-flex;
  align-items:center;
  gap:14px;
}
.eyebrow .num{
  font-family:var(--mono);
  font-weight:400;
  color:var(--gold);
  letter-spacing:0;
  font-size:11px;
}
.eyebrow .dot{
  width:4px;
  height:4px;
  border-radius:50%;
  background:var(--gold);
  display:inline-block;
}

h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:300;
  letter-spacing:-.01em;
  margin:0;
  color:var(--ink);
}
h1{font-size:clamp(46px,7.2vw,108px);line-height:.96;letter-spacing:-.022em}
h2{font-size:clamp(34px,4.4vw,64px);line-height:1.02;letter-spacing:-.015em}
h3{font-size:clamp(22px,1.8vw,28px);line-height:1.15;letter-spacing:-.005em}
em,.ital{font-style:italic;font-family:var(--serif);font-weight:300}
p{margin:0}
.lead{font-size:clamp(17px,1.25vw,19px);line-height:1.55;color:var(--ink-soft);max-width:62ch}
.body-text{font-size:15.5px;line-height:1.65;color:var(--ink-soft)}
.body-text strong{font-weight:500;color:var(--ink)}
.body-text p + p{margin-top:1em}
p,
li,
.lead,
.body-text,
.hero-sub,
.model-card p,
.practice-copy,
.profile-copy,
.office .addr,
.reach-aside .quote,
.contact .sub,
.office-card p,
.footer-brand p,
.insight-card p,
.article-body p,
.article-body li,
.article-body td,
.disclaimer-copy{
  text-align:justify;
  text-justify:inter-word;
}

:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
}

.nav{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(244,238,226,.78);
  backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid var(--rule-soft);
}
.nav-inner{
  min-height:72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  position:relative;
}
.brand{
  display:flex;
  align-items:center;
  color:var(--ink);
  flex:none;
}
.brand-logo{
  width:clamp(165px,17vw,245px);
  height:auto;
  max-height:68px;
  object-fit:contain;
}
.nav-menu{
  display:flex;
  align-items:center;
  gap:clamp(20px,2.4vw,36px);
  margin-left:auto;
}
.nav-links{
  display:flex;
  align-items:center;
  gap:clamp(18px,2.2vw,36px);
  font-size:13.5px;
  font-weight:400;
  color:var(--ink);
}
.nav-links a{
  position:relative;
  padding:6px 0;
}
.nav-links a::after{
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:0;
  height:1px;
  background:var(--gold);
  transition:right .35s ease;
}
.nav-links a:hover::after,
.nav-links a:focus-visible::after{right:0}

.nav-cta{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:13px;
  font-weight:500;
  padding:11px 20px;
  border:1px solid var(--ink);
  color:var(--ink);
  background:transparent;
  transition:background .35s ease,color .35s ease,border-color .35s ease;
}
.nav-cta:hover,
.nav-cta:focus-visible{
  background:var(--ink);
  color:var(--ivory);
}
.nav-cta .arr,
.btn .arr,
.btn-quiet .arr{
  font-family:var(--serif);
  font-style:italic;
}

.nav-burger{
  display:none;
  background:none;
  border:0;
  padding:8px;
  cursor:pointer;
  color:var(--ink);
}
.nav-burger span{
  display:block;
  width:22px;
  height:1px;
  background:currentColor;
  margin:5px 0;
  transition:transform .25s ease,opacity .25s ease;
}
.nav-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

.btn{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-family:var(--sans);
  font-size:13.5px;
  font-weight:500;
  letter-spacing:.02em;
  padding:16px 26px;
  border-radius:0;
  border:1px solid transparent;
  cursor:pointer;
  transition:all .35s ease;
}
.btn .arr{
  font-weight:400;
  font-size:18px;
  line-height:1;
  transition:transform .35s ease;
}
.btn:hover .arr,
.btn:focus-visible .arr{transform:translateX(4px)}
.btn-primary{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.btn-primary:hover,
.btn-primary:focus-visible{background:var(--forest);border-color:var(--forest)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-ghost:hover,
.btn-ghost:focus-visible{background:var(--ink);color:var(--ivory)}
.btn-quiet{
  background:transparent;
  color:var(--ink);
  border:0;
  padding:0 0 4px;
  font-size:14px;
  font-weight:500;
  border-bottom:1px solid var(--ink);
  cursor:pointer;
}

.hero{
  padding-top:clamp(28px,4vw,64px);
  padding-bottom:clamp(44px,6vw,84px);
  position:relative;
  overflow:hidden;
}
.hero-meta{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  color:var(--ink-soft);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  padding-bottom:clamp(20px,2.8vw,36px);
  border-bottom:1px solid var(--rule);
}
.hero-meta .right{
  font-family:var(--mono);
  letter-spacing:.04em;
  text-transform:none;
  color:var(--ink-mute);
  font-size:11px;
}
.hero-title-row{
  margin-top:clamp(28px,4vw,56px);
  max-width:1120px;
}
.hero-headline{
  max-width:none;
  font-size:clamp(32px,4.2vw,58px);
  line-height:1.06;
}
.hero-headline .em{color:var(--ink)}
.hero-headline .gold-and{
  font-family:var(--serif);
  font-style:italic;
  color:var(--gold);
  font-weight:300;
}
.hero-bottom{
  margin-top:clamp(40px,5vw,72px);
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:clamp(28px,5vw,80px);
  align-items:start;
}
.hero-sub{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(20px,1.6vw,24px);
  line-height:1.45;
  color:var(--ink-2);
  max-width:44ch;
}
.hero-side{display:flex;flex-direction:column;gap:24px}
.trust{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink-soft);
}
.trust span:not(.bullet){white-space:nowrap}
.trust .bullet{
  display:inline-block;
  width:3px;
  height:3px;
  border-radius:50%;
  background:var(--gold);
  align-self:center;
}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px}
section{padding:clamp(80px,9vw,160px) 0;position:relative}
.section-head{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:clamp(24px,4vw,60px);
  align-items:end;
  padding-bottom:clamp(36px,4vw,64px);
  border-bottom:1px solid var(--rule);
}
.section-head h2{max-width:22ch}
.section-head-inline{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
}

.home-directory{
  background:var(--paper);
  padding-top:clamp(72px,8vw,120px);
}
.directory-grid{
  margin-top:clamp(36px,4vw,56px);
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid var(--rule);
  border-left:1px solid var(--rule);
}
.directory-card{
  min-height:220px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:14px;
  padding:clamp(22px,2.2vw,32px);
  border-right:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  transition:background .35s ease,padding .35s ease;
}
.directory-card:hover,
.directory-card:focus-visible{
  background:rgba(168,138,77,.06);
  padding-left:clamp(26px,2.6vw,40px);
}
.directory-card h3{
  margin-top:8px;
  font-size:clamp(24px,2vw,31px);
}
.directory-card p{
  color:var(--ink-soft);
  font-size:14.5px;
  line-height:1.6;
  max-width:30ch;
}
.directory-card .arr{
  margin-top:auto;
  font-family:var(--serif);
  font-size:22px;
  color:var(--gold);
  transition:transform .35s ease;
}
.directory-card:hover .arr,
.directory-card:focus-visible .arr{transform:translateX(6px)}

.overview{background:var(--paper)}
.overview-grid{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:clamp(40px,6vw,100px);
  margin-top:clamp(40px,5vw,72px);
  align-items:start;
}
.pull{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(28px,2.6vw,38px);
  line-height:1.2;
  color:var(--ink);
  letter-spacing:-.012em;
}
.pull em{color:var(--gold)}
.overview-copy{margin-top:32px;max-width:56ch}
.overview-link{margin-top:36px}
.overview-meta{
  display:flex;
  flex-direction:column;
  gap:18px;
  font-size:14px;
  color:var(--ink-soft);
}
.meta-row{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:14px 0;
  border-bottom:1px solid var(--rule-soft);
}
.meta-row .k{
  color:var(--ink-mute);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.meta-row .v{
  font-family:var(--serif);
  font-size:18px;
  color:var(--ink);
  text-align:right;
}
.overview-quote{
  margin-top:20px;
  font-family:var(--serif);
  font-style:italic;
  font-weight:300;
  font-size:18px;
  color:var(--ink-soft);
  line-height:1.5;
}
.model-lead,.practices-lead,.industries-lead{margin-top:20px}

.model-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  margin-top:clamp(40px,5vw,64px);
  border-top:1px solid var(--rule);
}
.model-card{
  padding:clamp(28px,2.6vw,40px) clamp(20px,2vw,32px);
  border-right:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  min-height:320px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  transition:background .4s ease;
}
.model-card:hover{background:rgba(168,138,77,.05)}
.model-card h3{font-size:24px}
.model-card p{margin-top:14px;font-size:14.5px;line-height:1.55;color:var(--ink-soft)}
.model-card .tag{
  margin-top:24px;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink-mute);
}

.practices{
  background:var(--ink);
  color:var(--ivory);
}
.practices .eyebrow{color:rgba(244,238,226,.65)}
.practices .eyebrow .num{color:var(--gold-2)}
.practices .eyebrow .dot{background:var(--gold-2)}
.practices h2{color:var(--ivory)}
.practices .lead{color:rgba(244,238,226,.7)}
.practices .section-head{border-bottom-color:var(--rule-on-ink)}
.practice-list{
  margin-top:clamp(40px,5vw,64px);
  display:grid;
  grid-template-columns:repeat(2,1fr);
}
.practice-row{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:24px;
  padding:22px clamp(18px,2vw,28px);
  border-bottom:1px solid var(--rule-on-ink);
  transition:padding .35s ease,background .35s ease;
}
.practice-row:nth-child(odd){border-right:1px solid var(--rule-on-ink)}
.practice-row:hover,
.practice-row:focus-visible{
  background:rgba(244,238,226,.04);
  padding-left:clamp(24px,2.6vw,36px);
}
.practice-row .name{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(22px,2vw,30px);
  line-height:1.15;
  color:var(--ivory);
}
.practice-row .arr{
  font-size:22px;
  color:rgba(244,238,226,.45);
  transition:transform .35s ease,color .35s ease;
}
.practice-row:hover .arr,
.practice-row:focus-visible .arr{
  transform:translateX(6px);
  color:var(--gold-2);
}

.practice-details{
  background:var(--paper);
}
.practice-detail-list{
  margin-top:clamp(40px,5vw,64px);
  display:flex;
  flex-direction:column;
  border-top:1px solid var(--rule);
}
.practice-detail{
  scroll-margin-top:96px;
  display:grid;
  grid-template-columns:minmax(250px,.42fr) minmax(0,1fr);
  gap:clamp(28px,5vw,72px);
  padding:clamp(34px,4vw,60px) 0;
  border-bottom:1px solid var(--rule);
}
.practice-detail-head{
  display:block;
}
.practice-detail h3{
  font-size:clamp(30px,3vw,46px);
  line-height:1.02;
}
.practice-copy{
  max-width:860px;
  color:var(--ink-soft);
  font-size:15.5px;
  line-height:1.74;
}
.practice-copy p + p,
.practice-copy ul + p,
.practice-copy p + ul{margin-top:1em}
.practice-copy ul{
  margin:1em 0 0;
  padding-left:1.1rem;
}
.practice-copy li + li{margin-top:.55em}

.industries-grid{
  margin-top:clamp(40px,5vw,64px);
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
  border-top:1px solid var(--rule);
  border-left:1px solid var(--rule);
}
.ind-cell{
  border-right:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  padding:22px 24px;
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(18px,1.4vw,22px);
  color:var(--ink);
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  min-height:92px;
  transition:background .35s ease;
}
.ind-cell:hover{background:rgba(168,138,77,.06)}
.leadership{background:var(--paper)}
.leaders{
  margin-top:clamp(40px,5vw,64px);
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(24px,2.4vw,40px);
}
.leader{
  display:flex;
  flex-direction:column;
  border-top:1px solid var(--ink);
  padding-top:22px;
}
.leader .portrait{
  aspect-ratio:4 / 5;
  width:100%;
  background:
    linear-gradient(180deg,rgba(244,238,226,.12),rgba(14,20,16,.08)),
    repeating-linear-gradient(135deg,rgba(14,20,16,.04) 0 2px,rgba(14,20,16,0) 2px 9px),
    var(--ivory-2);
  border:1px solid var(--rule);
  margin-bottom:22px;
  position:relative;
  overflow:hidden;
}
.portrait-image{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.96) contrast(1.02);
}
.portrait-abhishek{object-position:center 20%}
.portrait-kantawala{object-position:center 18%}
.portrait-yatin{object-position:center 16%}
.leader .name{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(24px,2vw,30px);
  line-height:1.1;
  color:var(--ink);
}
.leader .role{
  margin-top:10px;
  font-size:13px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink-soft);
}
.leader .blurb{
  margin-top:18px;
  font-size:14.5px;
  line-height:1.6;
  color:var(--ink-soft);
  max-width:38ch;
}
.leader .creds{
  margin-top:22px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.leader .creds span{
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:.04em;
  border:1px solid var(--rule);
  padding:6px 10px;
  color:var(--ink-soft);
}

.team-profiles{
  margin-top:clamp(40px,5vw,64px);
  display:flex;
  flex-direction:column;
  border-top:1px solid var(--rule);
}
.team-profile{
  display:grid;
  grid-template-columns:minmax(240px,.42fr) minmax(0,1fr);
  gap:clamp(28px,5vw,72px);
  padding:clamp(30px,4vw,56px) 0;
  border-bottom:1px solid var(--rule);
}
.profile-head{
  display:block;
}
.profile-num{
  font-family:var(--mono);
  color:var(--gold);
  font-size:11px;
  letter-spacing:.04em;
  padding-top:8px;
}
.team-profile h3{
  font-size:clamp(30px,3vw,44px);
  line-height:1;
}
.team-profile .role{
  margin-top:12px;
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink-soft);
}
.profile-copy{
  max-width:880px;
  color:var(--ink-soft);
  font-size:15.5px;
  line-height:1.72;
  text-align:justify;
  text-justify:inter-word;
}
.profile-copy p + p{margin-top:1em}

.reach-grid{
  margin-top:clamp(40px,5vw,64px);
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:clamp(36px,5vw,80px);
  align-items:start;
}
.offices{display:flex;flex-direction:column}
.office{
  display:grid;
  grid-template-columns:1fr auto;
  gap:24px;
  padding:28px 0;
  border-bottom:1px solid var(--rule);
  align-items:start;
}
.office:first-child{border-top:1px solid var(--rule)}
.office .city{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(28px,2.4vw,38px);
  line-height:1.05;
  color:var(--ink);
}
.office .addr{
  margin-top:8px;
  font-size:14px;
  color:var(--ink-soft);
  line-height:1.55;
}
.office .role{
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink-mute);
  padding-top:10px;
}
.office-links{
  margin-top:14px;
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  font-size:13px;
}
.office-links a{
  color:var(--ink-soft);
  border-bottom:1px solid transparent;
}
.office-links a:hover,
.office-links a:focus-visible{
  color:var(--ink);
  border-bottom-color:var(--gold);
}

.reach-aside{
  background:var(--ink);
  color:var(--ivory);
  padding:clamp(28px,3vw,44px);
  border:1px solid var(--ink);
  display:flex;
  flex-direction:column;
  gap:22px;
}
.reach-aside .label{
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:rgba(244,238,226,.6);
}
.reach-aside .quote{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(22px,1.7vw,26px);
  line-height:1.35;
  color:var(--ivory);
}
.reach-aside .quote em{color:var(--gold-2)}
.reach-aside .stats{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
  padding-top:22px;
  border-top:1px solid var(--rule-on-ink);
}
.reach-aside .stats .v{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(28px,2.6vw,36px);
  color:var(--ivory);
  line-height:1;
}
.reach-aside .stats .k{
  margin-top:8px;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(244,238,226,.55);
}

.contact{
  padding:clamp(100px,12vw,200px) 0 clamp(64px,7vw,104px);
  background:var(--ink);
  color:var(--ivory);
  text-align:center;
  position:relative;
  overflow:hidden;
}
.contact .ring{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:80vw;
  max-width:900px;
  aspect-ratio:1;
  border-radius:50%;
  border:1px solid rgba(244,238,226,.07);
  pointer-events:none;
}
.contact .ring::after{
  content:"";
  position:absolute;
  inset:6%;
  border-radius:50%;
  border:1px solid rgba(168,138,77,.18);
}
.contact .eyebrow{color:rgba(244,238,226,.6);position:relative;z-index:2}
.contact .eyebrow .num{color:var(--gold-2)}
.contact .eyebrow .dot{background:var(--gold-2)}
.contact h2{
  color:var(--ivory);
  max-width:22ch;
  margin:28px auto 0;
  font-size:clamp(38px,5.4vw,80px);
  position:relative;
  z-index:2;
}
.contact h2 em{color:var(--gold-2)}
.contact .sub{
  margin:28px auto 0;
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(18px,1.5vw,22px);
  color:rgba(244,238,226,.7);
  max-width:50ch;
  position:relative;
  z-index:2;
}
.contact .ctas{
  margin-top:44px;
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  justify-content:center;
  position:relative;
  z-index:2;
}
.contact .btn-primary{
  background:var(--ivory);
  color:var(--ink);
  border-color:var(--ivory);
}
.contact .btn-primary:hover,
.contact .btn-primary:focus-visible{
  background:var(--gold-2);
  border-color:var(--gold-2);
  color:var(--ink);
}
.contact .btn-ghost{
  color:var(--ivory);
  border-color:rgba(244,238,226,.4);
}
.contact .btn-ghost:hover,
.contact .btn-ghost:focus-visible{
  background:var(--ivory);
  color:var(--ink);
  border-color:var(--ivory);
}

.contact-panel{
  position:relative;
  z-index:2;
  margin-top:56px;
  text-align:left;
}
.contact-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
}
.contact-block{
  background:rgba(244,238,226,.05);
  border:1px solid rgba(244,238,226,.12);
  padding:28px;
  min-height:100%;
  backdrop-filter:blur(1px);
}
.contact-block-wide{grid-column:1 / -1}
.contact-block h3{
  color:var(--ivory);
  font-size:28px;
}
.contact-list{
  margin-top:18px;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.contact-link{
  color:rgba(244,238,226,.82);
  word-break:break-word;
}
.contact-link:hover,
.contact-link:focus-visible{color:var(--gold-2)}
.copy-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
}
.copy-btn{
  flex:none;
  border:1px solid rgba(244,238,226,.22);
  background:transparent;
  color:rgba(244,238,226,.78);
  padding:8px 12px;
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  cursor:pointer;
  transition:border-color .3s ease,background .3s ease,color .3s ease;
}
.copy-btn:hover,
.copy-btn:focus-visible{
  border-color:var(--gold-2);
  color:var(--ivory);
}
.copy-btn.is-copied{
  background:rgba(168,138,77,.18);
  border-color:var(--gold-2);
  color:var(--ivory);
}
.office-stack{
  margin-top:18px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.office-card{
  border:1px solid rgba(244,238,226,.12);
  padding:20px;
  background:rgba(14,20,16,.14);
}
.office-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
  font-family:var(--serif);
  font-size:24px;
  color:var(--ivory);
}
.office-card-head a{
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(244,238,226,.76);
}
.office-card-head a:hover,
.office-card-head a:focus-visible{color:var(--gold-2)}
.office-card p{
  color:rgba(244,238,226,.72);
  font-size:14px;
  line-height:1.6;
}

footer{
  background:var(--ink);
  color:rgba(244,238,226,.7);
  padding:60px 0 40px;
  border-top:1px solid var(--rule-on-ink);
  font-size:13px;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.35fr 1fr 1fr 1.1fr;
  gap:clamp(24px,3vw,48px);
}
footer h4{
  font-family:var(--sans);
  font-weight:500;
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:rgba(244,238,226,.5);
  margin-bottom:18px;
}
footer ul{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}
footer a:hover,
footer a:focus-visible{color:var(--gold-2)}
.footer-brand-text{
  display:inline-block;
  font-family:var(--serif);
  font-size:clamp(26px,2.2vw,34px);
  line-height:1.05;
  color:var(--ivory);
  letter-spacing:0;
}
.footer-brand p{
  margin-top:18px;
  max-width:38ch;
  line-height:1.6;
  color:rgba(244,238,226,.6);
}
.footer-contact-list .copy-row{align-items:center}
.copy-btn-footer{
  border-color:rgba(244,238,226,.18);
  color:rgba(244,238,226,.7);
}
.footer-base{
  margin-top:60px;
  padding-top:24px;
  border-top:1px solid var(--rule-on-ink);
  display:flex;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.04em;
  color:rgba(244,238,226,.45);
}
.footer-base-links{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  align-items:center;
}
.footer-disclaimer-link{
  background:none;
  border:0;
  padding:0;
  color:rgba(244,238,226,.7);
  cursor:pointer;
  border-bottom:1px solid transparent;
}
.footer-disclaimer-link:hover,
.footer-disclaimer-link:focus-visible{
  color:var(--gold-2);
  border-bottom-color:var(--gold-2);
}

.section-head-blog{
  align-items:flex-end;
}

.insights-preview{
  background:var(--paper);
  padding-top:clamp(72px,8vw,120px);
  padding-bottom:clamp(72px,8vw,120px);
}

.insights-grid{
  margin-top:clamp(36px,4vw,56px);
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.insight-card{
  border-top:1px solid var(--ink);
  padding-top:20px;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.insight-card-meta{
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink-mute);
}

.insight-card h3{
  font-size:clamp(24px,2vw,31px);
  line-height:1.1;
  max-width:16ch;
}

.insight-card p{
  font-size:14.5px;
  line-height:1.65;
  color:var(--ink-soft);
  max-width:42ch;
}

.blog-hero,
.article-hero{
  padding-top:clamp(76px,9vw,132px);
  padding-bottom:clamp(56px,7vw,96px);
  background:var(--paper);
}

.blog-hero-grid,
.article-hero-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:clamp(28px,5vw,72px);
  align-items:end;
}

.blog-hero h1,
.article-hero h1{
  margin-top:20px;
  max-width:13ch;
}

.article-back{
  margin-bottom:18px;
}

.article-meta-panel{
  border-top:1px solid var(--rule);
  padding-top:20px;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.article-meta-row{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding-bottom:14px;
  border-bottom:1px solid var(--rule-soft);
  font-size:13px;
  color:var(--ink-soft);
}

.article-meta-row span{
  color:var(--ink-mute);
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:11px;
}

.article-meta-row strong{
  font-weight:500;
  text-align:right;
}

.article-meta-row a{
  border-bottom:1px solid var(--gold);
}

.insights-archive,
.article-body-section,
.article-more{
  background:var(--ivory);
}

.article-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  gap:clamp(32px,5vw,72px);
  align-items:start;
}

.article-body{
  max-width:820px;
}

.article-body > * + *{
  margin-top:1.05em;
}

.article-body p,
.article-body li,
.article-body td,
.article-body th{
  font-size:15.5px;
  line-height:1.75;
  color:var(--ink-soft);
}

.article-body h2,
.article-body h3,
.article-body h4{
  margin-top:1.4em;
  color:var(--ink);
}

.article-body ul,
.article-body ol{
  padding-left:1.4rem;
}

.article-body a{
  color:var(--ink);
  border-bottom:1px solid var(--gold);
}

.article-body blockquote{
  margin-left:0;
  padding-left:18px;
  border-left:2px solid var(--gold);
  color:var(--ink);
}

.article-body table{
  width:100%;
  border-collapse:collapse;
  margin-top:1.2em;
}

.article-body th,
.article-body td{
  border:1px solid var(--rule);
  padding:10px 12px;
  vertical-align:top;
}

.article-aside-card,
.blog-cta-panel{
  background:var(--ink);
  color:var(--ivory);
  padding:clamp(24px,3vw,36px);
}

.article-aside-card{
  position:sticky;
  top:96px;
  display:flex;
  flex-direction:column;
  gap:18px;
}

.article-aside-card h3,
.blog-cta-panel h2{
  color:var(--ivory);
}

.article-aside-card p{
  color:rgba(244,238,226,.72);
}

.blog-cta{
  background:var(--ivory);
  padding-top:0;
}

.blog-cta-panel{
  display:flex;
  justify-content:space-between;
  gap:28px;
  align-items:flex-end;
}

.blog-cta-actions{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
}

.blog-cta .eyebrow,
.article-aside-card .eyebrow{
  color:rgba(244,238,226,.65);
}

.blog-cta .eyebrow .num,
.article-aside-card .eyebrow .num{
  color:var(--gold-2);
}

.blog-cta .eyebrow .dot,
.article-aside-card .eyebrow .dot{
  background:var(--gold-2);
}

.blog-cta .btn-primary,
.article-aside-card .btn-primary{
  background:var(--ivory);
  color:var(--ink);
  border-color:var(--ivory);
}

.blog-cta .btn-primary:hover,
.blog-cta .btn-primary:focus-visible,
.article-aside-card .btn-primary:hover,
.article-aside-card .btn-primary:focus-visible{
  background:var(--gold-2);
  border-color:var(--gold-2);
  color:var(--ink);
}

.blog-cta .btn-ghost{
  border-color:rgba(244,238,226,.35);
  color:var(--ivory);
}

.blog-cta .btn-ghost:hover,
.blog-cta .btn-ghost:focus-visible{
  background:var(--ivory);
  color:var(--ink);
  border-color:var(--ivory);
}

.disclaimer-backdrop{
  position:fixed;
  inset:0;
  background:rgba(10,12,10,.58);
  backdrop-filter:blur(6px);
  z-index:99;
}
.disclaimer-modal{
  position:fixed;
  inset:0;
  display:grid;
  place-items:center;
  padding:24px;
  z-index:100;
}
.disclaimer-backdrop[hidden],
.disclaimer-modal[hidden]{display:none}
.disclaimer-panel{
  width:min(100%,820px);
  max-height:min(88vh,920px);
  overflow:auto;
  background:linear-gradient(180deg,rgba(251,247,238,.98),rgba(244,238,226,.98));
  border:1px solid rgba(14,20,16,.12);
  box-shadow:0 40px 120px rgba(10,12,10,.22);
  padding:32px clamp(22px,3vw,38px);
  position:relative;
}
.disclaimer-panel .eyebrow{margin-bottom:16px}
.disclaimer-panel h2{
  font-size:clamp(36px,4.2vw,54px);
  margin-bottom:18px;
}
.disclaimer-copy{
  color:var(--ink-soft);
  font-size:15px;
  line-height:1.7;
}
.disclaimer-copy p + p{margin-top:14px}
.disclaimer-actions{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  margin-top:28px;
  flex-wrap:wrap;
}
.disclaimer-exit{
  font-size:13px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink-soft);
  border-bottom:1px solid var(--rule);
  padding-bottom:4px;
}
.disclaimer-close{
  position:absolute;
  top:18px;
  right:18px;
  width:40px;
  height:40px;
  border:1px solid var(--rule);
  background:transparent;
  color:var(--ink);
  cursor:pointer;
  font-size:24px;
  line-height:1;
}

.reveal{
  opacity:0;
  transform:translateY(14px);
  transition:opacity .9s ease,transform .9s ease;
}
.reveal.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}

@media (max-width:1100px){
  .office-card-head{flex-direction:column;align-items:flex-start}
}

@media (max-width:1000px){
  .model-grid{grid-template-columns:repeat(2,1fr)}
  .directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .model-card:nth-child(2n){border-right:0}
  .leaders{grid-template-columns:1fr}
  .office-stack{grid-template-columns:1fr}
  .insights-grid{grid-template-columns:1fr 1fr}
  .article-layout{grid-template-columns:1fr}
  .article-aside-card{position:static}
}

@media (max-width:900px){
  .nav-burger{display:block}
  .nav-menu{
    position:absolute;
    top:calc(100% + 12px);
    right:var(--gutter);
    width:min(360px,calc(100vw - (var(--gutter) * 2)));
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:18px;
    padding:22px;
    background:rgba(251,247,238,.98);
    border:1px solid var(--rule);
    box-shadow:var(--shadow-soft);
  }
  .nav-menu.is-open{display:flex}
  .nav-links{
    flex-direction:column;
    align-items:flex-start;
    gap:16px;
  }
  .nav-cta-d{display:flex}
  .hero-bottom,
  .reach-grid,
  .contact-grid,
  .blog-hero-grid,
  .article-hero-grid{grid-template-columns:1fr}
  .office{
    grid-template-columns:1fr;
    gap:14px;
  }
  .office .role{padding-top:0}
}

@media (max-width:820px){
  .overview-grid,
  .hero-bottom{grid-template-columns:1fr}
  .team-profile,
  .practice-detail{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
}

@media (max-width:760px){
  .practice-list{grid-template-columns:1fr}
  .practice-row:nth-child(odd){border-right:0}
}

@media (max-width:720px){
  .section-head{grid-template-columns:1fr;align-items:start}
  .section-head-inline{align-items:flex-start}
  .hero-meta{flex-direction:column;align-items:flex-start}
  .meta-row{flex-direction:column}
  .meta-row .v{text-align:left}
  .contact .ctas{justify-content:flex-start}
  .blog-cta-panel{flex-direction:column;align-items:flex-start}
}

@media (max-width:560px){
  section{padding:72px 0}
  .model-grid{grid-template-columns:1fr}
  .directory-grid{grid-template-columns:1fr}
  .model-card{border-right:0;min-height:auto}
  .directory-card{min-height:auto}
  .contact-block{padding:22px}
  .footer-grid{grid-template-columns:1fr}
  .footer-base{flex-direction:column}
  .insights-grid{grid-template-columns:1fr}
  .article-meta-row{flex-direction:column}
  .article-meta-row strong{text-align:left}
}

@media (max-width:480px){
  .btn{width:100%;justify-content:center}
  .hero-ctas,
  .contact .ctas{width:100%}
  .copy-row{align-items:stretch}
  .copy-btn{width:100%}
  .disclaimer-actions{flex-direction:column;align-items:stretch}
  .disclaimer-exit,.disclaimer-accept{width:100%;text-align:center;justify-content:center}
}
