.firm-hero .inner-visual{position:relative;isolation:isolate;overflow:hidden}
.firm-hero .inner-visual figcaption{position:absolute;inset:auto 0 0;margin:0;padding:32px 20px 14px;background:linear-gradient(transparent,rgba(0,0,0,.77));color:white;font:600 10px/1.45 var(--sans,Arial,sans-serif);letter-spacing:.09em;text-transform:uppercase}
.firm-hero .btn{margin-top:8px}
.firm-intro-grid{display:grid;grid-template-columns:minmax(0,.93fr) minmax(0,1.07fr);align-items:start;gap:clamp(40px,9vw,155px)}
.firm-intro-grid .chapter-title{margin-bottom:0}
.firm-copy{max-width:70ch}
.firm-copy>p,.firm-paper dd,.firm-focus-grid p,.firm-end-grid>div>p:last-child{font:400 clamp(16px,1.25vw,20px)/1.65 var(--sans,Arial,sans-serif);margin:0 0 1em}
.firm-intro-grid .firm-copy>p:first-child{font-size:clamp(19px,1.72vw,28px);line-height:1.42;letter-spacing:-.02em}
.firm-link{color:var(--navy,#162333);font:650 15px/1.3 var(--sans,Arial,sans-serif);border-bottom:1px solid var(--navy,#162333);display:inline-flex;gap:14px;align-items:center;text-decoration:none;padding-block:5px}
.firm-link:hover{color:#185d9a;border-color:currentColor}
.firm-paper,.firm-bio:nth-of-type(odd){background:var(--paper,#f7f7f7)}
.firm-principles{margin:0}
.firm-principles>div{display:block;padding:22px 0;border-top:1px solid var(--line,#d6d6d6)}
.firm-principles>div:first-child{padding-top:18px}
.firm-principles dt,.firm-focus-grid h3{font:500 clamp(22px,2vw,31px)/1.2 var(--serif,Georgia,serif);letter-spacing:-.02em;margin:0 0 9px;color:var(--ink,#162333)}
.firm-principles dd,.firm-focus-grid p{font-size:clamp(15px,1.05vw,18px);color:var(--muted,#4d4d4d);margin:0}
.firm-focus-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2.3vw,36px);margin-top:38px}
.firm-focus-grid article{display:flex;align-items:flex-start;flex-direction:column}
.firm-focus-grid figure{width:100%;aspect-ratio:1.28;margin:0 0 22px;overflow:hidden;background:var(--paper,#f7f7f7)}
.firm-focus-grid img,.firm-bio figure img{width:100%;height:100%;object-fit:cover}
.firm-focus-grid p{margin:0 0 15px}
.firm-focus-grid .firm-link{margin-top:auto}
.firm-end{background:var(--navy,#162333);color:white}
.firm-end-grid{padding-block:clamp(55px,7vw,110px);display:flex;align-items:center;justify-content:space-between;gap:32px}
.firm-end-grid .eyebrow{color:var(--ice,#9dcdf4)}
.firm-end-grid h2{font:400 clamp(40px,5.7vw,93px)/1.02 var(--serif,Georgia,serif);letter-spacing:-.03em;color:white;margin:15px 0}
.firm-end-grid h2 em{font-family:var(--serif,Georgia,serif);color:var(--ice,#9dcdf4);font-weight:400}
.firm-end-grid>div>p:last-child{margin:0;color:rgba(255,255,255,.83);font-size:17px;max-width:64ch}
.firm-end-grid .btn{white-space:nowrap;flex:none}
.firm-bio-grid{display:grid;grid-template-columns:minmax(0,.79fr) minmax(0,1.21fr);gap:clamp(40px,8vw,120px);align-items:start}
.firm-bio figure{aspect-ratio:3/3.75;margin:0;max-height:700px;overflow:hidden}
.firm-bio .chapter-title{margin-bottom:24px}
.firm-minor-heading{font:650 11px/1.35 var(--sans,Arial,sans-serif);letter-spacing:.13em;text-transform:uppercase;margin:30px 0 10px}
.firm-specialties{margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:18px;list-style:none}
.firm-specialties li{border-top:1px solid var(--line,#d6d6d6);padding:11px 0;font:500 14px/1.42 var(--sans,Arial,sans-serif)}
.firm-archive-top{display:flex;justify-content:space-between;align-items:end;gap:20px}
.firm-archive-top .chapter-title{margin-bottom:0}
.firm-photo-count{margin:0;font:500 13px/1.45 var(--sans,Arial,sans-serif);color:var(--muted,#4d4d4d)}
.firm-filter{display:flex;flex-wrap:wrap;gap:7px;padding:24px 0;margin:24px 0 0;border-top:1px solid var(--line,#d6d6d6)}
.firm-filter button,.firm-load{font:600 13px/1.28 var(--sans,Arial,sans-serif);cursor:pointer;padding:11px 15px;border:1px solid var(--line,#d6d6d6);background:transparent;color:var(--ink,#162333)}
.firm-filter button[aria-pressed=true],.firm-filter button:hover{background:var(--navy,#162333);color:white;border-color:var(--navy,#162333)}
.firm-gallery-grid,.firm-episode-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 18px}
.firm-photo{display:block;border:0;background:transparent;color:var(--ink,#162333);padding:0;text-align:left;cursor:zoom-in}
.firm-photo-image,.firm-episode-image{display:block;position:relative;aspect-ratio:1.4;overflow:hidden;background:var(--paper,#f7f7f7)}
.firm-photo-image img,.firm-episode-image img{width:100%;height:100%;object-fit:cover;transition:transform .32s ease-out}
.firm-photo:hover img,.firm-episode:hover img{transform:scale(1.035)}
.firm-expand{position:absolute;bottom:9px;right:9px;display:grid;place-items:center;width:29px;height:29px;background:rgba(22,35,51,.87);color:white;font:500 20px/1 var(--sans,Arial,sans-serif)}
.firm-caption{display:block;margin:10px 0 0;font:550 14px/1.4 var(--sans,Arial,sans-serif)}
.firm-load-area{text-align:center;margin-top:32px}
.firm-load{border-color:var(--navy,#162333);min-height:42px}
.firm-load span{margin-left:10px}
.firm-load:hover{background:var(--navy,#162333);color:white}
.firm-photo[hidden],.firm-episode[hidden],.firm-load[hidden]{display:none!important}
.firm-lightbox{position:fixed;inset:0;border:0;padding:0;margin:auto;width:min(1100px,calc(100vw - 36px));max-width:none;max-height:calc(100dvh - 24px);box-sizing:border-box;overflow:auto;color:white;background:#101923;box-shadow:0 30px 100px rgba(0,0,0,.5)}
.firm-lightbox[open]{display:flex;flex-direction:column}
.firm-lightbox::backdrop{background:rgba(0,0,0,.87)}
.firm-lightbox-bar,.firm-lightbox-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 16px}
.firm-lightbox-bar{font:600 11px/1.45 var(--sans,Arial,sans-serif);letter-spacing:.08em;text-transform:uppercase}
.firm-lightbox button{min-width:44px;min-height:38px;border:1px solid #ffffff52;color:white;background:transparent;cursor:pointer;font:600 14px var(--sans,Arial,sans-serif)}
.firm-lightbox button:hover{background:var(--navy,#162333)}
.firm-lightbox [data-close]{padding-inline:13px}.firm-lightbox [data-close] span{font-size:19px;margin-left:7px}
.firm-lightbox figure{display:grid;gap:9px;grid-template-rows:minmax(0,1fr) auto;min-height:0;margin:0;padding:0 16px}
.firm-lightbox figure img{background:#000;display:block;width:100%;height:min(67dvh,680px);object-fit:contain}
.firm-lightbox figcaption{font:400 16px/1.4 var(--sans,Arial,sans-serif);padding:0}
.firm-lightbox-nav{justify-content:flex-end;padding-bottom:13px}
.firm-episode-grid{margin-top:30px}
.firm-episode-image{aspect-ratio:16/9;background:var(--navy,#162333)}
.firm-episode-image img{object-fit:cover;transform:scale(1.02)}
.firm-duration{position:absolute;right:6px;bottom:6px;padding:3px 5px;font:600 11px/1.2 var(--sans,Arial,sans-serif);color:white;background:rgba(0,0,0,.85)}
.firm-episode{text-decoration:none;color:var(--ink,#162333)}
.firm-episode-name{display:block;margin:10px 0 0;font:600 clamp(15px,1.3vw,19px)/1.38 var(--sans,Arial,sans-serif);letter-spacing:-.015em}
.firm-episode-name span{color:var(--muted,#4d4d4d)}
@media(max-width:1000px){.firm-gallery-grid,.firm-episode-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.firm-focus-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:36px}.firm-intro-grid,.firm-bio-grid{gap:40px}}
@media(max-width:730px){.firm-intro-grid,.firm-bio-grid{grid-template-columns:1fr;gap:25px}.firm-bio figure{max-height:500px}.firm-bio figure img{object-position:center 32%}.firm-gallery-grid,.firm-episode-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}.firm-end-grid{align-items:flex-start;flex-direction:column}.firm-hero .inner-visual figcaption{padding:24px 14px 10px}.firm-archive-top{align-items:start;flex-direction:column;gap:5px}.firm-filter{margin-top:16px;padding:16px 0}.firm-filter button{padding:9px 11px}.firm-lightbox{width:calc(100vw - 12px)}.firm-lightbox figure{padding:0 9px}.firm-lightbox figure img{height:min(60dvh,680px)}.firm-specialties{grid-template-columns:1fr}}
@media(max-width:430px){.firm-focus-grid{grid-template-columns:1fr}.firm-gallery-grid,.firm-episode-grid{column-gap:10px}.firm-caption{font-size:12px}.firm-expand{width:22px;height:22px;bottom:5px;right:5px}.firm-filter button{font-size:12px}.firm-episode-name{font-size:14px}}
@media(prefers-reduced-motion:reduce){.firm-photo-image img,.firm-episode-image img{transition:none}}
