:root{
  --ink:#0E1512;
  --ink-2:#152019;
  --ink-line:rgba(237,233,221,0.14);
  --paper:#EDE9DD;
  --paper-2:#E3DECE;
  --paper-3:#DAD4C0;
  --emerald:#1F4B3F;
  --emerald-deep:#123028;
  --brass:#A9762F;
  --brass-bright:#C68F3E;
  --text-dark:#1B1B16;
  --text-muted:#5B5B4E;
  --text-on-ink:#EDE9DD;
  --text-on-ink-muted:#9AA69E;
  --error:#9C3B2E;
  --serif:'Fraunces', serif;
  --sans:'Inter', sans-serif;
  --mono:'IBM Plex Mono', monospace;
}

*{margin:0;padding:0;box-sizing:border-box;}

html{scroll-behavior:smooth;scroll-padding-top:88px;}

body{
  font-family:var(--sans);
  background:var(--paper);
  color:var(--text-dark);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

a{color:inherit;text-decoration:none;}
img,svg{display:block;max-width:100%;}

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

.wrap{
  max-width:1180px;
  margin:0 auto;
  padding:0 32px;
}

/* ---------- NAV ---------- */
header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(14,21,18,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--ink-line);
}
nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 32px;
  max-width:1180px;
  margin:0 auto;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--text-on-ink);
}
.brand-mark{
  width:34px;height:34px;flex-shrink:0;
}
.brand-name{
  font-family:var(--serif);
  font-weight:600;
  font-size:17px;
  letter-spacing:0.01em;
}
.brand-name span{
  display:block;
  font-family:var(--mono);
  font-size:9px;
  font-weight:400;
  letter-spacing:0.18em;
  color:var(--text-on-ink-muted);
  margin-top:2px;
}
.nav-links{
  display:flex;
  gap:36px;
  list-style:none;
}
.nav-links a{
  font-size:13.5px;
  color:var(--text-on-ink-muted);
  transition:color 0.2s ease;
  letter-spacing:0.01em;
}
.nav-links a:hover, .nav-links a[aria-current="page"]{color:var(--text-on-ink);}
.nav-cta{
  font-family:var(--mono);
  font-size:12px;
  color:var(--ink);
  background:var(--paper);
  padding:10px 18px;
  border-radius:2px;
  letter-spacing:0.03em;
  border:1px solid var(--paper);
  transition:background 0.2s ease, color 0.2s ease;
}
.nav-cta:hover{background:transparent;color:var(--paper);}

.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:44px;height:44px;
  margin-right:-10px;
  padding:0;
  background:none;
  border:none;
  cursor:pointer;
  align-items:flex-end;
}
.nav-toggle-bar{
  display:block;
  width:22px;height:1.5px;
  background:var(--text-on-ink);
  transition:transform 0.25s ease, opacity 0.2s ease, width 0.25s ease;
}
.nav-toggle-bar:nth-child(2){width:16px;}
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);width:22px;}

.mobile-nav{
  display:none;
  overflow:hidden;
  border-top:1px solid var(--ink-line);
  background:rgba(14,21,18,0.98);
  grid-template-rows:0fr;
  transition:grid-template-rows 0.28s ease;
}
.mobile-nav.open{grid-template-rows:1fr;}
.mobile-nav > div{
  min-height:0;
  visibility:hidden;
  transition:visibility 0.28s ease;
}
.mobile-nav.open > div{visibility:visible;}
.mobile-nav ul{
  list-style:none;
  display:flex;
  flex-direction:column;
  padding:8px 20px 20px;
}
.mobile-nav ul a{
  display:block;
  padding:14px 0;
  font-size:15px;
  color:var(--text-on-ink-muted);
  border-bottom:1px solid var(--ink-line);
  transition:color 0.2s ease;
}
.mobile-nav ul a:hover, .mobile-nav ul a[aria-current="page"]{color:var(--text-on-ink);}
.mobile-nav .nav-cta{
  display:inline-block;
  margin:18px 20px 24px;
  text-align:center;
}

