/* Photographic layer: retain the typography, navigation and existing motion. */
.photo-title{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:56px;align-items:center;padding:40px 0 52px;margin-bottom:10px}
.photo-title-copy{padding:24px 0;min-width:0}
.photo-title h1{font-size:clamp(38px,4.1vw,61px);line-height:1.07;overflow-wrap:break-word}
.photo-title .dek{font-size:clamp(22px,2vw,27px);margin-top:24px}
.page-photo{margin:0;position:relative;height:380px;min-width:0;background:var(--warm)}
.page-photo img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-visual img,.home-firm img,.page-photo img{filter:saturate(.9)}
.practice-photo{margin:30px 0 0;aspect-ratio:1.5;max-width:400px;background:var(--warm)}
.practice-photo img{width:100%;height:100%;object-fit:cover}
.home-team{padding:38px 0 70px;border-top:1px solid var(--line)}
.team-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}
.portrait-card{display:block;min-width:0}
.portrait-frame{height:320px;overflow:hidden;background:var(--warm)}
.portrait-frame img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;transition:transform .7s ease}
.portrait-card:hover .portrait-frame img{transform:scale(1.035)}
.portrait-card h3{font-size:27px;margin:24px 0 12px;line-height:1.2}
.portrait-card .team-role{margin:0 0 14px;line-height:1.6;min-height:32px}
.portrait-card .text-link{font-size:10px}
.team-member img{filter:none;object-fit:contain;object-position:center bottom;background:var(--warm)}
.office-gallery{margin:65px 0 75px;padding-top:30px;border-top:1px solid var(--line)}
.gallery-hint{font:400 18px/1.5 var(--text);color:var(--muted);margin-top:18px}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.gallery-item{position:relative;display:block;overflow:hidden;background:var(--warm);aspect-ratio:1.5;cursor:zoom-in}
.gallery-item:first-child,.gallery-item:nth-child(4),.gallery-item:nth-child(5){grid-column:span 2;aspect-ratio:2.8}
.gallery-item img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .65s ease}
.gallery-item:hover img{transform:scale(1.04)}
.gallery-zoom{position:absolute;right:12px;bottom:12px;width:34px;height:34px;display:grid;place-items:center;background:var(--paper);color:var(--ink);font-size:21px}
.photo-viewer{border:0;padding:0;background:var(--paper);color:var(--ink);width:min(1120px,94vw);max-width:none;max-height:94dvh;overflow:auto}
.photo-viewer::backdrop{background:rgba(18,18,16,.88)}
.photo-viewer-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;gap:14px}
.photo-viewer h2{font:500 11px/1.5 var(--sans);letter-spacing:1.5px;text-transform:uppercase}
.photo-viewer button{border:1px solid var(--line);padding:10px 16px;background:transparent;color:var(--ink);font:400 12px var(--sans);cursor:pointer;min-height:42px}
.photo-viewer button:hover{background:var(--warm)}
.photo-viewer figure{margin:0}
.photo-viewer img{display:block;width:100%;height:min(64dvh,670px);object-fit:contain;background:#edeae5}
.photo-viewer figcaption{padding:14px 18px;font:400 18px/1.5 var(--text)}
.photo-viewer-controls{display:flex;justify-content:space-between;align-items:center;padding:0 18px 18px;gap:12px}
.photo-viewer-count{font:400 12px var(--sans);color:var(--muted)}
html.photo-open{overflow:hidden}
@media(max-width:1000px){.photo-title{gap:30px;grid-template-columns:1.1fr 1fr}.photo-title h1{font-size:43px}.page-photo{height:340px}.team-preview{gap:22px}.portrait-frame{height:260px}.portrait-card h3{font-size:24px}}
@media(max-width:700px){.photo-title{grid-template-columns:1fr;gap:24px;padding:30px 0 35px;margin-bottom:5px}.photo-title-copy{padding:0}.photo-title h1{font-size:39px}.photo-title .dek{font-size:23px;margin-top:20px}.page-photo{height:240px}.practice-photo{max-width:none;aspect-ratio:1.8;margin-top:22px}.team-preview{grid-template-columns:1fr;gap:38px}.portrait-frame{height:330px}.portrait-card .team-role{min-height:0}.home-team{padding:26px 0 45px}.gallery-grid{grid-template-columns:1fr 1fr;gap:12px}.gallery-item:first-child,.gallery-item:nth-child(4),.gallery-item:nth-child(5){grid-column:span 2;aspect-ratio:1.8}.gallery-item{aspect-ratio:1}.office-gallery{margin:40px 0 45px}.photo-viewer button{padding:10px}.photo-viewer img{height:auto;max-height:62dvh}.photo-viewer figcaption{font-size:17px}.photo-viewer-controls{padding-left:12px;padding-right:12px}}
.reduce-motion .portrait-frame img,.reduce-motion .gallery-item img{transition:none;transform:none}
@media(prefers-reduced-motion:reduce){.portrait-frame img,.gallery-item img{transition:none;transform:none!important}}
@media print{.photo-title{display:block}.page-photo{height:180px;margin-top:20px}.office-gallery,.photo-viewer{display:none}.team-preview{grid-template-columns:repeat(3,1fr)}.portrait-frame{height:180px}}

/* Correction: illustrations are not photographs of the firm. */
.page-photo .illustration-credit,.hero-visual .illustration-credit,.firm-visual .illustration-credit{position:absolute;right:12px;bottom:12px;left:auto;max-width:calc(100% - 24px);padding:8px 10px;margin:0;background:rgba(250,250,246,.95);color:var(--muted);font:400 9px/1.45 var(--sans);letter-spacing:.45px;text-transform:none}
.home-firm.home-firm-text{align-items:start;gap:55px;margin-top:28px;padding-top:35px;border-top:1px solid var(--line)}
.home-firm-text>.cover-intro{grid-column:auto;display:block;border:0;padding:0;margin:0;max-width:none}
.home-firm-text>.cover-intro p,.home-firm-text>.cover-intro p:first-child{font:400 21px/1.6 var(--text);margin:0 0 24px;padding:0;border:0}
.home-firm-text>.cover-intro p:last-child{margin-bottom:0}
@media(max-width:700px){.home-firm.home-firm-text{grid-template-columns:1fr;gap:30px;padding-top:28px}.page-photo .illustration-credit,.hero-visual .illustration-credit,.firm-visual .illustration-credit{font-size:8px}}

.home-firm .firm-visual{position:relative;margin:0}
