/* SVG logo layout only. Heading typography comes from the original stylesheets. */
header .wordmark,footer .wordmark{display:block;font-size:0;line-height:0;letter-spacing:0;flex-shrink:0}
.brand-logo{display:block;width:355px;max-width:100%;height:auto}
header{min-height:124px;padding-top:28px;padding-bottom:24px}
@media(max-width:1000px){.brand-logo{width:300px}header{gap:20px}nav{gap:20px}}
@media(max-width:720px){header{min-height:100px;padding:23px 25px 21px;gap:14px}.brand-logo{width:260px;max-width:calc(100vw - 112px)}footer .brand-logo{max-width:100%;width:300px}}

/* Keep wrapped recognition text in its own column, including the shared 2014 row. */
.awards li{display:grid;grid-template-columns:4ch minmax(0,1fr);column-gap:12px;align-items:baseline}
.awards li>b{padding-right:0;font-variant-numeric:tabular-nums}
.awards .award-description{min-width:0}

/* Persistent header across desktop, portrait and phone landscape. */
html{scroll-padding-top:96px}
.firm-header{--header-progress:0;--logo-start:355px;--logo-change:120px;--height-start:160px;--height-change:76px;position:fixed;inset:0 0 auto;z-index:50;background:var(--paper,#f7f4ee);height:calc(var(--height-start) - var(--height-change)*var(--header-progress));min-height:0;padding:0 4.5%;gap:24px}
.firm-header .brand-logo{width:calc(var(--logo-start) - var(--logo-change)*var(--header-progress));max-width:100%;transition:none}
.mobile-header-spacer{display:block;height:160px}
.mobile-header-actions{display:contents}
.mobile-header-contact{display:none}
#firm-inquiry{scroll-margin-top:8px}
@media(min-width:901px) and (max-width:1000px){.firm-header{--logo-start:300px;--logo-change:80px;--height-start:144px;--height-change:60px;gap:16px}.mobile-header-spacer{height:144px}.firm-header nav{gap:16px}}
@media(max-width:900px),(orientation:landscape) and (max-height:600px) and (pointer:coarse){
  html{scroll-padding-top:88px}
  .firm-header{--height-start:124px;--height-change:52px;padding:0 max(18px,env(safe-area-inset-right)) 0 max(18px,env(safe-area-inset-left));gap:8px}
  .mobile-header-spacer{height:124px}
  .firm-header .brand-logo{width:min(calc(260px - 85px*var(--header-progress)),calc(100vw - 116px - 48px*var(--header-progress)));max-width:100%}
  .mobile-header-actions{display:block;position:absolute;right:max(18px,env(safe-area-inset-right));top:50%;transform:translateY(-50%);width:118px;height:calc(76px - 32px*var(--header-progress))}
  .mobile-header-contact{position:absolute;right:calc(50px*var(--header-progress));top:calc(7px*var(--header-progress));display:inline-flex;align-items:center;justify-content:center;min-width:68px;height:30px;padding:0 10px;border:1px solid currentColor;border-radius:999px;background:transparent;color:var(--ink,#242621);font:500 9px/1.2 Inter,Arial,sans-serif;letter-spacing:1.2px;text-transform:uppercase;opacity:.65}
  .mobile-header-contact::before{content:"";position:absolute;inset:-7px 0}
  .mobile-header-contact:focus-visible{outline:2px solid currentColor;outline-offset:4px;opacity:1}
  .firm-header .menu{position:absolute;right:calc(12px - 12px*var(--header-progress));top:calc(32px - 32px*var(--header-progress));display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:8px;border:0;background:transparent;color:var(--ink);cursor:pointer}
  .firm-header .menu-bars{display:flex;flex-direction:column;gap:6px;width:27px}
  .firm-header .menu-bars>span{display:block;width:27px;height:1.5px;background:currentColor;transition:transform .25s,opacity .25s}
  .firm-header .menu[aria-expanded=true] .menu-bars>span:first-child{transform:translateY(7.5px) rotate(45deg)}
  .firm-header .menu[aria-expanded=true] .menu-bars>span:nth-child(2){opacity:0}
  .firm-header .menu[aria-expanded=true] .menu-bars>span:last-child{transform:translateY(-7.5px) rotate(-45deg)}
  .firm-header nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:25px;box-shadow:0 15px 20px #0001;flex-direction:column;align-items:stretch;max-height:calc(100dvh - var(--height-start) + var(--height-change)*var(--header-progress));overflow-y:auto;overscroll-behavior:contain}
  .firm-header nav.open{display:flex}
  .firm-header nav a{padding:10px}
}
@media(min-width:480px) and (max-width:900px),(orientation:landscape) and (max-height:600px) and (pointer:coarse){
  .mobile-header-actions{height:44px}
  .mobile-header-contact{right:50px;top:7px}
  .firm-header .menu{right:0;top:0}
}
@media(prefers-reduced-motion:reduce){.firm-header .menu-bars>span{transition:none}}