/* ---------- HERO (home) ---------- */
.hero{
  background:var(--ink);
  color:var(--text-on-ink);
  position:relative;
  overflow:hidden;
  padding:96px 0 64px;
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:radial-gradient(circle at 1px 1px, rgba(237,233,221,0.05) 1px, transparent 0);
  background-size:28px 28px;
  pointer-events:none;
}
.hero-inner{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:56px;
  align-items:center;
}
.eyebrow{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--brass-bright);
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:26px;
}
.eyebrow::before{
  content:"";
  width:22px;height:1px;
  background:var(--brass-bright);
}
.hero h1{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(38px, 5vw, 60px);
  line-height:1.08;
  letter-spacing:-0.01em;
  max-width:12ch;
}
.hero h1 em{
  font-style:italic;
  font-weight:400;
  color:var(--brass-bright);
}
.hero p.lead{
  margin-top:24px;
  font-size:17px;
  line-height:1.65;
  color:var(--text-on-ink-muted);
  max-width:46ch;
}
.hero-actions{
  display:flex;
  gap:16px;
  margin-top:38px;
  flex-wrap:wrap;
}
.btn-primary{
  font-family:var(--mono);
  font-size:13px;
  letter-spacing:0.02em;
  background:var(--brass-bright);
  color:var(--ink);
  padding:14px 24px;
  border-radius:2px;
  transition:background 0.2s ease, transform 0.2s ease;
}
.btn-primary:hover{background:#DBA754; transform:translateY(-1px);}
.btn-secondary{
  font-family:var(--mono);
  font-size:13px;
  letter-spacing:0.02em;
  padding:14px 24px;
  border-radius:2px;
  border:1px solid var(--ink-line);
  color:var(--text-on-ink);
  transition:border-color 0.2s ease, background 0.2s ease;
}
.btn-secondary:hover{border-color:var(--text-on-ink-muted); background:rgba(237,233,221,0.04);}

/* Signature graphic: signal from noise */
.signal{
  position:relative;
  aspect-ratio:1/1;
}
.signal svg{width:100%;height:100%;}
.signal-caption{
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:0.1em;
  color:var(--text-on-ink-muted);
  text-align:center;
  margin-top:14px;
  text-transform:uppercase;
}
.noise-path{
  fill:none;
  stroke:#3E4F47;
  stroke-width:1.1;
  opacity:0.85;
  stroke-dasharray:900;
  stroke-dashoffset:900;
  animation:draw-noise 1.8s ease-out forwards, fade-noise 1.4s ease-in 2.2s forwards;
}
.signal-path{
  fill:none;
  stroke:var(--brass-bright);
  stroke-width:2.2;
  stroke-dasharray:900;
  stroke-dashoffset:900;
  animation:draw-signal 1.6s cubic-bezier(0.65,0,0.35,1) 1.6s forwards;
}
@keyframes draw-noise{ to{stroke-dashoffset:0;} }
@keyframes fade-noise{ to{opacity:0;} }
@keyframes draw-signal{ to{stroke-dashoffset:0;} }

@media (prefers-reduced-motion: reduce){
  .noise-path, .signal-path{ animation:none; stroke-dashoffset:0; }
  .noise-path{opacity:0;}
}

/* ---------- PAGE HERO (inner pages) ---------- */
.page-hero{
  background:var(--ink);
  color:var(--text-on-ink);
  padding:64px 0 56px;
  border-bottom:1px solid var(--ink-line);
}
.breadcrumb{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--text-on-ink-muted);
  margin-bottom:18px;
}
.breadcrumb a{transition:color 0.2s ease;}
.breadcrumb a:hover{color:var(--text-on-ink);}
.page-hero h1{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(32px, 4.2vw, 48px);
  line-height:1.12;
  letter-spacing:-0.01em;
  max-width:18ch;
}
.page-hero p.lead{
  margin-top:18px;
  font-size:15.5px;
  line-height:1.65;
  color:var(--text-on-ink-muted);
  max-width:52ch;
}

/* ---------- THESIS / INTRO ---------- */
.thesis{
  padding:88px 0;
  border-bottom:1px solid var(--paper-3);
}
.thesis-inner{
  display:grid;
  grid-template-columns:0.5fr 1fr;
  gap:56px;
}
.thesis .label{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--emerald);
}
.thesis p{
  font-family:var(--serif);
  font-size:clamp(22px, 2.6vw, 30px);
  line-height:1.42;
  font-weight:400;
  color:var(--text-dark);
}
.thesis p + p{ margin-top:20px; }
.thesis .accent{ color:var(--emerald); font-style:italic; }

