/* Shared finishing pass: optical logo rails, readable supporting text, and restrained detail. */
:root {
  --text-secondary: #58655f;
  --text-on-dark: #c4d0d0;
  --focus-color: #947344;
  --radius-card: 22px;
  --space-section: clamp(56px, 6.2vw, 88px);
}

::selection { background: #d9bc8073; color: #101e2a; }
html { scrollbar-color: #8b9690 var(--paper); }
input, textarea { caret-color: var(--ink); }
:focus-visible { outline: 2px solid var(--focus-color); outline-offset: 5px; }
:is(main, section, h1, h2)[tabindex="-1"]:focus { outline: none; }
h1, h2, h3 { text-wrap: balance; }
h1, h1 em, h2, .bio-content h2 { letter-spacing: -.035em; }
p { text-wrap: pretty; }
.breadcrumb, .breadcrumb > span { color: var(--text-secondary); }
.model-footnote { color: var(--text-secondary); }
.desktop-nav a { display: flex; align-items: center; min-height: 44px; }
.desktop-nav a::after { bottom: 6px; }
.header-cta { box-shadow: none; }
.button, .text-link { transition: color .18s ease-out, background .18s ease-out, border-color .18s ease-out; }
.button img, .text-link img { width: 18px; height: 18px; }
.button:hover img, .text-link:hover img { transform: translateX(3px); }
.text-link { min-height: 44px; }
.menu-toggle, .dialog-close { min-width: 44px; min-height: 44px; }
.dialog-close { width: 44px; height: 44px; top: 16px; right: 16px; }
.back-button { min-height: 44px; padding: 10px 2px; font-size: 12px; }
.bio-content > p { font-size: 14px; line-height: 1.85; }
.bio-content > .eyebrow { font-size: 10px; }

/* Credibility marks share a measured rail. Individual widths correct optical weight. */
.home-trust .credential-proof {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: start;
  gap: 22px 32px;
  padding-top: 32px;
  margin-top: 12px;
}
.credential-group { min-width: 0; }
.education-group { grid-column: 1; }
.firms-group { grid-column: 2 / -1; }
.credential-group > .label {
  font-size: 10px;
  line-height: 1.6;
  letter-spacing: .1em;
  color: var(--text-secondary);
  margin: 0 0 16px;
}
.school-logos, .firm-logos {
  display: grid;
  gap: 32px;
  align-items: center;
  min-height: 64px;
  max-width: none;
}
.school-logos { grid-template-columns: minmax(0, 1fr); }
.firm-logos { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.brand-slot {
  min-width: 0;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.brand-mark { display: block; object-fit: contain; width: 100%; height: 42px; max-width: 184px; filter: grayscale(1) brightness(.62); }
.brand-mark.logo-yale { max-width: 184px; }
.brand-mark.logo-gibson-dunn { max-width: 152px; height: 24px; }
.brand-mark.logo-sullivan-cromwell { max-width: 184px; height: 26px; }
.brand-mark.logo-orrick { max-width: 90px; height: 52px; }
.brand-mark.logo-kellogg-hansen { max-width: 184px; height: 34px; }
.credential-note {
  grid-column: 1 / -1;
  margin: 0;
  font-size: 10px;
  line-height: 1.75;
  color: var(--text-secondary);
}

/* The testimonial uses the original vector mark in reversed monochrome. */
.home-trust { padding-top: var(--space-section); padding-bottom: 64px; gap: 52px 64px; }
.trust-intro h2 { line-height: 1.19; letter-spacing: -.035em; }
.trust-intro > p { font-size: 16px; line-height: 1.85; margin-top: 25px; }
.trust-intro > .text-link { font-size: 13px; margin-top: 22px; }
.endorsement-card {
  padding: 34px;
  border-radius: var(--radius-card);
  background: var(--navy);
  border: 0;
  box-shadow: none;
}
.quote-top { margin-bottom: 18px; height: 30px; }
.quote-top > .eyebrow { font-size: 10px; letter-spacing: .12em; }
.quote-glyph { color: #d9bc8055; font-size: 70px; }
.endorsement-card blockquote { font-size: clamp(27px, 2.45vw, 33px); line-height: 1.38; letter-spacing: -.027em; }
.endorsement-credit { margin-top: 30px; padding-top: 24px; gap: 20px; align-items: center; }
.endorsement-credit strong { font-size: 13px; margin-bottom: 5px; }
.endorsement-credit span { font-size: 11px; line-height: 1.65; color: var(--text-on-dark); }
.quote-logo { background: none; padding: 0; border-radius: 0; width: 132px; height: 32px; display: flex; align-items: center; }
.quote-logo > img { display: block; width: 100%; height: 19px; object-fit: contain; filter: brightness(0) invert(1); opacity: .92; }
.endorsement-card .quote-disclaimer { font-size: 10px; color: #b4c2c5; margin-top: 22px; line-height: 1.7; }

/* The same logo treatment and alignment carry into practice leads and profiles. */
.lead-logos { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; align-items: center; }
.lead-logos > img, .lead-logos > img + img {
  display: block; width: 100%; height: 36px; max-height: none;
  object-fit: contain; object-position: left center; filter: grayscale(1) brightness(.62);
}
.person-brands > div { min-width: 0; }
.person-card { position: relative; }
.profile-open { position: absolute; inset: 0; z-index: 3; width: 100%; height: 100%; border-radius: inherit; background: transparent; }
.profile-open:focus-visible { outline: 3px solid var(--focus-color); outline-offset: -4px; }
.person-card:focus-within .profile-icon { background: var(--gold); }
.person-brands > div > span { color: var(--text-secondary); }
.person-brand, .people-counsel .person-brand {
  display: block; width: 100%; height: 42px; max-height: none; max-width: 174px;
  object-fit: contain; object-position: left center; filter: grayscale(1) brightness(.62);
}
.person-brand.logo-orrick, .people-counsel .person-brand.logo-orrick { width: 78px; height: 44px; max-height: none; }
.person-brand.logo-gibson-dunn { max-width: 150px; }
.person-brand.logo-sullivan-cromwell { max-width: 174px; }
.person-brand.logo-kellogg-hansen { max-width: 174px; }
.bio-credential-group { flex: 1 1 140px; min-width: 0; }
.bio-credential-group > .label { font-size: 10px; color: var(--text-secondary); margin-bottom: 12px; }
.bio-credential-logo, .bio-credential-logo.logo-sullivan-cromwell, .bio-credential-logo.logo-orrick {
  display: block; width: 100%; max-width: 170px; height: 44px; max-height: none; min-height: 0;
  object-fit: contain; object-position: left center; filter: grayscale(1) brightness(.62);
}
.bio-credential-logo.logo-orrick { width: 78px; }
.bio-credential-logo.logo-gibson-dunn { max-width: 150px; }
.credential-text, .person-brands > div > .credential-text { min-height: 42px; display: flex; align-items: center; font-size: 12px; line-height: 1.55; color: var(--ink); }

/* Home cards retain their soft shape with sharper typographic and spacing discipline. */
.home-expertise .section-heading, .model-teaser { gap: 64px; }
.home-expertise .section-heading .eyebrow, .model-teaser .eyebrow { display: none; }
.home-expertise .section-heading > p { font-size: 15px; line-height: 1.8; }
.practice-card { border-radius: var(--radius-card); box-shadow: none; }
.practice-card:hover { box-shadow: none; border-color: #aab6ab; }
.practice-card-body { padding: 32px 32px 0; }
.practice-card h3 { font-size: 32px; line-height: 1.22; letter-spacing: -.03em; }
.card-lead { font-size: 13px; margin-top: 12px; color: #53666c; }
.card-lead button { min-height: 32px; text-underline-offset: 4px; }
.practice-card-services { margin-top: 22px; }
.practice-card-services li { gap: 16px; padding: 22px 0; }
.practice-card-services h4 { font-size: 15px; line-height: 1.5; }
.practice-card-services p { font-size: 13px; line-height: 1.75; margin-top: 7px; }
.practice-card-services .icon-tile { background: #f1eee5; border-color: #dedbce; box-shadow: none; }
.card-route { min-height: 82px; font-size: 13px; }
.route-circle { width: 42px; height: 42px; }
.model-teaser { padding-block: 64px 80px; }
.model-teaser p { font-size: 15px; line-height: 1.85; }
.model-footnote { font-size: 11px; }
.hero-proof > div > span:first-child { color: #d9bc80; }
.footer-top nav > a, .footer-contact > a, .footer-contact > button { min-height: 32px; font-size: 12px; }
.footer-bottom { line-height: 1.75; }

@media (min-width: 1101px) {
  .page-people .people-featured .person-card-copy h3 { min-height: 2.4em; }
}

@media (min-width: 721px) and (max-width: 1100px) {
  .home-trust { gap: 44px 40px; }
  .home-trust .credential-proof { gap: 20px 24px; }
  .school-logos, .firm-logos { gap: 24px; }
  .credential-group > .label { font-size: 9px; letter-spacing: .08em; }
  .brand-mark.logo-orrick { max-width: 76px; height: 44px; }
  .quote-logo { width: 108px; }
  .endorsement-card { padding: 28px; }
  .endorsement-credit { gap: 16px; }
  .practice-card-body { padding: 28px 26px 0; }
  .practice-card h3 { font-size: 29px; }
}

@media (max-width: 900px) {
  .home-trust { grid-template-columns: 1fr; }
  .trust-intro { max-width: 610px; }
  .trust-intro > p { max-width: 520px; }
  .endorsement-card { width: 100%; }
  .endorsement-card blockquote { max-width: 100%; font-size: 32px; }
  .home-trust .credential-proof { grid-template-columns: repeat(4, minmax(0, 1fr)); row-gap: 28px; }
  .education-group, .firms-group { grid-column: 1 / -1; }
  .school-logos { max-width: 184px; }
  .school-logos .brand-slot { justify-content: flex-start; height: 50px; }
  .brand-mark.logo-yale { max-width: 184px; }
}

@media (max-width: 720px) {
  h1, h1 em { letter-spacing: -.035em; }
  .site-header { gap: 12px; }
  .header-cta { min-height: 44px; }
  .menu-toggle { width: 44px; height: 44px; }
  .home-trust { padding-block: 48px; gap: 32px; }
  .trust-intro h2 { font-size: clamp(32px, 8.5vw, 42px); }
  .trust-intro > p { font-size: 15px; line-height: 1.8; margin-top: 22px; }
  .trust-intro > .text-link { font-size: 12px; margin-top: 18px; }
  .endorsement-card { padding: 27px 25px; border-radius: 20px; }
  .quote-top { margin-bottom: 19px; }
  .quote-top > .eyebrow { font-size: 9px; }
  .endorsement-card blockquote { font-size: clamp(25px, 6.9vw, 32px); line-height: 1.42; }
  .endorsement-credit { gap: 16px; margin-top: 26px; padding-top: 22px; }
  .endorsement-credit strong { font-size: 12px; }
  .endorsement-credit span { font-size: 10px; }
  .quote-logo { width: 106px; }
  .quote-logo > img { height: 17px; }
  .endorsement-card .quote-disclaimer { font-size: 10px; margin-top: 20px; }
  .home-trust .credential-proof { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 24px; margin-top: 8px; padding-top: 28px; }
  .credential-group > .label { font-size: 10px; letter-spacing: .07em; margin-bottom: 16px; }
  .firm-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 28px; min-height: 0; }
  .brand-slot { height: 56px; }
  .brand-mark.logo-gibson-dunn { max-width: 136px; }
  .brand-mark.logo-sullivan-cromwell { max-width: 154px; }
  .brand-mark.logo-orrick { width: 80px; height: 46px; }
  .brand-mark.logo-kellogg-hansen { max-width: 154px; }
  .credential-note { font-size: 10px; line-height: 1.75; }
  .home-expertise .section-heading { gap: 20px; margin-bottom: 28px; }
  .home-expertise .section-heading > p { font-size: 14px; }
  .practice-card-grid { gap: 26px; }
  .practice-card-body { padding: 27px 25px 0; }
  .practice-card h3 { font-size: 28px; line-height: 1.25; }
  .card-lead { font-size: 12px; }
  .practice-card-services li { gap: 15px; padding: 20px 0; }
  .practice-card-services h4 { font-size: 14px; }
  .practice-card-services p { font-size: 13px; line-height: 1.8; }
  .card-route { min-height: 76px; font-size: 12px; }
  .model-teaser { padding-block: 48px 56px; }
  .model-teaser p { font-size: 14px; }
  .model-footnote { font-size: 11px; }
  .bio-content { padding: 30px 25px; }
  .bio-content > p { font-size: 14px; }
  .lead-logos { gap: 22px; }
  .lead-logos > img, .lead-logos > img + img { width: 100%; height: 34px; max-height: none; }
  .person-brand, .people-counsel .person-brand { width: 100%; height: 40px; max-height: none; }
  .person-brand.logo-orrick { height: 42px; width: 75px; }
  .footer-top nav > a, .footer-contact > a, .footer-contact > button { min-height: 44px; }
}

@media (max-width: 390px) {
  .endorsement-credit { gap: 12px; }
  .quote-logo { width: 92px; }
  .practice-card-body { padding-inline: 22px; }
  .practice-card h3 { font-size: 26px; }
  .practice-card-services li { gap: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  .button, .text-link, .button img, .text-link img { transition: none; }
  .button:hover img, .text-link:hover img { transform: none; }
}
