.portrait{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:26px;background:var(--blue);transition:transform .25s,filter .25s}.person{display:block;min-width:0}.person:hover .portrait{transform:translateY(-4px);filter:brightness(1.04)}.people-grid{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:42px}.person-role{font-size:.8rem;color:var(--muted);margin-bottom:12px}.all-practices{padding-top:64px}.practice-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:25px}.practice-links a{background:#f4f6f7;border-radius:16px;padding:19px 20px;display:flex;gap:12px;justify-content:space-between;align-items:center;line-height:1.35;font-size:.9rem;transition:background .2s,transform .2s}.practice-links a:hover{background:#e5eef4;transform:translateY(-2px)}.practice-links a span{color:#435e6d}.firm-story{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.firm-story h2{margin:22px 0}.firm-story p:not(.eyebrow){color:var(--muted);margin-bottom:28px}.firm-story>img{width:100%;border-radius:30px}.office-options>a:not(.office-phone){display:flex;flex-direction:column;align-items:flex-start;border-radius:22px;background:#ffffffb3;padding:23px 28px;transition:background .2s}.office-options>a:hover{background:white}.office-phone{font-size:1rem;margin:6px 0 0 24px;text-decoration:underline;text-underline-offset:4px}.office-options small{line-height:1.65}.insight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.insight-card{display:flex;flex-direction:column;align-items:flex-start;background:var(--stone);border-radius:26px;padding:36px;min-height:280px;transition:transform .2s,background .2s}.insight-card:nth-child(2){background:var(--blue)}.insight-card:hover{transform:translateY(-4px)}.insight-card h3{font-size:1.8rem;line-height:1.2;margin:26px 0 32px}.insight-card>span{font-size:.9rem;margin-top:auto}.footer-fax{font-size:.8rem;color:var(--muted)}.footer-bottom{flex-wrap:wrap}.page-hero{padding-top:40px;padding-bottom:40px}.page-parent{display:flex;align-items:center;gap:8px;width:fit-content;min-height:32px;font-size:.8rem;color:var(--muted);margin-bottom:16px}.page-parent:hover{text-decoration:underline;text-underline-offset:4px}.page-hero h1{font-size:clamp(2.8rem,4.7vw,4.7rem);line-height:1.08;max-width:1050px}.page-layout{display:grid;grid-template-columns:minmax(0,2.4fr) minmax(250px,1fr);gap:70px;align-items:start}.reading{min-width:0}.reading>p,.reading-section>p{line-height:1.8;font-size:1.05rem;color:#30434e;margin-bottom:23px}.reading>h2,.reading-section>h2{font-size:1.9rem;line-height:1.23;letter-spacing:-.035em;margin:44px 0 22px;text-wrap:pretty}.reading>h3,.reading-section>h3{font-size:1.4rem;line-height:1.3;margin:30px 0 18px}.reading>ul,.reading-section>ul{padding-left:23px;margin:20px 0 30px;color:#30434e;line-height:1.75}.reading li{padding:4px 0}.reading p a,.reading li a{text-decoration:underline;text-underline-offset:3px}.reading .page-image{width:100%;height:auto;max-height:580px;object-fit:contain;object-position:left;border-radius:24px;margin-bottom:40px;background:#edf1f3}.page-aside{background:var(--blue);border-radius:26px;padding:30px;position:sticky;top:112px}.page-aside :is(h2,h3){font-size:1.9rem;line-height:1.16;letter-spacing:-.04em;margin:24px 0 18px}.page-aside p:not(.eyebrow){color:var(--muted);margin-bottom:25px}.page-aside .text-button{display:block;font-size:.85rem}.aside-links{border-top:1px solid #cedce4;padding-top:20px;margin-top:35px}.aside-links a{display:block;margin:10px 0;font-size:.86rem}.aside-links a:hover{text-decoration:underline}.page-cta{padding:100px 0;display:flex;gap:40px;align-items:center;justify-content:space-between}.page-cta h2{font-size:2.8rem}.reading .people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reading .people-grid .monogram{height:auto;aspect-ratio:4/5}.reading .insight-grid{grid-template-columns:1fr}.source-note{padding:28px;background:var(--stone);border-radius:20px;margin-bottom:40px}.source-note h2{font-size:1.5rem;margin-bottom:15px}.source-note p{margin:14px 0}.source-note a{font-weight:600;text-decoration:underline}.site-map p{margin:14px 0}.site-map a:hover{text-decoration:underline}.contact-details h2{font-size:1.7rem;margin:30px 0 18px}.contact-details p{margin-bottom:24px;line-height:1.8}.dialog-intro a{text-decoration:underline}.reading .anniversary{width:140px;height:auto;display:block;margin:40px 0}.reading .people-grid h3{font-size:1.15rem}.reading .people-grid p{margin-bottom:12px}.reading .people-grid>p{grid-column:1/-1}
@media(min-width:1500px){.wide{margin-left:auto;margin-right:auto;width:calc(100% - 48px)}}
@media(max-width:1050px){.page-layout{gap:32px;grid-template-columns:minmax(0,2fr) minmax(220px,1fr)}.page-aside{padding:25px}.firm-story{gap:35px}.practice-links{grid-template-columns:repeat(2,minmax(0,1fr))}.header{gap:24px}.header nav{gap:14px}}
@media(max-width:760px){.people-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 18px}.portrait{border-radius:20px}.people-grid .monogram{height:auto;aspect-ratio:4/5;font-size:4rem}.person h3{font-size:1.08rem;line-height:1.3;margin-top:16px}.person-role{font-size:.72rem}.person>span{font-size:.76rem}.firm-story{grid-template-columns:1fr;gap:32px}.firm-story>img{max-height:520px;object-fit:cover}.practice-links{grid-template-columns:1fr}.insight-grid{grid-template-columns:1fr}.insight-card{padding:28px;min-height:250px}.insight-card h3{font-size:1.6rem}.page-hero{padding-top:28px;padding-bottom:28px}.page-parent{min-height:44px}.page-hero h1{font-size:2.6rem}.page-layout{display:block}.page-aside{position:static;margin-top:42px}.reading>p,.reading-section>p{font-size:1rem}.reading>h2,.reading-section>h2{font-size:1.55rem;margin-top:35px}.reading>h3,.reading-section>h3{font-size:1.2rem}.page-cta{padding:70px 0;display:block}.page-cta h2{font-size:2.3rem;margin-bottom:28px}.footer-bottom{gap:18px}.footer-bottom>span:first-child{width:100%}.office-phone{margin-left:18px}}
@media(prefers-reduced-motion:reduce){.portrait,.practice-links a,.insight-card{transition:none}.person:hover .portrait,.practice-links a:hover,.insight-card:hover{transform:none}}