/* ---------- PRACTICE AREAS ---------- */
.practice{
  padding:88px 0;
  background:var(--paper-2);
  border-bottom:1px solid var(--paper-3);
}
.section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  margin-bottom:52px;
  gap:24px;
  flex-wrap:wrap;
}
.section-head h2{
  font-family:var(--serif);
  font-size:clamp(28px,3.4vw,38px);
  font-weight:500;
  letter-spacing:-0.01em;
}
.section-head .label{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--brass);
  margin-bottom:10px;
  display:block;
}
.section-head .desc{
  max-width:34ch;
  color:var(--text-muted);
  font-size:14.5px;
}

.pillars{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--paper-3);
  border:1px solid var(--paper-3);
}
.pillar{
  background:var(--paper-2);
  padding:40px 32px;
  transition:background 0.25s ease;
}
.pillar:hover{ background:var(--paper); }
.pillar-icon{
  width:38px;height:38px;
  margin-bottom:28px;
  color:var(--emerald);
}
.pillar h3{
  font-family:var(--serif);
  font-size:21px;
  font-weight:500;
  margin-bottom:14px;
}
.pillar p{
  color:var(--text-muted);
  font-size:14.5px;
  line-height:1.65;
  margin-bottom:20px;
}
.pillar ul{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:9px;
}
.pillar ul li{
  font-family:var(--mono);
  font-size:12px;
  color:var(--text-dark);
  padding-left:16px;
  position:relative;
}
.pillar ul li::before{
  content:"";
  position:absolute;
  left:0;top:6px;
  width:6px;height:1px;
  background:var(--brass);
}

/* Standalone practice page: pillar detail with process steps */
.pillar-detail{
  padding:88px 0;
  border-bottom:1px solid var(--paper-3);
}
.pillar-detail:nth-child(even){ background:var(--paper-2); }
.pillar-detail-inner{
  display:grid;
  grid-template-columns:0.45fr 1fr;
  gap:56px;
}
.pillar-detail .kicker{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--brass);
  margin-bottom:14px;
  display:block;
}
.pillar-detail h2{
  font-family:var(--serif);
  font-size:clamp(24px,2.8vw,32px);
  font-weight:500;
  line-height:1.2;
}
.pillar-detail-icon{
  width:40px;height:40px;
  color:var(--emerald);
  margin-bottom:20px;
}
.pillar-detail p.summary{
  font-size:15.5px;
  line-height:1.7;
  color:var(--text-muted);
  max-width:60ch;
  margin-bottom:28px;
}
.capability-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px 32px;
}
.capability{
  padding-top:16px;
  border-top:1px solid var(--paper-3);
}
.capability .num{
  font-family:var(--mono);
  font-size:11px;
  color:var(--brass);
  margin-bottom:8px;
  display:block;
}
.capability h4{
  font-family:var(--serif);
  font-size:16.5px;
  font-weight:500;
  margin-bottom:6px;
}
.capability p{
  font-size:13.5px;
  color:var(--text-muted);
  line-height:1.6;
}

/* ---------- APPROACH ---------- */
.approach{
  padding:88px 0;
  background:var(--ink);
  color:var(--text-on-ink);
}
.approach .section-head h2{ color:var(--text-on-ink); }
.approach .section-head .desc{ color:var(--text-on-ink-muted); }
.principles{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:44px;
}
.principle .name{
  font-family:var(--serif);
  font-style:italic;
  font-size:20px;
  color:var(--brass-bright);
  margin-bottom:14px;
}
.principle p{
  font-size:14px;
  line-height:1.7;
  color:var(--text-on-ink-muted);
}
.principle-rule{
  width:100%;
  height:1px;
  background:var(--ink-line);
  margin-bottom:24px;
}

/* ---------- STATS STRIP ---------- */
.stats{
  padding:56px 0;
  background:var(--emerald-deep);
  color:var(--text-on-ink);
}
.stats-inner{
  display:grid;
  grid-template-columns:repeat(4,1fr);
}
.stat{
  padding:0 28px;
  border-left:1px solid rgba(237,233,221,0.16);
}
.stat:first-child{ border-left:none; padding-left:0; }
.stat .num{
  font-family:var(--serif);
  font-size:clamp(30px,3.6vw,44px);
  font-weight:500;
  color:var(--brass-bright);
}
.stat .lbl{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--text-on-ink-muted);
  margin-top:8px;
}

