@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,500&family=Manrope:wght@400;500;600&display=swap");

:root {
  --color-ink: #182018;
  --color-green: #172414;
  --color-copper: #c86530;
  --color-copper-dark: #a9481c;
  --color-stone: #f8f6f1;
  --color-pale: #eeeae2;
  --color-white: #fff;
  --color-muted: #666a63;
  --color-border: #ddd8cf;
  --font-serif: "Cormorant Garamond", Georgia, serif;
  --font-sans: "Manrope", "Helvetica Neue", Arial, sans-serif;
  --container-width: 1320px;
  --section-space: clamp(5rem, 9vw, 9rem);
  --ease: cubic-bezier(.22, 1, .36, 1);
  --header-height: 96px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--color-ink);
  background: var(--color-white);
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 1.75;
  text-rendering: optimizeLegibility;
}
body.menu-open { overflow: hidden; }
body.is-preloading { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
::selection { color: var(--color-white); background: var(--color-copper); }
:focus-visible { outline: 2px solid var(--color-copper); outline-offset: 4px; }

/* Branded legal preloader */
.site-preloader { position: fixed; z-index: 9999; inset: 0; display: grid; place-items: center; color: var(--color-ink); background: var(--color-stone); animation: preloader-fallback .8s var(--ease) 6s forwards; }
.site-preloader::before, .site-preloader::after { position: absolute; top: 0; bottom: 0; width: 50%; content: ""; background: var(--color-green); transform: scaleX(.035); pointer-events: none; }
.site-preloader::before { left: 0; transform-origin: left; }
.site-preloader::after { right: 0; transform-origin: right; }
.preloader__folio { position: relative; width: min(calc(100% - 40px), 480px); padding: clamp(2.5rem, 7vw, 4.5rem); border: 1px solid var(--color-border); background: var(--color-white); text-align: center; box-shadow: 0 30px 90px rgba(23,36,20,.08); animation: preloader-folio-in .8s var(--ease) both; }
.preloader__folio::before { position: absolute; top: 16px; right: 16px; width: 9px; height: 9px; border-top: 1px solid var(--color-copper); border-right: 1px solid var(--color-copper); content: ""; }
.preloader__folio::after { position: absolute; bottom: 16px; left: 16px; width: 9px; height: 9px; border-bottom: 1px solid var(--color-copper); border-left: 1px solid var(--color-copper); content: ""; }
.preloader__folio img { width: min(100%, 265px); height: 64px; margin: 0 auto 2.2rem; object-fit: contain; animation: preloader-logo 1s var(--ease) both; }
.preloader__rule { position: absolute; top: 0; left: 50%; width: 1px; height: 25px; background: var(--color-copper); transform-origin: top; animation: preloader-rule 1.4s var(--ease) infinite alternate; }
.preloader__folio p { margin-top: 1.6rem; font-family: var(--font-serif); font-size: 1.35rem; font-style: italic; }
.preloader__folio small { display: block; margin-top: .45rem; color: var(--color-muted); font-size: .53rem; font-weight: 600; letter-spacing: .17em; text-transform: uppercase; }
.preloader__folio small::after { display: block; width: 86px; height: 1px; margin: 1.25rem auto 0; content: ""; background: linear-gradient(90deg, var(--color-copper) 0 50%, var(--color-pale) 50% 100%); background-size: 200% 100%; animation: preloader-progress 1.5s var(--ease) .2s both; }
.preloader__folio small em { margin-inline: .35rem; color: var(--color-copper); font-style: normal; }
.preloader-scales { position: relative; width: 104px; height: 58px; margin-inline: auto; color: var(--color-green); }
.preloader-scales > i { position: absolute; top: 7px; bottom: 0; left: 50%; width: 1px; background: currentColor; }
.preloader-scales > i::before { position: absolute; top: -7px; left: -4px; width: 9px; height: 9px; border: 1px solid currentColor; border-radius: 50%; content: ""; background: var(--color-white); }
.preloader-scales > i::after { position: absolute; bottom: 0; left: -20px; width: 41px; height: 7px; border: 1px solid currentColor; border-top: 0; border-radius: 0 0 50% 50%; content: ""; }
.preloader-scales > b { position: absolute; top: 15px; left: 5px; width: 94px; height: 1px; background: currentColor; transform-origin: center; animation: preloader-balance 1.7s var(--ease) infinite alternate; }
.preloader-scales > span { position: absolute; top: 16px; width: 27px; height: 31px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; border-left: 1px solid currentColor; border-radius: 0 0 50% 50%; clip-path: polygon(50% 0,100% 82%,100% 100%,0 100%,0 82%); }
.preloader-scales > span:nth-of-type(1) { left: 0; animation: preloader-pan-left 1.7s var(--ease) infinite alternate; }
.preloader-scales > span:nth-of-type(2) { right: 0; animation: preloader-pan-right 1.7s var(--ease) infinite alternate; }
.site-preloader.is-loaded { animation: preloader-exit .9s var(--ease) forwards; }
.site-preloader.is-loaded::before, .site-preloader.is-loaded::after { animation: preloader-doors .75s var(--ease) forwards; }
.site-preloader.is-loaded .preloader__folio { animation: preloader-folio-exit .55s ease forwards; }
@keyframes preloader-logo { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes preloader-folio-in { from { opacity: 0; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes preloader-rule { from { transform: scaleY(.25); } to { transform: scaleY(1); } }
@keyframes preloader-progress { from { background-position: 100% 0; } to { background-position: 0 0; } }
@keyframes preloader-balance { from { transform: rotate(-5deg); } to { transform: rotate(5deg); } }
@keyframes preloader-pan-left { from { transform: translateY(-4px); } to { transform: translateY(4px); } }
@keyframes preloader-pan-right { from { transform: translateY(4px); } to { transform: translateY(-4px); } }
@keyframes preloader-doors { to { transform: scaleX(1); } }
@keyframes preloader-folio-exit { to { opacity: 0; transform: scale(.98); } }
@keyframes preloader-exit { 0%, 78% { opacity: 1; visibility: visible; } 100% { opacity: 0; visibility: hidden; } }
@keyframes preloader-fallback { to { opacity: 0; visibility: hidden; pointer-events: none; } }

/* Cinematic brief-opening preloader */
.site-preloader { color: var(--color-white); background: var(--color-green); perspective: 1200px; }
.site-preloader::before, .site-preloader::after { top: 0; bottom: 0; width: calc(50% + 1px); background-color: #10200f; background-image: linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px); background-size: 62px 62px; transform: none; }
.site-preloader::before { border-right: 1px solid rgba(200,101,48,.45); transform-origin: left center; }
.site-preloader::after { border-left: 1px solid rgba(200,101,48,.45); transform-origin: right center; }
.preloader__folio { z-index: 2; width: min(calc(100% - 40px), 620px); min-height: 430px; display: grid; place-content: center; padding: clamp(3rem, 8vw, 5.5rem); border: 1px solid rgba(255,255,255,.16); color: var(--color-white); background: linear-gradient(135deg, rgba(255,255,255,.045), rgba(255,255,255,.012)); box-shadow: 0 38px 110px rgba(0,0,0,.28), inset 0 0 70px rgba(255,255,255,.018); backdrop-filter: blur(10px); animation: briefArrival .9s var(--ease) both; }
.preloader__folio::before { position: absolute; top: 1.25rem; right: auto; left: 1.35rem; width: auto; height: auto; border: 0; content: "GMR / LEGAL BRIEF 001"; color: rgba(255,255,255,.42); font-size: .45rem; font-weight: 600; letter-spacing: .16em; }
.preloader__folio::after { position: absolute; right: 1.35rem; bottom: 1.2rem; left: auto; width: auto; height: auto; border: 0; content: "NAIROBI · EST. 2016"; color: rgba(255,255,255,.35); font-size: .42rem; font-weight: 600; letter-spacing: .15em; }
.preloader__folio img { width: min(100%, 285px); height: 72px; margin-bottom: 2.7rem; padding: .75rem 1rem; background: rgba(255,255,255,.96); box-shadow: 12px 12px 0 rgba(200,101,48,.15); clip-path: polygon(0 0, 94% 0, 100% 28%, 100% 100%, 0 100%); animation: briefLogo 1s var(--ease) .08s both; }
.preloader__rule { top: 0; left: 50%; width: 1px; height: 54px; background: var(--color-copper); box-shadow: 0 0 16px rgba(200,101,48,.5); animation: briefRule 1.2s var(--ease) both; }
.preloader-scales { width: 148px; height: 78px; color: var(--color-copper-light); }
.preloader-scales::before { position: absolute; top: 50%; left: 50%; width: 132px; aspect-ratio: 1; content: ""; border: 1px solid rgba(255,255,255,.09); border-radius: 50%; background: conic-gradient(from 90deg, transparent 0 22%, rgba(200,101,48,.18) 22% 23%, transparent 23% 48%, rgba(200,101,48,.18) 48% 49%, transparent 49% 74%, rgba(200,101,48,.18) 74% 75%, transparent 75%); transform: translate(-50%,-50%); animation: briefSeal 12s linear infinite; }
.preloader-scales > i { top: 8px; }
.preloader-scales > i::before { background: #142812; }
.preloader-scales > b { top: 19px; left: 6px; width: 136px; animation: briefBalance 1.65s var(--ease) both; }
.preloader-scales > span { top: 20px; width: 36px; height: 40px; }
.preloader-scales > span:nth-of-type(1) { left: 0; animation: briefPanLeft 1.65s var(--ease) both; }
.preloader-scales > span:nth-of-type(2) { right: 0; animation: briefPanRight 1.65s var(--ease) both; }
.preloader__folio p { position: relative; margin-top: 2.2rem; color: var(--color-white); font-size: 1.55rem; }
.preloader__folio p::before { position: absolute; top: 50%; left: calc(50% - 112px); width: 6px; height: 6px; content: ""; border-radius: 50%; background: var(--color-copper); box-shadow: 0 0 0 7px rgba(200,101,48,.1); transform: translateY(-50%); animation: briefPulse 1.6s ease-in-out infinite; }
.preloader__folio small { color: rgba(255,255,255,.44); }
.preloader__folio small::after { width: 130px; margin-top: 1.5rem; background: linear-gradient(90deg, var(--color-copper) 0 50%, rgba(255,255,255,.12) 50% 100%); background-size: 200% 100%; animation: briefProgress 1.55s var(--ease) .18s both; }
.site-preloader.is-loaded { animation: briefReveal 1.05s var(--ease) forwards; }
.site-preloader.is-loaded::before { animation: briefDoorLeft .95s var(--ease) .08s forwards; }
.site-preloader.is-loaded::after { animation: briefDoorRight .95s var(--ease) .08s forwards; }
.site-preloader.is-loaded .preloader__folio { animation: briefStampOut .58s var(--ease) forwards; }
@keyframes briefArrival { from { opacity: 0; transform: rotateX(8deg) translateY(28px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes briefLogo { from { opacity: 0; clip-path: inset(0 100% 0 0); transform: translateY(8px); } to { opacity: 1; clip-path: polygon(0 0,94% 0,100% 28%,100% 100%,0 100%); transform: none; } }
@keyframes briefRule { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes briefSeal { to { transform: translate(-50%,-50%) rotate(360deg); } }
@keyframes briefBalance { 0% { transform: rotate(-10deg); } 45% { transform: rotate(4deg); } 72% { transform: rotate(-1.5deg); } 100% { transform: rotate(0); } }
@keyframes briefPanLeft { 0% { transform: translateY(-8px); } 45% { transform: translateY(4px); } 72% { transform: translateY(-1px); } 100% { transform: none; } }
@keyframes briefPanRight { 0% { transform: translateY(8px); } 45% { transform: translateY(-4px); } 72% { transform: translateY(1px); } 100% { transform: none; } }
@keyframes briefPulse { 0%,100% { opacity: .4; transform: translateY(-50%) scale(.8); } 50% { opacity: 1; transform: translateY(-50%) scale(1.2); } }
@keyframes briefProgress { from { background-position: 100% 0; } to { background-position: 0 0; } }
@keyframes briefStampOut { 45% { transform: scale(1.025); filter: brightness(1.18); } 100% { opacity: 0; transform: scale(.86); filter: blur(7px); } }
@keyframes briefDoorLeft { to { transform: translateX(-101%); } }
@keyframes briefDoorRight { to { transform: translateX(101%); } }
@keyframes briefReveal { 0%, 86% { visibility: visible; background: transparent; } 100% { opacity: 0; visibility: hidden; background: transparent; } }

.container { width: min(calc(100% - 48px), var(--container-width)); margin-inline: auto; }
.section { padding-block: var(--section-space); }
.section--stone { background: var(--color-stone); }
.section--green { color: var(--color-white); background: var(--color-green); }
.section-label {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin: 0 0 1.35rem;
  color: var(--color-copper);
  font-size: .69rem;
  font-weight: 600;
  letter-spacing: .2em;
  line-height: 1.3;
  text-transform: uppercase;
}
.section-label::before { width: 30px; height: 1px; content: ""; background: currentColor; }
.display, h1, h2, h3 { margin-block: 0; font-family: var(--font-serif); font-weight: 500; line-height: .98; }
h1 { font-size: clamp(4rem, 7.6vw, 7.5rem); letter-spacing: -.045em; }
h2 { font-size: clamp(3rem, 5.4vw, 5.4rem); letter-spacing: -.04em; }
h3 { font-size: clamp(1.65rem, 2.2vw, 2.3rem); }
p { margin-block: 0; }
.lead { max-width: 650px; color: var(--color-muted); font-size: clamp(1rem, 1.5vw, 1.17rem); line-height: 1.8; }
.lead--inverse { color: rgba(255,255,255,.68); }
.text-link { display: inline-flex; align-items: center; gap: .7rem; font-size: .76rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.text-link span { transition: transform .25s var(--ease); }
.text-link:hover span { transform: translateX(5px); }
.button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: .85rem;
  padding: .85rem 1.4rem;
  border: 1px solid var(--color-green);
  border-radius: 0;
  color: var(--color-white);
  background: var(--color-green);
  cursor: pointer;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .055em;
  line-height: 1;
  transition: background .25s ease, border-color .25s ease, color .25s ease;
}
.button:hover { border-color: var(--color-copper); background: var(--color-copper); }
.button--copper { border-color: var(--color-copper); background: var(--color-copper); }
.button--copper:hover { border-color: var(--color-green); background: var(--color-green); }
.button--outline { color: var(--color-green); background: transparent; }
.button--outline:hover { color: var(--color-white); }
.button--light { border-color: var(--color-white); color: var(--color-green); background: var(--color-white); }

/* Header */
.legal-strip { height: 28px; border-top: 5px solid #2d2f31; color: var(--color-ink); background: #f5f7f8; }
.legal-strip > .container { display: flex; height: 100%; align-items: center; justify-content: flex-end; }
.legal-strip p { display: none; }
.header__social { display: flex; align-items: center; gap: .45rem; }
.header__social > a { display: grid; width: 22px; height: 22px; place-items: center; border: 1px solid #d8ddd8; color: var(--color-green); background: var(--color-white); font-size: .62rem; font-weight: 600; letter-spacing: -.04em; line-height: 1; transition: color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease; }
.header__social > a:last-child { color: #168334; }
.header__social > a:hover { border-color: var(--color-copper); color: var(--color-white); background: var(--color-copper); transform: translateY(-1px); }
.site-header {
  position: sticky;
  z-index: 1000;
  top: 0;
  height: var(--header-height);
  border-bottom: 1px solid rgba(221, 216, 207, .75);
  background: rgba(255, 255, 255, .97);
  transition: height .3s ease, box-shadow .3s ease, background .3s ease;
}
.site-header.is-scrolled { height: 74px; background: rgba(255,255,255,.91); box-shadow: 0 8px 35px rgba(23,36,20,.055); backdrop-filter: blur(14px); }
.header__inner { display: grid; height: 100%; grid-template-columns: 235px 1fr auto; align-items: center; gap: 1.5rem; }
.brand { display: inline-block; width: 180px; }
.site-header .brand { position: relative; z-index: 1; display: flex; width: 218px; height: 100%; align-items: center; padding: 0; }
.site-header .brand::before, .site-header .brand::after { display: none; }
.brand img { width: 100%; height: 54px; object-fit: contain; object-position: left center; }
.desktop-nav { justify-self: center; }
.nav-list { display: flex; align-items: center; gap: clamp(1.05rem, 1.75vw, 2rem); margin: 0; padding: 0; list-style: none; }
.nav-link { position: relative; padding-block: .55rem; color: var(--color-copper-dark); font-size: .75rem; font-weight: 500; letter-spacing: .018em; }
.nav-link::after { position: absolute; right: 0; bottom: 0; left: 0; height: 1px; content: ""; background: var(--color-copper); transform: scaleX(0); transform-origin: right; transition: transform .25s var(--ease); }
.nav-link:hover::after, .nav-link.is-active::after { transform: scaleX(1); transform-origin: left; }
.nav-item--dropdown { position: relative; }
.nav-item--dropdown::after { position: absolute; top: 100%; right: -1rem; left: -1rem; height: 18px; content: ""; }
.nav-link--dropdown { display: inline-flex; align-items: center; gap: .62rem; }
.nav-link--dropdown::before { width: 6px; height: 6px; order: 2; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; content: ""; transform: translateY(-2px) rotate(45deg); transition: transform .25s var(--ease); }
.nav-item--dropdown:hover .nav-link--dropdown::before, .nav-item--dropdown:focus-within .nav-link--dropdown::before { transform: translateY(2px) rotate(225deg); }
.nav-dropdown { position: absolute; top: calc(100% + 14px); left: 50%; width: 300px; margin: 0; padding: .55rem 0; border: 1px solid var(--color-border); border-top: 2px solid var(--color-copper); background: var(--color-white); box-shadow: 0 22px 50px rgba(23,36,20,.1); list-style: none; opacity: 0; visibility: hidden; transform: translate(-50%, 8px); transition: opacity .25s ease, visibility .25s ease, transform .25s var(--ease); }
.nav-dropdown::before { position: absolute; top: -7px; left: 50%; width: 11px; height: 11px; border-top: 1px solid var(--color-copper); border-left: 1px solid var(--color-copper); content: ""; background: var(--color-white); transform: translateX(-50%) rotate(45deg); }
.nav-item--dropdown:hover .nav-dropdown, .nav-item--dropdown:focus-within .nav-dropdown { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.nav-dropdown li + li { border-top: 1px solid #eeeae2; }
.nav-dropdown a { position: relative; display: block; padding: .78rem 1.15rem .78rem 2.3rem; color: var(--color-muted); font-size: .7rem; line-height: 1.45; transition: color .2s ease, background .2s ease, padding-left .2s ease; }
.nav-dropdown a::before { position: absolute; top: 1.12rem; left: 1.15rem; width: 5px; height: 5px; border: 1px solid var(--color-copper); border-radius: 50%; content: ""; }
.nav-dropdown a:hover, .nav-dropdown a:focus-visible { padding-left: 2.55rem; color: var(--color-green); background: var(--color-stone); }
.header__cta { min-height: 50px; padding-inline: 1.3rem; border-color: var(--color-copper); background: var(--color-copper); }
.header__cta:hover { border-color: var(--color-green); background: var(--color-green); }
.menu-toggle { display: none; width: 46px; height: 46px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.menu-toggle span { display: block; width: 25px; height: 1px; margin: 6px auto; background: var(--color-green); transition: .3s var(--ease); }
.menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
.mobile-nav { position: fixed; z-index: 999; inset: var(--header-height) 0 0; padding: 3rem 24px; background: var(--color-white); visibility: hidden; opacity: 0; transform: translateX(100%); transition: .45s var(--ease); }
.mobile-nav.is-open { visibility: visible; opacity: 1; transform: none; }
.mobile-nav ul { margin: 0; padding: 0; list-style: none; }
.mobile-nav a { display: flex; justify-content: space-between; padding: .65rem 0; border-bottom: 1px solid var(--color-border); font-family: var(--font-serif); font-size: clamp(2rem, 8vw, 3.2rem); line-height: 1.2; }
.mobile-nav .button { width: 100%; margin-top: 2rem; border: 0; color: var(--color-white); font-family: var(--font-sans); font-size: .75rem; }

/* GMR docket rail navigation */
.legal-strip { height: 9px; border: 0; background: linear-gradient(90deg, #2d2f31 0 3.5%, var(--color-copper) 3.5% 9%, var(--color-green) 9% 100%); }
.legal-strip > .container { display: none; }
.site-header { overflow: visible; border-bottom-color: rgba(23,36,20,.14); background: rgba(255,255,255,.985); }
.site-header::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 1px; content: ""; background: linear-gradient(90deg, var(--color-copper) 0 8%, rgba(23,36,20,.12) 8% 100%); pointer-events: none; }
.site-header.is-scrolled { height: 78px; background: rgba(255,255,255,.94); box-shadow: 0 16px 45px rgba(17,30,15,.08); }
.header__inner { position: relative; grid-template-columns: 250px 1fr 265px; gap: 0; }
.site-header .brand { width: 235px; padding-right: 32px; }
.site-header .brand::before { position: absolute; z-index: -1; top: 0; right: 12px; bottom: 0; left: calc((100vw - min(calc(100vw - 48px), var(--container-width))) / -2); display: block; content: ""; border-right: 1px solid rgba(23,36,20,.12); background: var(--color-stone); clip-path: polygon(0 0, 92% 0, 100% 50%, 92% 100%, 0 100%); }
.site-header .brand::after { position: absolute; right: 19px; bottom: 14px; display: block; width: 6px; height: 6px; content: ""; border-radius: 50%; background: var(--color-copper); box-shadow: 0 0 0 4px rgba(200,101,48,.12); }
.site-header .brand img { position: relative; z-index: 1; }
.desktop-nav { height: 100%; justify-self: stretch; }
.nav-list { height: 100%; justify-content: center; gap: 0; counter-reset: gmr-docket; }
.nav-list > li { position: relative; display: flex; height: 100%; align-items: center; border-left: 1px solid rgba(23,36,20,.075); counter-increment: gmr-docket; transition: background .3s ease; }
.nav-list > li:last-child { border-right: 1px solid rgba(23,36,20,.075); }
.nav-list > li::before { position: absolute; top: 13px; left: 50%; content: "0" counter(gmr-docket); color: rgba(23,36,20,.36); font-size: .39rem; font-weight: 600; letter-spacing: .11em; transform: translateX(-50%); transition: color .25s ease, transform .25s ease; }
.nav-list > li:hover, .nav-list > li:has(.nav-link.is-active) { background: var(--color-stone); }
.nav-list > li:hover::before, .nav-list > li:has(.nav-link.is-active)::before { color: var(--color-copper); transform: translate(-50%, -2px); }
.nav-link { display: flex; height: 100%; align-items: center; padding: 1.1rem clamp(.85rem, 1.25vw, 1.35rem) 0; color: var(--color-green); font-size: .65rem; font-weight: 600; letter-spacing: .055em; text-transform: uppercase; }
.nav-link::after { right: 20%; bottom: 0; left: 20%; height: 3px; }
.nav-link--dropdown { gap: .55rem; }
.nav-dropdown { top: calc(100% + 10px); border: 0; border-top: 3px solid var(--color-copper); box-shadow: 0 28px 70px rgba(17,30,15,.16); }
.header__cta { position: relative; width: 245px; min-height: 66px; justify-self: end; padding: 1.35rem 3.6rem .75rem 1.3rem; border: 0; background: var(--color-copper); clip-path: polygon(0 0, 100% 0, 100% 78%, 94% 100%, 0 100%); font-size: .66rem; letter-spacing: .045em; text-transform: uppercase; }
.header__cta::before { position: absolute; top: .55rem; left: 1.3rem; content: "Confidential enquiry"; color: rgba(255,255,255,.63); font-size: .39rem; font-weight: 500; letter-spacing: .15em; }
.header__cta::after { position: absolute; top: 50%; right: 1.15rem; width: 1.75rem; height: 1.75rem; content: ""; border: 1px solid rgba(255,255,255,.38); border-radius: 50%; transform: translateY(-50%); transition: transform .35s var(--ease), background .35s ease; }
.header__cta span { position: absolute; z-index: 1; top: 50%; right: 1.65rem; font-size: .9rem; transform: translateY(-52%); }
.header__cta:hover::after { background: rgba(255,255,255,.12); transform: translateY(-50%) rotate(45deg); }
.menu-toggle { position: relative; border: 1px solid rgba(23,36,20,.16); border-radius: 50%; }
.mobile-nav { color: var(--color-white); background: var(--color-green); }
.mobile-nav::before { position: absolute; top: 0; right: 24px; width: 1px; height: 4rem; content: ""; background: var(--color-copper); }
.mobile-nav a { border-bottom-color: rgba(255,255,255,.16); color: var(--color-white); }
.mobile-nav a > span { color: var(--color-copper-light); font-family: var(--font-sans); font-size: .65rem; letter-spacing: .12em; }
.mobile-nav .button { background: var(--color-copper); }

/* Hero */
.hero { position: relative; min-height: calc(88vh - var(--header-height)); display: flex; align-items: center; overflow: hidden; }
.hero__grid { display: grid; grid-template-columns: repeat(12, 1fr); align-items: center; gap: 24px; padding-block: clamp(3.5rem, 7vw, 7rem); }
.hero__copy { position: relative; z-index: 2; grid-column: 1 / 7; }
.hero__eyebrow { margin-bottom: 1.8rem; color: var(--color-copper); font-size: .69rem; font-weight: 600; letter-spacing: .18em; line-height: 1.8; text-transform: uppercase; }
.hero h1 { max-width: 800px; }
.hero__copy .lead { max-width: 570px; margin-top: 2rem; }
.hero__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2.2rem; }
.hero__micro { margin-top: 2rem; color: var(--color-muted); font-family: var(--font-serif); font-size: .95rem; font-style: italic; letter-spacing: .02em; }
.hero__visual { position: relative; grid-column: 7 / 13; min-height: clamp(480px, 60vw, 710px); }
.hero__visual::before { position: absolute; z-index: -2; inset: 5% 1% 6% 10%; content: ""; border-radius: 48% 48% 0 0; background: var(--color-stone); }
.hero__visual::after { position: absolute; z-index: -1; top: 10%; right: 2%; width: 42%; height: 68%; content: ""; border: 1px solid var(--color-border); border-bottom: 0; }
.hero__monogram { position: absolute; z-index: -1; top: 4%; left: 2%; color: var(--color-green); font-family: var(--font-serif); font-size: clamp(8rem, 18vw, 17rem); letter-spacing: -.1em; line-height: 1; opacity: .035; }
.hero__image-frame { position: absolute; inset: 0 0 0 7%; overflow: hidden; }
.hero__image-frame img { width: 100%; height: 100%; object-fit: contain; object-position: center bottom; }
.hero__rule { position: absolute; top: 16%; bottom: 12%; left: 8%; width: 1px; background: var(--color-copper); }
.hero__caption { position: absolute; right: 0; bottom: 2%; padding: .8rem 0 .8rem 1rem; border-left: 1px solid var(--color-copper); background: rgba(255,255,255,.82); color: var(--color-muted); font-size: .65rem; letter-spacing: .16em; text-transform: uppercase; }

/* Direct editorial hero and legal motion */
.hero--direct { min-height: calc(100svh - var(--header-height)); background: #fff; }
.hero--direct .hero__grid { min-height: calc(100svh - var(--header-height)); padding-block: clamp(3rem, 6vh, 5.5rem); }
.hero--direct .hero__copy { grid-column: 1 / 7; padding-right: clamp(0rem, 2.4vw, 2.5rem); }
.hero--direct .hero__eyebrow { margin-bottom: clamp(1.5rem, 4vh, 3.25rem); }
.hero__statement { color: var(--color-copper); font-family: var(--font-serif); font-size: clamp(4rem, 6vw, 7rem); font-style: italic; font-weight: 500; letter-spacing: -.055em; line-height: .98; }
.hero__line { display: block; overflow: hidden; padding-bottom: .08em; }
.hero__line > span { display: block; transform: translateY(115%); animation: hero-line-in 1.05s var(--ease) forwards; }
.hero__line:nth-child(2) > span { animation-delay: .12s; }
.hero__line:nth-child(3) > span { animation-delay: .24s; }
.hero--direct .hero__copy .lead { max-width: 700px; margin-top: clamp(2.4rem, 6vh, 5.2rem); color: var(--color-ink); font-size: clamp(1rem, 1.35vw, 1.25rem); line-height: 1.85; }
.hero--direct .hero__actions { margin-top: clamp(1.8rem, 4vh, 3rem); }
.hero--direct .hero__micro { margin-top: 1.5rem; }
.hero-entrance { opacity: 0; transform: translateY(14px); animation: hero-fade-in .85s var(--ease) .55s forwards; }
.hero--direct .hero__actions.hero-entrance { animation-delay: .68s; }
.hero--direct .hero__micro.hero-entrance { animation-delay: .78s; }
.hero__visual--animated { grid-column: 7 / 13; min-height: clamp(540px, 71vh, 780px); perspective: 1100px; }
.hero__visual--animated::before { inset: 4% 0 4% 9%; border-radius: 13rem 13rem 1.25rem 1.25rem; background: #f8f6f1; transform: scaleY(0); transform-origin: bottom; animation: hero-arch-rise 1.15s var(--ease) .15s forwards; }
.hero__visual--animated::after { inset: 9% 1% 5% 17%; width: auto; height: auto; border-color: rgba(200,101,48,.34); opacity: 0; animation: hero-fade-in .9s ease 1s forwards; }
.hero__visual--animated .hero__image-frame { inset: 0 -4% 0 2%; clip-path: inset(0 100% 0 0); animation: hero-image-reveal 1.25s var(--ease) .32s forwards; }
.hero__visual--animated .hero__image-frame::after { position: absolute; inset: 0; content: ""; background: linear-gradient(105deg, transparent 38%, rgba(255,255,255,.5) 49%, transparent 60%); transform: translateX(-140%); animation: hero-glint 1.1s var(--ease) 1.3s forwards; pointer-events: none; }
.hero__visual--animated .hero__image-frame img { filter: saturate(.94) contrast(1.02); transform: scale(1.035); animation: hero-image-settle 1.6s var(--ease) .25s forwards; }
.hero__visual--animated .hero__rule { top: 8%; bottom: 7%; left: 9%; transform: scaleY(0); transform-origin: top; animation: hero-rule-draw 1.05s var(--ease) .65s forwards; }
.hero__visual--animated .hero__monogram { top: 1%; left: -2%; font-size: clamp(9rem, 17vw, 18rem); }
.hero__visual--animated .hero__caption { right: 1%; bottom: 1%; opacity: 0; transform: translateY(10px); animation: hero-fade-in .8s var(--ease) 1.3s forwards; }
.hero__caption span { color: var(--color-copper); }
.hero__docket { position: absolute; z-index: 3; top: 8%; right: -1.25rem; color: var(--color-muted); font-size: .56rem; font-weight: 600; letter-spacing: .2em; writing-mode: vertical-rl; opacity: 0; animation: hero-fade-in .8s ease 1.45s forwards; }
.hero__case-line { position: absolute; right: 0; bottom: 0; left: 0; height: 1px; background: linear-gradient(90deg, var(--color-copper) 0 11%, var(--color-border) 11% 100%); transform: scaleX(0); transform-origin: left; animation: hero-case-line 1.4s var(--ease) .8s forwards; }

.legal-balance { --balance-angle: 0deg; position: absolute; z-index: 5; top: 9%; right: 3%; width: 116px; height: 116px; color: var(--color-green); opacity: 0; transform: translateY(-10px); animation: balance-arrive .8s var(--ease) 1.45s forwards; filter: drop-shadow(0 7px 12px rgba(23,36,20,.12)); }
.legal-balance__finial { position: absolute; z-index: 2; top: 0; left: 50%; width: 10px; height: 10px; border: 1px solid currentColor; border-radius: 50%; background: var(--color-stone); transform: translateX(-50%); }
.legal-balance__stem { position: absolute; top: 8px; bottom: 1px; left: 50%; width: 1px; background: currentColor; }
.legal-balance__stem::after { position: absolute; bottom: 0; left: 50%; width: 44px; height: 9px; content: ""; border: 1px solid currentColor; border-top: 0; border-radius: 0 0 50% 50%; transform: translateX(-50%); }
.legal-balance__beam { position: absolute; top: 26px; left: 8px; width: 100px; height: 1px; background: currentColor; transform: rotate(var(--balance-angle)); transition: transform .45s var(--ease); animation: beam-balance 3.6s var(--ease) 2.15s both; }
.legal-balance__beam::before { position: absolute; top: -5px; left: 50%; width: 9px; height: 9px; content: ""; border: 1px solid currentColor; border-radius: 50%; background: var(--color-stone); transform: translateX(-50%); }
.legal-balance__chain { position: absolute; top: 0; width: 1px; height: 38px; background: currentColor; transform-origin: top; }
.legal-balance__chain::after { position: absolute; top: 0; left: -11px; width: 22px; height: 38px; content: ""; border-right: 1px solid currentColor; border-left: 1px solid currentColor; clip-path: polygon(50% 0,100% 100%,0 100%); }
.legal-balance__chain--left { left: 8px; }
.legal-balance__chain--right { right: 8px; }
.legal-balance__pan { position: absolute; top: 38px; width: 31px; height: 9px; border: 1px solid currentColor; border-top: 0; border-radius: 0 0 50% 50%; }
.legal-balance__pan--left { left: -7px; }
.legal-balance__pan--right { right: -7px; }

@keyframes hero-line-in { to { transform: translateY(0); } }
@keyframes hero-fade-in { to { opacity: 1; transform: none; } }
@keyframes hero-arch-rise { to { transform: scaleY(1); } }
@keyframes hero-image-reveal { to { clip-path: inset(0 0 0 0); } }
@keyframes hero-image-settle { to { transform: scale(1); } }
@keyframes hero-rule-draw { to { transform: scaleY(1); } }
@keyframes hero-glint { to { transform: translateX(140%); } }
@keyframes hero-case-line { to { transform: scaleX(1); } }
@keyframes balance-arrive { to { opacity: .88; transform: none; } }
@keyframes beam-balance { 0% { transform: rotate(-8deg); } 35% { transform: rotate(5deg); } 65% { transform: rotate(-2deg); } 100% { transform: rotate(var(--balance-angle)); } }

/* Home content */
.trust-strip { border-block: 1px solid var(--color-border); }
.trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.trust-item { display: grid; grid-template-columns: auto 1fr; gap: 1rem; padding: 2.3rem clamp(1rem, 2.5vw, 2.5rem); border-left: 1px solid var(--color-border); }
.trust-item:first-child { border-left: 0; }
.trust-item__number { color: var(--color-copper); font-family: var(--font-serif); font-size: 1.45rem; }
.trust-item h3 { margin-bottom: .25rem; font-family: var(--font-sans); font-size: .82rem; font-weight: 600; line-height: 1.4; }
.trust-item p { color: var(--color-muted); font-size: .76rem; line-height: 1.6; }
.story { position: relative; overflow: hidden; background: #fbfaf7; }
.story::after { position: absolute; top: 0; right: 4%; width: 1px; height: 100%; content: ""; background: var(--color-border); opacity: .7; }
.story__heading { display: flex; align-items: end; justify-content: space-between; gap: 3rem; margin-bottom: clamp(3rem, 5vw, 5rem); }
.story__heading h2 { max-width: 800px; }
.story__index { color: var(--color-copper); font-family: var(--font-serif); font-size: clamp(1.4rem, 2.2vw, 2.15rem); font-style: italic; letter-spacing: .03em; white-space: nowrap; }
.story__grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(350px, .92fr); gap: clamp(3rem, 8vw, 8rem); align-items: center; }
.story__visual { position: relative; min-height: 520px; display: flex; align-items: center; margin: 0; padding: clamp(2rem, 4vw, 4.5rem); background: var(--color-pale); overflow: hidden; }
.story__visual::before { position: absolute; top: -19%; right: -11%; width: 55%; aspect-ratio: 1; border: 1px solid rgba(200,101,48,.32); border-radius: 50%; content: ""; }
.story__visual::after { position: absolute; bottom: -26%; left: -12%; width: 70%; aspect-ratio: 1; border: 1px solid rgba(23,36,20,.12); border-radius: 50%; content: ""; }
.story__visual img { position: relative; z-index: 2; width: 100%; height: auto; filter: saturate(.82) contrast(1.02); transition: transform .8s var(--ease); }
.story__visual:hover img { transform: translateY(-7px); }
.story__visual-rule { position: absolute; z-index: 3; top: 8%; bottom: 8%; left: 0; width: 3px; background: var(--color-copper); transform: scaleY(.28); transform-origin: top; transition: transform .6s var(--ease); }
.story__visual:hover .story__visual-rule { transform: scaleY(1); }
.story__visual figcaption { position: absolute; z-index: 4; right: 0; bottom: 0; left: 0; padding: .85rem 1.2rem; color: rgba(255,255,255,.76); background: var(--color-green); font-size: .61rem; letter-spacing: .1em; text-align: center; text-transform: uppercase; }
.story__visual figcaption span { margin-inline: .55rem; color: var(--color-copper); }
.story__opening { color: var(--color-ink) !important; font-family: var(--font-serif); font-size: clamp(1.65rem, 2.4vw, 2.4rem) !important; line-height: 1.3 !important; }
.story__copy > p { max-width: 680px; margin-bottom: 1.25rem; color: var(--color-muted); }
.story__timeline { margin: 2.5rem 0; padding: 0; border-top: 1px solid var(--color-border); list-style: none; }
.story__timeline li { display: grid; grid-template-columns: 84px 1fr; gap: 1rem; align-items: baseline; padding: .95rem 0; border-bottom: 1px solid var(--color-border); }
.story__timeline span { color: var(--color-copper); font-family: var(--font-serif); font-size: 1.2rem; }
.story__timeline strong { font-size: .72rem; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; }
.section-heading { display: grid; grid-template-columns: 5fr 4fr; align-items: end; gap: 4rem; margin-bottom: clamp(3.5rem, 6vw, 6rem); }
.section-heading .lead { justify-self: end; }
.expertise-index { position: relative; overflow: visible; background: linear-gradient(90deg, var(--color-green) 0 36%, var(--color-white) 36% 100%); }
.expertise-layout { display: grid; grid-template-columns: minmax(330px, .72fr) minmax(0, 1.28fr); gap: clamp(4rem, 8vw, 8rem); align-items: start; }
.expertise-sticky { position: sticky; top: 120px; min-height: 650px; display: flex; flex-direction: column; padding: clamp(1rem, 3vw, 2.5rem) 0; color: var(--color-white); }
.expertise-sticky .section-label { color: #e68a52; }
.expertise-sticky h2 { position: relative; z-index: 2; font-size: clamp(3.2rem, 5vw, 5.25rem); }
.expertise-sticky > p:not(.section-label) { position: relative; z-index: 2; max-width: 410px; margin-top: 2rem; color: rgba(255,255,255,.62); font-size: .82rem; }
.expertise-sticky .text-link { position: relative; z-index: 2; margin-top: auto; color: var(--color-white); }
.expertise-count { position: absolute; right: -4%; bottom: 7%; color: rgba(255,255,255,.055); font-family: var(--font-serif); font-size: clamp(14rem, 20vw, 21rem); letter-spacing: -.09em; line-height: .7; pointer-events: none; }
.practice-list { border-top: 1px solid var(--color-border); }
.practice-item { display: grid; min-height: 175px; grid-template-columns: 90px minmax(280px, 1.2fr) 1fr auto; align-items: center; gap: 2rem; padding: 2rem; border-bottom: 1px solid var(--color-border); transition: background .3s ease; }
.practice-item:hover { background: var(--color-stone); }
.practice-item__number { color: var(--color-muted); font-family: var(--font-serif); font-size: 1.2rem; transition: color .25s ease; }
.practice-item:hover .practice-item__number { color: var(--color-copper); }
.practice-item h3 { transition: transform .3s var(--ease); }
.practice-item:hover h3 { transform: translateX(6px); }
.practice-item p { color: var(--color-muted); font-size: .85rem; }
.practice-item__arrow { color: var(--color-copper); font-size: 1.3rem; transition: transform .3s var(--ease); }
.practice-item:hover .practice-item__arrow { transform: translateX(6px); }
.practice-list--index { position: relative; border-top-color: var(--color-green); counter-reset: practice; }
.practice-list--index::before { position: absolute; top: 0; bottom: 0; left: 68px; width: 1px; content: ""; background: var(--color-border); pointer-events: none; }
.practice-list--index .practice-item { position: relative; min-height: 190px; grid-template-columns: 52px minmax(235px, .95fr) minmax(220px, .8fr) 34px; padding: 2.2rem 1.4rem 2.2rem 0; overflow: hidden; isolation: isolate; }
.practice-list--index .practice-item::before { position: absolute; z-index: -1; right: 3rem; bottom: -45%; color: var(--color-green); font-family: var(--font-serif); font-size: 11rem; line-height: 1; opacity: 0; transform: translateY(18px); transition: opacity .35s ease, transform .45s var(--ease); }
.practice-list--index .practice-item:nth-child(1)::before { content: "01"; }
.practice-list--index .practice-item:nth-child(2)::before { content: "02"; }
.practice-list--index .practice-item:nth-child(3)::before { content: "03"; }
.practice-list--index .practice-item:nth-child(4)::before { content: "04"; }
.practice-list--index .practice-item:nth-child(5)::before { content: "05"; }
.practice-list--index .practice-item:nth-child(6)::before { content: "06"; }
.practice-list--index .practice-item:hover::before { opacity: .035; transform: none; }
.practice-list--index .practice-item:first-child { margin-top: 0; padding-left: 1.2rem; color: var(--color-white); background: var(--color-green); }
.practice-list--index .practice-item:first-child::before { color: var(--color-white); opacity: .045; transform: none; }
.practice-list--index .practice-item:first-child .practice-item__number, .practice-list--index .practice-item:first-child .practice-item__arrow { color: #e68a52; }
.practice-list--index .practice-item:first-child p { color: rgba(255,255,255,.66); }
.practice-list--index .practice-item:first-child:hover { background: #21301d; }
.practice-list--index .practice-item h3 { font-size: clamp(1.8rem, 2.5vw, 2.65rem); line-height: 1.05; }
.practice-list--index .practice-item p { position: relative; z-index: 2; }
.firm-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(4rem, 10vw, 10rem); align-items: center; }
.firm-copy h2 { max-width: 670px; }
.firm-copy .lead { margin-top: 2rem; }
.firm-copy .lead + .lead { margin-top: 1rem; }
.firm-copy .text-link { margin-top: 2rem; }
.principles-art { position: relative; min-height: 600px; border-left: 1px solid var(--color-copper); overflow: hidden; }
.principles-art__word { position: absolute; left: clamp(2rem, 5vw, 5rem); font-family: var(--font-serif); font-size: clamp(3.2rem, 6vw, 6rem); letter-spacing: -.03em; line-height: 1; }
.principles-art__word:nth-child(1) { top: 5%; }
.principles-art__word:nth-child(2) { top: 28%; left: 22%; color: var(--color-copper); font-style: italic; }
.principles-art__word:nth-child(3) { top: 52%; }
.principles-art__word:nth-child(4) { top: 75%; left: 26%; }
.principles-art__index { position: absolute; right: 3%; bottom: -6%; color: var(--color-pale); font-family: var(--font-serif); font-size: 16rem; line-height: 1; }
.approach-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,.2); }
.approach-step { min-height: 300px; padding: 2rem; border-left: 1px solid rgba(255,255,255,.2); }
.approach-step:first-child { border-left: 0; }
.approach-step__number { display: block; margin-bottom: 5rem; color: var(--color-copper); font-family: var(--font-serif); font-size: 1.35rem; }
.approach-step h3 { margin-bottom: 1rem; }
.approach-step p { color: rgba(255,255,255,.66); font-size: .85rem; }
.insights-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 0 36px; border-top: 1px solid var(--color-border); }
.article { display: flex; min-height: 390px; flex-direction: column; padding: 2rem 0 1rem; border-bottom: 1px solid var(--color-border); }
.article:nth-child(1) { grid-column: 1 / 6; }
.article:nth-child(2) { grid-column: 6 / 10; }
.article:nth-child(3) { grid-column: 10 / 13; }
.article__category { color: var(--color-copper); font-size: .65rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.article h3 { margin-top: auto; margin-bottom: 1.25rem; font-size: clamp(1.8rem, 3vw, 3rem); line-height: 1.08; }
.article p { margin-bottom: 2rem; color: var(--color-muted); font-size: .82rem; }
.consultation { position: relative; overflow: hidden; }
.consultation::after { position: absolute; right: 4%; bottom: -55%; content: "GMR"; color: var(--color-green); font-family: var(--font-serif); font-size: clamp(11rem, 27vw, 30rem); line-height: 1; opacity: .025; }
.consultation__inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1.3fr .7fr; align-items: end; gap: 4rem; }
.consultation__copy h2 { max-width: 850px; }
.consultation__copy p { max-width: 650px; margin-top: 2rem; color: var(--color-muted); }
.consultation__action { padding-top: 2rem; border-top: 1px solid var(--color-copper); text-align: right; }

/* Inner pages */
.page-hero { position: relative; min-height: 64vh; display: flex; align-items: center; overflow: hidden; border-bottom: 1px solid var(--color-border); }
.page-hero::after { position: absolute; right: -2%; bottom: -20%; content: attr(data-mark); color: var(--color-green); font-family: var(--font-serif); font-size: clamp(14rem, 32vw, 34rem); line-height: 1; opacity: .025; }
.page-hero__inner { position: relative; z-index: 1; padding-block: 6rem; }
.page-hero h1 { max-width: 1000px; }
.page-hero .lead { margin-top: 2rem; }
.contact-hero { min-height: max(700px, calc(100svh - var(--header-height))); }
.contact-hero::before { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, transparent 0 57%, rgba(238,234,226,.42) 57% 100%); pointer-events: none; }
.contact-hero__inner { display: grid; width: 100%; grid-template-columns: minmax(0, 1.15fr) minmax(400px, .85fr); gap: clamp(3rem, 6vw, 7rem); align-items: center; }
.contact-hero__copy { position: relative; z-index: 3; }
.contact-hero h1 { max-width: 920px; font-size: clamp(3.6rem, 5.7vw, 6.4rem); }
.contact-hero .lead { max-width: 680px; }
.contact-signal { position: relative; min-height: 620px; isolation: isolate; }
.contact-signal__field { position: absolute; inset: 8% 0 4%; border: 1px solid rgba(23,36,20,.11); border-radius: 50% 50% 44% 56% / 45% 55% 45% 55%; background: radial-gradient(circle at 50% 48%, rgba(200,101,48,.11), transparent 38%), repeating-linear-gradient(0deg, transparent 0 37px, rgba(23,36,20,.034) 37px 38px); transform: rotate(-7deg); }
.contact-signal__field::before, .contact-signal__field::after { position: absolute; content: ""; border-radius: 50%; background: var(--color-copper); }
.contact-signal__field::before { top: 16%; right: 17%; width: 7px; height: 7px; box-shadow: 0 0 0 8px rgba(200,101,48,.11); }
.contact-signal__field::after { bottom: 18%; left: 13%; width: 4px; height: 4px; box-shadow: 0 0 0 5px rgba(23,36,20,.08); }
.contact-signal__orbit { position: absolute; z-index: 1; top: 50%; left: 50%; border: 1px solid rgba(23,36,20,.13); border-radius: 50%; transform: translate(-50%,-50%); }
.contact-signal__orbit::before { position: absolute; top: -4px; left: 46%; width: 7px; height: 7px; content: ""; border-radius: 50%; background: var(--color-copper); }
.contact-signal__orbit--outer { width: 76%; aspect-ratio: 1; animation: contactOrbit 26s linear infinite; }
.contact-signal__orbit--inner { width: 45%; aspect-ratio: 1; border-style: dashed; animation: contactOrbitReverse 18s linear infinite; }
.contact-signal__route { position: absolute; z-index: 2; top: 49%; left: 9%; width: 81%; height: 1px; background: linear-gradient(90deg, var(--color-copper), rgba(23,36,20,.25), var(--color-copper)); transform: rotate(-27deg); transform-origin: center; }
.contact-signal__route i { position: absolute; top: -3px; left: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--color-copper); box-shadow: 0 0 0 6px rgba(200,101,48,.11); animation: contactTravel 4.8s var(--ease) infinite; }
.contact-signal__core { position: absolute; z-index: 4; top: 49%; left: 51%; display: grid; width: 148px; aspect-ratio: 1; place-content: center; border-radius: 50%; color: var(--color-white); background: var(--color-green); box-shadow: 0 20px 55px rgba(23,36,20,.22), 0 0 0 13px rgba(255,255,255,.72), 0 0 0 14px rgba(23,36,20,.12); text-align: center; transform: translate(-50%,-50%); }
.contact-signal__core i { position: absolute; top: 17px; right: 22px; width: 7px; height: 7px; border-radius: 50%; background: var(--color-copper-light); animation: contactPulse 1.8s ease-in-out infinite; }
.contact-signal__core strong { font-family: var(--font-serif); font-size: 2.15rem; font-weight: 500; letter-spacing: .04em; line-height: 1; }
.contact-signal__core span { margin-top: .45rem; color: rgba(255,255,255,.6); font-size: .43rem; letter-spacing: .11em; text-transform: uppercase; }
.contact-signal__node { position: absolute; z-index: 4; width: 175px; padding: 1rem; border: 1px solid rgba(23,36,20,.16); background: rgba(255,255,255,.88); box-shadow: 0 14px 38px rgba(23,36,20,.07); backdrop-filter: blur(7px); }
.contact-signal__node::after { position: absolute; width: 20px; height: 1px; content: ""; background: var(--color-copper); }
.contact-signal__node--matter { top: 18%; left: 1%; }
.contact-signal__node--matter::after { right: -20px; bottom: 26%; }
.contact-signal__node--office { right: 0; bottom: 16%; }
.contact-signal__node--office::after { top: 28%; left: -20px; }
.contact-signal__node small { display: block; margin-bottom: .5rem; color: var(--color-copper); font-size: .42rem; font-weight: 650; letter-spacing: .12em; text-transform: uppercase; }
.contact-signal__node strong { display: block; font-family: var(--font-serif); font-size: 1.35rem; font-weight: 500; line-height: 1; }
.contact-signal__node > span { display: block; margin-top: .45rem; color: var(--color-muted); font-size: .5rem; }
.contact-dossier { position: absolute; z-index: 5; right: 5%; top: 8%; width: 190px; padding: 1.1rem; color: var(--color-white); background: var(--color-copper); box-shadow: 14px 14px 0 rgba(23,36,20,.08); transform: rotate(3deg); }
.contact-dossier > div { display: flex; justify-content: space-between; gap: .5rem; margin-bottom: 1.2rem; }
.contact-dossier span, .contact-dossier b { font-size: .38rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.contact-dossier b { color: rgba(255,255,255,.58); }
.contact-dossier > i { display: block; width: 85%; height: 1px; margin-bottom: .55rem; background: rgba(255,255,255,.45); }
.contact-dossier > i:nth-of-type(2) { width: 64%; }
.contact-dossier > i:nth-of-type(3) { width: 76%; }
.contact-dossier > small { display: block; margin-top: 1rem; font-family: var(--font-serif); font-size: .9rem; font-style: italic; line-height: 1.25; }
.contact-coordinates { position: absolute; z-index: 4; bottom: 3%; left: 6%; margin: 0; color: var(--color-green); font-size: .48rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; writing-mode: vertical-rl; transform: rotate(180deg); }
.contact-coordinates span { color: var(--color-copper); }
@keyframes contactOrbit { to { transform: translate(-50%,-50%) rotate(360deg); } }
@keyframes contactOrbitReverse { to { transform: translate(-50%,-50%) rotate(-360deg); } }
@keyframes contactTravel { 0% { left: 0; opacity: 0; } 12%, 82% { opacity: 1; } 100% { left: 100%; opacity: 0; } }
@keyframes contactPulse { 0%, 100% { transform: scale(.75); opacity: .45; } 50% { transform: scale(1.35); opacity: 1; } }
.people-hero { min-height: calc(88svh - var(--header-height)); align-items: stretch; background: linear-gradient(90deg, #fff 0 58%, #f3f0e9 58%); }
.people-hero::after { right: auto; bottom: -28%; left: -3%; content: "P"; }
.people-hero__inner { position: relative; z-index: 1; display: grid; width: 100%; grid-template-columns: 1.05fr .95fr; gap: clamp(3rem, 7vw, 7rem); align-items: center; padding-block: clamp(4rem, 7vw, 7rem); }
.people-hero__copy { position: relative; z-index: 3; }
.people-hero__copy h1 { font-size: clamp(3.8rem, 6.1vw, 6.7rem); line-height: .92; }
.people-hero__copy h1 span, .people-hero__copy h1 em { display: block; }
.people-hero__copy h1 em { margin-top: .12em; color: var(--color-copper); font-weight: 400; }
.people-hero__copy .lead { max-width: 650px; }
.people-hero__meta { display: grid; grid-template-columns: auto minmax(40px, 130px) auto; gap: 1rem; align-items: center; max-width: 460px; margin-top: clamp(3rem, 7vh, 5rem); }
.people-hero__meta p { display: grid; gap: .25rem; }
.people-hero__meta strong { color: var(--color-green); font-family: var(--font-serif); font-size: 2rem; font-weight: 500; line-height: 1; }
.people-hero__meta span { color: var(--color-muted); font-size: .55rem; letter-spacing: .12em; text-transform: uppercase; }
.people-hero__meta i { height: 1px; background: var(--color-border); }
.people-hero__visual { position: relative; min-height: 620px; isolation: isolate; }
.people-hero__visual::before { position: absolute; z-index: 4; top: 3%; right: 6%; width: 1px; height: 22%; content: ""; background: var(--color-copper); animation: aboutRule 2.4s cubic-bezier(.2,.7,.2,1) both; }
.people-hero__backdrop { position: absolute; inset: 2% 0 7% 8%; background: var(--color-green); clip-path: polygon(11% 0, 100% 0, 100% 89%, 85% 100%, 0 100%, 0 13%); }
.people-hero__backdrop::after { position: absolute; top: -7%; left: -7%; width: 42%; aspect-ratio: 1; border: 1px solid rgba(200,101,48,.55); border-radius: 50%; content: ""; animation: aboutOrbit 18s linear infinite; }
.people-hero__photo { position: absolute; z-index: 2; inset: 6% 4% 11% 12%; margin: 0; overflow: hidden; clip-path: polygon(9% 0, 100% 0, 100% 90%, 84% 100%, 0 100%, 0 12%); }
.people-hero__photo::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg, transparent 65%, rgba(20,34,18,.35)); pointer-events: none; }
.people-hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 45%; filter: saturate(.82) contrast(1.03); animation: peoplePortrait 10s ease-in-out infinite alternate; }
.people-hero__seal { position: absolute; z-index: 5; top: 10%; right: -1rem; display: grid; width: 112px; aspect-ratio: 1; place-content: center; border: 1px solid var(--color-border); background: rgba(255,255,255,.93); box-shadow: 0 15px 40px rgba(20,34,18,.1); backdrop-filter: blur(8px); }
.people-hero__seal strong { font-family: var(--font-serif); font-size: 1.6rem; font-weight: 500; line-height: 1; }
.people-hero__seal span { margin-top: .45rem; color: var(--color-copper); font-size: .48rem; letter-spacing: .12em; line-height: 1.45; text-transform: uppercase; }
.people-hero__ticker { position: absolute; z-index: 5; right: -3%; bottom: 4%; left: -7%; padding: .78rem 0; color: var(--color-white); background: var(--color-green); box-shadow: 0 12px 30px rgba(20,34,18,.15); overflow: hidden; white-space: nowrap; transform: rotate(-1.5deg); }
.people-hero__ticker div { display: inline-block; padding-left: 0; font-size: .58rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; animation: peopleTicker 22s linear infinite; }
.people-hero__ticker b { margin-inline: 1.4rem; color: var(--color-copper-light); }
@keyframes peoplePortrait { from { transform: scale(1.035) translateY(-3px); } to { transform: scale(1.065) translateY(4px); } }
@keyframes peopleTicker { to { transform: translateX(-50%); } }
.people-hero--sketch { background: linear-gradient(90deg, #fff 0 57%, #f3f0e9 57%); }
.people-hero__visual--sketch { min-height: 660px; overflow: hidden; }
.people-hero__visual--sketch::before { top: 5%; right: 3%; height: 28%; }
.pencil-field { position: absolute; inset: 3% 0 2% 5%; border: 1px solid rgba(20,34,18,.14); background: repeating-linear-gradient(0deg, transparent 0 31px, rgba(20,34,18,.035) 31px 32px), linear-gradient(135deg, rgba(255,255,255,.6), rgba(232,226,216,.65)); clip-path: polygon(10% 0, 100% 0, 100% 88%, 85% 100%, 0 100%, 0 12%); }
.pencil-field::before { position: absolute; top: 8%; right: 8%; width: 44%; aspect-ratio: 1; border: 1px solid rgba(200,101,48,.32); border-radius: 50%; content: ""; }
.pencil-field::after { position: absolute; top: 13%; right: 12%; width: 1px; height: 42%; content: ""; background: linear-gradient(var(--color-copper), transparent); transform: rotate(34deg); transform-origin: top; }
.pencil-orbit { position: absolute; z-index: 1; top: 12%; right: 4%; width: 34%; aspect-ratio: 1; border: 1px dashed rgba(20,34,18,.22); border-radius: 50%; animation: pencilOrbit 24s linear infinite; }
.pencil-orbit::after { position: absolute; top: 48%; left: -5px; width: 9px; aspect-ratio: 1; border-radius: 50%; content: ""; background: var(--color-copper); box-shadow: 0 0 0 7px rgba(200,101,48,.11); }
.pencil-art { position: absolute; z-index: 2; inset: -3% -1% 1% -7%; margin: 0; }
.pencil-art img { width: 100%; height: 100%; object-fit: contain; object-position: center bottom; filter: saturate(.32) sepia(.06) contrast(.98); mix-blend-mode: multiply; animation: pencilFloat 8s ease-in-out infinite alternate; transform-origin: 54% 65%; will-change: transform; }
.pencil-index { position: absolute; z-index: 4; top: 12%; left: 2%; padding-left: 1rem; border-left: 1px solid var(--color-copper); }
.pencil-index span { color: var(--color-copper); font-size: .5rem; letter-spacing: .16em; text-transform: uppercase; }
.pencil-index p { margin-top: .8rem; color: var(--color-muted); font-size: .5rem; letter-spacing: .12em; line-height: 1.8; text-transform: uppercase; }
.pencil-caption { position: absolute; z-index: 5; right: 0; bottom: 2.5%; display: grid; gap: .35rem; max-width: 290px; padding: .85rem 1.1rem; border-left: 1px solid var(--color-copper); background: rgba(255,255,255,.88); backdrop-filter: blur(8px); }
.pencil-caption span { color: var(--color-copper); font-size: .48rem; letter-spacing: .13em; text-transform: uppercase; }
.pencil-caption strong { color: var(--color-green); font-family: var(--font-serif); font-size: 1rem; font-weight: 500; }
@keyframes pencilFloat { from { transform: translate3d(-3px, -5px, 0) rotate(-.35deg) scale(.985); } to { transform: translate3d(5px, 5px, 0) rotate(.35deg) scale(1.015); } }
@keyframes pencilOrbit { to { transform: rotate(360deg); } }
.about-hero { min-height: calc(88svh - var(--header-height)); align-items: stretch; }
.about-hero::after { right: auto; bottom: -24%; left: -5%; content: "A"; }
.about-hero__inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(3rem, 8vw, 8rem); align-items: center; padding-block: clamp(4rem, 7vw, 7rem); }
.about-hero__copy h1 { max-width: 780px; }
.about-hero__copy .lead { max-width: 590px; margin-top: 2rem; }
.about-hero__actions { display: flex; align-items: center; gap: 1.25rem; margin-top: 2.2rem; }
.about-hero__download { display: inline-flex; gap: .5rem; align-items: center; padding-block: .45rem; border-bottom: 1px solid var(--color-border); color: var(--color-muted); font-size: .6rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; transition: color .25s ease, border-color .25s ease; }
.about-hero__download span { color: var(--color-copper); font-size: .8rem; transition: transform .25s ease; }
.about-hero__download:hover { color: var(--color-green); border-color: var(--color-copper); }
.about-hero__download:hover span { transform: translateY(3px); }
.about-hero__timeline { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1rem; max-width: 590px; margin-top: clamp(3rem, 6vh, 5rem); }
.about-hero__timeline p { display: grid; gap: .18rem; }
.about-hero__timeline strong { color: var(--color-copper); font-family: var(--font-serif); font-size: 1.8rem; font-weight: 500; line-height: 1; }
.about-hero__timeline span { color: var(--color-muted); font-size: .55rem; letter-spacing: .1em; text-transform: uppercase; }
.about-hero__timeline i { height: 1px; background: var(--color-border); }
.about-hero__art { position: relative; min-height: 630px; display: flex; align-items: flex-end; justify-content: center; overflow: hidden; isolation: isolate; background: var(--color-green); }
.about-hero__art::before { position: absolute; z-index: 4; top: 7%; left: 4%; width: 1px; height: 34%; content: ""; background: var(--color-copper); transform-origin: top; animation: aboutRule 2.4s cubic-bezier(.2,.7,.2,1) both; }
.about-hero__art::after { position: absolute; z-index: 3; top: -20%; left: -45%; width: 30%; height: 145%; content: ""; background: linear-gradient(90deg, transparent, rgba(255,255,255,.2), transparent); transform: rotate(12deg); animation: aboutLightSweep 8s 1.8s ease-in-out infinite; pointer-events: none; }
.about-hero__arch { position: absolute; z-index: 1; inset: 2% 0 0 5%; background: var(--color-stone); clip-path: polygon(10% 0, 100% 0, 100% 89%, 84% 100%, 0 100%, 0 13%); }
.about-hero__arch::before { position: absolute; z-index: 4; top: -5%; right: -5%; width: 44%; aspect-ratio: 1; border: 1px solid rgba(200,101,48,.56); border-radius: 50%; content: ""; animation: aboutOrbit 16s linear infinite; }
.about-hero__arch::after { position: absolute; z-index: 4; top: 5%; right: 7%; width: 8px; aspect-ratio: 1; border-radius: 50%; content: ""; background: var(--color-copper); box-shadow: 0 0 0 8px rgba(200,101,48,.12); animation: aboutDot 4s ease-in-out infinite; }
.about-hero__art img { --about-x: 0px; --about-y: 0px; position: absolute; z-index: 2; inset: 5% 3% 0 9%; width: 88%; height: 95%; object-fit: cover; object-position: 50% 50%; clip-path: polygon(9% 0, 100% 0, 100% 90%, 84% 100%, 0 100%, 0 12%); filter: saturate(.84) contrast(1.045); animation: aboutImageBreath 9s ease-in-out infinite alternate; will-change: transform; }
.about-hero__art:hover img { filter: saturate(.98) contrast(1.04); }
.about-hero__art > p { position: absolute; z-index: 5; right: 0; bottom: 1.5rem; padding: .8rem 1.1rem; border-left: 1px solid var(--color-copper); background: rgba(255,255,255,.92); color: var(--color-green); font-size: .57rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; backdrop-filter: blur(8px); }
.about-hero__art > p span { color: var(--color-copper); }
@keyframes aboutImageBreath { from { transform: translate3d(var(--about-x), calc(var(--about-y) - 4px), 0) scale(1.035); } to { transform: translate3d(var(--about-x), calc(var(--about-y) + 4px), 0) scale(1.065); } }
@keyframes aboutLightSweep { 0%, 25% { left: -45%; opacity: 0; } 38% { opacity: 1; } 58%, 100% { left: 130%; opacity: 0; } }
@keyframes aboutOrbit { to { transform: rotate(360deg); } }
@keyframes aboutDot { 0%, 100% { transform: translateY(0); opacity: .65; } 50% { transform: translateY(18px); opacity: 1; } }
@keyframes aboutRule { from { transform: scaleY(0); } to { transform: scaleY(1); } }
.about-charter { position: relative; color: var(--color-white); background: var(--color-green); overflow: hidden; }
.about-intro .editorial-aside { position: relative; padding-top: 1.5rem; border-top: 1px solid var(--color-copper); }
.about-intro .editorial-aside span { color: var(--color-copper); font-style: italic; }
.about-intro__scope { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 2.5rem; }
.about-intro__scope span { padding: .55rem .85rem; border: 1px solid var(--color-border); color: var(--color-green); font-size: .58rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.about-charter::before { position: absolute; top: -9rem; right: -7rem; content: "M/V"; color: rgba(255,255,255,.025); font-family: var(--font-serif); font-size: 24rem; line-height: 1; }
.about-charter__heading { position: relative; z-index: 1; display: grid; grid-template-columns: 1.1fr .9fr; gap: 3rem; align-items: end; margin-bottom: clamp(4rem, 7vw, 7rem); }
.about-charter__heading .section-label { grid-column: 1 / -1; margin-bottom: -.5rem; }
.about-charter__heading > p:last-child { max-width: 560px; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.2); color: rgba(255,255,255,.62); }
.charter-index { position: relative; z-index: 1; border-top: 1px solid rgba(255,255,255,.2); }
.charter-entry { display: grid; min-height: 230px; grid-template-columns: 70px 130px 1fr 1fr; gap: clamp(1rem, 3vw, 3rem); align-items: center; padding: 2.4rem 1.5rem; border-bottom: 1px solid rgba(255,255,255,.2); transition: color .3s ease, background .3s ease; }
.charter-entry:hover { color: var(--color-green); background: var(--color-white); }
.charter-entry__number { color: var(--color-copper); font-family: var(--font-serif); font-size: 1.35rem; }
.charter-entry__label { font-size: .65rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.charter-entry h3 { font-size: clamp(2rem, 3.5vw, 3.5rem); }
.charter-entry > p:last-child { color: rgba(255,255,255,.58); font-size: .82rem; }
.charter-entry:hover > p:last-child { color: var(--color-muted); }
.editorial-grid { display: grid; grid-template-columns: 4fr 7fr; gap: clamp(4rem, 10vw, 10rem); }
.editorial-aside { color: var(--color-copper); font-family: var(--font-serif); font-size: clamp(2rem, 4vw, 4rem); line-height: 1; }
.prose h2 { margin-bottom: 2rem; }
.prose p { max-width: 760px; margin-bottom: 1.25rem; color: var(--color-muted); font-size: 1rem; }
.principle-list { margin-top: 5rem; border-top: 1px solid var(--color-border); }
.principle-row { display: grid; grid-template-columns: 70px 1fr 1.3fr; gap: 2rem; padding: 2rem 0; border-bottom: 1px solid var(--color-border); }
.principle-row span { color: var(--color-copper); font-family: var(--font-serif); font-size: 1.15rem; }
.principle-row h3 { font-size: 2rem; }
.principle-row p { color: var(--color-muted); }
.working-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--color-border); border: 1px solid var(--color-border); }
.working-item { min-height: 300px; padding: 2.4rem; background: var(--color-white); }
.working-item__line { display: block; width: 34px; height: 1px; margin-bottom: 5rem; background: var(--color-copper); }
.working-item p { margin-top: 1rem; color: var(--color-muted); }
.services-layout { display: grid; grid-template-columns: 320px 1fr; gap: clamp(3rem, 8vw, 8rem); align-items: start; }
.services-nav { position: sticky; top: 110px; border-top: 1px solid var(--color-border); }
.services-nav a { display: grid; grid-template-columns: 34px 1fr; gap: .75rem; padding: 1rem 0; border-bottom: 1px solid var(--color-border); color: var(--color-muted); font-size: .75rem; line-height: 1.5; transition: color .2s ease, padding-left .2s ease; }
.services-nav a:hover, .services-nav a.is-current { padding-left: .5rem; color: var(--color-copper); }
.service-detail { display: grid; grid-template-columns: 80px 1fr; gap: 2rem; padding: 0 0 5rem; margin-bottom: 5rem; border-bottom: 1px solid var(--color-border); scroll-margin-top: 120px; }
.service-detail:last-child { margin-bottom: 0; }
.service-detail__number { color: var(--color-copper); font-family: var(--font-serif); font-size: 1.4rem; }
.service-detail h2 { max-width: 800px; margin-bottom: 2rem; font-size: clamp(2.7rem, 4.5vw, 4.7rem); }
.service-detail p { max-width: 760px; margin-bottom: 1.2rem; color: var(--color-muted); }
.service-detail ul { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem 2rem; max-width: 760px; margin: 2rem 0 0; padding: 1.5rem 0 0; border-top: 1px solid var(--color-border); list-style: none; }
.service-detail li { position: relative; padding-left: 1rem; font-size: .78rem; }
.service-detail li::before { position: absolute; top: .75rem; left: 0; width: 4px; height: 4px; content: ""; border-radius: 50%; background: var(--color-copper); }
.team-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: end; margin-bottom: 5rem; }
.partners-section { position: relative; overflow: hidden; }
.partners-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; border: 1px solid var(--color-border); background: var(--color-border); }
.partner-card { min-width: 0; color: var(--color-white); background: var(--color-green); overflow: hidden; }
.partner-card__portrait { position: relative; aspect-ratio: 4/4.7; margin: 0; overflow: hidden; background: #aaa7aa; }
.partner-card__portrait::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg, transparent 68%, rgba(20,32,18,.22)); pointer-events: none; }
.partner-card__portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 38%; filter: saturate(.86); transition: transform .75s cubic-bezier(.2,.7,.2,1), filter .5s ease; }
.partner-card:hover .partner-card__portrait img { transform: scale(1.035); filter: saturate(1); }
.partner-card__portrait figcaption { position: absolute; z-index: 2; right: 1.25rem; bottom: 1rem; color: rgba(255,255,255,.78); font-size: .58rem; letter-spacing: .14em; }
.partner-card__body { display: flex; min-height: 315px; flex-direction: column; align-items: flex-start; padding: clamp(1.7rem, 3vw, 2.7rem); }
.partner-card__eyebrow { margin-bottom: 1.35rem; color: var(--color-copper-light); font-size: .6rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.partner-card h2 { color: var(--color-white); font-size: clamp(2rem, 3vw, 3.25rem); line-height: .95; }
.partner-card__body > p:not(.partner-card__eyebrow) { max-width: 310px; margin-top: 1.2rem; color: rgba(255,255,255,.64); font-size: .73rem; line-height: 1.55; }
.partner-card__more { display: inline-flex; gap: 1.4rem; align-items: center; margin-top: auto; padding: .75rem 0 .45rem; border: 0; border-bottom: 1px solid rgba(255,255,255,.35); color: var(--color-white); background: transparent; font: inherit; font-size: .68rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; transition: color .25s ease, border-color .25s ease; }
.partner-card__more span { color: var(--color-copper-light); font-size: 1rem; transition: transform .25s ease; }
.partner-card__more:hover { color: var(--color-copper-light); border-color: var(--color-copper-light); }
.partner-card__more:hover span { transform: translate(3px, -3px); }
.associates-section { position: relative; padding-bottom: calc(var(--section-space) + 2rem); background: var(--color-stone); overflow: hidden; }
.associates-section::before { position: absolute; top: -8rem; right: -7rem; width: 28rem; height: 28rem; content: ""; border: 1px solid rgba(196,92,39,.16); border-radius: 50%; box-shadow: 0 0 0 3rem rgba(196,92,39,.035), 0 0 0 7rem rgba(196,92,39,.025); pointer-events: none; }
.associates-intro { position: relative; z-index: 1; display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(3rem, 9vw, 9rem); align-items: end; margin-bottom: clamp(3.5rem, 7vw, 6rem); }
.associates-intro h2 { font-size: clamp(3rem, 6.4vw, 6.7rem); line-height: .91; }
.associates-intro__note { max-width: 430px; padding: 1.4rem 0 0 1.5rem; border-top: 1px solid var(--color-copper); border-left: 1px solid var(--color-border); }
.associates-intro__note span { display: block; margin-bottom: 1rem; color: var(--color-copper); font-size: .58rem; font-weight: 650; letter-spacing: .13em; text-transform: uppercase; }
.associates-intro__note p { color: var(--color-muted); font-size: .82rem; line-height: 1.7; }
.associates-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.8rem, 1.6vw, 1.5rem); align-items: start; }
.associate-card { position: relative; min-width: 0; border: 1px solid rgba(20,34,18,.13); background: rgba(255,255,255,.86); box-shadow: 0 18px 50px rgba(19,30,18,.04); overflow: hidden; transition: transform .55s cubic-bezier(.2,.7,.2,1), box-shadow .55s ease; }
.associate-card:nth-child(even) { transform: translateY(2.6rem); }
.associate-card:hover { transform: translateY(-.5rem); box-shadow: 0 28px 70px rgba(19,30,18,.12); }
.associate-card:nth-child(even):hover { transform: translateY(2rem); }
.associate-card::after { position: absolute; right: 0; bottom: 0; width: 0; height: 3px; content: ""; background: var(--color-copper); transition: width .5s cubic-bezier(.2,.7,.2,1); }
.associate-card:hover::after { width: 100%; }
.associate-card--senior { border-top: 3px solid var(--color-green); }
.associate-card--senior::before, .associate-card--illustrated::before { position: absolute; z-index: 3; top: 1rem; left: 1rem; padding: .42rem .6rem; content: "Senior"; color: var(--color-white); background: rgba(20,34,18,.88); font-size: .48rem; font-weight: 650; letter-spacing: .14em; text-transform: uppercase; backdrop-filter: blur(7px); }
.associate-card__portrait { position: relative; aspect-ratio: 4/4.85; margin: 0; overflow: hidden; background: #aaa7aa; }
.associate-card__portrait::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg, transparent 62%, rgba(17,31,15,.45)); pointer-events: none; }
.associate-card__portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; filter: saturate(.82) contrast(.98); transition: transform .8s cubic-bezier(.2,.7,.2,1), filter .5s ease; }
.associate-card:hover .associate-card__portrait img { transform: scale(1.045); filter: saturate(1) contrast(1); }
.associate-card--illustrated .associate-card__portrait { background: #eee2d7; }
.associate-card--illustrated .associate-card__portrait img { padding: 8% 2% 0; object-fit: contain; object-position: center bottom; filter: saturate(.72) sepia(.08); }
.associate-card__portrait figcaption { position: absolute; z-index: 2; right: 1rem; bottom: .85rem; left: 1rem; display: flex; justify-content: space-between; align-items: end; color: var(--color-white); }
.associate-card__portrait figcaption span { font-family: var(--font-serif); font-size: 1.55rem; font-style: italic; }
.associate-card__portrait figcaption small { font-size: .47rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.associate-card__body { position: relative; min-height: 190px; padding: clamp(1.35rem, 2.2vw, 2rem); overflow: hidden; }
.associate-card__body > p { position: relative; z-index: 2; margin-bottom: 1rem; color: var(--color-copper); font-size: .52rem; font-weight: 650; letter-spacing: .14em; text-transform: uppercase; }
.associate-card h3 { position: relative; z-index: 2; color: var(--color-green); font-family: var(--font-serif); font-size: clamp(1.7rem, 2.3vw, 2.55rem); font-weight: 400; line-height: 1; }
.associate-card__mark { position: absolute; right: -.15rem; bottom: -1.6rem; color: rgba(20,34,18,.045); font-family: var(--font-serif); font-size: 7rem; line-height: 1; pointer-events: none; transition: color .35s ease, transform .55s ease; }
.associate-card:hover .associate-card__mark { color: rgba(196,92,39,.075); transform: translate(-.35rem, -.2rem); }
.associates-source { margin: 5.5rem 0 0; color: var(--color-muted); font-size: .55rem; letter-spacing: .08em; text-align: right; text-transform: uppercase; }
.clerks-section { position: relative; background: var(--color-white); overflow: hidden; }
.clerks-section::before { position: absolute; inset: 0; content: ""; background: repeating-linear-gradient(90deg, transparent 0, transparent calc(25% - 1px), rgba(20,34,18,.045) 25%); pointer-events: none; }
.clerks-shell { position: relative; display: grid; grid-template-columns: minmax(250px, .82fr) minmax(0, 2.7fr); gap: clamp(3rem, 7vw, 7rem); align-items: start; }
.clerks-intro { position: sticky; top: calc(var(--header-height) + 2rem); }
.clerks-intro h2 { margin: 1.35rem 0 1.7rem; font-size: clamp(3.1rem, 5.2vw, 5.7rem); line-height: .88; }
.clerks-intro h2 em { color: var(--color-copper); font-weight: 400; }
.clerks-intro > p:not(.section-label) { max-width: 310px; color: var(--color-muted); font-size: .78rem; line-height: 1.72; }
.clerks-intro__folio { display: grid; width: 118px; height: 138px; grid-template-columns: 1fr auto; align-content: end; margin-top: 3rem; padding: 1rem; color: var(--color-white); background: var(--color-green); }
.clerks-intro__folio span { grid-column: 1 / -1; margin-bottom: 2.8rem; color: var(--color-copper-light); font-size: .45rem; letter-spacing: .12em; text-transform: uppercase; }
.clerks-intro__folio strong { font-family: var(--font-serif); font-size: 2.1rem; font-weight: 400; line-height: .8; }
.clerks-intro__folio small { align-self: end; font-size: .44rem; letter-spacing: .1em; text-transform: uppercase; }
.clerks-docket { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; border: 1px solid var(--color-border); background: var(--color-border); }
.clerk-card { position: relative; min-width: 0; background: var(--color-white); overflow: hidden; }
.clerk-card:nth-child(2) { margin-top: 3.5rem; margin-bottom: -3.5rem; }
.clerk-card__portrait { position: relative; aspect-ratio: 3/3.85; margin: 0; overflow: hidden; background: #96939b; }
.clerk-card__portrait::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg, transparent 62%, rgba(14,27,13,.38)); pointer-events: none; }
.clerk-card__portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 32%; filter: saturate(.78); transition: transform .75s cubic-bezier(.2,.7,.2,1), filter .45s ease; }
.clerk-card:last-child .clerk-card__portrait img { object-position: center 20%; }
.clerk-card:hover .clerk-card__portrait img { transform: scale(1.045); filter: saturate(1); }
.clerk-card__portrait > span { position: absolute; z-index: 2; right: .9rem; bottom: .75rem; color: var(--color-white); font-family: var(--font-serif); font-size: 1.25rem; font-style: italic; }
.clerk-card__copy { position: relative; min-height: 205px; padding: clamp(1.35rem, 2vw, 2rem); background: var(--color-stone); overflow: hidden; transition: color .35s ease, background .35s ease; }
.clerk-card--lead .clerk-card__copy { color: var(--color-white); background: var(--color-green); }
.clerk-card__copy p { margin-bottom: 1rem; color: var(--color-copper); font-size: .5rem; font-weight: 650; letter-spacing: .14em; text-transform: uppercase; }
.clerk-card--lead .clerk-card__copy p { color: var(--color-copper-light); }
.clerk-card h3 { position: relative; z-index: 2; color: inherit; font-family: var(--font-serif); font-size: clamp(1.65rem, 2.25vw, 2.45rem); font-weight: 400; line-height: 1; }
.clerk-card__line { position: absolute; right: 0; bottom: 0; left: 0; height: 3px; background: linear-gradient(90deg, var(--color-copper) 0 24%, transparent 24%); transition: background-position .55s ease; background-size: 400% 100%; }
.clerk-card:hover .clerk-card__line { background-position: 34% 0; }
.administration-section { position: relative; color: var(--color-green); background: #ebe7df; overflow: hidden; }
.administration-section::before { position: absolute; top: 0; right: 7%; width: 1px; height: 7rem; content: ""; background: var(--color-copper); }
.administration-intro { display: grid; grid-template-columns: 1.35fr .65fr; gap: clamp(3rem, 8vw, 8rem); align-items: end; margin-bottom: clamp(4rem, 8vw, 7rem); }
.administration-intro h2 { margin-top: 1.3rem; font-size: clamp(3rem, 5.7vw, 6.1rem); line-height: .92; }
.administration-intro h2 em { color: var(--color-copper); font-weight: 400; }
.administration-intro .lead { max-width: 470px; padding-bottom: .65rem; color: var(--color-muted); }
.administration-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; border: 1px solid rgba(20,34,18,.14); background: rgba(20,34,18,.14); }
.admin-card { position: relative; min-width: 0; background: var(--color-white); overflow: hidden; }
.admin-card:nth-child(even) { transform: translateY(2.2rem); }
.admin-card__visual { position: relative; aspect-ratio: 4/4.65; margin: 0; overflow: hidden; background: #97949b; }
.admin-card__visual::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg, transparent 60%, rgba(15,28,14,.32)); pointer-events: none; }
.admin-card__visual > img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; filter: saturate(.8); transition: transform .75s cubic-bezier(.2,.7,.2,1), filter .45s ease; }
.admin-card:hover .admin-card__visual > img { transform: scale(1.045); filter: saturate(1); }
.admin-card__visual > span { position: absolute; z-index: 5; top: .8rem; right: .8rem; display: grid; width: 2rem; height: 2rem; place-items: center; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; color: var(--color-white); background: rgba(20,34,18,.48); font-family: var(--font-serif); font-size: .65rem; font-style: italic; backdrop-filter: blur(6px); }
.admin-card__body { position: relative; min-height: 185px; padding: clamp(1.3rem, 1.8vw, 1.8rem); background: var(--color-white); }
.admin-card__body::before { position: absolute; top: 0; left: 0; width: 24%; height: 3px; content: ""; background: var(--color-copper); transition: width .45s ease; }
.admin-card:hover .admin-card__body::before { width: 100%; }
.admin-card__body p { margin-bottom: 1rem; color: var(--color-copper); font-size: .48rem; font-weight: 650; letter-spacing: .13em; text-transform: uppercase; }
.admin-card h3 { color: var(--color-green); font-family: var(--font-serif); font-size: clamp(1.45rem, 1.85vw, 2.1rem); font-weight: 400; line-height: 1.02; }
.admin-card--systems { color: var(--color-white); background: var(--color-green); }
.admin-card--systems .admin-card__body { background: var(--color-green); }
.admin-card--systems .admin-card__body p { color: var(--color-copper-light); }
.admin-card--systems h3 { color: var(--color-white); }
.admin-card__tech { display: grid; place-items: center; background: #10210f; isolation: isolate; }
.admin-card__tech::before { position: absolute; inset: 0; content: ""; background: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size: 24px 24px; }
.admin-card__tech::after { background: radial-gradient(circle at 50% 48%, rgba(196,92,39,.13), transparent 48%); }
.tech-window { position: relative; z-index: 2; width: 70%; min-height: 43%; padding: 2.2rem 1rem 1rem; border: 1px solid rgba(255,255,255,.28); background: rgba(6,18,8,.78); box-shadow: 10px 12px 0 rgba(196,92,39,.13); }
.tech-window::before { position: absolute; top: .7rem; left: .8rem; width: 5px; height: 5px; content: ""; border-radius: 50%; background: var(--color-copper); box-shadow: 10px 0 rgba(255,255,255,.35), 20px 0 rgba(255,255,255,.18); }
.tech-window i { display: block; width: 82%; height: 2px; margin-bottom: .7rem; background: rgba(255,255,255,.48); animation: techPulse 2.4s ease-in-out infinite; }
.tech-window i:nth-of-type(2) { width: 58%; animation-delay: .35s; }
.tech-window i:nth-of-type(3) { width: 72%; animation-delay: .7s; }
.tech-window b { display: inline-block; width: 7px; height: 7px; margin: .55rem .3rem 0 0; border-radius: 50%; background: var(--color-copper); opacity: .45; animation: techPulse 1.8s ease-in-out infinite; }
.tech-window b:nth-of-type(2) { animation-delay: .25s; }
.tech-window b:nth-of-type(3) { animation-delay: .5s; }
.tech-window b:nth-of-type(4) { animation-delay: .75s; }
.tech-window em { display: block; margin-top: .8rem; color: rgba(255,255,255,.45); font-family: monospace; font-size: .38rem; font-style: normal; letter-spacing: .05em; text-transform: uppercase; }
.tech-orbit { position: absolute; z-index: 1; width: 78%; aspect-ratio: 1; border: 1px solid rgba(196,92,39,.22); border-radius: 50%; animation: techOrbit 16s linear infinite; }
.tech-orbit i { position: absolute; width: 6px; height: 6px; border-radius: 50%; background: var(--color-copper); }
.tech-orbit i:first-child { top: 12%; left: 18%; }
.tech-orbit i:nth-child(2) { top: 47%; right: -3px; }
.tech-orbit i:last-child { bottom: 4%; left: 40%; }
@keyframes techPulse { 0%, 100% { opacity: .25; } 50% { opacity: .95; } }
@keyframes techOrbit { to { transform: rotate(360deg); } }
body.profile-open { overflow: hidden; }
.partner-profile { width: min(1480px, calc(100vw - 48px)); height: min(880px, calc(100svh - 48px)); max-width: none; max-height: none; padding: 0; border: 0; color: var(--color-green); background: var(--color-white); box-shadow: 0 32px 100px rgba(11,24,11,.35); overflow: hidden; }
.partner-profile[open] { animation: profileEnter .55s cubic-bezier(.2,.7,.2,1) both; }
.partner-profile::backdrop { background: rgba(12,24,11,.82); backdrop-filter: blur(9px); animation: profileBackdrop .35s ease both; }
.partner-profile__grid { display: grid; height: 100%; grid-template-columns: 1.08fr .92fr; }
.partner-profile__copy { position: relative; z-index: 2; align-self: stretch; padding: clamp(3.5rem, 7vw, 7rem); overflow-y: auto; }
.partner-profile__copy::before { position: absolute; top: 0; left: clamp(3.5rem, 7vw, 7rem); width: 1px; height: 3rem; content: ""; background: var(--color-copper); }
.partner-profile__signature { display: block; margin: clamp(2.5rem, 7vh, 5rem) 0 1.8rem; color: var(--color-copper); font-family: var(--font-serif); font-size: clamp(1.25rem, 2vw, 1.85rem); font-style: italic; }
.partner-profile h2 { position: relative; z-index: 2; width: calc(100% + clamp(1.5rem, 5vw, 5rem)); max-width: none; margin: 0 calc(clamp(1.5rem, 5vw, 5rem) * -1) 2.2rem 0; padding: 1.4rem clamp(1.4rem, 2.8vw, 2.8rem); color: var(--color-white); background: var(--color-green); font-family: var(--font-sans); font-size: clamp(2.15rem, 3.35vw, 3.75rem); font-weight: 650; letter-spacing: -.035em; line-height: 1.06; }
.partner-profile__copy > p:not(.section-label) { max-width: 760px; color: var(--color-muted); font-size: clamp(.78rem, 1.15vw, 1rem); line-height: 1.8; }
.partner-profile__focus { display: flex; flex-wrap: wrap; gap: .55rem; margin: 2rem 0 0; padding: 0; list-style: none; }
.partner-profile__focus li { padding: .5rem .75rem; border: 1px solid var(--color-border); color: var(--color-green); font-size: .55rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.partner-profile__portrait { position: relative; min-height: 0; margin: 0; overflow: hidden; background: #aaa7aa; }
.partner-profile__portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 38%; }
.partner-profile__portrait::after { position: absolute; inset: 0; content: ""; box-shadow: inset 30px 0 80px rgba(17,30,15,.12); pointer-events: none; }
.partner-profile__portrait figcaption { position: absolute; z-index: 2; right: 1.5rem; bottom: 1.5rem; padding: .6rem .75rem; color: var(--color-white); background: rgba(20,34,18,.8); font-size: .55rem; letter-spacing: .14em; text-transform: uppercase; }
.partner-profile__close { position: absolute; z-index: 5; top: 1.2rem; right: 1.2rem; display: inline-flex; gap: .75rem; align-items: center; padding: .6rem .85rem; border: 1px solid rgba(255,255,255,.45); color: var(--color-white); background: rgba(20,34,18,.78); font: inherit; font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; backdrop-filter: blur(8px); }
.partner-profile__close span { font-size: 1.2rem; line-height: 1; transition: transform .25s ease; }
.partner-profile__close:hover span { transform: rotate(90deg); }
@keyframes profileEnter { from { opacity: 0; transform: translateY(24px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes profileBackdrop { from { opacity: 0; } to { opacity: 1; } }

/* Contact and forms */
.contact-grid { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(4rem, 10vw, 10rem); }
.contact-copy { position: sticky; top: 120px; align-self: start; }
.contact-copy h2 { margin-bottom: 2rem; }
.contact-copy > p { color: var(--color-muted); }
.contact-details { margin: 3rem 0 0; padding: 0; border-top: 1px solid var(--color-border); list-style: none; }
.contact-details li { display: grid; grid-template-columns: 130px 1fr; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--color-border); font-size: .78rem; }
.contact-details strong { color: var(--color-copper); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.contact-details span { color: var(--color-muted); }
.contact-details a { color: var(--color-green); text-decoration-color: transparent; text-underline-offset: 4px; transition: color .25s ease, text-decoration-color .25s ease; }
.contact-details a:hover { color: var(--color-copper); text-decoration-color: currentColor; }
.contact-details--live span { display: grid; gap: .3rem; }
.contact-details--live small { color: var(--color-muted); font-size: .62rem; line-height: 1.45; }
.contact-form { padding: clamp(1.5rem, 4vw, 4rem); background: var(--color-stone); }
.contact-form--white { border: 1px solid var(--color-border); background: var(--color-white); }
.matter-desk { position: relative; border-top: 1px solid var(--color-border); background: #f3f0e9; overflow: hidden; }
.matter-desk::before { position: absolute; top: 0; right: 0; width: 18%; height: 6px; content: ""; background: var(--color-copper); }
.matter-desk__intro { display: grid; grid-template-columns: 1.3fr .7fr; align-items: end; gap: 4rem; margin-bottom: clamp(3rem, 6vw, 6rem); }
.matter-desk__intro h2 { max-width: 940px; }
.matter-desk__intro > p { max-width: 470px; padding-top: 1.5rem; border-top: 1px solid var(--color-copper); color: var(--color-muted); }
.matter-desk__grid { gap: 0; box-shadow: 0 24px 70px rgba(23,36,20,.08); }
.matter-desk__aside { position: relative; top: auto; min-height: 850px; padding: clamp(2rem, 4vw, 4.5rem); color: var(--color-white); background: var(--color-green); overflow: hidden; }
.matter-desk__aside::after { position: absolute; right: -12%; bottom: -15%; content: "§"; color: rgba(255,255,255,.035); font-family: var(--font-serif); font-size: 27rem; line-height: .7; }
.matter-desk__aside .section-label { color: #e68a52; }
.matter-desk__aside h3 { position: relative; z-index: 2; margin-bottom: 3rem; font-size: clamp(2.5rem, 4vw, 4rem); }
.matter-desk__folio { position: absolute; top: 2.5rem; right: 3rem; color: rgba(255,255,255,.16); font-family: var(--font-serif); font-size: 2rem; }
.matter-steps { position: relative; z-index: 2; margin: 0 0 3rem; padding: 0; border-top: 1px solid rgba(255,255,255,.18); list-style: none; }
.matter-steps li { display: grid; grid-template-columns: 42px 1fr; gap: 1rem; padding: 1.25rem 0; border-bottom: 1px solid rgba(255,255,255,.18); }
.matter-steps li > span { color: #e68a52; font-family: var(--font-serif); font-size: 1.1rem; }
.matter-steps strong { display: block; margin-bottom: .22rem; color: var(--color-white); font-size: .72rem; font-weight: 600; letter-spacing: .035em; text-transform: uppercase; }
.matter-steps p { color: rgba(255,255,255,.58); font-size: .72rem; }
.matter-desk__aside .contact-details { position: relative; z-index: 2; margin-top: 0; border-color: rgba(255,255,255,.18); }
.matter-desk__aside .contact-details li { grid-template-columns: 100px 1fr; border-color: rgba(255,255,255,.18); }
.matter-desk__aside .contact-details span { color: rgba(255,255,255,.62); }
.matter-desk__privacy { position: relative; z-index: 2; margin-top: 2rem; color: rgba(255,255,255,.42) !important; font-size: .65rem; }
.matter-desk__document { position: relative; min-width: 0; background: #fffdfa; overflow: hidden; }
.document-head { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem clamp(1.5rem, 4vw, 4rem); border-bottom: 1px solid var(--color-border); color: var(--color-muted); font-size: .58rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.document-head span:last-child { color: var(--color-copper); }
.form-progress { padding: 1.2rem clamp(1.5rem, 4vw, 4rem) 0; }
.form-progress > div { display: flex; justify-content: space-between; margin-bottom: .55rem; color: var(--color-muted); font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; }
.form-progress i { position: relative; display: block; height: 2px; background: var(--color-pale); overflow: hidden; }
.form-progress i::after { position: absolute; inset: 0; content: ""; background: var(--color-copper); transform: scaleX(var(--progress-scale, 0)); transform-origin: left; transition: transform .45s var(--ease); }
.document-stamp { position: absolute; z-index: 0; right: -1.3rem; bottom: 11rem; padding: .35rem 1rem; border: 2px solid rgba(200,101,48,.07); color: rgba(200,101,48,.07); font-size: 2.6rem; font-weight: 600; letter-spacing: .08em; line-height: 1; text-transform: uppercase; transform: rotate(-90deg); pointer-events: none; }
.contact-form--document { position: relative; z-index: 1; padding-top: 2.5rem; border: 0; background: transparent; }
.contact-form--document .form-grid { counter-reset: field; }
.contact-form--document .form-field { position: relative; }
.contact-form--document .form-field label::before { margin-right: .6rem; color: var(--color-copper); content: "0" counter(field); counter-increment: field; font-family: var(--font-serif); font-size: .85rem; }
.contact-form--document .form-field input, .contact-form--document .form-field select, .contact-form--document .form-field textarea { position: relative; z-index: 1; }
.document-actions { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--color-border); }
.document-actions p { color: var(--color-muted); font-size: .62rem; }
.document-actions p span { color: var(--color-copper); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem 1rem; }
.form-field--full { grid-column: 1 / -1; }
.form-field label { display: block; margin-bottom: .45rem; font-size: .69rem; font-weight: 600; letter-spacing: .04em; }
.form-field .required { color: var(--color-copper); }
.form-field input, .form-field select, .form-field textarea { width: 100%; border: 0; border-bottom: 1px solid #c8c2b8; border-radius: 0; padding: .8rem .15rem; color: var(--color-ink); background: transparent; outline: 0; transition: border-color .2s ease; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: var(--color-copper); }
.form-field textarea { min-height: 130px; resize: vertical; }
.form-error { min-height: 1.1rem; margin-top: .25rem; color: #9d341f; font-size: .67rem; }
.form-field.has-error input, .form-field.has-error select, .form-field.has-error textarea { border-color: #9d341f; }
.form-check { display: grid; grid-template-columns: 18px 1fr; gap: .7rem; align-items: start; margin: .75rem 0 1.5rem; }
.form-check input { width: 16px; height: 16px; margin-top: .35rem; accent-color: var(--color-copper); }
.form-check label { color: var(--color-muted); font-size: .7rem; }
.form-status { display: none; padding: 2rem; border-left: 2px solid var(--color-copper); background: var(--color-white); }
.form-status.is-visible { display: block; }
.form-status h3 { margin-bottom: .6rem; }
.map-placeholder { position: relative; display: block; min-height: 560px; margin-top: 5rem; border: 1px solid rgba(23,36,20,.18); color: inherit; background: linear-gradient(90deg, rgba(248,246,241,.08), rgba(248,246,241,.02)), url("../images/nairobi-thika-road-pencil-study.webp") center / cover no-repeat; overflow: hidden; isolation: isolate; }
.map-placeholder::before { position: absolute; inset: 0; z-index: 0; content: ""; background: linear-gradient(rgba(23,36,20,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(23,36,20,.04) 1px, transparent 1px); background-size: 68px 68px; opacity: .35; transition: background-size .8s var(--ease); }
.map-placeholder::after { position: absolute; z-index: 1; inset: 0; content: ""; background: linear-gradient(90deg, rgba(248,246,241,.08) 0 30%, transparent 58%), linear-gradient(180deg, transparent 65%, rgba(23,36,20,.12)); pointer-events: none; }
.office-location { transition: border-color .3s ease, box-shadow .45s ease; }
.office-location:hover { border-color: var(--color-copper); box-shadow: 0 32px 80px rgba(23,36,20,.1); }
.office-location:hover::before { background-size: 58px 58px; }
.location-map { position: absolute; z-index: 2; inset: 0; overflow: hidden; }
.location-road { position: absolute; display: block; height: 12px; border-top: 1px solid rgba(23,36,20,.16); border-bottom: 1px solid rgba(23,36,20,.08); background: rgba(255,255,255,.18); opacity: .24; transition: transform .8s var(--ease); }
.location-road::after { position: absolute; top: 5px; right: 0; left: 0; height: 1px; content: ""; background: repeating-linear-gradient(90deg, var(--color-copper) 0 20px, transparent 20px 38px); background-size: 76px 1px; opacity: .7; animation: locationTraffic 4.5s linear infinite; }
.location-road--one { top: 47%; left: -8%; width: 116%; transform: rotate(-14deg); }
.location-road--two { top: 48%; left: 39%; width: 74%; transform: rotate(64deg); }
.location-road--three { top: 18%; left: 48%; width: 70%; transform: rotate(29deg); }
.location-road--four { bottom: 9%; left: 27%; width: 66%; transform: rotate(8deg); }
.office-location:hover .location-road--one { transform: rotate(-12deg) translateX(1%); }
.office-location:hover .location-road--two { transform: rotate(61deg) translateX(-1%); }
.location-label { position: absolute; z-index: 2; padding: .35rem .55rem; color: rgba(23,36,20,.58); background: rgba(233,230,222,.85); font-size: .43rem; font-weight: 650; letter-spacing: .12em; text-transform: uppercase; backdrop-filter: blur(5px); }
.location-label--road { right: 8%; bottom: 22%; transform: rotate(-26deg); }
.location-label--mall { top: 19%; right: 28%; color: var(--color-copper-dark); }
.location-label--city { right: 7%; bottom: 7%; }
.location-point { position: absolute; z-index: 2; right: 14%; bottom: 15%; width: 7px; height: 7px; border: 1px solid var(--color-green); border-radius: 50%; background: var(--color-stone); }
.location-point::after { position: absolute; top: 2px; left: -92px; width: 88px; height: 1px; content: ""; background: rgba(23,36,20,.24); }
.location-pin { position: absolute; z-index: 5; top: 39%; left: 67%; display: grid; width: 118px; aspect-ratio: 1; place-content: center; border-radius: 50% 50% 50% 8%; color: var(--color-white); background: var(--color-copper); box-shadow: 0 20px 45px rgba(23,36,20,.2), 0 0 0 12px rgba(255,255,255,.48); text-align: center; transform: translate(-50%,-50%) rotate(-45deg); transition: transform .55s var(--ease), box-shadow .55s ease; }
.location-pin > * { transform: rotate(45deg); }
.location-pin > i { position: absolute; top: 18px; right: 25px; width: 6px; height: 6px; border-radius: 50%; background: var(--color-white); animation: contactPulse 1.8s ease-in-out infinite; }
.location-pin strong { font-family: var(--font-serif); font-size: 1.65rem; font-weight: 550; line-height: 1; }
.location-pin small { margin-top: .35rem; color: rgba(255,255,255,.7); font-size: .39rem; letter-spacing: .12em; text-transform: uppercase; }
.office-location:hover .location-pin { box-shadow: 0 28px 60px rgba(23,36,20,.26), 0 0 0 18px rgba(255,255,255,.56); transform: translate(-50%,-58%) rotate(-45deg); }
.location-card { position: absolute; z-index: 6; top: 50%; left: 6%; width: min(390px, 38%); padding: clamp(2rem, 4vw, 3.5rem); color: var(--color-green); background: rgba(255,255,255,.9); box-shadow: 20px 22px 0 rgba(23,36,20,.17); backdrop-filter: blur(8px); transform: translateY(-50%); transition: transform .45s var(--ease), box-shadow .45s ease; }
.location-card::after { position: absolute; top: 0; right: 0; width: 0; height: 0; content: ""; border-top: 28px solid #e9e6de; border-left: 28px solid transparent; }
.office-location:hover .location-card { box-shadow: 27px 29px 0 rgba(23,36,20,.21); transform: translateY(calc(-50% - 7px)); }
.location-card .section-label { color: var(--color-copper-dark); }
.location-card h3 { margin: 1.35rem 0 .85rem; color: var(--color-green); font-family: var(--font-serif); font-size: clamp(2.5rem, 4vw, 4.3rem); font-weight: 400; line-height: .9; }
.location-card address { color: var(--color-muted); font-size: .72rem; font-style: normal; line-height: 1.7; }
.location-card__status { display: grid; gap: .65rem; margin-top: 2rem; padding-top: 1.2rem; border-top: 1px solid rgba(23,36,20,.14); }
.location-card__status > span { display: flex; gap: .55rem; align-items: center; color: var(--color-muted); font-size: .48rem; letter-spacing: .08em; text-transform: uppercase; }
.location-card__status > span i { width: 6px; height: 6px; border-radius: 50%; background: #9fce8c; box-shadow: 0 0 0 5px rgba(159,206,140,.11); animation: contactPulse 2s ease-in-out infinite; }
.location-card__status > strong { display: flex; justify-content: space-between; color: var(--color-green); font-size: .58rem; font-weight: 650; letter-spacing: .1em; text-transform: uppercase; }
.location-card__status b { color: var(--color-copper); font-size: 1rem; transition: transform .3s ease; }
.office-location:hover .location-card__status b { transform: translate(4px,-4px); }
.location-index { position: absolute; z-index: 5; right: 2rem; bottom: 1.5rem; margin: 0; color: var(--color-green); font-size: .47rem; font-weight: 650; letter-spacing: .13em; text-transform: uppercase; }
.location-index span { margin-left: 1rem; color: var(--color-copper-dark); }
@keyframes locationTraffic { to { background-position: 76px 0; } }

/* Footer */
.site-footer { padding-top: clamp(4rem, 7vw, 7rem); border-top: 1px solid var(--color-border); background: #fbfaf7; }
.footer-grid { display: grid; grid-template-columns: 1.5fr .7fr 1.2fr .7fr 1fr; gap: 2.5rem; padding-bottom: 4rem; }
.footer-brand .brand { margin-bottom: 1.25rem; }
.footer-brand p { max-width: 290px; color: var(--color-muted); font-size: .76rem; }
.footer-column h3 { margin-bottom: 1.3rem; font-family: var(--font-sans); font-size: .7rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.footer-column ul { margin: 0; padding: 0; list-style: none; }
.footer-column li { margin-bottom: .45rem; color: var(--color-muted); font-size: .72rem; }
.footer-column a:hover { color: var(--color-copper); }
.footer-bottom { display: flex; justify-content: space-between; gap: 2rem; padding-block: 1.3rem; border-top: 1px solid var(--color-border); color: var(--color-muted); font-size: .65rem; }
.back-to-top { position: fixed; z-index: 800; right: 22px; bottom: 22px; display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid var(--color-border); background: rgba(255,255,255,.94); cursor: pointer; opacity: 0; pointer-events: none; transform: translateY(8px); transition: .25s ease; }
.back-to-top.is-visible { opacity: 1; pointer-events: auto; transform: none; }

.reveal { opacity: 0; transform: translateY(16px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-visible { opacity: 1; transform: none; }
.reveal[data-delay="1"] { transition-delay: .08s; }
.reveal[data-delay="2"] { transition-delay: .16s; }
.reveal[data-delay="3"] { transition-delay: .24s; }

@media (max-width: 1160px) {
  .header__inner { grid-template-columns: 220px 1fr; }
  .site-header .brand { width: 215px; }
  .desktop-nav, .header__cta { display: none; }
  .menu-toggle { display: block; justify-self: end; }
  .hero__copy { grid-column: 1 / 7; }
  .hero__visual { grid-column: 7 / 13; }
  .contact-hero__inner { grid-template-columns: minmax(0, 1fr) 430px; gap: 2.5rem; }
  .contact-signal { min-height: 560px; }
  .trust-grid { grid-template-columns: 1fr 1fr; }
  .story__grid { gap: 3rem; }
  .trust-item:nth-child(3) { border-left: 0; border-top: 1px solid var(--color-border); }
  .trust-item:nth-child(4) { border-top: 1px solid var(--color-border); }
  .practice-item { grid-template-columns: 60px minmax(230px, 1fr) 1fr auto; }
  .expertise-layout { grid-template-columns: 320px 1fr; gap: 3rem; }
  .practice-list--index .practice-item { grid-template-columns: 46px 1fr 32px; }
  .practice-list--index .practice-item p { grid-column: 2 / -1; }
  .approach-grid { grid-template-columns: 1fr 1fr; }
  .approach-step:nth-child(3) { border-top: 1px solid rgba(255,255,255,.2); border-left: 0; }
  .approach-step:nth-child(4) { border-top: 1px solid rgba(255,255,255,.2); }
  .associates-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .clerks-shell { grid-template-columns: 1fr; }
  .clerks-intro { position: static; display: grid; grid-template-columns: 1fr 1fr; gap: 0 3rem; align-items: end; }
  .clerks-intro .section-label { grid-column: 1 / -1; }
  .clerks-intro__folio { grid-column: 2; grid-row: 2 / 4; margin: 0; justify-self: end; }
  .administration-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .admin-card:nth-child(even) { transform: none; }
  .footer-grid { grid-template-columns: 1.5fr repeat(2, 1fr); }
  .footer-brand { grid-row: span 2; }
}

@media (max-width: 800px) {
  :root { --header-height: 76px; }
  .container { width: min(calc(100% - 32px), var(--container-width)); }
  .site-header.is-scrolled { height: 68px; }
  .brand { width: 155px; }
  .site-header .brand { width: 178px; padding-right: 22px; }
  .site-header .brand { padding-right: 0; }
  .brand img { height: 42px; }
  .hero { min-height: auto; }
  .hero__grid { grid-template-columns: 1fr; gap: 2rem; }
  .hero__copy, .hero__visual { grid-column: 1; }
  .contact-hero { min-height: auto; }
  .contact-hero::before { background: linear-gradient(180deg, transparent 0 52%, rgba(238,234,226,.42) 52% 100%); }
  .contact-hero__inner { grid-template-columns: 1fr; gap: 1rem; }
  .contact-hero__copy { max-width: 720px; }
  .contact-signal { width: min(100%, 620px); min-height: 570px; margin-inline: auto; }
  .map-placeholder { min-height: 720px; }
  .location-card { top: auto; right: 24px; bottom: 24px; left: 24px; width: auto; transform: none; }
  .office-location:hover .location-card { transform: translateY(-6px); }
  .location-pin { top: 28%; left: 68%; }
  .location-index { top: 1.4rem; right: auto; bottom: auto; left: 1.4rem; }
  .hero__visual { min-height: clamp(420px, 130vw, 620px); }
  .hero--direct .hero__grid { min-height: auto; padding-top: clamp(3.5rem, 10vw, 6rem); }
  .hero--direct .hero__copy { padding-right: 0; }
  .hero__statement { font-size: clamp(3.7rem, 13.5vw, 6.4rem); }
  .hero--direct .hero__copy .lead { margin-top: 2.5rem; }
  .hero__visual--animated { min-height: clamp(470px, 120vw, 660px); }
  .hero__docket { right: 0; }
  .hero__image-frame { inset-left: 0; }
  .hero__caption { right: 4%; }
  .section-heading, .firm-grid, .consultation__inner, .editorial-grid, .team-intro, .associates-intro, .administration-intro, .contact-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .associates-intro__note { max-width: 560px; }
  .associate-card:nth-child(even), .associate-card:nth-child(even):hover { transform: none; }
  .clerks-intro { display: block; }
  .clerks-intro__folio { margin-top: 2rem; }
  .clerks-docket { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .clerk-card:nth-child(2) { margin: 2.5rem 0 -2.5rem; }
  .clerk-card:last-child { display: grid; grid-column: 1 / -1; grid-template-columns: 1.15fr .85fr; margin-top: 2.5rem; }
  .clerk-card:last-child .clerk-card__portrait { aspect-ratio: 1.15/1; }
  .administration-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .people-hero { background: var(--color-white); }
  .people-hero__inner { grid-template-columns: 1fr; }
  .people-hero__copy h1 { max-width: 850px; }
  .people-hero__visual { min-height: 590px; }
  .people-hero__visual--sketch { min-height: 620px; }
  .pencil-art { inset: -2% 2% 1%; }
  .story__grid { grid-template-columns: 1fr; }
  .story__visual { min-height: auto; }
  .section-heading .lead { justify-self: start; }
  .practice-item { grid-template-columns: 45px 1fr auto; gap: 1rem; padding-inline: 0; }
  .expertise-index { padding-top: 0; background: var(--color-white); }
  .expertise-layout { width: 100%; grid-template-columns: 1fr; gap: 0; }
  .expertise-sticky { position: relative; top: auto; min-height: 520px; padding: 4.5rem 24px; background: var(--color-green); }
  .expertise-sticky > p:not(.section-label) { max-width: 520px; }
  .practice-list--index { width: min(calc(100% - 32px), var(--container-width)); margin-inline: auto; }
  .practice-list--index::before { left: 44px; }
  .practice-list--index .practice-item { grid-template-columns: 34px 1fr 24px; padding: 1.8rem 0; }
  .practice-list--index .practice-item:first-child { padding-left: 1rem; padding-right: 1rem; }
  .practice-item p { grid-column: 2 / -1; }
  .principles-art { min-height: 470px; }
  .insights-grid { display: block; }
  .article { min-height: 310px; }
  .consultation__action { text-align: left; }
  .principle-row { grid-template-columns: 45px 1fr; }
  .principle-row p { grid-column: 2; }
  .working-grid { grid-template-columns: 1fr; }
  .working-item { min-height: 230px; }
  .working-item__line { margin-bottom: 3rem; }
  .services-layout { grid-template-columns: 1fr; }
  .services-nav { position: relative; top: auto; display: flex; gap: 1rem; overflow-x: auto; padding-bottom: .75rem; border-top: 0; }
  .services-nav a { min-width: 190px; border-top: 1px solid var(--color-border); }
  .service-detail { grid-template-columns: 45px 1fr; }
  .team-card { grid-template-columns: 85px 1fr; }
  .team-card__portrait { width: 75px; }
  .team-card__note { grid-column: 2; }
  .contact-copy { position: static; }
  .about-hero__inner, .about-charter__heading { grid-template-columns: 1fr; }
  .about-hero__art { min-height: 560px; }
  .charter-entry { grid-template-columns: 48px 90px 1fr; }
  .charter-entry > p:last-child { grid-column: 3; }
  .matter-desk__intro { grid-template-columns: 1fr; gap: 2rem; }
  .matter-desk__grid { grid-template-columns: 1fr; }
  .matter-desk__aside { min-height: auto; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; grid-row: auto; }
}

@media (max-width: 520px) {
  body { font-size: 14px; }
  .preloader__folio { min-height: 380px; padding: 3.2rem 1.4rem; }
  .preloader__folio img { width: min(100%, 235px); height: 62px; margin-bottom: 2.2rem; }
  .preloader-scales { width: 126px; transform: scale(.9); }
  .preloader__folio p { margin-top: 1.5rem; font-size: 1.35rem; }
  .preloader__folio p::before { left: calc(50% - 101px); }
  .preloader__folio::before { content: "GMR / BRIEF 001"; }
  .legal-strip { height: 7px; border: 0; }
  .legal-strip p { font-size: .5rem; letter-spacing: .1em; }
  .header__social { gap: .35rem; }
  .header__social > a { width: 20px; height: 20px; font-size: .5rem; }
  h1 { font-size: clamp(3.4rem, 17vw, 5rem); }
  h2 { font-size: clamp(2.75rem, 14vw, 4rem); }
  .hero__actions { align-items: stretch; flex-direction: column; }
  .hero__actions .button { width: 100%; }
  .hero__micro { max-width: 300px; line-height: 1.7; }
  .hero__visual { min-height: 430px; }
  .hero__visual--animated { min-height: 450px; }
  .contact-hero__inner { padding-block: 4rem 2rem; }
  .contact-hero h1 { font-size: clamp(3.1rem, 15vw, 4.6rem); }
  .contact-signal { min-height: 500px; }
  .contact-signal__field { inset: 10% -8% 4%; }
  .contact-signal__orbit--outer { width: 86%; }
  .contact-signal__core { width: 112px; }
  .contact-signal__core strong { font-size: 1.7rem; }
  .contact-signal__node { width: 138px; padding: .8rem; }
  .contact-signal__node--matter { top: 22%; left: 0; }
  .contact-signal__node--office { right: 0; bottom: 14%; }
  .contact-dossier { top: 5%; right: 1%; width: 150px; padding: .85rem; }
  .contact-dossier > div { display: block; }
  .contact-dossier b { display: block; margin-top: .25rem; }
  .contact-coordinates { left: 1%; }
  .map-placeholder { min-height: 650px; margin-top: 3rem; }
  .map-placeholder::before { background-size: 48px 48px; }
  .location-pin { top: 25%; left: 68%; width: 90px; }
  .location-pin strong { font-size: 1.35rem; }
  .location-card { right: 15px; bottom: 15px; left: 15px; padding: 2rem 1.4rem; }
  .location-card h3 { font-size: 3rem; }
  .location-label--road, .location-label--city, .location-point { display: none; }
  .location-label--mall { top: 12%; right: auto; left: 7%; }
  .location-index { top: 1rem; left: 1rem; }
  .location-index span { display: block; margin: .2rem 0 0; }
  .hero__visual--animated .hero__image-frame { inset: 0 -9%; }
  .legal-balance { top: 7%; right: -2%; transform: scale(.8) translateY(-10px); }
  .hero__visual::before { inset: 8% 0 4% 0; }
  .hero__image-frame { inset-inline: -5%; }
  .hero__rule { left: 2%; }
  .trust-grid { grid-template-columns: 1fr; }
  .story__heading { align-items: start; flex-direction: column; }
  .story__visual { margin-inline: -16px; padding: 2.5rem 1rem 3.5rem; }
  .trust-item, .trust-item:nth-child(3) { border-top: 1px solid var(--color-border); border-left: 0; padding-inline: 0; }
  .trust-item:first-child { border-top: 0; }
  .practice-item { min-height: 190px; }
  .practice-item p { font-size: .78rem; }
  .principles-art__word:nth-child(even) { left: 12%; }
  .approach-grid { grid-template-columns: 1fr; }
  .approach-step, .approach-step:nth-child(2) { min-height: 250px; border-top: 1px solid rgba(255,255,255,.2); border-left: 0; }
  .approach-step:first-child { border-top: 0; }
  .approach-step__number { margin-bottom: 3rem; }
  .principle-row { gap: 1rem; }
  .service-detail { display: block; }
  .service-detail__number { display: block; margin-bottom: 1rem; }
  .service-detail ul { grid-template-columns: 1fr; }
  .team-card { grid-template-columns: 65px 1fr; gap: 1rem; }
  .team-card__portrait { width: 60px; }
  .people-hero__copy h1 { font-size: clamp(3.4rem, 15vw, 5rem); }
  .people-hero__meta { grid-template-columns: auto 1fr auto; }
  .people-hero__visual { min-height: 450px; margin-inline: -16px; }
  .people-hero__photo { inset: 5% 3% 12% 6%; }
  .people-hero__backdrop { left: 2%; }
  .people-hero__seal { top: 7%; right: .5rem; width: 92px; }
  .people-hero__ticker { right: 0; left: 0; }
  .people-hero__visual--sketch { min-height: 500px; }
  .pencil-field { inset: 2% 0 1%; }
  .pencil-art { inset: -5% -5% 2%; }
  .pencil-index { top: 8%; left: 1rem; }
  .pencil-caption { right: 1rem; bottom: 1rem; left: 1rem; max-width: none; }
  .form-grid { grid-template-columns: 1fr; }
  .form-field--full { grid-column: auto; }
  .contact-form { margin-inline: -16px; }
  .matter-desk__intro { padding-inline: 0; }
  .matter-desk__aside { margin-inline: -16px; padding: 3rem 1.5rem; }
  .matter-desk__document { margin-inline: -16px; }
  .contact-form--document { margin-inline: 0; }
  .document-actions { align-items: stretch; flex-direction: column; }
  .document-actions .button { width: 100%; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
  .footer-bottom { flex-direction: column; }
  .about-hero__actions { align-items: stretch; flex-direction: column; }
  .about-hero__actions .button { width: 100%; }
  .about-hero__actions > span { max-width: none; }
  .about-hero__timeline { grid-template-columns: 1fr; }
  .about-hero__timeline i { width: 1px; height: 28px; margin-left: 1rem; }
  .about-hero__art { min-height: 440px; }
  .charter-entry { display: block; padding: 2rem 0; }
  .charter-entry__number, .charter-entry__label { display: inline-block; margin-right: 1rem; }
  .charter-entry h3 { margin-block: 1.5rem; }
}

@media (max-width: 900px) {
  .partners-grid { grid-template-columns: 1fr 1fr; }
  .partner-profile { height: calc(100svh - 32px); }
  .partner-profile__grid { display: block; overflow-y: auto; }
  .partner-profile__copy { min-height: auto; overflow: visible; }
  .partner-profile h2 { width: 100%; margin-right: 0; }
  .partner-profile__portrait { height: 68svh; }
}

@media (max-width: 650px) {
  .partners-grid { grid-template-columns: 1fr; }
  .associates-grid { grid-template-columns: 1fr; gap: 1rem; }
  .associate-card__portrait { aspect-ratio: 4/4.3; }
  .associate-card__body { min-height: 165px; }
  .associates-source { margin-top: 2rem; text-align: left; }
  .clerks-docket { display: grid; grid-template-columns: 1fr; }
  .clerk-card:nth-child(2), .clerk-card:last-child { display: block; grid-column: auto; margin: 0; }
  .clerk-card:last-child .clerk-card__portrait, .clerk-card__portrait { aspect-ratio: 4/4.4; }
  .clerk-card__copy { min-height: 165px; }
  .administration-grid { grid-template-columns: 1fr; }
  .admin-card__visual { aspect-ratio: 4/4.25; }
  .admin-card__body { min-height: 155px; }
  .partner-card__body { min-height: 285px; }
  .partner-profile { width: 100vw; height: 100svh; margin: 0; }
  .partner-profile__copy { padding: 4rem 1.4rem 3rem; }
  .partner-profile__copy::before { left: 1.4rem; }
  .partner-profile__portrait { height: 62svh; }
  .partner-profile__close { position: fixed; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .reveal { opacity: 1; transform: none; }
  .hero__line > span, .hero-entrance, .hero__visual--animated::before, .hero__visual--animated::after, .hero__visual--animated .hero__image-frame, .hero__visual--animated .hero__image-frame img, .hero__visual--animated .hero__rule, .hero__visual--animated .hero__caption, .hero__docket, .hero__case-line, .legal-balance { opacity: 1; transform: none; clip-path: none; }
}

/* Preloader — an advocate's brief, opened by hand */
.site-preloader {
  color: var(--color-green);
  background: radial-gradient(circle at 18% 22%, rgba(200,101,48,.055), transparent 24rem), radial-gradient(circle at 82% 78%, rgba(25,43,23,.045), transparent 28rem), #eee8dd;
  perspective: 1400px;
}
.site-preloader::before {
  top: 50%; bottom: auto; left: 50%; right: auto;
  width: min(76vw, 860px); height: min(76vh, 610px);
  border: 1px solid rgba(72,58,43,.12); background: #ded5c7;
  box-shadow: 0 32px 70px rgba(31,27,20,.12); opacity: .82;
  transform: translate(-48%, -48%) rotate(2.2deg);
}
.site-preloader::after {
  top: 0; bottom: 0; left: auto; right: 11%; width: 52px; height: 100%;
  border-right: 1px solid rgba(200,101,48,.12); border-left: 1px solid rgba(200,101,48,.12);
  background: rgba(200,101,48,.035); opacity: 1; transform: none;
}
.preloader__folio {
  width: min(calc(100vw - 3rem), 520px); min-height: 455px; padding: 4.3rem 3.25rem 3rem;
  border: 1px solid #b9ad9b; border-radius: 1px; color: var(--color-green);
  background: linear-gradient(90deg, transparent 31px, rgba(200,101,48,.24) 31px, rgba(200,101,48,.24) 32px, transparent 32px), linear-gradient(rgba(25,43,23,.022) 1px, transparent 1px), #f8f5ed;
  background-size: auto, 100% 27px, auto;
  box-shadow: inset 0 0 0 7px #f8f5ed, inset 0 0 0 8px rgba(35,45,30,.17), 0 24px 65px rgba(31,27,20,.18);
  backdrop-filter: none; transform-origin: left center;
  animation: legalBriefArrival .9s var(--ease) both;
}
.preloader__folio::before {
  top: 26px; left: 3.25rem; right: 3.25rem; display: block; padding-bottom: .65rem;
  border-bottom: 3px double rgba(25,43,23,.32); color: var(--color-copper);
  content: "ADVOCATES OF THE HIGH COURT · NAIROBI";
  font-size: .52rem; font-weight: 700; letter-spacing: .19em; text-align: left;
}
.preloader__folio::after {
  top: auto; right: 3.25rem; bottom: 24px; left: 3.25rem; width: auto; height: auto;
  padding-top: .65rem; border: 0; border-top: 1px solid rgba(25,43,23,.22);
  color: rgba(25,43,23,.52); content: "GMR  /  CLIENT BRIEF";
  font-size: .48rem; font-weight: 700; letter-spacing: .21em; text-align: right;
}
.preloader__folio img {
  width: min(100%, 245px); height: 62px; margin: .7rem auto 2.35rem; padding: 0;
  border: 0; background: transparent; clip-path: none; filter: none;
  animation: legalInkIn .8s var(--ease) .12s both;
}
.preloader__rule {
  top: 85px; left: 50%; width: 74px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--color-copper), transparent);
  transform-origin: center; animation: legalRuleDraw .8s var(--ease) .35s both;
}
.preloader-scales { width: 128px; height: 68px; color: var(--color-green); transform: none; animation: legalScalesSet .9s var(--ease) .28s both; }
.preloader-scales::before {
  top: 42px; left: 92px; z-index: 3; display: grid; width: 56px; height: 56px; place-items: center;
  border: 3px double rgba(255,255,255,.5); border-radius: 50%; color: #fff8ee; content: "GMR";
  background: var(--color-copper); box-shadow: 0 5px 12px rgba(91,47,24,.22), inset 0 0 0 3px rgba(89,39,16,.12);
  font-family: var(--font-serif); font-size: .65rem; letter-spacing: .08em; opacity: 1;
  transform: scale(1); animation: legalSealPress .72s var(--ease) .72s both;
}
.preloader-scales > i, .preloader-scales > b, .preloader-scales > span { z-index: 2; }
.preloader-scales > span:nth-of-type(1) { animation: briefPanLeft 1.4s var(--ease) .2s both; }
.preloader-scales > span:nth-of-type(2) { animation: briefPanRight 1.4s var(--ease) .2s both; }
.preloader__folio p { margin-top: 2.15rem; color: var(--color-green); font-size: 0; }
.preloader__folio p::before { display: none; }
.preloader__folio p::after { content: "Opening the brief"; font-family: var(--font-serif); font-size: 1.38rem; font-style: italic; }
.preloader__folio small { color: rgba(25,43,23,.56); }
.preloader__folio small::after {
  width: 112px; height: 1px; margin-top: 1.15rem;
  background: linear-gradient(90deg, var(--color-copper) 0 50%, rgba(25,43,23,.15) 50% 100%); background-size: 200% 100%;
  animation: briefProgress 1.5s var(--ease) .18s both;
}
.site-preloader.is-loaded { animation: preloader-exit .95s var(--ease) forwards; }
.site-preloader.is-loaded::before { animation: legalPaperBack .75s var(--ease) forwards; }
.site-preloader.is-loaded::after { animation: legalRibbonFade .55s ease forwards; }
.site-preloader.is-loaded .preloader__folio { animation: legalPageTurn .78s var(--ease) forwards; }
@keyframes legalBriefArrival { from { opacity: 0; transform: translateY(24px) rotateX(3deg) rotate(-.8deg); } to { opacity: 1; transform: none; } }
@keyframes legalInkIn { from { opacity: 0; filter: blur(3px); transform: translateY(7px); } to { opacity: 1; filter: none; transform: none; } }
@keyframes legalRuleDraw { from { opacity: 0; transform: translateX(-50%) scaleX(0); } to { opacity: 1; transform: translateX(-50%) scaleX(1); } }
@keyframes legalScalesSet { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
@keyframes legalSealPress { 0% { opacity: 0; transform: scale(1.6) rotate(-8deg); } 64% { opacity: 1; transform: scale(.92) rotate(2deg); } 100% { opacity: 1; transform: scale(1); } }
@keyframes legalPageTurn { 0% { opacity: 1; transform: rotateY(0); } 100% { opacity: 0; transform: translateX(-9%) rotateY(-58deg); } }
@keyframes legalPaperBack { to { opacity: 0; transform: translate(-45%, -48%) rotate(5deg); } }
@keyframes legalRibbonFade { to { opacity: 0; } }
@media (max-width: 520px) {
  .site-preloader::before { width: calc(100vw - 2.2rem); height: 470px; }
  .site-preloader::after { right: 5%; width: 30px; }
  .preloader__folio { min-height: 400px; padding: 3.7rem 2rem 2.7rem; }
  .preloader__folio::before { left: 2rem; right: 2rem; content: "HIGH COURT · NAIROBI"; }
  .preloader__folio::after { left: 2rem; right: 2rem; content: "GMR / CLIENT BRIEF"; }
  .preloader__folio img { width: min(100%, 220px); height: 58px; margin-bottom: 1.9rem; }
  .preloader-scales { width: 116px; transform: none; }
  .preloader-scales::before { left: 80px; width: 50px; height: 50px; }
  .preloader__folio p { margin-top: 1.8rem; font-size: 0; }
  .preloader__folio p::after { font-size: 1.22rem; }
}
@media (prefers-reduced-motion: reduce) {
  .preloader__folio, .preloader__folio img, .preloader__rule, .preloader-scales,
  .preloader-scales::before, .preloader-scales > span, .preloader__folio small::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Responsive hardening — content always respects the device viewport */
html, body { width: 100%; max-width: 100%; overflow-x: clip; }
main, section, header, footer, nav, .container { min-width: 0; }
.hero__copy, .hero__visual, .prose, .contact-copy, .partner-profile__copy,
.partner-profile__portrait, .associate-card, .clerk-card, .administration-card { min-width: 0; }
input, textarea, select, .button { max-width: 100%; }

@media (max-width: 1160px) {
  .header__inner { grid-template-columns: minmax(0, 1fr) auto; }
  .mobile-nav {
    right: 0; left: 0; width: 100%; max-width: 100vw;
    padding: clamp(1.5rem, 6vh, 3rem) max(20px, env(safe-area-inset-right)) calc(2rem + env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));
    overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain;
  }
  .mobile-nav ul { width: 100%; }
  .mobile-nav li { min-width: 0; }
  .mobile-nav a:not(.button) {
    width: 100%; min-width: 0; gap: 1rem;
    padding: clamp(.72rem, 2.4vh, 1.05rem) 0;
    font-size: clamp(1.65rem, 7vw, 2.65rem);
    overflow-wrap: break-word;
  }
  .mobile-nav a > span { flex: 0 0 auto; align-self: center; }
  .mobile-nav .button {
    display: flex; width: 100%; min-width: 0; min-height: 54px;
    margin-top: clamp(1.25rem, 4vh, 2rem); padding: .9rem 1rem;
    white-space: normal; text-align: center;
  }
}

@media (max-width: 800px) {
  :root { --section-space: clamp(4rem, 15vw, 6rem); }
  .header__inner { width: calc(100% - 28px); }
  .site-header .brand { width: min(54vw, 178px); min-width: 0; }
  .site-header .brand::before { left: -14px; right: 2px; }
  .site-header .brand::after { right: 8px; bottom: 11px; }
  .site-header .brand img { width: 100%; height: auto; max-height: 43px; object-fit: contain; }
  .menu-toggle { flex: 0 0 44px; width: 44px; height: 44px; }
  .hero__grid, .contact-hero__inner, .about-hero__inner, .people-hero__inner { width: calc(100% - 32px); }
  .hero__copy, .contact-hero__copy, .about-hero__copy, .people-hero__copy { width: 100%; }
  .hero__copy h1, .contact-hero h1, .about-hero h1, .people-hero__copy h1,
  .section-heading h2, .prose h2 { max-width: 100%; overflow-wrap: break-word; }
  .contact-signal, .about-hero__art, .people-hero__visual, .hero__visual { width: 100%; max-width: 100%; }
  .contact-form, .contact-form--document, .matter-desk__document { width: auto; max-width: none; }
  .form-field, .form-field input, .form-field textarea, .form-field select { width: 100%; min-width: 0; }
  .partner-profile { width: min(calc(100vw - 20px), 920px); max-width: calc(100vw - 20px); }
  .partner-profile__grid { width: 100%; }
  .partner-profile__portrait img { width: 100%; height: 100%; object-fit: cover; }
}

@media (max-width: 520px) {
  .container { width: calc(100% - 28px); }
  h1 { font-size: clamp(2.85rem, 14vw, 4rem); line-height: .98; }
  h2 { font-size: clamp(2.35rem, 12vw, 3.35rem); line-height: 1; }
  h3 { font-size: clamp(1.45rem, 7vw, 1.9rem); line-height: 1.08; }
  .lead { font-size: .96rem; line-height: 1.7; }
  .section-label { gap: .55rem; font-size: .6rem; letter-spacing: .16em; }
  .section-label::before { width: 22px; }
  .site-header .brand { width: min(57vw, 164px); }
  .mobile-nav::before { right: max(20px, env(safe-area-inset-right)); }
  .mobile-nav a:not(.button) { font-size: clamp(1.55rem, 8vw, 2.1rem); }
  .mobile-nav .button { font-size: .68rem; letter-spacing: .035em; }
  .hero__actions, .about-hero__actions, .document-actions { width: 100%; }
  .button { width: 100%; min-height: 52px; padding-inline: 1rem; }
  .hero__statement { font-size: clamp(2.9rem, 14vw, 4rem); }
  .hero__visual--animated .hero__image-frame { inset-right: 0; inset-left: 0; }
  .hero__image-frame, .hero__visual::before { max-width: 100%; }
  .people-hero__meta { grid-template-columns: 1fr; gap: .45rem; }
  .people-hero__meta span { justify-self: start; }
  .story__visual, .people-hero__visual, .contact-form, .matter-desk__aside, .matter-desk__document { margin-right: -14px; margin-left: -14px; }
  .partners-grid, .associates-grid, .clerks-docket, .administration-grid { width: 100%; grid-template-columns: minmax(0, 1fr); }
  .clerk-card, .clerk-card:last-child { display: block; grid-column: auto; margin: 0; }
  .clerk-card:nth-child(2), .clerk-card:last-child { margin: 0; }
  .clerk-card:last-child .clerk-card__portrait { aspect-ratio: 4 / 4.3; }
  .associate-card__body, .clerk-card__body, .administration-card__body { padding-right: 1.25rem; padding-left: 1.25rem; }
  .partner-profile { height: calc(100dvh - 12px); max-width: calc(100vw - 12px); }
  .partner-profile__copy { padding-right: 1.2rem; padding-left: 1.2rem; }
  .partner-profile h2 { font-size: clamp(2.05rem, 10vw, 3rem); overflow-wrap: anywhere; }
  .partner-profile__portrait { height: 55svh; }
  .footer-grid, .footer-bottom { width: calc(100% - 28px); }
}