/* Section surfaces preserve the white canvas while marking major transitions. */
:root{--ink:#19231e;--muted:#354039;--stone:#f3f2ec;--section-sage:#e7ede3;--line:#d5dcd6}
.practice-card p,.reading>p,.reading>ul,.reading-section>ul{color:#303d35}
.practice-card.navy p{color:#f1f5f7}
#approach{background:var(--stone);border-radius:var(--radius);margin-top:130px;padding:72px 48px}
#approach .approach-grid{gap:40px;grid-template-columns:minmax(0,1.18fr) minmax(0,1fr)}
#approach .process-tabs button:hover{background:#e7e7de}
.insights.section{background:var(--section-sage);border-radius:var(--radius);margin-top:130px;padding:72px 48px}
.insights .insight-card,.insights .insight-card:nth-child(2){background:#fff;border:1px solid #d5dfcf}
.insights .insight-card:hover{background:#f8faf6}
.contact-cta{background:#19231e;color:#fff;border-radius:var(--radius);margin-top:80px;margin-bottom:80px;padding:80px 40px}
.contact-cta p:not(.eyebrow){color:#e7ede3}
.contact-cta .button{background:#fff;color:#19231e}
.contact-cta .button:hover{background:#e7ede3}
.contact-cta a:focus-visible,.contact-cta button:focus-visible{outline-color:#e7ede3}
@media(max-width:900px){#approach,.insights.section{padding:56px 32px}#approach .approach-grid{gap:32px}.process-tabs{flex-wrap:wrap}}
@media(max-width:600px){#approach,.insights.section{margin-top:80px;padding:44px 24px;border-radius:25px}#approach .approach-grid{grid-template-columns:1fr}#approach .section-intro,.insights .section-intro{padding:0}#approach .approach-copy{padding:0}#approach .approach-image{height:300px}.contact-cta{margin-top:56px;margin-bottom:56px;padding:56px 24px;border-radius:25px}.insights .insight-card{padding:24px}}

/* A shared line-icon system and an expanded practice directory. */
.ds-icon{display:block;width:24px;height:24px;flex:none}
.icon-tile{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:12px;background:#e7ede3;color:#285a45}
.practice-label{display:flex;gap:12px;align-items:center;font-size:.8rem;font-weight:600;letter-spacing:.12em}
.practice-label .ds-icon{width:28px;height:28px}
.practice-card{padding:36px;min-height:570px;gap:28px;overflow:hidden}
.practice-card h3{margin-top:28px}
.practice-photo{display:block;width:100%;height:185px;object-fit:cover;border-radius:18px;margin-top:auto}
.practice-card.navy .practice-photo{object-position:center 30%}
.principle-icon{display:grid;place-items:center;width:50px;height:50px;border-radius:14px;background:var(--stone);color:#285a45}
.practice-links a{justify-content:flex-start;gap:14px;background:#f4f6f3}
.practice-links a .practice-name{color:var(--ink)}
.office-region{display:flex;align-items:center;gap:10px}
.office-options .office-region .ds-icon{width:22px;height:22px}
.office-phone{display:flex;align-items:center;gap:10px}
.practice-directory{display:block;padding:32px 40px;max-height:calc(100svh - 124px);overflow:auto}
.practice-menu-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:24px;border-bottom:1px solid var(--line)}
.practice-menu-heading h2{font-size:1.9rem;margin-top:12px;letter-spacing:-.035em}
.practice-menu-heading .text-button{margin:0;font-size:.9rem}
.practice-menu-groups{display:grid;grid-template-columns:1.25fr 1.1fr 1fr;gap:32px;padding:28px 0}
.practice-menu-groups h3{font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-bottom:16px;color:var(--muted)}
.practice-menu-link{display:flex;align-items:center;gap:12px;padding:9px 10px;margin:0 -10px;border-radius:14px;font-size:.9375rem;line-height:1.35;transition:background .18s}
.practice-menu-link:hover,.practice-menu-link:focus-visible{background:#f0f3ed;color:#19231e}
.practice-menu-footer{border-top:1px solid var(--line);padding-top:22px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.practice-menu-footer>span{font-size:.875rem;color:var(--muted)}
.mobile-practices summary{cursor:pointer;font-size:1.3rem;padding:18px 0;border-bottom:1px solid var(--line)}
.mobile-menu{max-height:calc(100svh - 110px);overflow:auto}
.mobile-menu .practice-menu-link{font-size:.9375rem;padding:10px;margin:0;border:0;display:flex}
.mobile-practices>div{padding:12px 0}
@media(max-width:1100px){.practice-directory{padding:28px}.practice-menu-groups{gap:24px}.practice-card{padding:28px}.practice-photo{height:160px}}
@media(max-width:600px){.practice-card{min-height:0;padding:32px}.practice-photo{height:190px}.practice-links a{padding:16px}.icon-tile{width:38px;height:38px}}

.source-experience-list{margin-top:80px;padding:40px 0;border-top:1px solid var(--line)}
.source-experience-list h2{font-size:2rem;margin-bottom:28px}
.source-experience-list ul{display:grid;grid-template-columns:1fr 1fr;gap:20px 40px;line-height:1.65;color:var(--muted);padding-left:22px}
@media(max-width:600px){.source-experience-list{margin-top:56px}.source-experience-list ul{grid-template-columns:1fr;gap:16px}}

/* Contextual practice photography, with stable responsive media dimensions. */
.practice-photo{height:215px;object-position:center}
.practice-card.navy .practice-photo{object-position:center}
.practice-page-photo{display:block;width:100%;height:auto;aspect-ratio:16/9;max-height:420px;object-fit:cover;border-radius:24px;margin-bottom:38px;background:var(--stone)}
.insights .insight-card{padding:0 0 30px;overflow:hidden}
.insight-photo{display:block;width:100%;height:210px;object-fit:cover;margin-bottom:28px}
.insights .insight-card>p,.insights .insight-card>h3,.insights .insight-card>span{margin-left:30px;margin-right:30px}
.insights .insight-card h3{margin-top:20px}
@media(max-width:600px){.practice-photo{height:210px}.practice-page-photo{border-radius:20px;aspect-ratio:4/3}.insights .insight-card{padding:0 0 26px}.insight-photo{height:190px}.insights .insight-card>p,.insights .insight-card>h3,.insights .insight-card>span{margin-left:24px;margin-right:24px}}

/* Clearly separated neutral surfaces, without strong color bands. */
:root{--stone:#eeeae2;--section-sage:#dde5d7;--blue:#dbe5ec;--line:#cbd3cc}
.office-panel{background:#dce6eb}
.practice-links a{background:#e9ede9}
.icon-tile{background:#dbe5d6}
.insights .insight-card,.insights .insight-card:nth-child(2){border-color:#c4d0bd}
#approach,.insights.section,.office-panel{border:1px solid #19231e0d}
.practice-card.stone{border:1px solid #d8d2c6}
.js-motion .reveal{transform:translateY(12px);transition:opacity .32s ease-out,transform .38s cubic-bezier(.22,.61,.36,1)}
.js-motion[data-scroll-direction="up"] .reveal:not(.visible){transform:translateY(-12px)}
.js-motion .reveal.visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.js-motion .reveal,.js-motion[data-scroll-direction="up"] .reveal:not(.visible){opacity:1;transform:none;transition:none}}

/* Preserve photograph proportions rather than stretching fixed HTML dimensions. */
.firm-story>img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}
.page-topic-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:var(--stone);color:#285a45;margin-bottom:24px}
.page-topic-icon .ds-icon{width:28px;height:28px}
.insights .insight-card{padding:32px}
.insights .insight-card .page-topic-icon{margin:0 0 24px;background:var(--section-sage)}
.insights .insight-card>p,.insights .insight-card>h3,.insights .insight-card>span{margin-left:0;margin-right:0}
.office-city-image{width:calc(100% - 48px);max-width:1440px;margin:0 auto 56px}
.office-city-image img{display:block;width:100%;height:auto;aspect-ratio:2.25/1;object-fit:cover;border-radius:30px;object-position:center 48%}
.office-city-image figcaption{font-size:.75rem;line-height:1.6;color:var(--muted);margin:12px 6px}
.office-city-image figcaption a{text-decoration:underline;text-underline-offset:3px}
.office-page .page-aside{background:var(--stone)}
.staff-portrait{display:block;max-width:320px;width:100%;height:auto;border-radius:24px;margin-bottom:32px}
@media(max-width:760px){.firm-story>img{height:auto;max-height:none;object-fit:contain}.office-city-image{width:calc(100% - 32px);margin-bottom:36px}.office-city-image img{aspect-ratio:1.6/1;border-radius:25px}.insights .insight-card{padding:26px}}

.experience-stats{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:30px 0 32px;padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat-value{display:block;font-size:clamp(2.5rem,4vw,3.5rem);line-height:1.15;letter-spacing:-.05em;font-weight:600;font-variant-numeric:tabular-nums;color:#285a45;white-space:nowrap}
.firm-story .experience-stat p{font-size:.875rem;line-height:1.5;margin:10px 0 0;max-width:180px}
@media(max-width:600px){.experience-stats{gap:20px}.stat-value{font-size:2.75rem}}

.office-options>a:not(.office-phone){overflow:hidden}
.office-card-image{display:block;width:100%;height:130px;object-fit:cover;border-radius:14px;margin-bottom:18px}
.contact-office-gallery{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:38px}
.contact-office-card{display:block;overflow:hidden;background:var(--stone);border-radius:22px}
.contact-office-card img{display:block;width:100%;height:180px;object-fit:cover}
.contact-office-card>span{display:block;padding:18px 20px;font-size:1.25rem;font-weight:600}
@media(max-width:600px){.contact-office-gallery{grid-template-columns:1fr}.contact-office-card img{height:190px}}

.practice-page-image{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:26px;margin-bottom:38px}

/* Motion stays on composited opacity and small transforms. No scroll-linked image movement. */
.reading-section{display:flow-root}
.js-motion .reveal:focus-within{opacity:1;transform:none}
.practice-links a,.contact-office-card,.insight-card{transition:background .2s ease,transform .2s ease,box-shadow .2s ease}
@media(hover:hover) and (pointer:fine){.contact-office-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #122a3610}.practice-menu-link .ds-icon{transition:transform .18s ease}.practice-menu-link:hover .ds-icon{transform:translateX(2px)}}
.practice-menu:not([hidden]){animation:surface-in .18s ease-out}
dialog[open]{animation:surface-in .2s ease-out}
@keyframes surface-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.practice-menu:not([hidden]),dialog[open]{animation:none}.contact-office-card:hover,.practice-menu-link:hover .ds-icon{transform:none}}

.photo-credits{font-size:.75rem;line-height:1.6;color:var(--muted);margin:0 0 18px}.photo-credits a{text-decoration:underline;text-underline-offset:3px}

/* Approved warm porcelain and a small shared interaction vocabulary. */
:root{--porcelain:#f7f5f1;--motion-fast:160ms;--motion-panel:200ms;--motion-ease:cubic-bezier(.22,.61,.36,1)}
/* White and integrated at the top; porcelain and floating after scrolling. */
.header{background:#fff;top:0;margin:0;border-radius:0;padding-inline:50px;transition:background-color .22s,border-radius .22s,box-shadow .22s,height .22s,top .22s,margin .22s,padding .22s}
.header.scrolled{background:var(--porcelain);margin-inline:12px;padding-inline:38px}
@media(max-width:1100px){.header{padding-inline:36px}.header.scrolled{padding-inline:24px}}
@media(max-width:600px){.header{padding-inline:25px}.header.scrolled{margin-inline:8px;padding-inline:17px}}
.brand-symbol{filter:none}
.process-tabs{position:relative;isolation:isolate}
.process-tabs.has-tab-indicator button[aria-selected=true]{border-bottom-color:transparent}
.process-tabs.has-tab-indicator::after{content:"";position:absolute;top:var(--tab-y,100%);left:0;width:var(--tab-width,0px);height:2px;background:var(--ink);transform:translateX(var(--tab-x,0px));transition:transform var(--motion-panel) var(--motion-ease),top var(--motion-panel) var(--motion-ease),width var(--motion-panel) var(--motion-ease);pointer-events:none}
.page-toc{background:var(--porcelain);border:1px solid var(--line);border-radius:20px;padding:22px 24px;margin:0 0 32px}
.page-toc p,.page-toc h2{font-size:.875rem;font-weight:600;line-height:1.4;margin:0 0 12px;letter-spacing:0}
.page-toc ul,.page-toc ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.page-toc li{padding:0;margin:0}
.page-toc a{display:block;padding:9px 12px;border-radius:10px;background:#ffffffa8;font-size:.875rem;line-height:1.5;text-decoration:none;transition:background var(--motion-fast),color var(--motion-fast)}
.page-toc a:hover,.page-toc a[aria-current=location]{background:#dfe7db;color:#19231e}
.reading h2[id],.reading h3[id]{scroll-margin-top:0}
.reading h2[id]:target,.reading h3[id]:target{color:#285a45}
.reading h2[id]:focus,.reading h3[id]:focus{outline:2px solid #527e97;outline-offset:6px}
.process-toc ol{counter-reset:process;display:grid;grid-template-columns:1fr 1fr}
.process-toc li{counter-increment:process}
.process-toc a{display:flex;gap:10px;align-items:baseline}
.process-toc a::before{content:counter(process,decimal-leading-zero);font-variant-numeric:tabular-nums;color:#52604e;font-size:.75rem}
.process-reading .reading-section:has(>h2[id]){border-left:2px solid var(--line);padding-left:22px;transition:border-color var(--motion-panel)}
.process-reading .reading-section.is-current{border-left-color:#285a45}
.process-reading .reading-section.is-current>h2{color:#285a45}
.practice-directory-links{margin:24px 0 36px}
.reading .page-image[src*="retouched-v1"]{width:min(100%,464px);max-height:none}
.contact-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 28px}
.contact-actions .text-button{margin:0}
/* Shared feedback retains explicit keyboard focus and touch activation. */
.person,.practice-links a,.contact-office-card,.insight-card{touch-action:manipulation}
.person:focus-visible,.practice-links a:focus-visible,.contact-office-card:focus-visible,.insight-card:focus-visible{outline:3px solid #b66c34;outline-offset:5px}
.person:focus-visible .portrait{filter:brightness(1.04)}
.button:active,.practice-links a:active,.contact-office-card:active,.insight-card:active{filter:brightness(.96)}
@media(hover:none){.button:hover,.person:hover .portrait,.practice-links a:hover,.contact-office-card:hover,.insight-card:hover{transform:none}}
@media(max-width:760px){
 .page-toc{padding:18px;margin-bottom:28px}.page-toc a{font-size:.8125rem;padding:10px}
 .page-aside{padding:24px;margin-bottom:54px}.page-aside>.eyebrow,.page-aside>p:not(.eyebrow){display:none}.page-aside :is(h2,h3){font-size:1.45rem;margin:0 0 20px}.page-aside .aside-links{margin-top:24px;padding-top:14px}
 .page-layout:has(.page-aside)+.page-cta{display:none}
 .process-toc ol{grid-template-columns:1fr}.process-reading .reading-section:has(>h2[id]){padding-left:16px}
}
@media(prefers-reduced-motion:reduce){.process-tabs.has-tab-indicator::after,.page-toc a,.process-reading .reading-section{transition:none}}

/* Native page-navigation enhancement: no route interception or waiting UI. */
::view-transition-old(root){animation:route-out 160ms ease both}
::view-transition-new(root){animation:route-in 180ms ease both}
@keyframes route-out{to{opacity:0}}
@keyframes route-in{from{opacity:0}}
.vt-arrival .page-hero.reveal{opacity:1;transform:none;transition:none}
@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}

/* One brand moment on the homepage; navigation and footer marks stay still. */
.brand-moment{display:block;width:60px;height:60px;margin:0 auto 24px;background:var(--porcelain);border-radius:18px;padding:8px;color:#000;object-fit:contain}
.brand-moment.is-animating{animation:brand-connect 600ms var(--motion-ease) both}
@keyframes brand-connect{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.brand-moment.is-animating{animation:none}}

/* Clear link affordances and comfortable targets at section boundaries. */
.all-practices>.text-button,.insights>.text-button{display:inline-flex;align-items:center;min-height:44px}
.service-directory h2>a::after{content:" →";font-size:.75em;color:#52604e}
.service-directory h2>a:hover{text-decoration:underline;text-underline-offset:5px}

/* A compact portrait directory, shared by pointer and keyboard disclosures. */
.people-directory{display:block;left:auto;width:min(840px,calc(100% - 24px));padding:28px 32px;overflow:auto}
.people-menu-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:24px 0}
.people-menu-person{display:flex;flex-direction:column;align-items:center;min-width:0;border-radius:20px;padding:12px 6px;text-align:center;transition:background .18s,transform .18s}
.people-menu-person img{width:100%;max-width:132px;height:auto;aspect-ratio:1;object-fit:contain;border-radius:50%;background:var(--porcelain);margin-bottom:14px}
.people-menu-name{font-size:.9rem;font-weight:600;line-height:1.3}
.people-menu-role{font-size:.75rem;color:var(--muted);margin-top:5px;line-height:1.4}
.people-menu-person:hover,.people-menu-person:focus-visible{background:var(--porcelain);transform:translateY(-2px)}
.people-menu-footer{border-top:1px solid var(--line);padding-top:18px}
.people-menu-footer a{display:flex;align-items:center;gap:12px;font-size:.9rem;font-weight:600;min-height:40px}
.people-menu-footer a span:first-child{font-size:.8rem;font-weight:400;color:var(--muted)}
.people-menu-footer a span:last-child{margin-left:auto}
.people-menu-footer a:hover{text-decoration:underline;text-underline-offset:4px}
.mobile-people summary{cursor:pointer;font-size:1.3rem;padding:18px 0;border-bottom:1px solid var(--line)}
.mobile-people .people-menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px 0}
.mobile-people .people-menu-person{display:flex;border:0;padding:12px 5px}
.mobile-people .people-menu-person img{max-width:100px;margin-bottom:10px}
.mobile-people .people-menu-name{font-size:.84rem}
.mobile-people .people-directory-link{display:flex;justify-content:space-between;font-size:.9rem;min-height:44px}
.mobile-people .people-menu-footer{padding:0;border:0}
.mobile-people .people-menu-footer a{font-size:.85rem;flex-wrap:wrap;gap:7px}
@media(min-width:901px) and (max-width:1100px){.header nav{gap:6px}.header .nav-link{padding-inline:10px;gap:8px}}
@media(prefers-reduced-motion:reduce){.people-menu-person:hover,.people-menu-person:focus-visible{transform:none}}

/* Of Counsel remains discoverable beneath the principal portrait directory. */
.people>.people-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.of-counsel-line{display:flex;align-items:center;gap:20px;border-top:1px solid var(--line);margin-top:36px;padding-top:18px;font-size:.9rem}
.of-counsel-line>span{color:var(--muted);font-size:.8rem}
.of-counsel-line>a{display:flex;align-items:center;gap:24px;min-height:44px;font-weight:500}
.of-counsel-line>a>span{font-size:.8rem;font-weight:400;color:var(--muted)}
.of-counsel-line>a:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:900px){.people>.people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.of-counsel-line{gap:5px;align-items:flex-start;flex-direction:column}.of-counsel-line>a{width:100%;justify-content:space-between;gap:12px}}

/* Directory section levels retain their approved card typography. */
.reading .people-grid .person h2{font-size:1.15rem;line-height:normal;letter-spacing:-.04em;margin:22px 0 9px}
.reading .insight-card h2{font-size:1.8rem;line-height:1.2;letter-spacing:-.04em;margin:26px 0 32px}
@media(max-width:760px){.reading .people-grid .person h2{line-height:1.3;margin-top:16px}.reading .insight-card h2{font-size:1.6rem}}

/* City landmark sketches introduce office details without depicting firm premises. */
.office-directory{display:block;left:auto;width:min(640px,calc(100% - 24px));padding:28px 32px;overflow:auto}
.office-menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding-top:24px}
.office-menu-card{display:flex;flex-direction:column;align-items:center;min-width:0;padding:16px 12px;border-radius:20px;text-align:center;transition:background .18s,transform .18s}
.office-menu-card img{display:block;width:100%;max-width:160px;height:auto;aspect-ratio:1;object-fit:contain;margin-bottom:16px;border-radius:18px}
.office-menu-city{font-size:1rem;font-weight:600;line-height:1.3}
.office-menu-landmark{font-size:.75rem;color:var(--muted);line-height:1.5;margin-top:8px;max-width:190px}
.office-menu-action{font-size:.8rem;margin-top:16px}
.office-menu-card:hover,.office-menu-card:focus-visible{background:var(--porcelain);transform:translateY(-2px)}
.mobile-offices summary{cursor:pointer;font-size:1.3rem;padding:18px 0;border-bottom:1px solid var(--line)}
.mobile-offices .office-directory-link{display:flex;justify-content:space-between;font-size:.9rem;min-height:44px}
.mobile-offices .office-menu-grid{gap:8px;padding:12px 0}
.mobile-offices .office-menu-card{display:flex;border:0;padding:12px 4px;margin:0}
.mobile-offices .office-menu-card img{max-width:120px;margin-bottom:12px}
.mobile-offices .office-menu-city{font-size:.9rem}
.mobile-offices .office-menu-landmark{font-size:.7rem}
@media(prefers-reduced-motion:reduce){.office-menu-card:hover,.office-menu-card:focus-visible{transform:none}}

/* Portrait-led introductions keep the person ahead of biography navigation. */
.profile-hero{padding-top:28px;padding-bottom:48px}
.profile-hero>.page-parent{margin-bottom:20px}
.profile-intro{display:grid;grid-template-columns:minmax(0,460px) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:center}
.profile-portrait{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:contain;border-radius:26px;background:var(--porcelain)}
.profile-identity{min-width:0}
.profile-identity h1{font-size:clamp(2.5rem,4.5vw,4.4rem);line-height:1.08;letter-spacing:-.045em;text-wrap:balance}
.profile-role{font-size:1.1rem;color:var(--muted);margin-top:20px}
.profile-identity .text-button{display:inline-flex;align-items:center;gap:12px;min-height:44px;margin-top:24px}
@media(max-width:1100px) and (min-width:761px){.profile-intro{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(max-width:760px){.profile-hero{padding-top:16px;padding-bottom:32px}.profile-hero>.page-parent{margin-bottom:12px}.profile-intro{grid-template-columns:1fr;gap:22px;text-align:center}.profile-portrait{width:min(100%,320px,36.8svh);margin-inline:auto;border-radius:22px}.profile-identity h1{font-size:clamp(2rem,8vw,2.6rem)}.profile-role{font-size:1rem;margin-top:12px}.profile-identity .text-button{margin-top:10px}}

/* Put useful profile information alongside the portrait instead of an empty title column. */
.profile-details{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:24px;margin-top:28px;padding-top:24px;border-top:1px solid var(--line);text-align:left}
.profile-detail h2{font-size:.8rem;font-weight:600;letter-spacing:.04em;line-height:1.4;margin:0 0 10px;color:var(--muted)}
.profile-detail p,.profile-detail li{font-size:.95rem;line-height:1.55;margin:0}
.profile-detail p a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px}
.profile-detail ul{list-style:none;padding:0;margin:0}
.profile-detail li+li{margin-top:8px}
@media(min-width:761px) and (max-width:1000px){.profile-details{grid-template-columns:1fr;gap:18px}}
@media(max-width:760px){.profile-details{margin-top:22px;padding-top:20px;gap:18px}.profile-detail p,.profile-detail li{font-size:.875rem}}

/* Bot trap is excluded from keyboard and visual navigation. */
.inquiry-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
#inquiry-preview button+button{margin-left:.75rem}