/* ---------- INSIGHTS ---------- */
.insights{
  padding:88px 0;
  border-bottom:1px solid var(--paper-3);
}
.insight-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
.insight-card{
  border:1px solid var(--paper-3);
  padding:28px;
  display:flex;
  flex-direction:column;
  gap:18px;
  transition:border-color 0.2s ease, transform 0.2s ease;
}
.insight-card:hover, .insight-card:focus-within{
  border-color:var(--brass);
  transform:translateY(-2px);
}
.insight-meta{
  display:flex;
  justify-content:space-between;
  font-family:var(--mono);
  font-size:11px;
  color:var(--text-muted);
  text-transform:uppercase;
  letter-spacing:0.04em;
}
.insight-card h4{
  font-family:var(--serif);
  font-size:19px;
  font-weight:500;
  line-height:1.35;
}
.insight-card p{
  font-size:13.5px;
  color:var(--text-muted);
  line-height:1.6;
}
.insight-link{
  font-family:var(--mono);
  font-size:12px;
  color:var(--emerald);
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:auto;
}
.insight-link:hover{ text-decoration:underline; }
.insight-card .insight-link::after{
  content:"";
  position:absolute;
  inset:0;
}
.insight-card{ position:relative; }

.insight-locked{
  font-family:var(--mono);
  font-size:11.5px;
  color:var(--text-muted);
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:auto;
}
.insight-locked svg{ width:11px; height:11px; flex-shrink:0; }

/* ---------- CTA BANNER (home) ---------- */
.cta-banner{
  padding:88px 0;
  background:var(--ink);
  color:var(--text-on-ink);
  text-align:center;
}
.cta-banner h2{
  font-family:var(--serif);
  font-size:clamp(28px,3.6vw,40px);
  font-weight:500;
  max-width:20ch;
  margin:0 auto;
}
.cta-banner p{
  margin:18px auto 0;
  color:var(--text-on-ink-muted);
  font-size:15px;
  max-width:44ch;
}
.cta-banner .hero-actions{
  justify-content:center;
  margin-top:34px;
}

/* ---------- CONTACT ---------- */
.contact{
  padding:96px 0 64px;
  background:var(--paper-2);
}
.contact-inner{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:64px;
}
.contact h2{
  font-family:var(--serif);
  font-size:clamp(30px,4vw,44px);
  font-weight:500;
  line-height:1.15;
  max-width:14ch;
}
.contact p.desc{
  margin-top:20px;
  color:var(--text-muted);
  font-size:15px;
  max-width:42ch;
}
.contact-details{
  margin-top:36px;
  display:flex;
  flex-direction:column;
  gap:20px;
}
.contact-details .item{
  padding-top:16px;
  border-top:1px solid var(--paper-3);
}
.contact-details .lbl{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--brass);
  display:block;
  margin-bottom:6px;
}
.contact-details .val{
  font-size:14.5px;
  color:var(--text-dark);
  line-height:1.6;
}
.contact-details .val a:hover{ text-decoration:underline; }
.contact-form{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.field{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.field label{
  font-family:var(--mono);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--text-muted);
}
.field .hint{
  font-family:var(--sans);
  font-size:12px;
  color:var(--text-muted);
  text-transform:none;
  letter-spacing:normal;
  font-weight:400;
}
.field input, .field select, .field textarea{
  font-family:var(--sans);
  font-size:14px;
  padding:12px 14px;
  background:var(--paper);
  border:1px solid var(--paper-3);
  border-radius:2px;
  color:var(--text-dark);
}
.field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible{
  outline:2px solid var(--brass-bright);
  outline-offset:1px;
  border-color:var(--brass-bright);
}
.field textarea{ resize:vertical; min-height:96px; }
.field-check{
  display:flex;
  align-items:flex-start;
  gap:10px;
}
.field-check input{ margin-top:3px; accent-color:var(--emerald); flex-shrink:0; }
.field-check label{
  font-family:var(--sans);
  font-size:12.5px;
  text-transform:none;
  letter-spacing:normal;
  color:var(--text-muted);
  line-height:1.5;
}
.field-check a{ color:var(--emerald); text-decoration:underline; }
.submit-btn{
  font-family:var(--mono);
  font-size:13px;
  letter-spacing:0.02em;
  background:var(--emerald);
  color:var(--paper);
  padding:15px 24px;
  border:none;
  border-radius:2px;
  cursor:pointer;
  transition:background 0.2s ease;
  align-self:flex-start;
}
.submit-btn:hover{ background:var(--emerald-deep); }
.submit-btn:disabled{ background:var(--text-muted); cursor:default; }
.form-status{
  font-family:var(--mono);
  font-size:12.5px;
  color:var(--emerald);
  display:none;
}
.form-status.visible{ display:block; }
.form-error{
  font-family:var(--mono);
  font-size:12.5px;
  color:var(--error);
  display:none;
}
.form-error.visible{ display:block; }
.form-error a{ text-decoration:underline; }
.form-note{
  font-size:12px;
  color:var(--text-muted);
  line-height:1.6;
}

/* ---------- ABOUT / COMPANY ---------- */
.company-info{
  padding:88px 0;
  background:var(--paper-2);
  border-bottom:1px solid var(--paper-3);
}
.info-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--paper-3);
  border:1px solid var(--paper-3);
}
.info-card{
  background:var(--paper-2);
  padding:32px;
}
.info-card .lbl{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--brass);
  margin-bottom:10px;
  display:block;
}
.info-card .val{
  font-family:var(--serif);
  font-size:19px;
  font-weight:500;
  line-height:1.35;
}
.info-card .sub{
  margin-top:8px;
  font-size:13px;
  color:var(--text-muted);
  line-height:1.55;
}

