/* R74 — whole-site reading geometry, contrast and responsive consolidation.
   This terminal layer turns Darren's mobile screenshots into release gates:
   one safe edge, one readable measure, no hidden source copy, no squeezed
   columns, no fixed-height content bands, and no low-contrast body text. */

:root {
  --r74-shell: 1280px;
  --r74-reading: 760px;
  --r74-edge: clamp(24px, 4vw, 56px);
  --r74-section: clamp(56px, 6vw, 80px);
  --r74-section-compact: clamp(42px, 4.5vw, 60px);
  --r74-body: clamp(16px, 1.08vw, 17px);
  --r74-display: clamp(44px, 3.8vw, 60px);
  --r74-title: clamp(34px, 2.8vw, 44px);
  --r74-subtitle: clamp(25px, 2vw, 31px);
  --r74-red: #8b151b;
  --r74-red-deep: #5a0d12;
  --r74-night: #171114;
  --r74-ink: #191416;
  --r74-copy: #494245;
  --r74-muted: #655d60;
  --r74-paper: #f5f0e9;
  --r74-line: rgba(34, 24, 28, .17);
  --r74-line-dark: rgba(255, 255, 255, .24);
}

html body.gl-r53 .r53-site[data-site-production-root] {
  --r53-edge: var(--r74-edge);
  --r58-edge: var(--r74-edge);
  --r68-edge: var(--r74-edge);
  --r70-edge: var(--r74-edge);
  --r53-shell: var(--r74-shell);
  --r58-shell: var(--r74-shell);
  --r67-shell: var(--r74-shell);
  --r68-header-shell: var(--r74-shell);
  --r70-shell: var(--r74-shell);
  --r53-reading: var(--r74-reading);
  --r58-reading: var(--r74-reading);
  --r67-reading: var(--r74-reading);
  --r70-reading: var(--r74-reading);
  overflow-x: clip;
  color: var(--r74-ink);
}

html body.gl-r53 .r53-site[data-site-production-root] *,
html body.gl-r53 .r53-site[data-site-production-root] *::before,
html body.gl-r53 .r53-site[data-site-production-root] *::after {
  box-sizing: border-box;
}