.offices{
  padding:88px 0;
}
.office-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px;
}
.office-card{
  padding-top:20px;
  border-top:1px solid var(--paper-3);
}
.office-card h4{
  font-family:var(--serif);
  font-size:19px;
  font-weight:500;
  margin-bottom:8px;
}
.office-card p{
  font-size:13.5px;
  color:var(--text-muted);
  line-height:1.65;
}
.office-card .role{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--brass);
  margin-top:10px;
  display:block;
}

/* ---------- LEGAL / LONG-FORM DOCUMENT PAGES ---------- */
.legal-doc{
  padding:72px 0 96px;
}
.legal-doc-inner{
  display:grid;
  grid-template-columns:0.32fr 1fr;
  gap:56px;
  align-items:start;
}
.legal-toc{
  position:sticky;
  top:104px;
}
.legal-toc .lbl{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--brass);
  margin-bottom:14px;
  display:block;
}
.legal-toc ul{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:10px;
  border-left:1px solid var(--paper-3);
}
.legal-toc a{
  display:block;
  padding:2px 0 2px 16px;
  font-size:13px;
  color:var(--text-muted);
  transition:color 0.2s ease;
}
.legal-toc a:hover{ color:var(--text-dark); }
.legal-updated{
  font-family:var(--mono);
  font-size:12px;
  color:var(--text-muted);
  margin-top:20px;
  padding-top:20px;
  border-top:1px solid var(--paper-3);
}
.legal-body h2{
  font-family:var(--serif);
  font-size:22px;
  font-weight:500;
  margin-top:44px;
  margin-bottom:14px;
  scroll-margin-top:104px;
}
.legal-body h2:first-child{ margin-top:0; }
.legal-body h3{
  font-family:var(--sans);
  font-size:15px;
  font-weight:600;
  margin-top:24px;
  margin-bottom:10px;
}
.legal-body p{
  font-size:14.5px;
  line-height:1.75;
  color:var(--text-muted);
  margin-bottom:14px;
  max-width:68ch;
}
.legal-body ul, .legal-body ol{
  margin:0 0 14px 20px;
  color:var(--text-muted);
  font-size:14.5px;
  line-height:1.75;
  max-width:66ch;
}
.legal-body li{ margin-bottom:6px; }
.legal-body strong{ color:var(--text-dark); }
.legal-body table{
  width:100%;
  border-collapse:collapse;
  margin:0 0 24px;
  font-size:13.5px;
}
.legal-body th, .legal-body td{
  text-align:left;
  padding:10px 14px;
  border:1px solid var(--paper-3);
  color:var(--text-muted);
  vertical-align:top;
}
.legal-body th{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--text-dark);
  background:var(--paper-2);
}
.legal-body .table-wrap{ overflow-x:auto; margin-bottom:24px; }
.legal-body .table-wrap table{ margin-bottom:0; }
.legal-notice{
  background:var(--paper-2);
  border:1px solid var(--paper-3);
  border-left:3px solid var(--brass);
  padding:18px 20px;
  font-size:13px;
  line-height:1.6;
  color:var(--text-muted);
  margin-bottom:36px;
}
.legal-notice strong{ color:var(--text-dark); }

/* ---------- FOOTER ---------- */
footer{
  background:var(--ink);
  color:var(--text-on-ink-muted);
  padding:48px 0 32px;
}
.footer-inner{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:32px;
  padding-bottom:32px;
  border-bottom:1px solid var(--ink-line);
}
.footer-cols{
  display:flex;
  gap:56px;
  flex-wrap:wrap;
}
.footer-col h5{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--text-on-ink);
  margin-bottom:14px;
}
.footer-col ul{ list-style:none; display:flex; flex-direction:column; gap:9px; }
.footer-col a{ font-size:13px; color:var(--text-on-ink-muted); transition:color 0.2s ease; }
.footer-col a:hover{ color:var(--text-on-ink); }
.footer-col p{ font-size:13px; line-height:1.6; }
.footer-legal-line{
  margin-top:24px;
  font-size:11.5px;
  line-height:1.7;
  color:var(--text-on-ink-muted);
  max-width:60ch;
}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  padding-top:24px;
  font-size:12px;
  flex-wrap:wrap;
  gap:12px;
}
.footer-bottom .footer-legal-links{
  display:flex;
  gap:18px;
  flex-wrap:wrap;
}
.footer-bottom a:hover{ color:var(--text-on-ink); }

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1080px){
  .nav-links{ gap:24px; }
  .hero-inner{ gap:40px; }
  .pillar{ padding:32px 24px; }
  .principles{ gap:32px; }
  .contact-inner{ gap:44px; }
  .footer-cols{ gap:36px; }
  .pillar-detail-inner{ grid-template-columns:0.4fr 1fr; gap:40px; }
  .legal-doc-inner{ grid-template-columns:0.4fr 1fr; gap:36px; }
}

@media (max-width: 900px){
  html{ scroll-padding-top:72px; }
  .hero-inner{ grid-template-columns:1fr; }
  .signal{ max-width:320px; margin:0 auto; }
  .thesis-inner{ grid-template-columns:1fr; gap:24px; }
  .pillars{ grid-template-columns:1fr; }
  .principles{ grid-template-columns:1fr; gap:32px; }
  .stats-inner{ grid-template-columns:repeat(2,1fr); row-gap:32px; }
  .stat:nth-child(odd){ border-left:none; padding-left:0; }
  .insight-grid{ grid-template-columns:1fr; }
  .contact-inner{ grid-template-columns:1fr; }
  .form-row{ grid-template-columns:1fr; }
  .nav-links{ display:none; }
  nav > .nav-cta{ display:none; }
  .nav-toggle{ display:flex; }
  .mobile-nav{ display:grid; }
  header{ background:rgba(14,21,18,0.96); }
  .info-grid{ grid-template-columns:1fr; }
  .office-grid{ grid-template-columns:1fr; gap:28px; }
  .pillar-detail-inner{ grid-template-columns:1fr; gap:24px; }
  .capability-grid{ grid-template-columns:1fr; }
  .legal-doc-inner{ grid-template-columns:1fr; }
  .legal-toc{ position:static; padding-bottom:24px; border-bottom:1px solid var(--paper-3); margin-bottom:12px; }
}

@media (max-width: 600px){
  .wrap{ padding:0 20px; }
  nav{ padding:16px 20px; }
  .hero{ padding:64px 0 48px; }
  .thesis, .practice, .approach, .insights, .company-info, .offices, .pillar-detail{ padding:64px 0; }
  .contact{ padding:64px 0 48px; }
  .stats{ padding:44px 0; }
  .page-hero{ padding:48px 0 40px; }
  .legal-doc{ padding:48px 0 64px; }
  .section-head{ margin-bottom:36px; }
  .hero h1{ max-width:none; }
  .hero-actions{ gap:12px; }
  .hero-actions a{ flex:1 1 auto; text-align:center; }
  .footer-inner{ gap:36px; }
  .footer-cols{ gap:28px 36px; }
  .footer-bottom{ flex-direction:column; gap:8px; }
  .submit-btn{ align-self:stretch; text-align:center; }
}

@media (max-width: 420px){
  .stats-inner{ grid-template-columns:1fr; row-gap:24px; }
  .stat{ border-left:none; padding:0; }
  .footer-cols{ gap:28px; flex-direction:column; }
  .brand-name span{ font-size:8.5px; letter-spacing:0.14em; }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .mobile-nav, .nav-toggle-bar{ transition:none; }
}