html body.gl-r53 .r53-site[data-site-production-root] .r53-shell {
  width: min(calc(100% - (2 * var(--r74-edge))), var(--r74-shell)) !important;
  max-width: var(--r74-shell) !important;
  min-width: 0 !important;
  margin-inline: auto !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main :where(p, li, dd) {
  font-size: var(--r74-body);
  line-height: 1.68;
  overflow-wrap: break-word;
  word-break: normal;
  text-wrap: pretty;
}

html body.gl-r53 .r53-site[data-site-production-root] main :where(h1, h2, h3) {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: normal !important;
  word-break: keep-all !important;
  hyphens: none !important;
  text-wrap: balance;
}

html body.gl-r53 .r53-site[data-site-production-root][data-r53-locale="ko"] main :where(p, li, dd),
html body.gl-r53 .r53-site[data-site-production-root][data-r53-locale="zh"] main :where(p, li, dd) {
  line-break: strict;
  word-break: keep-all;
}

/* Korean word grouping is not valid for unspaced Chinese headings. Let CJK
   titles wrap between ideographs while retaining strict punctuation rules;
   otherwise long localized heroes can visually escape their safe edge even
   when the page itself reports no horizontal scrollbar. */
html body.gl-r53 .r53-site[data-site-production-root][data-r53-locale="zh"] main :where(h1, h2, h3) {
  line-break: strict;
  word-break: normal !important;
  overflow-wrap: anywhere !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main :where(
  .r53-prose,
  .r54-narrative-chapter-body,
  .r54-firm-story-entry .r54-narrative-chapter-body,
  .r54-counsel-chapter-body,
  .r65-biography-copy,
  .r53-office-record-copy,
  .r53-faq-list,
  .r53-article-card-copy
) {
  color: var(--r74-copy) !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main :where(
  .r54-route-hero,
  .r54-home-authority,
  .r58-founder-authority,
  .r53-profile-hero,
  .r54-contact-workflow .r53-contact-copy,
  .r54-bottom-inquiry-band
) :where(p, li, dd, span) {
  color: #f3ece8;
}

html body.gl-r53 .r53-site[data-site-production-root] main :where(
  .r54-route-hero,
  .r54-home-authority,
  .r58-founder-authority,
  .r53-profile-hero,
  .r54-contact-workflow .r53-contact-copy
) .r53-eyebrow {
  color: #f3ece8 !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r53-eyebrow {
  margin: 0 0 15px !important;
  color: var(--r74-red) !important;
  font-size: 11px !important;
  line-height: 1.3 !important;
  letter-spacing: .13em !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main :where(
  .r54-route-hero,
  .r54-home-authority,
  .r58-founder-authority,
  .r53-profile-hero,
  .r54-contact-workflow .r53-contact-copy,
  .r54-bottom-inquiry-band
) .r53-eyebrow {
  color: #f3ece8 !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r54-home-authority .r53-button:not(.r53-button-secondary),
html body.gl-r53 .r53-site[data-site-production-root] main .r54-home-authority .r53-button:not(.r53-button-secondary) :where(span, svg) {
  color: var(--r74-red) !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r54-home-authority .r53-button-secondary,
html body.gl-r53 .r53-site[data-site-production-root] main .r54-home-authority .r53-button-secondary :where(span, svg) {
  color: #fff !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main :where(
  .r53-profile-hero,
  .r58-founder-authority,
  .r54-contact-workflow .r53-contact-copy
) .r53-button-light,
html body.gl-r53 .r53-site[data-site-production-root] main :where(
  .r53-profile-hero,
  .r58-founder-authority,
  .r54-contact-workflow .r53-contact-copy
) .r53-button-light :where(span, svg) {
  color: var(--r74-red) !important;
}

/* One typographic hierarchy across every route family. */
html body.gl-r53 .r53-site[data-site-production-root] main :where(
  .r54-route-hero,
  .r53-profile-hero,
  .r53-article-hero
) h1 {
  font-family: var(--r53-serif) !important;
  font-size: var(--r74-display) !important;
  font-weight: 500 !important;
  line-height: 1.02 !important;
  letter-spacing: -.032em !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main :where(
  .r53-section-heading,
  .r54-firm-story-group-heading,
  .r54-practice-directory-heading,
  .r54-testimonial-heading,
  .r54-faq-lead
) > :where(h2, strong),
html body.gl-r53 .r53-site[data-site-production-root] main .r53-section-heading h2 {
  font-size: var(--r74-title) !important;
  line-height: 1.06 !important;
  letter-spacing: -.026em !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main :where(
  .r54-firm-story-entry > h3,
  .r54-narrative-chapter > h2,
  .r54-counsel-chapter > h3,
  .r53-article-card h2,
  .r54-testimonial-card cite strong
) {
  font-size: var(--r74-subtitle) !important;
  line-height: 1.14 !important;
  letter-spacing: -.018em !important;
}

/* The lead proposition is composed from locale-bound semantic phrases. The
   measure creates deliberate lines without hard-coded BR tags that would break
   Korean or Chinese, while the final punctuation stays with its phrase. */
html body.gl-r53 .r53-site[data-site-production-root].r60-home main .r54-home-authority-copy h1 {
  max-width: 14.5ch !important;
  text-wrap: balance !important;
}

html body.gl-r53 .r53-site[data-site-production-root].r60-home main .r54-home-authority-copy h1 .r72-semantic-unit {
  display: inline-block !important;
  white-space: nowrap !important;
}

/* One factual portrait frame for George and James. Both source files are exact
   4:5 identity-preserving crops; cover therefore fills the frame without
   reconstructing a face, clipping a shoulder, or exposing unequal whitespace. */
html body.gl-r53 .r53-site[data-site-production-root] main :where(
  .r54-selected-person,
  .r54-selected-person-associate
) > figure,
html body.gl-r53 .r53-site[data-site-production-root] main .r54-firm-person > figure,
html body.gl-r53 .r53-site[data-site-production-root] main .r65-profile-portrait {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 4 / 5 !important;
  margin: 0 !important;
  overflow: hidden !important;
  background: #f3f1ef !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main :where(
  .r54-selected-person .r53-counsel-image,
  .r54-selected-person-associate .r53-counsel-image,
  .r54-firm-person-image,
  .r65-profile-portrait-image
) {
  display: block !important;
  width: 100% !important;
  min-width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: 50% 50% !important;
  transform: none !important;
}

/* Vision-measured portrait normalization. James is the reference crop. The
   George source face box is 0.267746w versus 0.314111w, so this exact affine
   adjustment equalizes face scale and aligns both face centres while keeping
   the original pixels, identity, shoulders and 4:5 frame intact. */
html body.gl-r53 .r53-site[data-site-production-root] main img[src*="george.jpg"] {
  transform: translate(-2.415%, 5.057%) scale(1.17317) !important;
  transform-origin: 50% 50% !important;
}

/* Article pages retain a basic orientation path without another noisy card
   collection: archive first, then at most one previous and one next item. */
html body.gl-r53 .r53-site[data-site-production-root] main .r74-article-navigation-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  width: 100% !important;
  border-top: 1px solid var(--r74-line) !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r74-article-navigation-link {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 18px !important;
  align-content: center !important;
  gap: 8px 18px !important;
  min-width: 0 !important;
  min-height: 128px !important;
  padding: 24px 26px !important;
  border-right: 1px solid var(--r74-line) !important;
  border-bottom: 1px solid var(--r74-line) !important;
  background: #fff !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r74-article-navigation-link:nth-child(odd):not(.r74-article-navigation-archive) {
  border-right: 0 !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r74-article-navigation-archive {
  grid-column: 1 / -1 !important;
  min-height: 72px !important;
  border-right: 0 !important;
  background: var(--r74-paper) !important;
}

/* Archive + one adjacent article is a two-row composition, not a half-card
   followed by an accidental empty cell. Two adjacent articles still share the
   second row evenly. */
html body.gl-r53 .r53-site[data-site-production-root] main .r74-article-navigation-link:last-child:nth-child(2) {
  grid-column: 1 / -1 !important;
  border-right: 0 !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r74-article-navigation-link small {
  grid-column: 1 !important;
  color: var(--r74-red) !important;
  font: 650 10px/1.3 var(--r53-sans) !important;
  letter-spacing: .13em !important;
  text-transform: uppercase !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r74-article-navigation-link strong {
  grid-column: 1 !important;
  min-width: 0 !important;
  color: var(--r74-ink) !important;
  font: 500 clamp(20px, 1.65vw, 25px)/1.18 var(--r53-serif) !important;
  overflow-wrap: normal !important;
  word-break: keep-all !important;
}

html body.gl-r53 .r53-site[data-site-production-root][data-r53-locale="zh"] main .r74-article-navigation-link strong {
  word-break: normal !important;
  overflow-wrap: anywhere !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r74-article-navigation-link .r67-inline-action-icon {
  grid-column: 2 !important;
  grid-row: 1 / span 2 !important;
  align-self: center !important;
  width: 18px !important;
  height: 18px !important;
  color: var(--r74-red) !important;
}

/* One action grammar: one label, one vector slot, one hit target. */
html body.gl-r53 .r53-site[data-site-production-root] :where(
  .r53-button,
  .r53-header-contact,
  .r54-integrated-inquiry-link,
  .r54-practice-inquiry-link,
  .r54-functional-contact-link
) {
  display: inline-grid !important;
  grid-auto-flow: column !important;
  grid-template-columns: minmax(0, auto) 18px !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px !important;
  min-height: 48px !important;
  padding: 11px 17px !important;
  text-decoration: none !important;
}

html body.gl-r53 .r53-site[data-site-production-root] :where(
  .r53-button,
  .r53-header-contact,
  .r53-arrow-link,
  .r53-contact-link,
  .r54-integrated-inquiry-link,
  .r54-practice-inquiry-link,
  .r54-person-profile-action,
  .r54-practice-directory-link,
  .r54-firm-story-pathway
)::after {
  display: none !important;
  content: none !important;
}

html body.gl-r53 .r53-site[data-site-production-root] :where(
  .r67-action-icon,
  .r63-relationship-arrow,
  .r54-person-profile-action em,
  .r54-practice-directory-action,
  .r54-firm-story-pathway-icon,
  .r67-office-fact-icon,
  .r67-profile-contact-icon
) {
  display: inline-grid !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  flex: 0 0 18px !important;
  place-items: center !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

html body.gl-r53 .r53-site[data-site-production-root] :where(
  .r67-action-icon,
  .r63-relationship-arrow,
  .r54-person-profile-action em,
  .r54-practice-directory-action,
  .r54-firm-story-pathway-icon,
  .r67-office-fact-icon,
  .r67-profile-contact-icon
) :where(svg, .r67-icon) {
  width: 18px !important;
  height: 18px !important;
}

/* Functional-route contact options use an icon + readable label. The generic
   action grammar must never collapse the label into its 18px icon column. */
html body.gl-r53 .r53-site[data-site-production-root].r60-functional main .r54-functional-contact-link {
  display: grid !important;
  grid-auto-flow: row !important;
  grid-template-columns: 24px minmax(0, 1fr) !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  padding: 16px 20px !important;
}

html body.gl-r53 .r53-site[data-site-production-root].r60-functional main .r54-functional-contact-link > span:last-child {
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  white-space: normal !important;
}

/* The authority chapter is an opaque wine panel. All of its copy owns a
   direct white-on-wine contrast contract rather than inheriting muted prose. */
html body.gl-r53 .r53-site[data-site-production-root].r60-about main .r54-content-firm-story.r54-standard-firm-story .r54-firm-story-group-authority :where(
  .r54-firm-story-group-heading h2,
  .r54-firm-story-entry,
  .r54-narrative-chapter-body,
  .r54-narrative-chapter-body p,
  strong,
  a
) {
  color: #fff !important;
  opacity: 1 !important;
}

html body.gl-r53 .r53-site[data-site-production-root].r60-about main .r54-content-firm-story.r54-standard-firm-story .r54-firm-story-group-authority :where(
  .r54-firm-story-group-grid,
  .r54-firm-story-entry
) {
  border-color: rgba(255, 255, 255, .34) !important;
}

/* Equal-card chapters cannot expose the grid's grey seam as a fake empty
   content block when one localized item is shorter than its siblings. */
html body.gl-r53 .r53-site[data-site-production-root].r60-about main .r54-content-firm-story.r54-standard-firm-story :where(
  .r54-firm-story-group-capabilities,
  .r54-firm-story-group-principles,
  .r54-firm-story-group-process
) > .r54-firm-story-group-grid {
  align-items: stretch !important;
}

html body.gl-r53 .r53-site[data-site-production-root].r60-about main .r54-content-firm-story.r54-standard-firm-story :where(
  .r54-firm-story-group-capabilities,
  .r54-firm-story-group-principles,
  .r54-firm-story-group-process
) > .r54-firm-story-group-grid > .r54-firm-story-entry {
  height: 100% !important;
  align-self: stretch !important;
  background: #fff !important;
}

/* The shell and every content family share the same vertical rhythm. */
html body.gl-r53 .r53-site[data-site-production-root] main :where(
  .r53-practices,
  .r53-counsel,
  .r53-process,
  .r53-contact,
  .r53-reading,
  .r53-related,
  .r53-facts,
  .r53-articles,
  .r53-faq,
  .r54-functional,
  .r58-media-library
) {
  padding-block: var(--r74-section) !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main :where(
  .r54-firm-story-group,
  .r54-narrative-chapter,
  .r54-counsel-chapter,
  .r54-testimonial-card,
  .r53-article-card,
  .r53-faq details,
  .r62-office-fact
) {
  min-height: 0 !important;
}

/* Interior heroes use one declared media/text geometry. */
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero .r54-route-hero-grid,
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r53-page-hero-has-media .r54-route-hero-grid {
  grid-template-columns: minmax(420px, 42%) minmax(0, 58%) !important;
  grid-template-rows: clamp(360px, 27vw, 420px) !important;
  width: 100% !important;
  max-width: none !important;
  height: clamp(360px, 27vw, 420px) !important;
  min-height: 0 !important;
  margin: 0 !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero .r54-route-hero-title {
  min-width: 0 !important;
  padding: 44px clamp(32px, 3.6vw, 52px) 44px max(var(--r74-edge), calc((100vw - var(--r74-shell)) / 2 + var(--r74-edge))) !important;
  text-align: left !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero h1 {
  width: 100% !important;
  max-width: 100% !important;
  margin: 12px 0 0 !important;
  text-align: left !important;
}

/* Equal-specificity terminal lock for the older R68 media-hero 12ch rule. */
html body.gl-r53 .r53-site[data-site-production-root].r60-surface main .r54-route-hero.r53-page-hero-has-media .r54-route-hero-title h1 {
  width: 100% !important;
  max-width: 100% !important;
}

html body.gl-r53 .r53-site[data-site-production-root].r60-home main .r54-selected-counsel-intro .r53-section-heading h2 {
  width: 100% !important;
  max-width: 100% !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero .r53-page-hero-media {
  padding: 0 !important;
  overflow: hidden !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero .r53-page-hero-media .r53-page-hero-image {
  display: block !important;
  width: 100% !important;
  min-width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: 50% 50% !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero:not(.r53-page-hero-has-media) .r54-route-hero-grid {
  grid-template-columns: 1fr !important;
  grid-template-rows: 220px !important;
  height: 220px !important;
}

/* About and practice content keep every source paragraph but remove nested
   gutters and card-like whitespace that made mobile text look squeezed. */
html body.gl-r53 .r53-site[data-site-production-root].r60-about main .r54-content-firm-story {
  padding: 0 0 var(--r74-section) !important;
}

html body.gl-r53 .r53-site[data-site-production-root].r60-about main .r54-firm-story-flow,
html body.gl-r53 .r53-site[data-site-production-root] main :where(
  .r54-editorial-narrative-grid,
  .r54-service-authority-grid,
  .r54-article-reading-grid,
  .r54-counsel-biography-grid,
  .r54-practice-directory-layout,
  .r53-faq-grid,
  .r53-office-record-grid,
  .r53-contact-grid,
  .r53-article-layout
) {
  width: min(calc(100% - (2 * var(--r74-edge))), var(--r74-shell)) !important;
  max-width: var(--r74-shell) !important;
  min-width: 0 !important;
  margin-inline: auto !important;
}

html body.gl-r53 .r53-site[data-site-production-root].r60-about main .r54-firm-story-group,
html body.gl-r53 .r53-site[data-site-production-root].r60-about main .r54-firm-story-group:nth-child(n) {
  padding-block: var(--r74-section-compact) !important;
}

html body.gl-r53 .r53-site[data-site-production-root].r60-about main .r54-firm-story-entry .r54-narrative-chapter-body,
html body.gl-r53 .r53-site[data-site-production-root] main .r54-content-practice .r54-narrative-chapter-body,
html body.gl-r53 .r53-site[data-site-production-root] main .r54-article-prose,
html body.gl-r53 .r53-site[data-site-production-root] main .r65-biography-copy {
  max-width: 68ch !important;
  font-size: var(--r74-body) !important;
  line-height: 1.72 !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main :where(
  .r54-content-practice .r54-narrative-chapter,
  .r54-editorial-narrative .r54-narrative-chapter,
  .r54-counsel-biography-copy .r54-counsel-chapter
) {
  grid-template-columns: minmax(260px, .34fr) minmax(0, .66fr) !important;
  gap: clamp(34px, 5vw, 72px) !important;
}

/* People, office, FAQ, article and form layouts use the same content axis. */
html body.gl-r53 .r53-site[data-site-production-root].r60-home main .r54-selected-counsel-copy {
  display: block !important;
  min-width: 0 !important;
}

html body.gl-r53 .r53-site[data-site-production-root].r60-home main .r54-selected-counsel-copy .r53-deck {
  max-width: 62ch !important;
  color: var(--r74-copy) !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r53-faq-grid {
  grid-template-columns: minmax(250px, .32fr) minmax(0, .68fr) !important;
  gap: clamp(36px, 5vw, 68px) !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r53-faq summary {
  min-height: 72px !important;
  padding: 18px 46px 18px 0 !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r53-faq details > div {
  max-width: 68ch !important;
  padding: 0 0 24px 24px !important;
}

html body.gl-r53 .r53-site[data-site-production-root].r60-contact main :where(
  .r53-office-record,
  .r54-contact-workflow
) {
  padding-block: var(--r74-section-compact) !important;
}

html body.gl-r53 .r53-site[data-site-production-root].r60-contact main .r54-contact-workflow-has-form .r53-contact-grid {
  grid-template-columns: minmax(300px, .36fr) minmax(0, .64fr) !important;
  gap: 0 !important;
  overflow: hidden !important;
  border: 1px solid var(--r74-line) !important;
  background: #fff !important;
}

html body.gl-r53 .r53-site[data-site-production-root].r60-contact main .r54-contact-workflow-has-form :where(
  .r53-contact-copy,
  .r53-form-shell
) {
  min-width: 0 !important;
  padding: clamp(32px, 4vw, 52px) !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r53-article-card {
  grid-template-columns: minmax(240px, 310px) minmax(0, 1fr) !important;
  gap: clamp(24px, 4vw, 52px) !important;
  padding: 32px 0 !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r53-article-card-no-media {
  grid-template-columns: minmax(0, 1fr) !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r53-article-card h2 a {
  overflow-wrap: normal !important;
  word-break: keep-all !important;
}

/* Native media is one player plus one title above it; controls never alter the
   surrounding component's declared width or create a second caption rail. */
html body.gl-r53 .r53-site[data-site-production-root] main .r67-self-hosted-video {
  display: grid !important;
  grid-template-rows: auto auto !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  border: 1px solid var(--r74-line) !important;
  background: #fff !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r67-self-hosted-video figcaption {
  order: 0 !important;
  min-height: 0 !important;
  padding: 20px 22px !important;
  border-bottom: 1px solid var(--r74-line) !important;
  background: #fff !important;
  color: var(--r74-ink) !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r67-self-hosted-video video {
  order: 1 !important;
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 9 !important;
  margin: 0 !important;
  border: 0 !important;
  background: #080608 !important;
  object-fit: contain !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r54-source-videos {
  background: transparent !important;
  color: var(--r74-ink) !important;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r54-source-videos .r53-eyebrow {
  color: var(--r74-red) !important;
}

html body.gl-r53 .r53-site[data-site-production-root] .r53-footer :where(p, a, li) {
  color: #d9d2cf !important;
}

html body.gl-r53 .r53-site[data-site-production-root] .r53-footer :where(strong, h2) {
  color: #fff !important;
}

html body.gl-r53 .r53-site[data-site-production-root] .r66-footer-contact-rule {
  min-width: min(100%, 280px) !important;
  padding-bottom: 10px !important;
  border-bottom: 1px solid rgba(255,255,255,.72) !important;
}

/* Tablet is its own composition, not a squeezed desktop. Give route titles a
   real reading column and let editorial cards use the full shell until the
   two-column publication grid has enough room for image and headline. */
@media (min-width: 821px) and (max-width: 1180px) {
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero .r54-route-hero-grid,
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r53-page-hero-has-media .r54-route-hero-grid {
    grid-template-columns: minmax(430px, 44%) minmax(0, 56%) !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero .r54-route-hero-title {
    padding-right: 34px !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero .r54-route-hero-title h1,
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r53-page-hero-has-media .r54-route-hero-title h1 {
    width: 100% !important;
    max-width: 100% !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-home main .r54-selected-counsel-intro .r53-section-heading {
    grid-template-columns: minmax(270px, .42fr) minmax(0, .58fr) !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-home main .r54-selected-counsel-intro .r53-section-heading h2 {
    width: 100% !important;
    max-width: 100% !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive main .r53-article-layout {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive main .r53-article-card,
  html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive main .r53-article-card:nth-child(n) {
    grid-template-columns: minmax(240px, 310px) minmax(0, 1fr) !important;
    border-right: 0 !important;
  }
}

@media (max-width: 980px) {
  html body.gl-r53 .r53-site[data-site-production-root] main :where(
    .r54-content-practice .r54-narrative-chapter,
    .r54-editorial-narrative .r54-narrative-chapter,
    .r54-counsel-biography-copy .r54-counsel-chapter,
    .r54-practice-directory-layout,
    .r53-faq-grid,
    .r53-office-record-grid,
    .r53-contact-grid
  ) {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 820px) {
  :root {
    --r74-edge: clamp(20px, 6.15vw, 24px);
    --r74-section: clamp(48px, 13vw, 56px);
    --r74-section-compact: clamp(40px, 11vw, 48px);
    --r74-display: clamp(37px, 10.2vw, 44px);
    --r74-title: clamp(32px, 8.7vw, 38px);
    --r74-subtitle: clamp(24px, 6.7vw, 28px);
  }

  html body.gl-r53 .r53-site[data-site-production-root] .r53-header-grid {
    width: min(calc(100% - (2 * var(--r74-edge))), var(--r74-shell)) !important;
    min-height: 70px !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] .r53-menu-panel {
    width: min(340px, calc(100vw - (2 * var(--r74-edge)))) !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero .r54-route-hero-grid,
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r53-page-hero-has-media .r54-route-hero-grid {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto minmax(210px, 56vw) !important;
    height: auto !important;
    min-height: 0 !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero .r54-route-hero-title,
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r53-page-hero-has-media .r54-route-hero-title {
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-height: 182px !important;
    padding: 34px var(--r74-edge) !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero .r54-route-hero-title h1,
  html body.gl-r53 .r53-site[data-site-production-root].r60-home main .r54-selected-counsel-intro .r53-section-heading h2 {
    width: 100% !important;
    max-width: 100% !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-home main .r54-selected-counsel-intro .r53-section-heading {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero .r53-page-hero-media {
    grid-column: 1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    align-self: stretch !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero .r53-page-hero-media .r53-page-hero-image {
    display: block !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: 50% 50% !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero:not(.r53-page-hero-has-media) .r54-route-hero-grid {
    grid-template-rows: 184px !important;
    height: 184px !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r53-profile-hero {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    min-height: 0 !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r53-profile-hero .r53-profile-hero-copy {
    width: min(100%, var(--r74-shell)) !important;
    min-width: 0 !important;
    margin-inline: auto !important;
    padding: 24px var(--r74-edge) !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 14px !important;
    align-content: center !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r53-profile-hero .r53-profile-hero-copy > * {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r53-profile-hero .r53-profile-hero-copy :where(
    .r53-eyebrow,
    h1,
    .r53-profile-role,
    .r67-profile-hero-statement,
    .r53-profile-action
  ) {
    margin-block: 0 !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r53-profile-hero .r53-profile-hero-copy .r53-profile-action {
    margin-top: 4px !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r53-profile-hero .r53-profile-hero-media {
    width: 100% !important;
    height: clamp(280px, 82vw, 320px) !important;
    min-height: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r53-profile-hero .r53-profile-hero-media .r53-profile-image {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
    object-position: 50% 18% !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-george main .r53-counsel-record {
    padding-top: 24px !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero h1,
  html body.gl-r53 .r53-site[data-site-production-root].r60-contact main .r54-route-hero h1,
  html body.gl-r53 .r53-site[data-site-production-root] main .r53-profile-hero h1,
  html body.gl-r53 .r53-site[data-site-production-root] main .r53-article-hero h1 {
    font-size: var(--r74-display) !important;
    line-height: 1.02 !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-home main :where(
    .r54-home-authority-stage,
    .r54-home-authority-inner
  ) {
    height: clamp(540px, 66svh, 590px) !important;
    min-height: clamp(540px, 66svh, 590px) !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-home main .r54-home-authority-copy h1 {
    max-width: 15ch !important;
    font-size: clamp(38px, 10.5vw, 43px) !important;
    line-height: 1.04 !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main :where(
    .r54-selected-counsel-intro,
    .r54-selected-counsel-intro .r53-section-heading,
    .r54-selected-counsel-grid,
    .r54-selected-counsel-stage,
    .r54-original-process-grid,
    .r54-firm-people-stage,
    .r54-editorial-narrative-grid,
    .r54-service-authority-grid,
    .r54-counsel-biography-grid,
    .r54-practice-directory-layout,
    .r53-faq-grid,
    .r53-office-record-grid,
    .r53-contact-grid,
    .r54-testimonial-grid
  ) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-about main :where(
    .r54-firm-story-group-grid,
    .r54-firm-story-entry,
    .r54-firm-story-group-proof,
    .r54-firm-story-group-authority
  ) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-about main .r54-firm-story-entry,
  html body.gl-r53 .r53-site[data-site-production-root].r60-about main .r54-firm-story-entry:nth-child(n) {
    padding: 24px 0 !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-about main :where(
    .r54-firm-story-group-capabilities,
    .r54-firm-story-group-principles,
    .r54-firm-story-group-process,
    .r54-firm-story-group-pathways
  ) .r54-firm-story-group-grid {
    gap: 0 !important;
    border-width: 1px 0 0 !important;
    background: transparent !important;
  }

  /* Earlier production layers used a three-card pathways row. This terminal
     selector carries the complete component ancestry so that the mobile
     single-column decision wins the important-cascade on every locale. */
  html body.gl-r53 .r53-site[data-site-production-root].r60-about main .r54-content-firm-story.r54-standard-firm-story :where(
    .r54-firm-story-group-capabilities,
    .r54-firm-story-group-principles,
    .r54-firm-story-group-process,
    .r54-firm-story-group-pathways
  ) > .r54-firm-story-group-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto !important;
    overflow: visible !important;
    scroll-snap-type: none !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-home main .r54-home-authority-copy .r53-hero-deck,
  html body.gl-r53 .r53-site[data-site-production-root].r60-home main .r53-section-heading .r53-deck,
  html body.gl-r53 .r53-site[data-site-production-root] main .r67-forminator-preview .r67-form-privacy-notice {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-home main .r54-home-authority-copy,
  html body.gl-r53 .r53-site[data-site-production-root] main .r67-forminator-preview {
    min-width: 0 !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r67-forminator-preview > * {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r54-content-practice .r54-narrative-chapter,
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-editorial-narrative .r54-narrative-chapter,
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-counsel-biography-copy .r54-counsel-chapter {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 20px !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-home main .r54-selected-counsel-copy {
    display: block !important;
    margin-bottom: 24px !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-home main .r54-selected-counsel-stage {
    width: min(100%, 520px) !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-home main :where(
    .r54-selected-person,
    .r54-selected-person-associate
  ) {
    grid-template-rows: auto auto !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r74-article-navigation-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r74-article-navigation-link,
  html body.gl-r53 .r53-site[data-site-production-root] main .r74-article-navigation-link:nth-child(n) {
    grid-column: 1 !important;
    min-height: 104px !important;
    padding: 21px 0 !important;
    border-right: 0 !important;
  }

  /* The practice rail is the single deliberate horizontal interaction. All
     prose/testimonial/person/card reading surfaces stack and remain visible. */
  html body.gl-r53 .r53-site[data-site-production-root].r60-home main .r54-practice-grid {
    display: grid !important;
    grid-auto-flow: column !important;
    grid-auto-columns: min(82vw, 318px) !important;
    grid-template-columns: none !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline mandatory;
    scroll-padding-inline: 0;
    padding: 0 0 16px !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-home main .r54-practice-card {
    min-width: 0 !important;
    scroll-snap-align: start;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-home main .r54-original-home-link-grid,
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-testimonial-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 18px !important;
    overflow: visible !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r53-article-card,
  html body.gl-r53 .r53-site[data-site-production-root] main .r53-article-card-no-media {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 20px !important;
    padding: 28px 0 !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r53-article-card :where(
    .r53-article-card-media,
    .r53-article-card-copy
  ) {
    grid-column: 1 !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r53-faq-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 28px !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r53-faq summary {
    min-height: 68px !important;
    padding: 17px 40px 17px 0 !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r53-faq details > div {
    padding-left: 0 !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-contact main .r54-contact-workflow-has-form .r53-contact-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-contact main .r53-office-record-grid:not(:has(.r53-office-record-media)) .r53-office-record-copy {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-contact main .r54-contact-workflow-has-form :where(
    .r53-contact-copy,
    .r53-form-shell
  ) {
    min-height: 0 !important;
    padding: 28px 22px !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] main .r67-self-hosted-video figcaption {
    padding: 17px 18px !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] .r53-footer-top,
  html body.gl-r53 .r53-site[data-site-production-root] .r53-footer-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 18px !important;
  }
}

@media (max-width: 360px) {
  :root { --r74-edge: 20px; }

  html body.gl-r53 .r53-site[data-site-production-root] .r53-brand strong {
    font-size: 16px !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-practice-detail main .r54-route-hero h1,
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero h1 {
    font-size: 35px !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-contact main .r54-contact-workflow-has-form :where(
    .r53-contact-copy,
    .r53-form-shell
  ) {
    padding-inline: 20px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html body.gl-r53 .r53-site[data-site-production-root] * {
    scroll-behavior: auto !important;
  }
}
