/* R87 selected Option 2.1 — interactive navigation, shared purpose heroes and
   semantic type geometry. This terminal layer intentionally overrides the
   inherited page-local Elementor/CSS drift without rewriting source content. */
:root {
  --r87-shell: 1760px;
  --r87-gutter: clamp(24px, 4.4vw, 84px);
  --r87-header: 112px;
  --r87-cue: 40px;
  --r87-hero: 620px;
  --r87-route-hero: 520px;
  --r87-red: #981522;
  --r87-deep: #170d10;
  --r87-wine: #5d0713;
  --r87-paper: #fff;
  --r87-warm: #f5f1eb;
  --r87-line: #d9d1ca;
  --r87-muted: #5e5759;
}

html { scroll-padding-top: calc(var(--r87-header) + var(--r87-cue) + 20px); }
.r53-shell { width: min(calc(100% - (2 * var(--r87-gutter))), var(--r87-shell)); }
.r53-site { background: var(--r87-paper); }

/* The navigation now reads as a set of controls rather than fine-print copy. */
.r53-header,
.r53-header-grid { min-height: var(--r87-header); }
.r53-header { position: relative; border-bottom: 0; box-shadow: 0 1px 0 rgba(23,13,16,.1); }
.r53-header-grid { grid-template-columns: minmax(310px, 340px) minmax(510px, 1fr) auto auto auto; gap: clamp(12px, 1.1vw, 22px); }
.r53-brand { gap: 16px; }
.r53-brand .r53-logo { width: 68px; height: 68px; }
.r53-brand strong { font-size: clamp(23px, 1.48vw, 29px); line-height: 1.02; }
.r53-brand small { font-size: 11px; letter-spacing: .17em; }
.r53-desktop-nav ul { gap: clamp(4px, .45vw, 9px); }
.r53-desktop-nav a {
  position: relative;
  min-height: 52px;
  padding: 0 9px;
  border-radius: 2px;
  font-size: clamp(16px, .98vw, 18px);
  font-weight: 650;
  letter-spacing: -.015em;
  transition: color 180ms ease, background-color 180ms ease, transform 180ms ease;
}
.r53-desktop-nav a::after {
  content: "";
  position: absolute;
  left: 9px;
  right: 9px;
  bottom: 5px;
  height: 2px;
  background: var(--r87-red);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 180ms ease;
}
.r53-desktop-nav a:is(:hover,:focus-visible),
.r53-desktop-nav a[aria-current="page"] { color: var(--r87-red); background: #fbf5f4; }
.r53-desktop-nav a:is(:hover,:focus-visible) { transform: translateY(-1px); }
.r53-desktop-nav a:is(:hover,:focus-visible)::after,
.r53-desktop-nav a[aria-current="page"]::after { transform: scaleX(1); }
.r53-languages a { min-height: 48px; padding: 0 8px; font-size: 16px; font-weight: 700; }
.r84-header-phone { min-height: 48px; padding: 0 8px; font-size: 15px; }
.r84-header-phone .r84-icon { width: 20px; height: 20px; }
.r53-header-contact { min-height: 56px; min-width: 154px; padding-inline: 20px; font-size: 16px; }

.r87-nav-discovery {
  height: var(--r87-cue);
  color: #fff;
  background: var(--r87-deep);
  overflow: hidden;
  opacity: 1;
  visibility: visible;
  transition: opacity 180ms ease, visibility 180ms ease;
}
.r87-nav-discovery .r53-shell {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font: 700 13px/1.2 var(--r54-sans, sans-serif);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.r87-nav-discovery .r84-icon { width: 18px; height: 18px; color: #e9b0b6; }
.r87-nav-discovery.is-dismissed { opacity: 0; visibility: hidden; }

/* Home: fixed visual canvas, stronger hierarchy, no geometry jump. */
.r54-home-authority-stage { min-height: var(--r87-hero); }
.r54-home-authority-inner { min-height: var(--r87-hero); }
.r54-home-authority-copy { width: min(780px, 56%); padding-block: 76px; }
.r54-home-authority h1 {
  max-width: 11ch;
  font-size: clamp(64px, 6vw, 106px);
  line-height: .91;
  letter-spacing: -.052em;
  text-wrap: balance;
}
.r79-home-audience-line { max-width: 32ch; font-size: clamp(25px, 2vw, 37px); line-height: 1.18; }
.r61-home-service-summary { max-width: 48ch; font-size: clamp(18px, 1.18vw, 21px); }
.r84-home-trust-proof { margin-top: 22px; color: #f5e9e9; }
.r53-hero-actions { margin-top: 26px; }
.r53-hero-actions :is(.r53-button,.r53-arrow-link) { min-height: 56px; font-size: 16px; }

/* Shared purpose-led hero. The title, supporting copy and image sit around the
   optical center rather than being pinned to unrelated page edges. */
.r87-purpose-hero .r54-route-hero-grid {
  min-height: var(--r87-route-hero);
  grid-template-columns: minmax(330px, .9fr) minmax(280px, .62fr) minmax(430px, 1.15fr);
  gap: clamp(30px, 3.1vw, 62px);
  align-items: center;
}
.r87-purpose-hero:not(.r53-page-hero-has-media) .r54-route-hero-grid {
  grid-template-columns: minmax(400px, 1.15fr) minmax(320px, .85fr);
}
.r87-purpose-hero .r54-route-hero-title { align-self: center; }
.r87-purpose-hero h1 {
  max-width: 13ch;
  margin: 18px 0 0;
  font-size: clamp(50px, 4.4vw, 80px);
  line-height: .97;
  letter-spacing: -.044em;
  text-wrap: balance;
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r53-page-side {
  /* R70 hid every no-media route support block. The current purpose-led hero
     requires its localized explanation and next-step control at every width. */
  display: flex !important;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 26px;
  max-width: 50ch;
  margin: 0;
}
/* Retire the pre-SITE R60 overlay geometry. Purpose heroes use the shared grid;
   route-local absolute positioning is what previously pushed About actions over
   the photograph and made the supporting copy disappear at intermediate widths. */
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r54-route-hero-title,
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r53-page-side {
  position: static !important;
  inset: auto !important;
  width: auto !important;
  transform: none !important;
  text-align: left !important;
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r54-route-hero-title {
  justify-items: start !important;
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r54-route-hero-title .r53-eyebrow {
  justify-content: flex-start !important;
}
.r87-purpose-hero .r53-page-side p { margin: 0; font-size: clamp(18px, 1.18vw, 21px); line-height: 1.58; }
.r54-firm-counsel-deck { text-wrap: balance; }
@media (min-width: 721px) {
  /* R87.17: each localized counsel statement is an authored semantic clause.
     At intermediate widths it may move as a unit, but must never leave the
     final noun or punctuation orphaned on a separate line. */
  .r54-firm-counsel-deck .r87-semantic-unit {
    display: inline-block;
    white-space: nowrap;
  }
}
.r87-route-hero-action { min-width: 210px; min-height: 54px; justify-content: space-between; gap: 24px; }
.r87-route-hero-action .r84-icon { width: 20px; height: 20px; }
.r87-purpose-hero .r53-page-hero-media { align-self: stretch; min-height: 0; height: var(--r87-route-hero); }
.r87-purpose-hero .r53-page-hero-image { width: 100%; height: 100%; object-fit: cover; object-position: var(--r54-media-focus, 50% 50%); }

/* R87.14: the historical Our Firm layer leaves its supporting copy transparent
   and light after R87 restores normal grid flow. On desktop that placed pale
   copy on the white page beneath the oxblood title panel. Keep the left hero
   rail visually continuous and preserve full contrast across EN/KO/ZH. */
@media (min-width: 1180px) {
  html body.gl-r53 .r53-site.r60-firm[data-site-production-root] main
  .r87-purpose-hero-counsel.r53-page-hero-has-media .r53-page-side {
    max-width: none !important;
    padding: 0 clamp(40px, 4.6vw, 68px) clamp(48px, 4.6vw, 68px) !important;
    color: #f7ecec !important;
    background: #97141c !important;
  }
  html body.gl-r53 .r53-site.r60-firm[data-site-production-root] main
  .r87-purpose-hero-counsel.r53-page-hero-has-media .r53-page-side p {
    color: #f7ecec !important;
  }
}
.r60-contact .r87-purpose-hero.r54-route-hero-contact-office .r53-page-hero-media {
  height: auto;
  aspect-ratio: 3 / 2;
  align-self: center;
  background: var(--r87-warm);
}
.r60-contact .r87-purpose-hero.r54-route-hero-contact-office .r53-page-hero-image[src*="office-restored.webp"] {
  object-fit: contain !important;
  background: var(--r87-warm);
}

/* Principle remains alive but is a compact, stable trust statement. */
html body.gl-r53 .r53-site.r60-home[data-site-production-root] main .r61-home-principle {
  min-height: 390px;
  color: #fff !important;
  background: linear-gradient(115deg, #37070d, #74101c 62%, #3a080e) !important;
}
html body.gl-r53 .r53-site.r60-home[data-site-production-root] main .r61-home-principle .r61-home-principle-title { color: #f7e9ea !important; }
.r61-home-principle-grid { grid-template-columns: minmax(190px, .32fr) minmax(0, 1.68fr); gap: clamp(34px, 5vw, 92px); }
.r61-home-principle-quote { border-left-color: #f1d3d6; }
.r83-principle-copy-frame { min-height: 3.15em; }
.r82-principle-visible { font-size: clamp(36px, 3.45vw, 62px); color: #fff; }
.r82-principle-visible .r84-principle-clause { color: #f4dfe1; opacity: .66; }
.r82-principle-visible .r84-principle-clause.is-emphasized { color: #fff; opacity: 1; text-shadow: 0 0 24px rgba(255,255,255,.13); }

/* One interactive card language. Icon and action contrast follows state. */
.r54-practice-directory-list { border-color: var(--r87-line); }
.r54-practice-directory-link {
  min-height: 132px;
  padding: 24px clamp(22px, 2vw, 36px);
  transition: color 180ms ease, background-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}
.r54-practice-directory-link:hover,
.r54-practice-directory-link:focus-visible { color: #fff !important; background: var(--r87-red); transform: translateY(-2px); box-shadow: 0 16px 34px rgba(71,7,16,.18); }
.r54-practice-directory-link:hover :is(.r78-practice-symbol,.r54-practice-directory-action),
.r54-practice-directory-link:focus-visible :is(.r78-practice-symbol,.r54-practice-directory-action) { color: #fff !important; }
.r54-practice-directory-link:hover .r54-practice-directory-action,
.r54-practice-directory-link:focus-visible .r54-practice-directory-action { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.7); }
.r54-practice-directory-link strong { font-size: clamp(25px, 1.8vw, 34px); line-height: 1.1; text-wrap: balance; }
.r54-practice-directory-link small { max-width: 48ch; font-size: 15px; line-height: 1.5; }

/* Counsel images are equal, neutral and complete; no identity-changing crop. */
.r54-content-editorial.r54-standard-firm-people .r54-firm-counsel-intro { max-width: 900px; margin-inline: auto; text-align: center; }
.r54-content-editorial.r54-standard-firm-people .r54-firm-counsel-intro h2 { font-size: clamp(44px, 4.5vw, 72px); }
.r54-content-editorial.r54-standard-firm-people .r54-firm-counsel-deck { max-width: 54ch; margin-inline: auto; font-size: clamp(18px, 1.35vw, 22px); }
.r54-content-editorial.r54-standard-firm-people .r54-firm-people-stage { max-width: 1480px; margin-inline: auto; gap: 28px; }
.r54-content-editorial.r54-standard-firm-people .r54-firm-people-stage figure { height: auto !important; aspect-ratio: 4 / 5; background: #fff !important; }
.r54-content-editorial.r54-standard-firm-people .r54-firm-person-image { width: 100%; height: 100%; object-fit: contain !important; object-position: 50% 50% !important; background: #fff !important; }
.r54-content-editorial.r54-standard-firm-people .r54-firm-people-stage > a { background: #fff; transition: transform 180ms ease, box-shadow 180ms ease; }

/* Readability and spacing: no text pressed against a full-bleed boundary. */
.r53-reading .r53-prose,
.r54-content-editorial .r53-prose,
.r54-content-practice .r53-prose { font-size: clamp(18px, 1.16vw, 21px); line-height: 1.72; }
.r53-article-card-copy h2 { font-size: clamp(27px, 2vw, 38px); line-height: 1.13; }
.r53-article-card-copy > p:not(.r53-article-meta) { font-size: 17px; line-height: 1.62; }
.r53-faq-list summary strong { max-width: 52ch; }

.r115-faq-section {
  margin: clamp(36px, 5vw, 62px) 0 10px;
  color: var(--r53-oxblood);
  font: 700 clamp(13px, 1vw, 15px)/1.3 var(--r53-sans);
  letter-spacing: .11em;
  text-transform: uppercase;
  text-wrap: balance;
}
.r115-faq-section:first-child { margin-top: 0; }
@media (max-width: 620px) {
  .r115-faq-section { margin-top: 34px; letter-spacing: .08em; }
}
.r53-footer { color: #f5f0f1; background: var(--r87-deep); }
.r53-footer a { color: #fff; }

/* Anchor targets remain visible below the sticky shell. */
#r87-primary-content,
#r87-practice-directory,
#r87-resource-list,
#r87-faq-list,
#r87-testimonials-list,
#r53-contact-coordinates { scroll-margin-top: calc(var(--r87-header) + var(--r87-cue) + 20px); }

@media (min-width: 1600px) {
  html body.gl-r53 .r53-site[data-site-production-root] > .r53-header .r53-header-grid {
    grid-template-columns: minmax(360px, 390px) minmax(650px, 1fr) auto auto auto !important;
    gap: clamp(14px, 1vw, 22px) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] > .r53-header .r53-desktop-nav a { font-size: 18px !important; padding-inline: 9px !important; }
}

@media (min-width: 1180px) and (max-width: 1599px) {
  html body.gl-r53 .r53-site[data-site-production-root] > .r53-header .r53-header-grid {
    grid-template-columns: minmax(300px, 320px) minmax(500px, 1fr) auto auto auto !important;
    gap: 8px !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] > .r53-header .r53-desktop-nav ul { gap: 2px !important; }
  html body.gl-r53 .r53-site[data-site-production-root] > .r53-header .r53-desktop-nav a { font-size: 15.5px !important; padding-inline: 6px !important; }
  .r84-header-phone-label { display: none; }
  .r84-header-phone { width: 48px; justify-content: center; }
  .r53-header-contact { min-width: 134px; padding-inline: 14px; }
}

@media (max-width: 1179px) {
  :root { --r87-header: 88px; --r87-cue: 42px; --r87-route-hero: auto; }
  .r53-header, .r53-header-grid { min-height: var(--r87-header); }
  .r53-menu summary { min-width: 104px; min-height: 50px; padding: 0 14px; border: 1px solid var(--r87-line); background: #fff; font-weight: 750; }
  .r53-menu[open] summary { color: #fff; background: var(--r87-red); border-color: var(--r87-red); }
  .r53-menu-panel a { min-height: 54px; font-size: 18px; }
  .r87-purpose-hero .r54-route-hero-grid,
  .r87-purpose-hero:not(.r53-page-hero-has-media) .r54-route-hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(280px, .72fr);
    min-height: 470px;
  }
  .r87-purpose-hero .r53-page-hero-media { grid-column: 1 / -1; height: auto; max-height: 520px; aspect-ratio: 16 / 9; }
  .r87-purpose-hero h1 { font-size: clamp(48px, 7vw, 68px); }
}

/* R87.5 intermediate integrity lock. Older route layers carry high-specificity
   980px rules, so the shared purpose hero must explicitly own its tablet and
   200%-zoom composition instead of allowing the title column to collapse. */
@media (min-width: 721px) and (max-width: 1179px) {
  html body.gl-r53 .r53-site[data-site-production-root] main .r87-purpose-hero.r53-page-hero-has-media .r54-route-hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(280px, .72fr) !important;
    grid-template-rows: auto minmax(260px, 520px) !important;
    gap: 0 clamp(28px, 4vw, 42px) !important;
    min-height: 470px !important;
    height: auto !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r87-purpose-hero.r53-page-hero-has-media .r54-route-hero-title {
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    padding: clamp(48px, 6vw, 64px) 0 clamp(42px, 5vw, 56px) var(--r87-gutter) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r87-purpose-hero.r53-page-hero-has-media .r53-page-side {
    grid-column: 2 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    padding: clamp(48px, 6vw, 64px) var(--r87-gutter) clamp(42px, 5vw, 56px) 0 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r87-purpose-hero.r53-page-hero-has-media .r53-page-hero-media {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    height: auto !important;
    min-height: 260px !important;
    max-height: 520px !important;
    aspect-ratio: 16 / 9 !important;
    margin: 0 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r87-purpose-hero:not(.r53-page-hero-has-media) .r54-route-hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(280px, .72fr) !important;
    grid-template-rows: auto !important;
    gap: clamp(28px, 4vw, 42px) !important;
    min-height: 420px !important;
    height: auto !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r87-purpose-hero:not(.r53-page-hero-has-media) .r54-route-hero-title {
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    padding: clamp(48px, 6vw, 64px) 0 clamp(42px, 5vw, 56px) var(--r87-gutter) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r87-purpose-hero:not(.r53-page-hero-has-media) .r53-page-side {
    grid-column: 2 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    padding: clamp(48px, 6vw, 64px) var(--r87-gutter) clamp(42px, 5vw, 56px) 0 !important;
  }
}

@media (max-width: 720px) {
  :root { --r87-header: 76px; --r87-cue: 38px; --r87-gutter: 20px; --r87-hero: 610px; }
  html { scroll-padding-top: calc(var(--r87-header) + var(--r87-cue) + 12px); }
  .r53-brand .r53-logo { width: 46px; height: 46px; }
  .r53-brand strong { font-size: 17px; }
  .r87-nav-discovery .r53-shell { justify-content: flex-start; font-size: 10px; letter-spacing: .06em; white-space: nowrap; }
  .r54-home-authority-inner { min-height: var(--r87-hero); align-items: center; }
  .r54-home-authority-copy { width: 100%; padding-block: 56px; }
  .r54-home-authority h1 { max-width: 10.6ch; font-size: clamp(48px, 13vw, 62px); line-height: .94; }
  .r79-home-audience-line { max-width: 28ch; font-size: clamp(22px, 6.8vw, 28px); }
  .r84-home-trust-proof { font-size: 12px; letter-spacing: .06em; }
  .r87-purpose-hero .r54-route-hero-grid,
  .r87-purpose-hero:not(.r53-page-hero-has-media) .r54-route-hero-grid {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    grid-auto-flow: row;
    gap: 28px;
    min-height: 0;
    padding-block: 52px;
  }
  /* R87.12: older route CSS assigns support/media to the same implicit row at
     phone and 200%-zoom widths. Own every child row explicitly so the CTA is
     always in normal flow between the purpose copy and the photograph. */
  html body.gl-r53 .r53-site[data-site-production-root] main .r87-purpose-hero .r54-route-hero-title {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r87-purpose-hero .r53-page-side {
    grid-column: 1 !important;
    grid-row: 2 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero.r53-page-hero-has-media .r54-route-hero-grid > figure.r53-page-hero-media[data-r78-hero-media-slot] {
    grid-column: 1 !important;
    grid-row: 3 !important;
  }
  .r87-purpose-hero h1 { max-width: 12ch; margin-top: 12px; font-size: clamp(42px, 11.5vw, 56px); line-height: .98; }
  .r87-purpose-hero .r53-page-side { gap: 20px; max-width: 38ch; }
  .r87-purpose-hero .r53-page-side p { font-size: 17px; line-height: 1.55; }
  .r87-route-hero-action { width: 100%; min-width: 0; }
  .r87-purpose-hero .r53-page-hero-media { grid-column: 1; width: 100%; max-height: none; aspect-ratio: 3 / 2; margin-top: 4px; }
  .r61-home-principle { min-height: 470px; }
  .r61-home-principle-grid { grid-template-columns: 1fr; gap: 26px; }
  .r83-principle-copy-frame { min-height: 6.5em; }
  .r82-principle-visible { font-size: clamp(31px, 8.8vw, 43px); }
  .r54-practice-directory-link { min-height: 112px; padding: 20px; grid-template-columns: 48px minmax(0,1fr) 44px; gap: 14px; }
  .r78-practice-symbol { width: 28px; height: 28px; }
  .r54-practice-directory-link strong { font-size: clamp(22px, 6.3vw, 28px); }
  .r54-content-editorial.r54-standard-firm-people .r54-firm-people-stage { gap: 20px; }
  .r54-content-editorial.r54-standard-firm-people .r54-firm-people-stage figure { aspect-ratio: 4 / 5 !important; }
  .r53-article-card-copy h2 { font-size: 28px; }

  /* R87.3: inherited edge-bleed grids must never clip cards or copy on phones. */
  .r58-media-library-grid {
    width: 100% !important;
    margin-inline: 0 !important;
    padding-inline: 0 !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .r60-article-archive .r53-article-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .r60-article-archive .r53-article-card-media,
  .r60-article-archive .r53-article-card-copy {
    grid-column: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  .r60-article-archive .r53-article-card-image { width: 100% !important; max-width: 100% !important; }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-faq-source-fallback p,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-faq-source-fallback p > strong {
    max-width: 100% !important;
    white-space: normal !important;
    word-break: break-all !important;
    overflow-wrap: anywhere !important;
  }
  #r87-primary-content,
  #r87-practice-directory,
  #r87-resource-list,
  #r87-faq-list,
  #r87-testimonials-list,
  #r53-contact-coordinates { scroll-margin-top: calc(var(--r87-header) + var(--r87-cue) + 12px); }
}

/* R87.20 cross-section axis correction.
   The hero and the first editorial section must read as one page, not as two
   unrelated templates.  The counsel introduction therefore uses the same
   centred shell and left optical axis as the hero while retaining a deliberate
   editorial split on larger screens. */
html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people .r54-firm-counsel-intro {
  box-sizing: border-box !important;
  width: min(100%, 1120px) !important;
  max-width: 1120px !important;
  margin: 0 auto !important;
  padding: clamp(54px, 6vw, 82px) 0 clamp(34px, 4vw, 52px) !important;
  display: grid !important;
  grid-template-columns: minmax(250px, .38fr) minmax(0, .62fr) !important;
  grid-template-rows: auto auto !important;
  gap: 12px clamp(48px, 6vw, 88px) !important;
  align-items: end !important;
  justify-items: start !important;
  text-align: left !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people .r54-firm-counsel-eyebrow {
  grid-column: 1 !important;
  grid-row: 1 !important;
  width: auto !important;
  margin: 0 !important;
  color: var(--r87-red) !important;
  font-family: var(--r53-sans) !important;
  font-size: 11px !important;
  font-weight: 750 !important;
  line-height: 1.25 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people .r54-firm-counsel-intro h2 {
  grid-column: 1 !important;
  grid-row: 2 !important;
  max-width: 11ch !important;
  margin: 0 !important;
  font-size: clamp(44px, 4.2vw, 66px) !important;
  line-height: 1.02 !important;
  letter-spacing: -.035em !important;
  text-align: left !important;
  text-wrap: balance !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people .r54-firm-counsel-deck {
  grid-column: 2 !important;
  grid-row: 1 / span 2 !important;
  align-self: end !important;
  width: 100% !important;
  max-width: 54ch !important;
  margin: 0 !important;
  color: var(--r53-muted) !important;
  font-family: var(--r53-sans) !important;
  font-size: clamp(18px, 1.35vw, 22px) !important;
  line-height: 1.55 !important;
  text-align: left !important;
  text-wrap: pretty !important;
}
html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-deck .r87-semantic-unit,
html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-deck .r87-semantic-unit {
  display: inline !important;
  white-space: normal !important;
}

/* Blog archive is part of the same oxblood visual family.  Its previous
   no-media fallback was near-black and made the archive look like a separate
   site.  The first story leads the hierarchy; remaining cards stay scannable. */
html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r54-route-hero.r87-purpose-hero,
html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) {
  background: linear-gradient(118deg, #3f0811 0%, #72101e 58%, #4c0814 100%) !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r54-route-hero-grid::before {
  background: linear-gradient(112deg, rgba(47,6,14,.98) 0%, rgba(116,14,31,.86) 64%, rgba(64,7,18,.96) 100%) !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-layout {
  gap: 2px !important;
  background: var(--r87-line) !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card-copy h2,
html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card-copy h2 a {
  font-size: clamp(30px, 2.2vw, 42px) !important;
  line-height: 1.1 !important;
  letter-spacing: -.025em !important;
  text-wrap: balance !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card-copy > p:not(.r53-article-meta) {
  max-width: 58ch !important;
  color: #4e4648 !important;
  font-size: clamp(17px, 1.05vw, 19px) !important;
  line-height: 1.66 !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card:first-child {
  grid-column: 1 / -1 !important;
  grid-template-columns: minmax(320px, .42fr) minmax(0, .58fr) !important;
  min-height: 330px !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card:first-child .r53-article-card-media {
  min-height: 330px !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card:first-child .r53-article-card-copy h2,
html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card:first-child .r53-article-card-copy h2 a {
  font-size: clamp(36px, 3.1vw, 54px) !important;
}

/* Leave a small optical reserve for serif overhang at desktop sizes.  This
   prevents the final glyph from touching the measured hero title boundary. */
@media (min-width: 721px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
    box-sizing: border-box !important;
    max-width: calc(14ch + 18px) !important;
    padding-right: 18px !important;
  }
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
    max-width: calc(18ch + 18px) !important;
  }
}

@media (max-width: 720px) {
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people .r54-firm-counsel-intro {
    width: 100% !important;
    padding: 48px 0 30px !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto auto !important;
    gap: 12px !important;
    align-items: start !important;
    text-align: left !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people .r54-firm-counsel-eyebrow,
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people .r54-firm-counsel-intro h2,
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people .r54-firm-counsel-deck {
    grid-column: 1 !important;
    grid-row: auto !important;
    max-width: 100% !important;
    text-align: left !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people .r54-firm-counsel-intro h2 {
    margin-top: 4px !important;
    font-size: clamp(36px, 10.5vw, 46px) !important;
    line-height: 1.04 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people .r54-firm-counsel-deck {
    margin-top: 8px !important;
    font-size: 17px !important;
    line-height: 1.58 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card:first-child,
  html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card {
    grid-column: 1 !important;
    grid-template-columns: minmax(0, 1fr) !important;
    min-height: 0 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card-media,
  html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card:first-child .r53-article-card-media {
    min-height: 0 !important;
    aspect-ratio: 16 / 9 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card-copy {
    padding: 26px 22px 30px !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card-copy h2,
  html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card-copy h2 a,
  html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card:first-child .r53-article-card-copy h2,
  html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card:first-child .r53-article-card-copy h2 a {
    font-size: clamp(28px, 8vw, 34px) !important;
  }
}

@media (max-width: 390px) {
  .r87-nav-discovery .r53-shell { font-size: 9.5px; }
  .r53-brand strong { font-size: 15px; }
  .r54-home-authority h1 { font-size: clamp(44px, 12.6vw, 54px); }
}

@media (max-height: 650px) and (min-width: 721px) {
  :root { --r87-hero: 560px; --r87-route-hero: 440px; }
  .r54-home-authority-copy { padding-block: 46px; }
  .r61-home-principle { min-height: 330px; }
}

@media (prefers-reduced-motion: reduce) {
  .r87-nav-discovery,
  .r53-desktop-nav a,
  .r53-desktop-nav a::after,
  .r54-practice-directory-link { transition: none !important; }
}

/* R87.16 — one inner-page hero system with a fixed desktop stage.
   Earlier layers rendered the title, support copy and media as unrelated rows
   or cards. Every purpose hero now has one continuous scene, one copy stack and
   one optical axis. Route and locale may change content/media, never topology. */
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero {
  position: relative;
  overflow: clip;
  color: #fff;
  background: var(--r87-deep) !important;
  border: 0 !important;
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r54-route-hero-grid,
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r54-route-hero-grid {
  width: 100% !important;
  max-width: none !important;
  min-height: var(--r87-route-hero) !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: minmax(560px, .92fr) minmax(560px, 1.08fr) !important;
  /* Desktop route heroes share one measured stage. Intrinsic image height must
     never expand one route (notably the 3:2 office frame) beyond its peers. */
  grid-template-rows: var(--r87-route-hero) !important;
  gap: 0 !important;
  align-items: stretch !important;
  overflow: hidden !important;
  background: var(--r87-deep) !important;
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r54-route-hero-grid {
  grid-template-columns: minmax(0, 1fr) !important;
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy {
  grid-column: 1 !important;
  grid-row: 1 !important;
  min-width: 0;
  min-height: var(--r87-route-hero);
  padding: clamp(56px, 5vw, 90px) clamp(42px, 5.2vw, 94px);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: clamp(24px, 2.2vw, 36px);
  color: #fff;
  background:
    radial-gradient(circle at 12% 18%, rgba(178,35,50,.2), transparent 36%),
    linear-gradient(120deg, #210b10 0%, #5b0b16 100%) !important;
  isolation: isolate;
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r87-purpose-hero-copy {
  width: 100%;
  padding-inline: max(var(--r87-gutter), calc((100vw - var(--r87-shell)) / 2 + var(--r87-gutter)));
  background:
    radial-gradient(circle at 76% 22%, rgba(170,30,45,.2), transparent 32%),
    linear-gradient(112deg, #1b0d11 0%, #5d0b17 68%, #30080f 100%) !important;
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r54-route-hero-title,
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r53-page-side {
  position: static !important;
  inset: auto !important;
  grid-column: auto !important;
  grid-row: auto !important;
  width: 100% !important;
  max-width: 58ch !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  color: #f9f2f2 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  text-align: left !important;
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r54-route-hero-title {
  display: block !important;
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r53-eyebrow {
  margin: 0 !important;
  color: #f1c5ca !important;
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r53-eyebrow > span {
  width: 34px;
  background: #e7aab1 !important;
  transform-origin: left center;
  animation: r8715-accent-in 560ms cubic-bezier(.22,.8,.22,1) both;
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero h1 {
  max-width: 15ch !important;
  margin: 18px 0 0 !important;
  color: #fff !important;
  font-size: clamp(50px, 4.25vw, 76px) !important;
  line-height: .98 !important;
  letter-spacing: -.042em !important;
  text-wrap: balance;
  word-break: normal;
  overflow-wrap: normal;
}
.r87-purpose-hero h1 .r87-hero-phrase {
  display: inline-block;
  white-space: nowrap;
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r53-page-side {
  display: flex !important;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 22px;
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r53-page-side p {
  max-width: 47ch;
  margin: 0;
  color: #f3e6e7 !important;
  font-size: clamp(17px, 1.08vw, 20px) !important;
  line-height: 1.55 !important;
  text-wrap: pretty;
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r87-route-hero-action {
  min-width: 220px;
  min-height: 56px;
  color: #fff !important;
  background: var(--r87-red) !important;
  border-color: #c85c68 !important;
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r87-route-hero-action:is(:hover,:focus-visible) {
  color: var(--r87-deep) !important;
  background: #fff !important;
  border-color: #fff !important;
  transform: translateY(-2px);
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r53-page-hero-media {
  grid-column: 2 !important;
  grid-row: 1 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: var(--r87-route-hero) !important;
  max-height: none !important;
  margin: 0 !important;
  align-self: stretch !important;
  aspect-ratio: auto !important;
  background: var(--r87-warm) !important;
  border: 0 !important;
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r53-page-hero-image,
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r54-route-hero-responsive-picture {
  width: 100% !important;
  height: 100% !important;
  min-height: inherit;
  display: block;
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero.r54-route-hero-media-contain .r53-page-hero-image {
  object-fit: contain !important;
  object-position: var(--r54-media-focus, 50% 50%) !important;
  background: var(--r87-warm) !important;
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r54-practice-hero-mark {
  display: none !important;
}
html[lang^="ko"] body.gl-r53 .r87-purpose-hero h1,
html[lang^="zh"] body.gl-r53 .r87-purpose-hero h1 {
  max-width: 18ch !important;
  font-size: clamp(46px, 3.75vw, 68px) !important;
  line-height: 1.08 !important;
  letter-spacing: -.025em !important;
}

@media (min-width: 721px) and (max-width: 1179px) {
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r54-route-hero-grid,
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero.r53-page-hero-has-media .r54-route-hero-grid,
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r54-route-hero-grid {
    min-height: 500px !important;
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr) !important;
    grid-template-rows: 500px !important;
    gap: 0 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy {
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-height: 500px;
    padding: clamp(38px, 5vw, 56px) clamp(30px, 4.5vw, 54px) !important;
    gap: clamp(18px, 2.3vw, 26px);
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r53-page-hero-media {
    grid-column: 2 !important;
    grid-row: 1 !important;
    min-height: 500px !important;
    height: 500px !important;
    max-height: none !important;
    aspect-ratio: auto !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero h1 {
    max-width: 15ch !important;
    font-size: clamp(40px, 5.1vw, 58px) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r53-page-side {
    gap: 16px;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r53-page-side p {
    font-size: clamp(16px, 1.75vw, 18px) !important;
    line-height: 1.5 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r87-route-hero-action {
    min-width: 190px;
    min-height: 52px;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r54-route-hero-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r87-purpose-hero-copy {
    min-height: 500px;
    padding-inline: max(var(--r87-gutter), calc((100vw - var(--r87-shell)) / 2 + var(--r87-gutter))) !important;
  }
}

@media (max-width: 720px) {
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r54-route-hero-grid,
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero.r53-page-hero-has-media .r54-route-hero-grid,
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r54-route-hero-grid {
    min-height: 0 !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    gap: 0 !important;
    padding: 0 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy {
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-height: 390px;
    padding: 36px var(--r87-gutter) 40px !important;
    gap: 18px;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r87-purpose-hero-copy {
    min-height: 430px;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero h1,
  html[lang^="ko"] body.gl-r53 .r87-purpose-hero h1,
  html[lang^="zh"] body.gl-r53 .r87-purpose-hero h1 {
    max-width: 100% !important;
    margin-top: 14px !important;
    font-size: clamp(34px, 9.6vw, 46px) !important;
    line-height: 1.02 !important;
    letter-spacing: -.032em !important;
  }
  html[lang^="ko"] body.gl-r53 .r87-purpose-hero h1,
  html[lang^="zh"] body.gl-r53 .r87-purpose-hero h1 {
    line-height: 1.12 !important;
    letter-spacing: -.02em !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r53-page-side {
    max-width: 100% !important;
    gap: 18px;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r53-page-side p {
    max-width: 34ch;
    font-size: 16.5px !important;
    line-height: 1.55 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r87-route-hero-action {
    width: 100%;
    min-width: 0;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r53-page-hero-media {
    grid-column: 1 !important;
    grid-row: 2 !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    aspect-ratio: 16 / 9 !important;
  }
  html body.gl-r53 .r53-site.r60-firm[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r53-page-hero-media,
  html body.gl-r53 .r53-site.r60-contact[data-site-production-root] main .r54-route-hero.r87-purpose-hero .r53-page-hero-media {
    aspect-ratio: 3 / 2 !important;
  }
}

@keyframes r8715-accent-in {
  from { opacity: 0; transform: scaleX(.15); }
  to { opacity: 1; transform: scaleX(1); }
}

@media (prefers-reduced-motion: reduce) {
  .r87-purpose-hero .r53-eyebrow > span { animation: none !important; }
}

/* R87.19 — responsive control and localized text integrity.
   One shared control geometry replaces inherited page-local width and pseudo-
   icon rules. Short actions fit their label; long translations may wrap inside
   the viewport while the semantic icon remains in a fixed optical slot. */
html body.gl-r53 .r53-site[data-site-production-root] :is(
  .r53-button,
  .r53-header-contact,
  .r87-route-hero-action,
  .r53-arrow-link,
  .r54-practice-directory-link,
  .r54-functional-contact-link,
  .r58-contact-dialog a
) {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
}
html body.gl-r53 .r53-site[data-site-production-root] :is(.r53-button,.r53-header-contact)::after {
  content: none !important;
  display: none !important;
}
html body.gl-r53 .r53-site[data-site-production-root] :is(
  .r67-action-icon,
  .r54-functional-contact-icon,
  .r54-practice-directory-action
) {
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  overflow: visible;
}
/* Never promote a bare sprite to the size of its parent. That made the phone,
   menu and dock glyphs fill the whole header at tablet/phone widths. Only the
   named 24px action slots may ask their child symbol to fill the slot. */
html body.gl-r53 .r53-site[data-site-production-root] :is(
  .r67-action-icon,
  .r54-functional-contact-icon,
  .r54-practice-directory-action
) > :is(.r84-icon,.r83-action-symbol) {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  overflow: visible;
  color: currentColor;
}
html body.gl-r53 .r53-site[data-site-production-root] .r53-menu summary :is(.r84-menu-open,.r84-menu-close) {
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  place-items: center;
}
html body.gl-r53 .r53-site[data-site-production-root] .r53-menu:not([open]) summary .r84-menu-open,
html body.gl-r53 .r53-site[data-site-production-root] .r53-menu[open] summary .r84-menu-close {
  display: inline-grid;
}
html body.gl-r53 .r53-site[data-site-production-root] .r53-menu summary :is(.r84-menu-open,.r84-menu-close) > .r84-icon,
html body.gl-r53 .r53-site[data-site-production-root] .r84-header-phone > span:first-child > .r84-icon,
html body.gl-r53 .r53-site[data-site-production-root] .r87-nav-discovery .r84-icon {
  width: 20px;
  height: 20px;
}

html body.gl-r53 .r53-site[data-site-production-root] main .r87-route-hero-action {
  width: fit-content !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 54px !important;
  padding: 14px 20px !important;
  gap: 18px !important;
  justify-content: flex-start !important;
  white-space: normal !important;
}
html body.gl-r53 .r53-site[data-site-production-root] main .r87-route-hero-action .r67-action-icon {
  margin-left: auto;
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-home-authority .r53-hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}
html body.gl-r53 .r53-site[data-site-production-root] main .r54-home-authority .r53-hero-actions :is(.r53-button,.r53-arrow-link),
html body.gl-r53 .r53-site[data-site-production-root] main :is(.r54-bottom-cta,.r53-inquiry) :is(.r53-button,.r53-arrow-link,.r54-integrated-inquiry-link,.r54-practice-inquiry-link) {
  width: fit-content !important;
  max-width: 100% !important;
  flex: 0 1 auto !important;
  justify-self: start;
  white-space: normal !important;
}

/* Preserve complete information. An old three-line clamp made practice cards
   look unfinished and hid meaning in longer Korean and Chinese labels. */
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r79-practice-directory-copy > small {
  display: block !important;
  max-height: none !important;
  overflow: visible !important;
  -webkit-box-orient: initial !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
}
html body.gl-r53 .r53-site[data-site-production-root] .r53-article-card h2,
html body.gl-r53 .r53-site[data-site-production-root] .r53-article-card h2 a {
  height: auto !important;
  max-height: none !important;
  padding-bottom: 2px;
  overflow: visible !important;
  line-height: 1.16 !important;
}

/* Locale-aware type fitting. Never use break-all/anywhere on authored titles:
   English balances phrases, while Korean and Chinese keep semantic word units. */
html[lang^="en"] body.gl-r53 .r53-site[data-site-production-root] :is(
  .r54-home-authority h1,
  .r87-purpose-hero h1,
  .r54-practice-directory-link strong,
  .r53-article-card h2,
  .r54-firm-counsel-deck
) {
  text-wrap: balance;
  overflow-wrap: normal;
  word-break: normal;
}
html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] :is(
  .r54-home-authority h1,
  .r87-purpose-hero h1,
  .r54-practice-directory-link strong,
  .r53-article-card h2,
  .r54-firm-counsel-deck,
  .r54-faq-source-fallback p,
  .r54-faq-source-fallback p > strong
),
html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] :is(
  .r54-home-authority h1,
  .r87-purpose-hero h1,
  .r54-practice-directory-link strong,
  .r53-article-card h2,
  .r54-firm-counsel-deck,
  .r54-faq-source-fallback p,
  .r54-faq-source-fallback p > strong
) {
  white-space: normal !important;
  overflow-wrap: normal !important;
  word-break: keep-all !important;
  text-wrap: balance;
}
html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] :is(
  .r54-home-authority h1,
  .r87-purpose-hero h1,
  .r54-practice-directory-link strong,
  .r53-article-card h2,
  .r54-firm-counsel-deck
) {
  line-break: strict;
}
html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] .r54-firm-counsel-deck .r87-semantic-unit,
html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] .r54-firm-counsel-deck .r87-semantic-unit {
  display: inline-block;
  white-space: nowrap;
}

/* George requested a larger desktop navigation. The intermediate header uses
   a bounded grid so that stronger menu text and the contact control still stay
   inside the 1200px viewport. */
@media (min-width: 1180px) and (max-width: 1599px) {
  html body.gl-r53 .r53-site[data-site-production-root] > .r53-header .r53-header-grid {
    width: min(calc(100% - 40px), var(--r87-shell)) !important;
    grid-template-columns: minmax(274px, 300px) minmax(470px, 1fr) auto 48px minmax(126px, 136px) !important;
    gap: 6px !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] > .r53-header .r53-brand strong {
    font-size: clamp(21px, 1.75vw, 24px) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] > .r53-header .r53-desktop-nav a {
    padding-inline: 4px !important;
    font-size: clamp(15.75px, 1.34vw, 17px) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] > .r53-header .r53-header-contact {
    min-width: 0 !important;
    padding-inline: 12px !important;
  }
}

@media (max-width: 720px) {
  html body.gl-r53 .r53-site[data-site-production-root] main .r87-route-hero-action,
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-home-authority .r53-hero-actions :is(.r53-button,.r53-arrow-link) {
    width: fit-content !important;
    max-width: 100% !important;
    flex: 0 1 auto !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] main .r54-route-hero.r87-purpose-hero.r54-route-hero-media-contain .r53-page-hero-media {
    aspect-ratio: 3 / 2 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] .r54-practice-directory-link {
    height: auto !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r87-purpose-hero h1[data-r78-hero-title] {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
    padding: 0 2px 3px !important;
    overflow: visible !important;
    text-align: left !important;
  }
}

@media (min-width: 721px) and (max-width: 1179px) {
  html body.gl-r53 .r53-site[data-site-production-root] > .r53-header :is(.r53-desktop-nav,.r53-languages,.r84-header-phone,.r53-header-contact) {
    display: none !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] > .r53-header .r53-header-grid {
    grid-template-columns: minmax(0,1fr) auto !important;
    min-height: var(--r87-header) !important;
  }
}

/* R87.19 final text-fit correction.
   Older R67/R78 route selectors forced About, Our Firm and practice H1s into
   a 12ch centred box. That legacy geometry can never override the shared
   purpose hero. The authored phrase spans are grouping hints, not unbreakable
   boxes, below desktop width. */
@media (max-width: 1179px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero {
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r54-route-hero-grid {
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r54-route-hero-title,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side {
    align-items: flex-start !important;
    justify-items: start !important;
    text-align: left !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r54-route-hero-title,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r54-route-hero-title h1 {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
    text-align: left !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 .r87-hero-phrase {
    display: block;
    white-space: nowrap;
  }
}

@media (max-width: 720px) {
  /* Inner routes previously inherited the old 33px page shell twice. Keep the
     copy gutter inside the hero while the scene itself remains full viewport. */
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r54-route-hero-grid {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy {
    box-sizing: border-box !important;
    width: 100% !important;
    min-height: 350px;
    padding: 32px max(24px, var(--r87-gutter)) 36px !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r54-route-hero-title {
    box-sizing: border-box !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r87-purpose-hero-copy {
    min-height: 370px;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
    font-size: clamp(32px, 8.8vw, 40px) !important;
    line-height: 1.06 !important;
    color: #fffdf9 !important;
    letter-spacing: -.035em !important;
    text-wrap: balance !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-eyebrow {
    margin: 0 0 18px !important;
    color: #f0c8cc !important;
    font-size: 10.5px !important;
    line-height: 1.25 !important;
    letter-spacing: .16em !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-eyebrow > span {
    width: 34px !important;
    background: #d9a3a8 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side,
  html body.gl-r53 .r53-site.r60-about[data-site-production-root] #r53-main [data-r53-component="page.intro"].r87-purpose-hero .r53-page-side,
  html body.gl-r53 .r53-site.r60-firm[data-site-production-root] #r53-main [data-r53-component="page.intro"].r87-purpose-hero .r53-page-side {
    position: static !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    text-align: left !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side > p {
    width: 100% !important;
    max-width: 34ch !important;
    margin: 0 !important;
    color: #f0e6e7 !important;
    font-family: var(--r53-sans) !important;
    font-size: 17px !important;
    font-weight: 450 !important;
    line-height: 1.5 !important;
  }

  /* One mobile optical axis. Roles remain visually distinct, but eyebrow,
     display line, audience line, support copy, proof and actions all begin at
     the same gutter instead of drifting between left and centre. */
  html body.gl-r53 .r53-site.r60-home[data-site-production-root] #r53-main .r54-home-authority-inner {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding-inline: max(20px, var(--r87-gutter)) !important;
  }
  html body.gl-r53 .r53-site.r60-home[data-site-production-root] #r53-main .r54-home-authority-copy {
    align-items: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 48px 0 44px !important;
    text-align: left !important;
  }
  html body.gl-r53 .r53-site.r60-home[data-site-production-root] #r53-main .r61-home-hero-eyebrow {
    margin: 0 0 24px !important;
    font-size: 10.5px !important;
    line-height: 1.25 !important;
    letter-spacing: .14em !important;
    color: #f2d4d6 !important;
  }
  html body.gl-r53 .r53-site.r60-home[data-site-production-root] #r53-main .r54-home-authority h1 {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    color: #fffdf8 !important;
    font-size: clamp(38px, 10.4vw, 46px) !important;
    line-height: .98 !important;
    letter-spacing: -.045em !important;
    text-wrap: balance !important;
  }
  html body.gl-r53 .r53-site.r60-home[data-site-production-root] #r53-main .r54-home-authority h1 .r87-hero-phrase {
    display: block !important;
    white-space: nowrap !important;
  }
  html body.gl-r53 .r53-site.r60-home[data-site-production-root] #r53-main .r79-home-audience-line {
    max-width: 27ch !important;
    margin: 24px 0 0 !important;
    font-size: clamp(21px, 5.8vw, 25px) !important;
    line-height: 1.22 !important;
    color: #fff4eb !important;
  }
  html body.gl-r53 .r53-site.r60-home[data-site-production-root] #r53-main .r61-home-service-summary {
    max-width: 35ch !important;
    margin: 20px 0 0 !important;
    font-size: 16.5px !important;
    line-height: 1.52 !important;
    color: #e5d9da !important;
  }
  html body.gl-r53 .r53-site.r60-home[data-site-production-root] #r53-main .r84-home-trust-proof {
    align-self: flex-start !important;
    justify-content: flex-start !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 22px 0 0 !important;
    text-align: left !important;
    color: #fff8f5 !important;
    font-size: 13.5px !important;
    letter-spacing: .055em !important;
  }
  html body.gl-r53 .r53-site.r60-home[data-site-production-root] #r53-main .r53-hero-actions {
    justify-content: flex-start !important;
    width: 100% !important;
    margin: 28px 0 0 !important;
  }
}

@media (max-width: 640px) {
  html body.gl-r53 .r53-site.r60-about[data-site-production-root] #r53-main .r54-content-firm-story .r54-firm-story-group-opening {
    padding-top: 32px !important;
  }
}

/* Never hide source copy merely to equalise cards. The grid owns equal visual
   rhythm; the text remains complete for people, resources and every locale. */
html body.gl-r53 .r53-site[data-site-production-root] #r53-main :is(
  .r54-selected-person,
  .r54-selected-person-associate
) small.r54-person-summary,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-latest-insight > div > p:not(.r53-eyebrow) {
  display: block !important;
  max-height: none !important;
  overflow: visible !important;
  -webkit-box-orient: initial !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
}

@keyframes r8719-role-rise {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: no-preference) {
  .r54-home-authority.r53-motion-visible .r61-home-hero-eyebrow { animation: r8719-role-rise 420ms ease-out both; }
  .r54-home-authority.r53-motion-visible h1 { animation: r8719-role-rise 560ms 60ms ease-out both; }
  .r54-home-authority.r53-motion-visible .r79-home-audience-line { animation: r8719-role-rise 520ms 130ms ease-out both; }
  .r54-home-authority.r53-motion-visible .r61-home-service-summary { animation: r8719-role-rise 500ms 190ms ease-out both; }
  .r54-home-authority.r53-motion-visible .r84-home-trust-proof { animation: r8719-role-rise 460ms 240ms ease-out both; }
  .r54-home-authority.r53-motion-visible .r53-hero-actions { animation: r8719-role-rise 460ms 290ms ease-out both; }
  .r87-purpose-hero .r53-page-side { animation: r8719-role-rise 500ms 120ms ease-out both; }
}

/* R87.20 — integrated route-hero scene and aligned firm information rail.
   R87.16 still treated copy and photography as two independent panels. This
   terminal composition keeps every locale and route on one fixed stage: media
   is a non-structural background layer, the copy owns one centred shell rail,
   and missing media never changes geometry. */
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero {
  position: relative !important;
  left: 50% !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin: 0 !important;
  transform: translateX(-50%) !important;
  overflow: hidden !important;
  isolation: isolate;
  color: #fff;
  background: linear-gradient(118deg, #160a0e 0%, #390810 54%, #64101a 100%) !important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r54-route-hero-grid,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r53-page-hero-has-media .r54-route-hero-grid,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r54-route-hero-grid {
  position: relative !important;
  width: 100% !important;
  max-width: none !important;
  height: var(--r87-route-hero) !important;
  min-height: var(--r87-route-hero) !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template: minmax(0, 1fr) / minmax(0, 1fr) !important;
  overflow: hidden !important;
  background: transparent !important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r54-route-hero-grid::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(20,8,12,.99) 0%, rgba(43,7,14,.96) 34%, rgba(51,8,15,.78) 56%, rgba(28,8,12,.36) 78%, rgba(20,8,11,.2) 100%),
    linear-gradient(0deg, rgba(16,7,10,.25), transparent 38%);
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r54-route-hero-grid::before {
  background:
    radial-gradient(circle at 78% 28%, rgba(167,31,46,.22), transparent 31%),
    linear-gradient(112deg, rgba(22,9,13,.99) 0%, rgba(86,10,23,.94) 66%, rgba(45,7,14,.98) 100%);
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r87-purpose-hero-copy {
  position: relative !important;
  z-index: 2;
  grid-area: 1 / 1 !important;
  box-sizing: border-box !important;
  width: min(100%, var(--r87-shell)) !important;
  max-width: var(--r87-shell) !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 auto !important;
  padding: clamp(58px, 5vw, 86px) max(var(--r87-gutter), calc((100vw - var(--r87-shell)) / 2 + var(--r87-gutter))) !important;
  display: flex !important;
  flex-direction: column;
  align-items: flex-start !important;
  justify-content: center !important;
  gap: clamp(22px, 2.1vw, 32px) !important;
  color: #fff;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  text-align: left !important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r54-route-hero-title,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side {
  width: min(100%, 690px) !important;
  max-width: 690px !important;
  margin: 0 !important;
  padding: 0 !important;
  justify-self: start !important;
  align-self: auto !important;
  align-items: flex-start !important;
  justify-items: start !important;
  text-align: left !important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-eyebrow {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  margin: 0 !important;
  color: #f1cfd2 !important;
  font-family: var(--r53-sans) !important;
  font-size: 11px !important;
  font-weight: 750 !important;
  line-height: 1.25 !important;
  letter-spacing: .17em !important;
  text-transform: uppercase;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-eyebrow > span {
  flex: 0 0 36px;
  width: 36px !important;
  height: 1px !important;
  background: #d78891 !important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
  width: 100% !important;
  max-width: 14ch !important;
  margin: 17px 0 0 !important;
  padding: 0 !important;
  color: #fffdf9 !important;
  font-size: clamp(52px, 4.3vw, 74px) !important;
  font-weight: 650 !important;
  line-height: .99 !important;
  letter-spacing: -.04em !important;
  text-wrap: balance !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}
html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
  max-width: 18ch !important;
  font-size: clamp(46px, 3.7vw, 64px) !important;
  line-height: 1.08 !important;
  letter-spacing: -.025em !important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side {
  display: flex !important;
  flex-direction: column;
  gap: 20px !important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side > p {
  display: block !important;
  width: min(100%, 48ch) !important;
  max-width: 48ch !important;
  margin: 0 !important;
  overflow: visible !important;
  color: #f0e4e5 !important;
  font-family: var(--r53-sans) !important;
  font-size: clamp(17px, 1.05vw, 19px) !important;
  font-weight: 450 !important;
  line-height: 1.56 !important;
  text-wrap: pretty !important;
  -webkit-box-orient: initial !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-hero-media {
  position: absolute !important;
  z-index: 0;
  inset: 0 !important;
  grid-area: 1 / 1 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  overflow: hidden !important;
  aspect-ratio: auto !important;
  background: #1d0b10 !important;
  border: 0 !important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r54-route-hero-responsive-picture,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-hero-image {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  display: block !important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-hero-image {
  object-fit: cover !important;
  object-position: var(--r54-media-focus, var(--r54-media-focus-wide, 50% 50%)) !important;
  filter: saturate(.86) contrast(1.02) brightness(.72) !important;
}
/* Factual office photography keeps the complete 3:2 frame. It sits inside the
   same stage and fades into the brand field instead of becoming a white card. */
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r54-route-hero-media-contain .r53-page-hero-media {
  inset: 0 0 0 38% !important;
  width: 62% !important;
  background: #241217 !important;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.72) 15%, #000 32%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.72) 15%, #000 32%, #000 100%);
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r54-route-hero-media-contain .r53-page-hero-image {
  object-fit: contain !important;
  object-position: var(--r54-media-focus, var(--r54-media-focus-wide, 50% 50%)) !important;
  background: transparent !important;
  filter: saturate(.9) contrast(1.02) brightness(.82) !important;
}

/* Office / language / counsel share one measured three-column information rail.
   Labels, primary values and support copy align to the same rows in every
   locale; one card can no longer drift vertically from the other two. */
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-firm-evidence-stage {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding: 0 !important;
  background: #5d0b15 !important;
  box-shadow: none !important;
  clip-path: none !important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-firm-evidence-stage .r54-firm-fact-seam {
  box-sizing: border-box;
  width: min(100%, var(--r87-shell)) !important;
  max-width: var(--r87-shell) !important;
  margin: 0 auto !important;
  padding-inline: var(--r87-gutter) !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  align-items: stretch !important;
  border: 0 !important;
  background: transparent !important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-firm-evidence-stage .r54-firm-fact-seam > div,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-firm-evidence-stage .r54-firm-fact-seam > div:nth-child(n) {
  box-sizing: border-box !important;
  min-width: 0 !important;
  min-height: 168px !important;
  padding: 30px clamp(24px, 2.5vw, 38px) !important;
  display: grid !important;
  grid-template-rows: auto auto 1fr !important;
  align-content: start !important;
  gap: 0 !important;
  color: #fff !important;
  background: transparent !important;
  border: 0 !important;
  border-left: 1px solid rgba(255,255,255,.22) !important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-firm-evidence-stage .r54-firm-fact-seam > div:first-child {
  border-left: 0 !important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-firm-evidence-stage .r54-firm-fact-seam dt {
  margin: 0 0 10px !important;
  color: #efc8cc !important;
  font-family: var(--r53-sans) !important;
  font-size: 10.5px !important;
  font-weight: 750 !important;
  line-height: 1.25 !important;
  letter-spacing: .15em !important;
  text-transform: uppercase !important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-firm-evidence-stage .r54-firm-fact-seam dd {
  min-width: 0 !important;
  margin: 0 !important;
  display: grid !important;
  grid-template-rows: auto 1fr !important;
  align-content: start !important;
  gap: 8px !important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-firm-evidence-stage .r54-firm-fact-seam strong {
  max-width: 26ch !important;
  color: #fff !important;
  font-family: var(--r53-serif) !important;
  font-size: clamp(21px, 1.65vw, 26px) !important;
  font-weight: 650 !important;
  line-height: 1.18 !important;
  letter-spacing: -.018em !important;
  text-wrap: balance !important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-firm-evidence-stage .r54-firm-fact-seam dd > span {
  max-width: 38ch !important;
  color: #eadfe0 !important;
  font-family: var(--r53-sans) !important;
  font-size: 14.5px !important;
  line-height: 1.5 !important;
  text-wrap: pretty !important;
}

@media (min-width: 721px) and (max-width: 1179px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r54-route-hero-grid,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r53-page-hero-has-media .r54-route-hero-grid,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r54-route-hero-grid {
    height: 500px !important;
    min-height: 500px !important;
    grid-template: minmax(0, 1fr) / minmax(0, 1fr) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r87-purpose-hero-copy {
    grid-area: 1 / 1 !important;
    min-height: 0 !important;
    padding: 48px var(--r87-gutter) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
    max-width: 14ch !important;
    font-size: clamp(43px, 5.1vw, 58px) !important;
  }
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
    max-width: 18ch !important;
    font-size: clamp(40px, 4.6vw, 52px) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-hero-media,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r54-route-hero-media-contain .r53-page-hero-media {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    grid-area: 1 / 1 !important;
  }
}

@media (max-width: 720px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero {
    left: 50% !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 !important;
    transform: translateX(-50%) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r54-route-hero-grid,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r53-page-hero-has-media .r54-route-hero-grid,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r54-route-hero-grid {
    width: 100% !important;
    height: 500px !important;
    min-height: 500px !important;
    margin: 0 !important;
    grid-template: minmax(0, 1fr) / minmax(0, 1fr) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r54-route-hero-grid::before {
    background: linear-gradient(180deg, rgba(27,8,13,.98) 0%, rgba(53,8,16,.9) 58%, rgba(24,7,11,.82) 100%);
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r87-purpose-hero-copy {
    grid-area: 1 / 1 !important;
    box-sizing: border-box !important;
    width: 100% !important;
    height: 500px !important;
    min-height: 500px !important;
    margin: 0 !important;
    padding: 38px max(24px, var(--r87-gutter)) 42px !important;
    justify-content: center !important;
    gap: 18px !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
    max-width: 100% !important;
    margin-top: 13px !important;
    font-size: clamp(34px, 9vw, 42px) !important;
    line-height: 1.05 !important;
    letter-spacing: -.032em !important;
  }
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
    max-width: 100% !important;
    margin-top: 13px !important;
    font-size: clamp(30px, 8vw, 36px) !important;
    line-height: 1.12 !important;
    letter-spacing: -.018em !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 .r87-hero-phrase {
    display: block !important;
    width: fit-content;
    max-width: 100%;
    white-space: nowrap !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side > p {
    max-width: 34ch !important;
    font-size: 16.5px !important;
    line-height: 1.5 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-hero-media,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r54-route-hero-media-contain .r53-page-hero-media {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    grid-area: 1 / 1 !important;
    opacity: .58;
    -webkit-mask-image: none;
    mask-image: none;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r54-route-hero-media-contain .r53-page-hero-image {
    position: absolute !important;
    inset: 50% 0 auto !important;
    width: 100% !important;
    height: auto !important;
    transform: translateY(-50%) !important;
    object-fit: contain !important;
    object-position: var(--r54-media-focus, var(--r54-media-focus-mobile, 50% 50%)) !important;
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
    mask-image: linear-gradient(180deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-firm-evidence-stage {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-firm-evidence-stage .r54-firm-fact-seam {
    width: 100% !important;
    grid-template-columns: minmax(0, 1fr) !important;
    padding-inline: max(24px, var(--r87-gutter)) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-firm-evidence-stage .r54-firm-fact-seam > div,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-firm-evidence-stage .r54-firm-fact-seam > div:nth-child(n) {
    min-height: 0 !important;
    padding: 24px 0 !important;
    border-left: 0 !important;
    border-top: 1px solid rgba(255,255,255,.2) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-firm-evidence-stage .r54-firm-fact-seam > div:first-child {
    border-top: 0 !important;
  }
}

/* R87.20 terminal cross-section and blog correction. Kept last deliberately:
   legacy Elementor-era layers must not restore centred counsel copy, a black
   archive hero, or undersized article typography after the SITE rules. */
html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people .r54-firm-counsel-intro {
  box-sizing: border-box !important;
  width: min(100%,1120px) !important;
  max-width: 1120px !important;
  margin: 0 auto !important;
  padding: clamp(54px,6vw,82px) 0 clamp(34px,4vw,52px) !important;
  display: grid !important;
  grid-template-columns: minmax(250px,.38fr) minmax(0,.62fr) !important;
  grid-template-rows: auto auto !important;
  gap: 12px clamp(48px,6vw,88px) !important;
  align-items: end !important;
  justify-items: start !important;
  text-align: left !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-eyebrow {
  grid-column: 1 !important;
  grid-row: 1 !important;
  width: auto !important;
  margin: 0 !important;
  color: var(--r87-red) !important;
  font: 750 11px/1.25 var(--r53-sans) !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-intro h2 {
  grid-column: 1 !important;
  grid-row: 2 !important;
  max-width: 11ch !important;
  margin: 0 !important;
  font-size: clamp(44px,4.2vw,66px) !important;
  line-height: 1.02 !important;
  letter-spacing: -.035em !important;
  text-align: left !important;
  text-wrap: balance !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-deck {
  grid-column: 2 !important;
  grid-row: 1/span 2 !important;
  align-self: end !important;
  width: 100% !important;
  max-width: 54ch !important;
  margin: 0 !important;
  color: var(--r53-muted) !important;
  font: 450 clamp(18px,1.35vw,22px)/1.55 var(--r53-sans) !important;
  text-align: left !important;
  text-wrap: pretty !important;
}
html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-deck .r87-semantic-unit,
html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-deck .r87-semantic-unit {
  display: inline !important;
  white-space: normal !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r54-route-hero.r87-purpose-hero {
  background: linear-gradient(118deg,#3f0811 0%,#72101e 58%,#4c0814 100%) !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r54-route-hero-grid::before {
  background: linear-gradient(112deg,rgba(47,6,14,.98) 0%,rgba(116,14,31,.86) 64%,rgba(64,7,18,.96) 100%) !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-layout {
  gap: 2px !important;
  background: var(--r87-line) !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card-copy h2,
html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card-copy h2 a {
  font-size: clamp(30px,2.2vw,42px) !important;
  line-height: 1.1 !important;
  letter-spacing: -.025em !important;
  text-wrap: balance !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card-copy>p:not(.r53-article-meta) {
  max-width: 58ch !important;
  color: #4e4648 !important;
  font-size: clamp(17px,1.05vw,19px) !important;
  line-height: 1.66 !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card:first-child {
  grid-column: 1/-1 !important;
  grid-template-columns: minmax(320px,.42fr) minmax(0,.58fr) !important;
  min-height: 330px !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card:first-child .r53-article-card-media {
  min-height: 330px !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card:first-child .r53-article-card-copy h2,
html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card:first-child .r53-article-card-copy h2 a {
  font-size: clamp(36px,3.1vw,54px) !important;
}
@media (min-width:721px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
    box-sizing: border-box !important;
    max-width: calc(14ch + 18px) !important;
    padding-right: 18px !important;
  }
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
    max-width: calc(18ch + 18px) !important;
  }
}
@media (max-width:720px) {
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people .r54-firm-counsel-intro {
    width: 100% !important;
    padding: 48px 0 30px !important;
    grid-template-columns: minmax(0,1fr) !important;
    grid-template-rows: auto auto auto !important;
    gap: 12px !important;
    align-items: start !important;
    text-align: left !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main :is(.r54-firm-counsel-eyebrow,.r54-firm-counsel-intro h2,.r54-firm-counsel-deck) {
    grid-column: 1 !important;
    grid-row: auto !important;
    max-width: 100% !important;
    text-align: left !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-intro h2 {
    margin-top: 4px !important;
    font-size: clamp(36px,10.5vw,46px) !important;
    line-height: 1.04 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-deck {
    margin-top: 8px !important;
    font-size: 17px !important;
    line-height: 1.58 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card:first-child,
  html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card {
    grid-column: 1 !important;
    grid-template-columns: minmax(0,1fr) !important;
    min-height: 0 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card-media,
  html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card:first-child .r53-article-card-media {
    min-height: 0 !important;
    aspect-ratio: 16/9 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card-copy {
    padding: 26px 22px 30px !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card-copy h2,
  html body.gl-r53 .r53-site[data-site-production-root].r60-article-archive #r53-main .r53-article-card-copy h2 a {
    font-size: clamp(28px,8vw,34px) !important;
  }
}

/* R87.22 remote-corrective: the factual office frame remains uncropped, but it
   begins at the top edge of the shared 500px stage so the stage never opens on
   an accidental empty band. Copy and the next counsel introduction are sized
   from the viewport gutter inward; mixed Latin/CJK text can wrap without
   forcing either component beyond the inline viewport. */
@media (max-width:720px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r54-route-hero-media-contain .r53-page-hero-media {
    background:
      linear-gradient(180deg, rgba(46,8,15,.26) 0%, rgba(34,7,12,.72) 68%, #1d0b10 100%) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r54-route-hero-media-contain .r53-page-hero-image {
    inset: 0 0 auto !important;
    transform: none !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero :is(.r87-purpose-hero-copy,.r54-route-hero-title,.r53-page-side),
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people :is(.r54-editorial-narrative-grid,.r54-firm-counsel-intro,.r54-firm-counsel-deck) {
    min-width: 0 !important;
    max-inline-size: 100% !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side > p {
    box-sizing: border-box !important;
    inline-size: 100% !important;
    max-inline-size: 100% !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people .r54-editorial-narrative-grid {
    box-sizing: border-box !important;
    width: min(calc(100% - 40px),1120px) !important;
    max-width: calc(100% - 40px) !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-deck {
    inline-size: 100% !important;
    overflow-wrap: break-word !important;
  }
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-deck .r87-semantic-unit,
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-deck .r87-semantic-unit {
    display: block !important;
    max-width: 100% !important;
    white-space: normal !important;
  }
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side > p,
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-deck {
    line-break: strict !important;
    word-break: normal !important;
  }
}

/* R87.21 shared mobile hero optical-axis correction. A complete intrinsic-ratio
   office/counsel image may remain uncropped inside the fixed hero stage, but the
   retained letterbox area must carry the hero hierarchy instead of reading as an
   accidental empty band. Locale copy stays source-complete and wraps naturally. */
@media (max-width:720px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r87-purpose-hero-copy {
    justify-content: flex-start !important;
  }
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side > p,
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side > p {
    max-width: 100% !important;
    text-wrap: balance !important;
    word-break: normal !important;
  }
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side > p {
    line-break: strict !important;
  }
}

/* R87.22 terminal acceptance lock: the shared phone hero is one continuous
   stage. The protected office frame stays complete and starts at the stage
   edge; only its lower edge dissolves into the ambient oxblood field. */
@media (max-width:720px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r87-purpose-hero-copy {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    grid-auto-rows: max-content !important;
    align-content: start !important;
    justify-content: stretch !important;
    overflow: visible !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r54-route-hero-media-contain .r53-page-hero-image {
    top: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    width: 100% !important;
    height: auto !important;
    transform: none !important;
    object-fit: contain !important;
    -webkit-mask-image: linear-gradient(180deg,#000 0%,#000 76%,transparent 100%) !important;
    mask-image: linear-gradient(180deg,#000 0%,#000 76%,transparent 100%) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side > p,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-route-hero-action {
    min-width: 0 !important;
    max-width: 100% !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-route-hero-action {
    width: fit-content !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people .r54-firm-counsel-intro {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 48px max(20px,var(--r87-gutter)) 30px !important;
    overflow: visible !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people :is(.r54-firm-counsel-eyebrow,.r54-firm-counsel-intro h2,.r54-firm-counsel-deck),
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-deck .r87-semantic-unit {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-wrap: break-word !important;
  }
}

/* R87.23 terminal mobile composition: use the full stage instead of leaving
   the ambient lower field empty. The title anchors the top; localized support
   and the one route action anchor the lower field. The complete 3:2 office
   frame remains undistorted and uncropped behind both information zones. */
@media (max-width:720px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r54-route-hero-grid,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r53-page-hero-has-media .r54-route-hero-grid,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r54-route-hero-grid {
    height: clamp(420px,112vw,440px) !important;
    min-height: clamp(420px,112vw,440px) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r87-purpose-hero-copy {
    height: clamp(420px,112vw,440px) !important;
    min-height: clamp(420px,112vw,440px) !important;
    padding: 30px 24px 30px !important;
    grid-template-rows: max-content max-content !important;
    grid-auto-rows: auto !important;
    gap: 14px !important;
    align-content: center !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r54-route-hero-title {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: start !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r53-page-side {
    grid-column: 1 !important;
    grid-row: 2 !important;
    align-self: start !important;
    box-sizing: border-box !important;
    width: min(100%,calc(100vw - 48px)) !important;
    max-width: calc(100vw - 48px) !important;
    gap: 14px !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side > p {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    text-wrap: pretty !important;
  }
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side > p,
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side > p {
    word-break: normal !important;
    line-break: strict !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people .r54-firm-counsel-deck {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }
}

/* R87.24 terminal phone inline-containment lock. R87.23 proved that a legacy
   ancestor can remain wider than a 320px visual viewport even while the hero
   itself is full bleed. Size the two reading surfaces from the dynamic
   viewport, not that ancestor. Copy remains complete and visible: the support
   line and counsel introduction reflow; they are never clipped or truncated. */
@media (max-width:720px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r87-purpose-hero-copy {
    box-sizing: border-box !important;
    inline-size: 100dvw !important;
    width: 100dvw !important;
    min-inline-size: 0 !important;
    max-inline-size: 100dvw !important;
    max-width: 100dvw !important;
    margin-inline: 0 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r53-page-side {
    box-sizing: border-box !important;
    inline-size: calc(100dvw - 48px) !important;
    width: calc(100dvw - 48px) !important;
    min-inline-size: 0 !important;
    max-inline-size: calc(100dvw - 48px) !important;
    max-width: calc(100dvw - 48px) !important;
    margin: 0 !important;
    padding-inline: 0 8px !important;
    justify-self: start !important;
    overflow: visible !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side > p {
    box-sizing: border-box !important;
    inline-size: 100% !important;
    width: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: normal !important;
    overflow: visible !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    text-wrap: pretty !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people .r54-editorial-narrative-grid {
    box-sizing: border-box !important;
    inline-size: calc(100dvw - 40px) !important;
    width: calc(100dvw - 40px) !important;
    min-inline-size: 0 !important;
    max-inline-size: calc(100dvw - 40px) !important;
    max-width: calc(100dvw - 40px) !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people .r54-firm-counsel-intro {
    box-sizing: border-box !important;
    inline-size: 100% !important;
    width: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 48px 0 30px !important;
    overflow: visible !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people :is(.r54-firm-counsel-eyebrow,.r54-firm-counsel-intro h2,.r54-firm-counsel-deck),
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-deck .r87-semantic-unit {
    box-sizing: border-box !important;
    inline-size: 100% !important;
    width: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    max-width: 100% !important;
    padding-inline-end: 0 !important;
    white-space: normal !important;
    overflow: visible !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people .r54-firm-counsel-intro h2 {
    font-size: clamp(34px,10.5vw,46px) !important;
    line-height: 1.04 !important;
    text-wrap: balance !important;
  }
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side > p,
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side > p,
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-deck,
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-deck {
    line-break: strict !important;
    word-break: normal !important;
  }
}

/* R87.25 terminal route-hero media integration.
   Our Firm uses a factual full-frame office photograph. Its media surface must
   never introduce a second solid colour panel inside the shared hero. The
   complete image is right-aligned and feathered into the single oxblood stage.
   Newly admitted route-family editorial images use the same stage geometry but
   remain cover media with their protected subject on the right. */
@media (min-width:721px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r54-route-hero-media-contain .r53-page-hero-media {
    inset: 0 !important;
    width: 100% !important;
    background: transparent !important;
    -webkit-mask-image: linear-gradient(90deg,transparent 0%,rgba(0,0,0,.14) 27%,rgba(0,0,0,.88) 48%,#000 60%,#000 100%) !important;
    mask-image: linear-gradient(90deg,transparent 0%,rgba(0,0,0,.14) 27%,rgba(0,0,0,.88) 48%,#000 60%,#000 100%) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r54-route-hero-media-contain .r53-page-hero-image {
    box-sizing: border-box !important;
    width: min(66vw,1040px) !important;
    height: 100% !important;
    margin-left: auto !important;
    object-fit: contain !important;
    object-position: right center !important;
    background: transparent !important;
  }
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-hero-media[data-r54-synthetic-identity] {
  inset: 0 !important;
  width: 100% !important;
  background: transparent !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-hero-media[data-r54-synthetic-identity] .r53-page-hero-image {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: var(--r54-media-focus,var(--r54-media-focus-wide,72% 50%)) !important;
}

@media (max-width:720px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r54-route-hero-media-contain .r53-page-hero-media {
    inset: 0 !important;
    width: 100% !important;
    background: transparent !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r54-route-hero-media-contain .r53-page-hero-image {
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    object-fit: contain !important;
    object-position: right top !important;
    -webkit-mask-image: linear-gradient(180deg,#000 0%,#000 70%,transparent 100%) !important;
    mask-image: linear-gradient(180deg,#000 0%,#000 70%,transparent 100%) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-hero-media[data-r54-synthetic-identity] .r53-page-hero-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: var(--r54-media-focus,var(--r54-media-focus-mobile-390,72% 50%)) !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
  }
}

/* R87.26 terminal Our Firm copy-surface integration.
   The factual office photograph and the copy must read as one continuous hero.
   Remove the inherited bright-red support panel; keep one quiet rule so the
   support and route action remain legible without creating another rectangle. */
html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r53-page-side {
  box-sizing: border-box !important;
  width: min(100%, 520px) !important;
  max-width: 520px !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 16px 0 0 !important;
  background: transparent !important;
  border-top: 1px solid rgba(255,255,255,.28) !important;
  box-shadow: none !important;
}

@media (max-width:720px) {
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r53-page-side {
    inline-size: calc(100dvw - 48px) !important;
    width: calc(100dvw - 48px) !important;
    max-inline-size: calc(100dvw - 48px) !important;
    max-width: calc(100dvw - 48px) !important;
    padding: 14px 0 0 !important;
  }
}

/* R87.27 shared responsive authority.
   This one terminal component contract supersedes the accumulated R87.21–26
   phone geometry. It keeps route heroes as one continuous surface, lets
   locale copy wrap by meaning rather than arbitrary code-point breaks, gives
   Office facts one border/padding system, and reserves a real footer surface
   for the persistent contact controls so they never cover page content. */

/* Factual office media stays complete and undistorted; synthetic editorial
   media uses the same stage but may cover within its protected focal point. */
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 .r87-hero-phrase {
  display: inline-block !important;
  width: auto !important;
  max-width: 100% !important;
  white-space: nowrap !important;
}

@media (min-width:721px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r54-route-hero-media-contain .r53-page-hero-media {
    inset: 0 !important;
    width: 100% !important;
    background: transparent !important;
    -webkit-mask-image: linear-gradient(90deg,transparent 0%,rgba(0,0,0,.14) 27%,rgba(0,0,0,.88) 48%,#000 60%,#000 100%) !important;
    mask-image: linear-gradient(90deg,transparent 0%,rgba(0,0,0,.14) 27%,rgba(0,0,0,.88) 48%,#000 60%,#000 100%) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r54-route-hero-media-contain .r53-page-hero-image {
    box-sizing: border-box !important;
    width: min(66vw,1040px) !important;
    height: 100% !important;
    margin-left: auto !important;
    object-fit: contain !important;
    object-position: right center !important;
    background: transparent !important;
  }

  /* The dock belongs to the footer action zone, never over legal-content cards. */
  html body.gl-r53 .r53-site[data-site-production-root] {
    position: relative !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] .r53-footer {
    padding-bottom: 82px !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] .r84-contact-dock {
    position: absolute !important;
    right: max(16px,env(safe-area-inset-right)) !important;
    bottom: max(16px,env(safe-area-inset-bottom)) !important;
  }
}

html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-hero-media[data-r54-synthetic-identity] {
  inset: 0 !important;
  width: 100% !important;
  background: transparent !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-hero-media[data-r54-synthetic-identity] .r53-page-hero-image {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: var(--r54-media-focus,var(--r54-media-focus-wide,72% 50%)) !important;
}

html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r53-page-side {
  box-sizing: border-box !important;
  inline-size: min(100%,520px) !important;
  width: min(100%,520px) !important;
  min-inline-size: 0 !important;
  max-inline-size: 520px !important;
  max-width: 520px !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 16px 0 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-top: 1px solid rgba(255,255,255,.28) !important;
  box-shadow: none !important;
}

/* One Office information system: three actual public facts at wide sizes,
   then one readable stack. Fax-era fourth-cell styling and odd/even padding
   from prior layers are explicitly neutralized. */
html body.gl-r53 .r53-site[data-site-production-root].r60-contact #r53-main [data-r53-component="contact.coordinates"] .r53-office-record-grid,
html body.gl-r53 .r53-site[data-site-production-root].r60-contact #r53-main [data-r53-component="contact.coordinates"] .r53-office-record-copy {
  box-sizing: border-box !important;
  display: block !important;
  width: min(calc(100% - (2 * var(--r87-gutter))),var(--r87-shell)) !important;
  max-width: var(--r87-shell) !important;
  min-width: 0 !important;
  margin-inline: auto !important;
  padding: 0 !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-contact #r53-main [data-r53-component="contact.coordinates"] .r53-section-heading {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 0 24px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--r87-line) !important;
  text-align: left !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-contact #r53-main [data-r53-component="contact.coordinates"] .r53-fact-grid {
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  gap: 0 !important;
  width: 100% !important;
  max-width: none !important;
  margin: -1px 0 0 !important;
  border: 0 !important;
  border-top: 1px solid var(--r87-line) !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-contact #r53-main [data-r53-component="contact.coordinates"] .r53-fact-grid > div,
html body.gl-r53 .r53-site[data-site-production-root].r60-contact #r53-main [data-r53-component="contact.coordinates"] .r53-fact-grid > div:nth-child(n) {
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-columns: 32px minmax(0,1fr) !important;
  gap: 14px !important;
  align-content: start !important;
  min-width: 0 !important;
  min-height: 132px !important;
  padding: 24px !important;
  border: 0 !important;
  border-right: 1px solid var(--r87-line) !important;
  border-bottom: 1px solid var(--r87-line) !important;
  text-align: left !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-contact #r53-main [data-r53-component="contact.coordinates"] .r53-fact-grid > div:last-child {
  border-right: 0 !important;
}
html body.gl-r53 .r53-site[data-site-production-root].r60-contact #r53-main [data-r53-component="contact.coordinates"] .r53-fact-grid > div:nth-child(n) dd {
  min-width: 0 !important;
  font-size: 16px !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  text-wrap: pretty !important;
}

/* Stable principle height prevents the type-on effect from moving following
   sections; reduced-motion preserves the complete static sentence. */
html body.gl-r53 .r53-site[data-site-production-root] .r83-principle-copy-frame {
  min-block-size: 3.55em !important;
  display: grid !important;
  align-items: start !important;
}

@media (min-width:721px) and (max-width:900px) {
  html body.gl-r53 .r53-site[data-site-production-root].r60-contact #r53-main [data-r53-component="contact.coordinates"] .r53-fact-grid {
    grid-template-columns: minmax(0,1fr) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-contact #r53-main [data-r53-component="contact.coordinates"] .r53-fact-grid > div,
  html body.gl-r53 .r53-site[data-site-production-root].r60-contact #r53-main [data-r53-component="contact.coordinates"] .r53-fact-grid > div:nth-child(n) {
    min-height: 0 !important;
    padding: 22px 24px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--r87-line) !important;
  }
}

@media (max-width:720px) {
  :root {
    --r87-mobile-hero-min: clamp(440px,120vw,500px);
    --r87-mobile-inline: max(20px,var(--r87-gutter));
  }

  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero {
    left: auto !important;
    box-sizing: border-box !important;
    inline-size: 100% !important;
    width: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    transform: none !important;
    overflow: clip !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r54-route-hero-grid,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r53-page-hero-has-media .r54-route-hero-grid,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r54-route-hero-grid {
    box-sizing: border-box !important;
    inline-size: 100% !important;
    width: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    height: auto !important;
    min-height: var(--r87-mobile-hero-min) !important;
    margin: 0 !important;
    grid-template: minmax(0,1fr) / minmax(0,1fr) !important;
    overflow: hidden !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r54-route-hero-grid::before {
    background:
      linear-gradient(90deg,rgba(20,7,11,.78) 0%,rgba(44,8,15,.58) 58%,rgba(26,7,11,.42) 100%),
      linear-gradient(180deg,rgba(20,7,11,.42) 0%,rgba(42,8,14,.62) 52%,rgba(24,7,11,.8) 100%) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r87-purpose-hero-copy {
    grid-area: 1 / 1 !important;
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    grid-template-rows: max-content max-content !important;
    inline-size: 100% !important;
    width: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    height: auto !important;
    min-height: var(--r87-mobile-hero-min) !important;
    margin: 0 !important;
    padding: 30px var(--r87-mobile-inline) 30px !important;
    gap: 14px !important;
    align-content: center !important;
    justify-content: stretch !important;
    overflow: visible !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r54-route-hero-title {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: start !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
    max-width: 100% !important;
    margin-top: 12px !important;
    font-size: clamp(34px,9vw,42px) !important;
    line-height: 1.06 !important;
    letter-spacing: -.032em !important;
    text-wrap: balance !important;
  }
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
    max-width: 100% !important;
    margin-top: 12px !important;
    font-size: clamp(30px,8vw,36px) !important;
    line-height: 1.14 !important;
    letter-spacing: -.018em !important;
    text-wrap: balance !important;
    line-break: strict !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 .r87-hero-phrase {
    display: inline-block !important;
    width: auto !important;
    max-width: 100% !important;
    white-space: normal !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r53-page-side {
    grid-column: 1 !important;
    grid-row: 2 !important;
    align-self: start !important;
    justify-self: stretch !important;
    box-sizing: border-box !important;
    inline-size: 100% !important;
    width: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 14px 0 0 !important;
    gap: 14px !important;
    overflow: visible !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side > p,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-route-hero-action {
    box-sizing: border-box !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    max-width: 100% !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side > p {
    inline-size: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 16px !important;
    line-height: 1.48 !important;
    white-space: normal !important;
    overflow: visible !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    text-wrap: pretty !important;
  }
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side > p {
    word-break: keep-all !important;
    line-break: auto !important;
  }
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side > p {
    word-break: normal !important;
    line-break: strict !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-route-hero-action {
    inline-size: fit-content !important;
    width: fit-content !important;
    min-height: 48px !important;
  }

  /* One copy rail owns the vertical rhythm. Route-specific translation caused
     dead bands, clipping and different geometry between locales. */
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero-counsel .r87-purpose-hero-copy {
    transform: none !important;
  }

  /* R87.30 — these shorter route families passed text-fit but left a plain
     90–110px terminal band. Seat the intact copy group lower in the same
     shared stage; keep About and the already-passing Counsel topology intact. */
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main :is(
    .r54-route-hero.r87-purpose-hero-practice,
    .r54-route-hero.r87-purpose-hero-contact,
    .r54-route-hero.r87-purpose-hero-faq
  ) .r87-purpose-hero-copy {
    transform: none !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r54-route-hero-media-contain .r53-page-hero-media {
    inset: 0 !important;
    inline-size: 100% !important;
    width: 100% !important;
    height: 100% !important;
    background: transparent !important;
    opacity: .72 !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r54-route-hero-media-contain .r53-page-hero-image {
    position: absolute !important;
    inset: 0 !important;
    box-sizing: border-box !important;
    inline-size: 100% !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    transform: none !important;
    object-fit: contain !important;
    object-position: var(--r54-media-focus,var(--r54-media-focus-mobile-390,50% 50%)) !important;
    background: transparent !important;
    -webkit-mask-image: linear-gradient(180deg,rgba(0,0,0,.84) 0%,#000 16%,#000 72%,rgba(0,0,0,.1) 100%) !important;
    mask-image: linear-gradient(180deg,rgba(0,0,0,.84) 0%,#000 16%,#000 72%,rgba(0,0,0,.1) 100%) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-hero-media[data-r54-synthetic-identity] .r53-page-hero-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: var(--r54-media-focus,var(--r54-media-focus-mobile-390,72% 50%)) !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
  }

  /* Counsel introduction and its locale deck follow the same reading gutter;
     no dynamic-viewport sizing or code-point-level word breaking remains. */
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people .r54-editorial-narrative-grid {
    box-sizing: border-box !important;
    inline-size: min(calc(100% - 40px),1120px) !important;
    width: min(calc(100% - 40px),1120px) !important;
    min-inline-size: 0 !important;
    max-inline-size: calc(100% - 40px) !important;
    max-width: calc(100% - 40px) !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people .r54-firm-counsel-intro {
    box-sizing: border-box !important;
    inline-size: 100% !important;
    width: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 48px 0 30px !important;
    overflow: visible !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people :is(.r54-firm-counsel-eyebrow,.r54-firm-counsel-intro h2,.r54-firm-counsel-deck),
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-deck .r87-semantic-unit {
    box-sizing: border-box !important;
    inline-size: 100% !important;
    width: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    max-width: 100% !important;
    padding-inline-end: 0 !important;
    white-space: normal !important;
    overflow: visible !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    text-wrap: pretty !important;
  }
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-deck,
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-deck .r87-semantic-unit {
    word-break: keep-all !important;
    line-break: auto !important;
  }
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-deck,
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-firm-counsel-deck .r87-semantic-unit {
    word-break: normal !important;
    line-break: strict !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-firm #r53-main .r54-content-editorial.r54-standard-firm-people .r54-firm-counsel-intro h2 {
    font-size: clamp(34px,10.5vw,46px) !important;
    line-height: 1.06 !important;
    text-wrap: balance !important;
  }

  /* Shared evidence/info/table surfaces use the page gutter, a single column,
     and one horizontal boundary between peers. */
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-firm-evidence-stage {
    inline-size: 100% !important;
    width: 100% !important;
    max-inline-size: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-firm-evidence-stage .r54-firm-fact-seam {
    box-sizing: border-box !important;
    inline-size: 100% !important;
    width: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding-inline: var(--r87-mobile-inline) !important;
    grid-template-columns: minmax(0,1fr) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-firm-evidence-stage .r54-firm-fact-seam > div,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-firm-evidence-stage .r54-firm-fact-seam > div:nth-child(n) {
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 24px 0 !important;
    border: 0 !important;
    border-top: 1px solid rgba(255,255,255,.2) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-firm-evidence-stage .r54-firm-fact-seam > div:first-child {
    border-top: 0 !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root].r60-contact #r53-main [data-r53-component="contact.coordinates"] .r53-office-record-grid,
  html body.gl-r53 .r53-site[data-site-production-root].r60-contact #r53-main [data-r53-component="contact.coordinates"] .r53-office-record-copy,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main :is(.r53-contact-grid,.r53-fact-grid) {
    box-sizing: border-box !important;
    inline-size: 100% !important;
    width: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    max-width: 100% !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-contact #r53-main [data-r53-component="contact.coordinates"] .r53-office-record-grid,
  html body.gl-r53 .r53-site[data-site-production-root].r60-contact #r53-main [data-r53-component="contact.coordinates"] .r53-office-record-copy {
    inline-size: min(calc(100% - 40px),var(--r87-shell)) !important;
    width: min(calc(100% - 40px),var(--r87-shell)) !important;
    max-inline-size: calc(100% - 40px) !important;
    max-width: calc(100% - 40px) !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-contact #r53-main [data-r53-component="contact.coordinates"] .r53-fact-grid,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r53-contact-grid,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main :where(.r53-process-grid,.r54-process-grid,.r54-original-process-grid) {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 0 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root].r60-contact #r53-main [data-r53-component="contact.coordinates"] .r53-fact-grid > div,
  html body.gl-r53 .r53-site[data-site-production-root].r60-contact #r53-main [data-r53-component="contact.coordinates"] .r53-fact-grid > div:nth-child(n) {
    min-height: 0 !important;
    padding: 22px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid var(--r87-line) !important;
  }

  html body.gl-r53 .r53-site[data-site-production-root] .r83-principle-copy-frame {
    min-block-size: 6.5em !important;
  }
}

@media (max-width:360px) {
  html body.gl-r53 .r53-site[data-site-production-root] .r87-nav-discovery .r53-shell {
    box-sizing: border-box !important;
    inline-size: 100% !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding-inline: 16px !important;
    justify-content: space-between !important;
    gap: 6px !important;
    font-size: 9px !important;
    letter-spacing: .045em !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] .r87-nav-discovery .r53-shell > span:first-child {
    min-width: 0 !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] .r87-nav-discovery .r53-shell > span:last-child {
    flex: 0 0 18px !important;
  }

  /* R87.31 — preserve the firm name as one semantic unit without forcing the
     whole localized Contact heading onto one line. The smaller Contact-only
     scale is the minimum needed at 320px; every other route keeps the shared
     mobile type scale. */
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero-contact h1 {
    font-size: clamp(28px,9vw,32px) !important;
    letter-spacing: -.04em !important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero-contact h1 .r87-hero-phrase-firm-name {
    white-space: nowrap !important;
  }
  /* Korean Contact combines a protected Latin firm name with a Hangul action
     line. At 320px the shared Contact scale left no optical safety after the
     final period even though the element box technically fit. Reserve a real
     right inset by scaling only this mixed-script title, not the page or name. */
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero-contact h1 {
    font-size: clamp(25px,8vw,28px) !important;
    letter-spacing: -.045em !important;
  }
}

@media (max-width:720px) {
  /* A complete factual office photograph remains uncropped. Top anchoring and
     a broad lower fade remove the hard centered photo-strip boundary, so the
     image, copy and oxblood support field read as one continuous hero. */
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero-contact.r54-route-hero-media-contain .r53-page-hero-image {
    object-position: center top !important;
    -webkit-mask-image: linear-gradient(180deg,#000 0%,#000 9%,rgba(0,0,0,.9) 17%,rgba(0,0,0,.5) 25%,rgba(0,0,0,.12) 33%,transparent 40%) !important;
    mask-image: linear-gradient(180deg,#000 0%,#000 9%,rgba(0,0,0,.9) 17%,rgba(0,0,0,.5) 25%,rgba(0,0,0,.12) 33%,transparent 40%) !important;
  }
}

@media (prefers-reduced-motion:reduce) {
  html body.gl-r53 .r53-site[data-site-production-root] .r83-principle-copy-frame,
  html body.gl-r53 .r53-site[data-site-production-root] .r83-principle-copy-frame * {
    animation: none !important;
    transition-duration: .01ms !important;
  }
}

/* R87.34 — terminal SITE route-hero authority.
   Every localized purpose hero is one responsive visual stage: media, wash,
   hierarchy and action share one grid cell. No device may move the image into
   a second row, append a ratio strip, expose a white media panel or create a
   hard two-tone seam inside the hero. */
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero {
  --r8734-hero-height:clamp(440px,36vw,560px);
  position:relative!important;
  min-height:var(--r8734-hero-height)!important;
  height:auto!important;
  overflow:hidden!important;
  background:#1b0910!important;
  color:#fff!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero > .r54-route-hero-grid {
  position:relative!important;
  isolation:isolate!important;
  display:grid!important;
  grid-template:minmax(var(--r8734-hero-height),auto)/minmax(0,1fr)!important;
  inline-size:min(100%,var(--r87-shell))!important;
  width:min(100%,var(--r87-shell))!important;
  max-inline-size:var(--r87-shell)!important;
  max-width:var(--r87-shell)!important;
  min-height:var(--r8734-hero-height)!important;
  margin-inline:auto!important;
  padding:0!important;
  overflow:hidden!important;
  background:#1b0910!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero > .r54-route-hero-grid::before {
  position:absolute!important;
  z-index:1!important;
  inset:0!important;
  display:block!important;
  background:linear-gradient(90deg,rgba(25,6,12,.98) 0%,rgba(47,5,17,.94) 34%,rgba(55,6,19,.66) 55%,rgba(32,7,13,.18) 78%,rgba(22,7,11,.08) 100%)!important;
  content:""!important;
  pointer-events:none!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-hero-media,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r54-route-hero-media-contain .r53-page-hero-media {
  position:absolute!important;
  z-index:0!important;
  inset:0!important;
  grid-area:1/1!important;
  display:block!important;
  inline-size:100%!important;
  width:100%!important;
  block-size:100%!important;
  height:100%!important;
  min-block-size:100%!important;
  min-height:100%!important;
  max-block-size:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  aspect-ratio:auto!important;
  background:#1b0910!important;
  overflow:hidden!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-hero-media::after {
  display:none!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-hero-media :is(.r54-route-hero-responsive-picture,.r53-page-hero-image),
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-hero-media > .r53-page-hero-image {
  display:block!important;
  inline-size:100%!important;
  width:100%!important;
  block-size:100%!important;
  height:100%!important;
  max-inline-size:none!important;
  max-width:none!important;
  max-block-size:none!important;
  max-height:none!important;
  margin:0!important;
  object-fit:cover!important;
  object-position:var(--r54-media-focus,70% 50%)!important;
  filter:none!important;
  -webkit-mask-image:none!important;
  mask-image:none!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero.r54-route-hero-media-contain .r53-page-hero-image {
  object-fit:contain!important;
  object-position:center!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r87-purpose-hero-copy {
  position:relative!important;
  z-index:2!important;
  grid-area:1/1!important;
  align-self:center!important;
  box-sizing:border-box!important;
  display:grid!important;
  align-content:center!important;
  gap:clamp(24px,2.4vw,38px)!important;
  inline-size:min(100%,720px)!important;
  width:min(100%,720px)!important;
  min-inline-size:0!important;
  min-width:0!important;
  margin:0!important;
  padding:clamp(52px,6.2vw,92px) clamp(28px,5.2vw,78px)!important;
  background:transparent!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > :is(.r54-route-hero-title,.r53-page-side) {
  box-sizing:border-box!important;
  inline-size:min(100%,620px)!important;
  width:min(100%,620px)!important;
  min-inline-size:0!important;
  min-width:0!important;
  max-inline-size:620px!important;
  max-width:620px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
  max-inline-size:13.5ch!important;
  max-width:13.5ch!important;
  margin:0!important;
  font-size:clamp(44px,5.1vw,76px)!important;
  line-height:.98!important;
  letter-spacing:-.038em!important;
  text-wrap:balance!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
  max-inline-size:12em!important;
  max-width:12em!important;
  font-size:clamp(42px,4.6vw,68px)!important;
  line-height:1.08!important;
  letter-spacing:-.035em!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}
html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
  line-break:strict!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side p {
  max-inline-size:39ch!important;
  max-width:39ch!important;
  margin:0!important;
  font-size:clamp(17px,1.35vw,21px)!important;
  line-height:1.55!important;
  text-wrap:pretty!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side p,
html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side p {
  word-break:keep-all!important;
}
html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side p {
  line-break:strict!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-route-hero-action {
  display:inline-flex!important;
  inline-size:fit-content!important;
  width:fit-content!important;
  min-inline-size:0!important;
  min-width:0!important;
  max-inline-size:100%!important;
  max-width:100%!important;
  margin-top:clamp(22px,2.2vw,32px)!important;
  padding:16px 20px!important;
  white-space:normal!important;
  text-align:left!important;
}

@media (max-width:900px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero {
    --r8734-hero-height:500px;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero > .r54-route-hero-grid::before {
    background:linear-gradient(90deg,rgba(25,6,12,.98) 0%,rgba(47,5,17,.93) 48%,rgba(55,6,19,.5) 73%,rgba(22,7,11,.14) 100%)!important;
  }
}

@media (max-width:620px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero {
    --r8734-hero-height:clamp(500px,142vw,620px);
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero > .r54-route-hero-grid {
    inline-size:100%!important;
    width:100%!important;
    max-inline-size:100%!important;
    max-width:100%!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero > .r54-route-hero-grid::before {
    background:linear-gradient(180deg,rgba(24,6,12,.93) 0%,rgba(45,5,17,.9) 50%,rgba(51,6,18,.97) 100%)!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-hero-media :is(.r54-route-hero-responsive-picture,.r53-page-hero-image),
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-hero-media > .r53-page-hero-image {
    object-position:var(--r54-media-focus,73% 50%)!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r87-purpose-hero-copy {
    align-self:stretch!important;
    align-content:center!important;
    gap:24px!important;
    inline-size:100%!important;
    width:100%!important;
    max-inline-size:100%!important;
    max-width:100%!important;
    padding:46px 24px 50px!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
    max-inline-size:12.5ch!important;
    max-width:12.5ch!important;
    font-size:clamp(36px,10.8vw,50px)!important;
    line-height:1.03!important;
    letter-spacing:-.04em!important;
    text-wrap:balance!important;
  }
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
    max-inline-size:9em!important;
    max-width:9em!important;
    font-size:clamp(34px,10vw,46px)!important;
    line-height:1.1!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r53-page-side p {
    max-inline-size:31ch!important;
    max-width:31ch!important;
    font-size:17px!important;
    line-height:1.52!important;
  }
}

/* R87.40b / R116 — terminal hero typography rail authority.
   Eyebrow, heading, supporting copy and action share one physical start edge. */
html body.gl-r53 .r53-site[data-site-production-root] #r53-main
  .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r54-route-hero-title {
  justify-items:start!important;
  text-align:start!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main
  .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r54-route-hero-title > * {
  justify-self:start!important;
  margin-inline:0!important;
  text-align:start!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main
  .r54-route-hero.r87-purpose-hero h1,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main
  .r54-route-hero.r87-purpose-hero h1[data-r78-hero-title] {
  margin-inline:0!important;
  text-align:start!important;
}

/* R87.40 / R116 — header and route-hero geometry contract.
   The companion terminal authority at the physical end of the stylesheet
   prevents later legacy media and phrase rules from regaining priority. The
   earlier append-only release history allowed legacy rules to regain cascade
   authority after a newer correction. Hidden navigation guidance must leave
   no layout track; hero title, support and action must remain in document flow;
   and the real office photograph must cover its stage without a blank panel. */
html body.gl-r53 .r53-site[data-site-production-root] .r87-nav-discovery {
  box-sizing:border-box!important;
  transition:height 180ms ease,opacity 140ms ease,visibility 140ms ease!important;
}
html body.gl-r53 .r53-site[data-site-production-root] .r87-nav-discovery.is-dismissed {
  display:block!important;
  height:0!important;
  min-height:0!important;
  max-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  opacity:0!important;
  visibility:hidden!important;
  overflow:hidden!important;
  pointer-events:none!important;
}
html body.gl-r53 .r53-site[data-site-production-root] .r87-nav-discovery.is-dismissed > .r53-shell {
  height:0!important;
  min-height:0!important;
  overflow:hidden!important;
}

html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero {
  min-height:clamp(500px,34vw,560px)!important;
  height:auto!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero > .r54-route-hero-grid {
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:minmax(clamp(500px,34vw,560px),auto)!important;
  align-items:stretch!important;
  min-height:clamp(500px,34vw,560px)!important;
  height:auto!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r87-purpose-hero-copy {
  position:relative!important;
  inset:auto!important;
  grid-area:1/1!important;
  align-self:stretch!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:max-content max-content!important;
  align-content:center!important;
  gap:clamp(22px,2vw,30px)!important;
  inline-size:min(100%,760px)!important;
  width:min(100%,760px)!important;
  max-inline-size:760px!important;
  max-width:760px!important;
  padding:clamp(42px,4.6vw,68px) clamp(28px,5.2vw,78px)!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r54-route-hero-title,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r53-page-side {
  position:static!important;
  inset:auto!important;
  grid-column:1!important;
  float:none!important;
  transform:none!important;
  align-self:auto!important;
  inline-size:min(100%,680px)!important;
  width:min(100%,680px)!important;
  max-inline-size:680px!important;
  max-width:680px!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r54-route-hero-title {
  grid-row:1!important;
  display:grid!important;
  justify-items:start!important;
  text-align:start!important;
  gap:clamp(16px,1.45vw,22px)!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r53-page-side {
  grid-row:2!important;
  display:grid!important;
  align-content:start!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1[data-r78-hero-title] {
  max-inline-size:15ch!important;
  max-width:15ch!important;
  margin-inline:0!important;
  text-align:start!important;
  font-size:clamp(44px,3.8vw,68px)!important;
  line-height:1!important;
  text-wrap:balance!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 .r87-hero-phrase {
  display:inline!important;
  inline-size:auto!important;
  width:auto!important;
  max-inline-size:none!important;
  max-width:none!important;
  white-space:normal!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
  max-inline-size:10.5em!important;
  max-width:10.5em!important;
  font-size:clamp(40px,3.55vw,62px)!important;
  line-height:1.1!important;
  word-break:keep-all!important;
}
html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 .r87-hero-phrase,
html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 .r87-hero-phrase {
  word-break:keep-all!important;
  line-break:strict!important;
}

html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero[data-r78-hero="route"].r53-page-hero-has-media .r53-page-hero-media,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero[data-r78-hero="route"].r53-page-hero-has-media.r54-route-hero-media-contain .r53-page-hero-media {
  position:absolute!important;
  z-index:0!important;
  inset:0!important;
  grid-area:auto!important;
  grid-column:auto!important;
  grid-row:auto!important;
  inline-size:100%!important;
  width:100%!important;
  block-size:100%!important;
  height:100%!important;
  min-block-size:100%!important;
  min-height:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  overflow:hidden!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero-contact.r54-route-hero-media-contain .r53-page-hero-media :is(.r54-route-hero-responsive-picture,.r53-page-hero-image),
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero-contact.r54-route-hero-media-contain .r53-page-hero-media > .r53-page-hero-image {
  inline-size:100%!important;
  width:100%!important;
  block-size:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:var(--r54-media-focus-wide,50% 52%)!important;
}

@media (max-width:620px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero {
    min-height:clamp(500px,138vw,590px)!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero > .r54-route-hero-grid {
    grid-template-rows:minmax(clamp(500px,138vw,590px),auto)!important;
    min-height:clamp(500px,138vw,590px)!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r87-purpose-hero-copy {
    gap:22px!important;
    inline-size:100%!important;
    width:100%!important;
    max-inline-size:100%!important;
    max-width:100%!important;
    padding:40px 24px 44px!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1[data-r78-hero-title] {
    max-inline-size:100%!important;
    max-width:100%!important;
    font-size:clamp(34px,9.8vw,44px)!important;
    line-height:1.04!important;
  }
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
    max-inline-size:10em!important;
    max-width:10em!important;
    font-size:clamp(32px,9.2vw,40px)!important;
    line-height:1.13!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero-contact.r54-route-hero-media-contain .r53-page-hero-media :is(.r54-route-hero-responsive-picture,.r53-page-hero-image),
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero-contact.r54-route-hero-media-contain .r53-page-hero-media > .r53-page-hero-image {
    object-position:var(--r54-media-focus-mobile,50% 52%)!important;
  }
}

@media (prefers-reduced-motion:reduce) {
  html body.gl-r53 .r53-site[data-site-production-root] .r87-nav-discovery {
    transition:none!important;
  }
}

/* R87.38 — native optical correction after the geometry gate.
   The admitted-media figure was still a positioned grid item. `inset:0`
   therefore resolved against the legacy title track and reduced a full hero
   photograph to a horizontal strip. Remove that stale grid placement so the
   shared absolute media layer fills the complete hero stage. The desktop
   header also reserves the measured wordmark width before navigation begins,
   and Contact keeps visible word spaces inside its protected firm-name atom. */
html body.gl-r53 .r53-site[data-site-production-root] #r53-main
  .r54-route-hero[data-r78-hero="route"].r53-page-hero-has-media .r53-page-hero-media {
  grid-area:auto!important;
  grid-column:auto!important;
  grid-row:auto!important;
}

@media (min-width:1180px) and (max-width:1599px) {
  html body.gl-r53 .r53-site[data-site-production-root] > .r53-header .r53-header-grid {
    grid-template-columns:minmax(300px,clamp(300px,22vw,320px)) minmax(470px,1fr) auto 48px minmax(126px,136px)!important;
    column-gap:clamp(6px,.8vw,12px)!important;
  }
}

@media (max-width:620px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main
    .r54-route-hero.r87-purpose-hero-contact h1 .r87-hero-phrase-firm-name {
    font-size:clamp(27px,8.45vw,33px)!important;
    letter-spacing:-.015em!important;
    word-spacing:.1em!important;
  }
}

/* R87.40 / R116 — physical terminal cascade authority.
   Never insert legacy hero geometry after this block. Its duplicated property
   surface is deliberately small: only the attributes previously proven to be
   regained by later R87.35/R87.35b rules are reasserted here. */
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero > .r54-route-hero-grid {
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:minmax(clamp(500px,34vw,560px),auto)!important;
  align-items:stretch!important;
  min-height:clamp(500px,34vw,560px)!important;
  height:auto!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r87-purpose-hero-copy {
  position:relative!important;
  inset:auto!important;
  grid-area:1/1!important;
  align-self:stretch!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:max-content max-content!important;
  align-content:center!important;
  gap:clamp(22px,2vw,30px)!important;
  inline-size:min(100%,760px)!important;
  width:min(100%,760px)!important;
  max-inline-size:760px!important;
  max-width:760px!important;
  padding:clamp(42px,4.6vw,68px) clamp(28px,5.2vw,78px)!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r54-route-hero-title,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r53-page-side {
  position:static!important;
  inset:auto!important;
  grid-column:1!important;
  float:none!important;
  transform:none!important;
  align-self:auto!important;
  inline-size:min(100%,680px)!important;
  width:min(100%,680px)!important;
  max-inline-size:680px!important;
  max-width:680px!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r54-route-hero-title {
  grid-row:1!important;
  display:grid!important;
  gap:clamp(16px,1.45vw,22px)!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r53-page-side {
  grid-row:2!important;
  display:grid!important;
  align-content:start!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1[data-r78-hero-title] {
  max-inline-size:15ch!important;
  max-width:15ch!important;
  font-size:clamp(44px,3.8vw,68px)!important;
  line-height:1!important;
  text-wrap:balance!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 .r87-hero-phrase {
  display:inline!important;
  inline-size:auto!important;
  width:auto!important;
  max-inline-size:none!important;
  max-width:none!important;
  white-space:normal!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
  max-inline-size:10.5em!important;
  max-width:10.5em!important;
  font-size:clamp(40px,3.55vw,62px)!important;
  line-height:1.1!important;
  word-break:keep-all!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero[data-r78-hero="route"].r53-page-hero-has-media .r53-page-hero-media,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero[data-r78-hero="route"].r53-page-hero-has-media.r54-route-hero-media-contain .r53-page-hero-media {
  position:absolute!important;
  z-index:0!important;
  inset:0!important;
  grid-area:auto!important;
  grid-column:auto!important;
  grid-row:auto!important;
  inline-size:100%!important;
  width:100%!important;
  block-size:100%!important;
  height:100%!important;
  min-block-size:100%!important;
  min-height:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  overflow:hidden!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero-contact.r54-route-hero-media-contain .r53-page-hero-media :is(.r54-route-hero-responsive-picture,.r53-page-hero-image),
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero-contact.r54-route-hero-media-contain .r53-page-hero-media > .r53-page-hero-image {
  inline-size:100%!important;
  width:100%!important;
  block-size:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:var(--r54-media-focus-wide,50% 52%)!important;
}

@media (max-width:620px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero > .r54-route-hero-grid {
    grid-template-rows:minmax(clamp(500px,138vw,590px),auto)!important;
    min-height:clamp(500px,138vw,590px)!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r87-purpose-hero-copy {
    gap:22px!important;
    inline-size:100%!important;
    width:100%!important;
    max-inline-size:100%!important;
    max-width:100%!important;
    padding:40px 24px 44px!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1[data-r78-hero-title] {
    max-inline-size:100%!important;
    max-width:100%!important;
    font-size:clamp(34px,9.8vw,44px)!important;
    line-height:1.04!important;
  }
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
    max-inline-size:10em!important;
    max-width:10em!important;
    font-size:clamp(32px,9.2vw,40px)!important;
    line-height:1.13!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero-contact.r54-route-hero-media-contain .r53-page-hero-media :is(.r54-route-hero-responsive-picture,.r53-page-hero-image),
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero-contact.r54-route-hero-media-contain .r53-page-hero-media > .r53-page-hero-image {
    object-position:var(--r54-media-focus-mobile,50% 52%)!important;
  }
}

html body.gl-r53 .r53-site[data-site-production-root] #r53-main
  .r54-route-hero + .r54-content-practice {
  padding-block-start:clamp(40px,4vw,56px)!important;
}

@media (max-width:350px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero {
    --r8734-hero-height:540px;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r87-purpose-hero-copy {
    padding-inline:20px!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
    font-size:clamp(32px,10.3vw,38px)!important;
  }
}

/* R87.35 — universal media-hero composition.
   R87.34 correctly unified the purpose-led routes, but practice-detail and
   source-led routes do not carry the purpose wrapper. Their legacy grid could
   therefore still place the title and image in separate rows. This terminal
   authority applies the same one-stage composition to every admitted-media
   route hero while keeping factual contain media uncropped. */
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media {
  --r8735-media-hero-height:clamp(420px,34vw,540px);
  position:relative!important;
  min-block-size:var(--r8735-media-hero-height)!important;
  min-height:var(--r8735-media-hero-height)!important;
  block-size:auto!important;
  height:auto!important;
  overflow:hidden!important;
  background:#1b0910!important;
  color:#fff!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media > .r54-route-hero-grid {
  position:relative!important;
  isolation:isolate!important;
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:auto auto!important;
  align-content:center!important;
  inline-size:min(100%,var(--r87-shell))!important;
  width:min(100%,var(--r87-shell))!important;
  max-inline-size:var(--r87-shell)!important;
  max-width:var(--r87-shell)!important;
  min-block-size:var(--r8735-media-hero-height)!important;
  min-height:var(--r8735-media-hero-height)!important;
  margin-inline:auto!important;
  padding:0!important;
  overflow:hidden!important;
  background:#1b0910!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media > .r54-route-hero-grid::before {
  position:absolute!important;
  z-index:1!important;
  inset:0!important;
  display:block!important;
  background:linear-gradient(90deg,rgba(24,6,12,.98) 0%,rgba(46,5,17,.94) 36%,rgba(52,6,19,.62) 58%,rgba(21,7,11,.12) 100%)!important;
  content:""!important;
  pointer-events:none!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media .r53-page-hero-media,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media.r54-route-hero-media-contain .r53-page-hero-media {
  position:absolute!important;
  z-index:0!important;
  inset:0!important;
  grid-area:1/1/-1/-1!important;
  display:block!important;
  box-sizing:border-box!important;
  inline-size:100%!important;
  width:100%!important;
  block-size:100%!important;
  height:100%!important;
  min-block-size:100%!important;
  min-height:100%!important;
  max-block-size:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  aspect-ratio:auto!important;
  background:#1b0910!important;
  overflow:hidden!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media .r53-page-hero-media::after {
  display:none!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media .r53-page-hero-media :is(.r54-route-hero-responsive-picture,.r53-page-hero-image),
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media .r53-page-hero-media > .r53-page-hero-image {
  display:block!important;
  inline-size:100%!important;
  width:100%!important;
  block-size:100%!important;
  height:100%!important;
  min-block-size:100%!important;
  min-height:100%!important;
  max-inline-size:none!important;
  max-width:none!important;
  max-block-size:none!important;
  max-height:none!important;
  margin:0!important;
  object-fit:cover!important;
  object-position:var(--r54-media-focus,70% 50%)!important;
  filter:none!important;
  -webkit-mask-image:none!important;
  mask-image:none!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media.r54-route-hero-media-contain .r53-page-hero-image {
  object-fit:contain!important;
  object-position:center!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media:not(.r87-purpose-hero) .r54-route-hero-title {
  position:relative!important;
  z-index:2!important;
  grid-column:1!important;
  grid-row:1!important;
  align-self:end!important;
  box-sizing:border-box!important;
  display:grid!important;
  align-content:end!important;
  gap:clamp(22px,2vw,32px)!important;
  inline-size:min(100%,720px)!important;
  width:min(100%,720px)!important;
  min-inline-size:0!important;
  min-width:0!important;
  margin:0!important;
  padding:0 clamp(28px,5.2vw,78px) clamp(14px,1.6vw,24px)!important;
  border:0!important;
  background:transparent!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media:not(.r87-purpose-hero) .r53-page-side {
  position:relative!important;
  z-index:2!important;
  grid-column:1!important;
  grid-row:2!important;
  align-self:start!important;
  box-sizing:border-box!important;
  inline-size:min(100%,720px)!important;
  width:min(100%,720px)!important;
  min-inline-size:0!important;
  min-width:0!important;
  margin:0!important;
  padding:0 clamp(28px,5.2vw,78px)!important;
  border:0!important;
  background:transparent!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media:not(.r87-purpose-hero) .r54-route-hero-title h1 {
  max-inline-size:13.5ch!important;
  max-width:13.5ch!important;
  margin:0!important;
  font-size:clamp(42px,4.8vw,72px)!important;
  line-height:1!important;
  letter-spacing:-.038em!important;
  text-wrap:balance!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media:not(.r87-purpose-hero) .r54-route-hero-title h1,
html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media:not(.r87-purpose-hero) .r54-route-hero-title h1 {
  max-inline-size:10em!important;
  max-width:10em!important;
  font-size:clamp(40px,4.4vw,66px)!important;
  line-height:1.08!important;
  letter-spacing:-.035em!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}
html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media:not(.r87-purpose-hero) .r54-route-hero-title h1 {
  line-break:strict!important;
}

@media (max-width:900px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media {
    --r8735-media-hero-height:500px;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media > .r54-route-hero-grid::before {
    background:linear-gradient(90deg,rgba(24,6,12,.97) 0%,rgba(46,5,17,.92) 52%,rgba(52,6,19,.48) 76%,rgba(21,7,11,.12) 100%)!important;
  }
}

@media (max-width:620px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media {
    --r8735-media-hero-height:clamp(480px,136vw,580px);
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media > .r54-route-hero-grid {
    inline-size:100%!important;
    width:100%!important;
    max-inline-size:100%!important;
    max-width:100%!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media > .r54-route-hero-grid::before {
    background:linear-gradient(180deg,rgba(24,6,12,.9) 0%,rgba(42,5,16,.76) 46%,rgba(48,5,18,.96) 100%)!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media .r53-page-hero-media :is(.r54-route-hero-responsive-picture,.r53-page-hero-image),
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media .r53-page-hero-media > .r53-page-hero-image {
    object-position:var(--r54-media-focus,73% 50%)!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media:not(.r87-purpose-hero) .r54-route-hero-title {
    gap:20px!important;
    inline-size:100%!important;
    width:100%!important;
    max-inline-size:100%!important;
    max-width:100%!important;
    padding:0 24px 14px!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media:not(.r87-purpose-hero) .r53-page-side {
    inline-size:100%!important;
    width:100%!important;
    max-inline-size:100%!important;
    max-width:100%!important;
    padding:0 24px!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media:not(.r87-purpose-hero) .r54-route-hero-title h1,
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media:not(.r87-purpose-hero) .r54-route-hero-title h1,
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media:not(.r87-purpose-hero) .r54-route-hero-title h1 {
    max-inline-size:12.5ch!important;
    max-width:12.5ch!important;
    font-size:clamp(34px,10vw,46px)!important;
    line-height:1.06!important;
    text-wrap:balance!important;
  }
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media:not(.r87-purpose-hero) .r54-route-hero-title h1,
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media:not(.r87-purpose-hero) .r54-route-hero-title h1 {
    max-inline-size:9em!important;
    max-width:9em!important;
    font-size:clamp(34px,9.6vw,44px)!important;
    line-height:1.12!important;
  }
}

@media (max-width:350px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media {
    --r8735-media-hero-height:520px;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media:not(.r87-purpose-hero) .r54-route-hero-title,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media:not(.r87-purpose-hero) .r53-page-side {
    padding-inline:20px!important;
  }
}

/* R87.35b — device focal maps and semantic copy are the final authority.
   Keep this after the universal admitted-media block so old wide-only focus
   declarations cannot make a locale appear to have no image on a phone. */
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero[data-r78-hero="route"] {
  position:relative!important;
  min-block-size:var(--r8735-media-hero-height,clamp(420px,34vw,540px))!important;
  min-height:var(--r8735-media-hero-height,clamp(420px,34vw,540px))!important;
  block-size:auto!important;
  height:auto!important;
  overflow:hidden!important;
  background:
    radial-gradient(circle at 82% 32%,rgba(134,18,39,.2),transparent 34%),
    linear-gradient(135deg,#19080e 0%,#300612 58%,#430817 100%)!important;
  color:#fff!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero[data-r78-hero="route"] > .r54-route-hero-grid {
  position:relative!important;
  isolation:isolate!important;
  box-sizing:border-box!important;
  min-block-size:inherit!important;
  min-height:inherit!important;
  overflow:hidden!important;
  background:transparent!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero[data-r78-hero="route"]:not(.r53-page-hero-has-media) > .r54-route-hero-grid::before {
  position:absolute!important;
  z-index:1!important;
  inset:0!important;
  display:block!important;
  background:
    radial-gradient(circle at 78% 26%,rgba(153,21,46,.26),transparent 31%),
    linear-gradient(112deg,rgba(21,6,11,.98),rgba(55,6,20,.92) 68%,rgba(72,9,25,.86))!important;
  content:""!important;
  pointer-events:none!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero[data-r78-hero="route"] .r53-page-hero-media :is(.r54-route-hero-responsive-picture,.r53-page-hero-image),
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero[data-r78-hero="route"] .r53-page-hero-media > .r53-page-hero-image {
  object-position:var(--r54-media-focus-wide,var(--r54-media-focus,70% 50%))!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 .r87-hero-phrase {
  display:inline-block!important;
  inline-size:auto!important;
  width:auto!important;
  max-inline-size:100%!important;
  max-width:100%!important;
  white-space:nowrap!important;
}

@media (min-width:621px) and (max-height:650px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero[data-r78-hero="route"] .r53-page-hero-media :is(.r54-route-hero-responsive-picture,.r53-page-hero-image),
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero[data-r78-hero="route"] .r53-page-hero-media > .r53-page-hero-image {
    object-position:var(--r54-media-focus-short,var(--r54-media-focus-wide,var(--r54-media-focus,70% 50%)))!important;
  }
}

@media (max-width:620px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero[data-r78-hero="route"] {
    --r8735-media-hero-height:clamp(480px,136vw,560px);
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero[data-r78-hero="route"] > .r54-route-hero-grid::before {
    background:
      linear-gradient(180deg,rgba(24,6,12,.76) 0%,rgba(42,5,16,.66) 44%,rgba(48,5,18,.91) 100%),
      linear-gradient(90deg,rgba(22,6,11,.7) 0%,rgba(22,6,11,.18) 100%)!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero[data-r78-hero="route"] .r53-page-hero-media :is(.r54-route-hero-responsive-picture,.r53-page-hero-image),
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero[data-r78-hero="route"] .r53-page-hero-media > .r53-page-hero-image {
    object-position:var(--r54-media-focus-mobile,var(--r54-media-focus-wide,var(--r54-media-focus,73% 50%)))!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
    max-inline-size:min(100%,12.5ch)!important;
    max-width:min(100%,12.5ch)!important;
    font-size:clamp(34px,10.6vw,46px)!important;
    line-height:1.04!important;
  }
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
    max-inline-size:min(100%,10em)!important;
    max-width:min(100%,10em)!important;
    font-size:clamp(30px,9.2vw,40px)!important;
    line-height:1.13!important;
  }
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
    max-inline-size:min(100%,10em)!important;
    max-width:min(100%,10em)!important;
    font-size:clamp(32px,9.6vw,42px)!important;
    line-height:1.12!important;
  }
}

@media (max-width:350px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero[data-r78-hero="route"] {
    --r8735-media-hero-height:500px;
  }
}

/* R87.36 — verified Google-review editorial hierarchy.
   The first recent review carries the primary reading job; supporting reviews
   remain quieter evidence, not an equal-card wall or a fabricated ranking. */
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-archive {
  padding-block:clamp(72px,8vw,124px)!important;
  background:#f6f1ea!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-intro {
  display:grid!important;
  grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr)!important;
  gap:clamp(38px,7vw,108px)!important;
  align-items:end!important;
  margin:0 0 clamp(42px,5vw,72px)!important;
  padding-block:0 clamp(32px,4vw,52px)!important;
  border-bottom:1px solid rgba(27,17,19,.2)!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-heading {
  display:grid!important;
  max-width:720px!important;
  justify-items:start!important;
  margin:0!important;
  text-align:left!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-heading .r53-eyebrow {
  justify-content:flex-start!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-heading h2 {
  max-width:12ch!important;
  margin:18px 0 0!important;
  font-size:clamp(46px,5.1vw,78px)!important;
  line-height:.98!important;
  letter-spacing:-.038em!important;
  text-wrap:balance!important;
}
html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-heading h2,
html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-heading h2 {
  max-width:10em!important;
  font-size:clamp(42px,4.4vw,66px)!important;
  line-height:1.08!important;
  letter-spacing:-.028em!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-intro-copy {
  max-width:62ch!important;
  margin:clamp(22px,2.4vw,34px) 0 0!important;
  color:#5c5152!important;
  font:400 clamp(17px,1.25vw,20px)/1.65 var(--r53-sans)!important;
  text-wrap:pretty!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-source {
  display:grid!important;
  gap:18px!important;
  align-content:end!important;
  min-height:220px!important;
  padding:clamp(26px,3vw,38px)!important;
  background:#1a1013!important;
  color:#fff!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-source-rating {
  display:grid!important;
  gap:12px!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-stars {
  display:inline-block!important;
  color:#d2aa63!important;
  font:700 16px/1 var(--r53-sans)!important;
  letter-spacing:.16em!important;
  white-space:nowrap!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-source strong {
  max-width:18ch!important;
  color:#fff!important;
  font:600 clamp(20px,1.7vw,25px)/1.25 var(--r53-serif)!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-source p {
  margin:0!important;
  color:rgba(255,255,255,.68)!important;
  font:600 12px/1.4 var(--r53-sans)!important;
  letter-spacing:.06em!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-source a {
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:20px!important;
  align-items:center!important;
  min-height:48px!important;
  padding-top:16px!important;
  border-top:1px solid rgba(255,255,255,.3)!important;
  color:#fff!important;
  font:700 13px/1.35 var(--r53-sans)!important;
  text-decoration:none!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-source a:hover,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-source a:focus-visible {
  color:#fff!important;
  border-top-color:#d2aa63!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-source a:focus-visible,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-mobile summary:focus-visible {
  outline:3px solid #d2aa63!important;
  outline-offset:4px!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-grid {
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:clamp(18px,2vw,28px)!important;
  padding:0!important;
  background:transparent!important;
  overflow:visible!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card {
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr) auto!important;
  gap:clamp(22px,2.5vw,34px)!important;
  min-width:0!important;
  min-height:clamp(360px,28vw,470px)!important;
  height:100%!important;
  padding:clamp(28px,3.2vw,46px)!important;
  border:1px solid rgba(27,17,19,.14)!important;
  background:#fff!important;
  color:#1b1113!important;
  box-shadow:none!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card-featured {
  grid-column:1 / -1!important;
  min-height:0!important;
  padding:clamp(38px,5vw,74px)!important;
  background:linear-gradient(135deg,#27050d 0%,#65091d 100%)!important;
  color:#fff!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card-meta {
  display:flex!important;
  gap:18px!important;
  align-items:center!important;
  justify-content:space-between!important;
  min-width:0!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card-meta time {
  color:#7a6f70!important;
  font:700 11px/1.4 var(--r53-sans)!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card-featured .r54-testimonial-card-meta time {
  color:rgba(255,255,255,.7)!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card blockquote {
  margin:0!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card blockquote::before {
  display:none!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card blockquote p {
  max-width:54ch!important;
  margin:0!important;
  color:inherit!important;
  font:400 clamp(19px,1.55vw,23px)/1.6 var(--r53-serif)!important;
  text-wrap:pretty!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card-featured blockquote p {
  max-width:46ch!important;
  font-size:clamp(25px,2.5vw,38px)!important;
  line-height:1.42!important;
  letter-spacing:-.018em!important;
}
html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card blockquote p,
html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card blockquote p {
  line-height:1.72!important;
  letter-spacing:-.01em!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card footer {
  display:block!important;
  margin:0!important;
  padding-top:20px!important;
  border-top:1px solid rgba(27,17,19,.16)!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card-featured footer {
  border-top-color:rgba(255,255,255,.28)!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card cite {
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:8px 20px!important;
  align-items:baseline!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card cite strong {
  min-width:0!important;
  color:inherit!important;
  font:600 clamp(19px,1.5vw,23px)/1.2 var(--r53-serif)!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card cite small {
  color:#7a6f70!important;
  font:700 11px/1.4 var(--r53-sans)!important;
  letter-spacing:.07em!important;
  text-transform:uppercase!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card-featured cite small {
  color:rgba(255,255,255,.7)!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card cite .r54-testimonial-translation {
  grid-column:1 / -1!important;
  text-transform:none!important;
}

@media (max-width:900px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-intro {
    grid-template-columns:minmax(0,1fr)!important;
    gap:28px!important;
    align-items:start!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-source {
    min-height:0!important;
  }
}

@media (max-width:760px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-archive {
    padding-block:64px!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-heading h2 {
    max-width:12ch!important;
    font-size:clamp(38px,11.2vw,50px)!important;
    line-height:1.02!important;
  }
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-heading h2,
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-heading h2 {
    max-width:10em!important;
    font-size:clamp(34px,9.8vw,44px)!important;
    line-height:1.12!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-grid {
    grid-template-columns:minmax(0,1fr)!important;
    gap:16px!important;
    width:100%!important;
    margin:0!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card-featured {
    grid-column:auto!important;
    min-height:0!important;
    padding:28px 22px!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-full {
    display:none!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-mobile {
    display:block!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-mobile summary {
    cursor:pointer!important;
    list-style:none!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-mobile summary::-webkit-details-marker {
    display:none!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-mobile summary span,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-mobile > p {
    display:block!important;
    max-width:100%!important;
    font:400 19px/1.65 var(--r53-serif)!important;
    text-wrap:pretty!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card-featured .r54-testimonial-mobile summary span,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card-featured .r54-testimonial-mobile > p {
    color:#fff!important;
    font-size:clamp(22px,6.2vw,27px)!important;
    line-height:1.5!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-mobile summary strong {
    display:inline-flex!important;
    margin-top:20px!important;
    padding-bottom:4px!important;
    border-bottom:1px solid currentColor!important;
    color:inherit!important;
    font:700 12px/1.35 var(--r53-sans)!important;
    letter-spacing:.07em!important;
    text-transform:none!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-mobile[open] summary span {
    display:none!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-mobile[open] summary strong {
    margin-bottom:20px!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card cite {
    grid-template-columns:minmax(0,1fr)!important;
  }
}

@media (max-width:360px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card-featured,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-source {
    padding-inline:20px!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-testimonial-card-meta {
    gap:10px!important;
  }
}

/* R87.37 — SITE shared geometry correction.
   Compact, no-media functional heroes are sized by their real copy instead of
   inheriting the media-stage minimum. Mobile purpose titles retain approved
   phrase atoms at a 35px floor; the protected firm name scales as one smaller
   atom so Contact never paints outside the viewport. This block is terminal. */
html body.gl-r53 .r53-site[data-site-production-root] #r53-main
  .r54-route-hero[data-r78-hero-density="compact"]:not(.r53-page-hero-has-media) {
  min-block-size:0!important;
  min-height:0!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main
  .r54-route-hero[data-r78-hero-density="compact"]:not(.r53-page-hero-has-media) > .r54-route-hero-grid {
  min-block-size:0!important;
  min-height:0!important;
}

@media (max-width:620px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1[data-r78-hero-title],
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1[data-r78-hero-title],
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1[data-r78-hero-title],
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media:not(.r87-purpose-hero) .r54-route-hero-title h1[data-r78-hero-title],
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media:not(.r87-purpose-hero) .r54-route-hero-title h1[data-r78-hero-title],
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r53-page-hero-has-media:not(.r87-purpose-hero) .r54-route-hero-title h1[data-r78-hero-title] {
    font-size:clamp(35px,10.6vw,46px)!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main
    .r54-route-hero.r87-purpose-hero-contact h1 .r87-hero-phrase-firm-name {
    display:inline-block!important;
    max-inline-size:100%!important;
    font-size:clamp(28px,8.8vw,34px)!important;
    letter-spacing:-.045em!important;
    white-space:nowrap!important;
  }
}

/* R87.40 / R116 — DO NOT APPEND LEGACY HERO GEOMETRY AFTER THIS MARKER. */
html body.gl-r53 .r53-site[data-site-production-root] #r53-main
  .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r54-route-hero-title {
  grid-template-columns:minmax(0,1fr)!important;
  justify-content:start!important;
  justify-items:start!important;
  text-align:start!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main
  .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r54-route-hero-title > * {
  grid-column:1!important;
  justify-self:start!important;
  margin-inline:0!important;
  text-align:start!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main
  .r54-route-hero.r87-purpose-hero h1,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main
  .r54-route-hero.r87-purpose-hero h1[data-r78-hero-title] {
  margin-inline:0!important;
  text-align:start!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero > .r54-route-hero-grid {
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:minmax(clamp(500px,34vw,560px),auto)!important;
  align-items:stretch!important;
  min-height:clamp(500px,34vw,560px)!important;
  height:auto!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r87-purpose-hero-copy {
  position:relative!important;
  inset:auto!important;
  grid-area:1/1!important;
  align-self:stretch!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:max-content max-content!important;
  align-content:center!important;
  gap:clamp(22px,2vw,30px)!important;
  inline-size:min(100%,760px)!important;
  width:min(100%,760px)!important;
  max-inline-size:760px!important;
  max-width:760px!important;
  padding:clamp(42px,4.6vw,68px) clamp(28px,5.2vw,78px)!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r54-route-hero-title,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r53-page-side {
  position:static!important;
  inset:auto!important;
  grid-column:1!important;
  float:none!important;
  transform:none!important;
  align-self:auto!important;
  inline-size:min(100%,680px)!important;
  width:min(100%,680px)!important;
  max-inline-size:680px!important;
  max-width:680px!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r54-route-hero-title {
  grid-row:1!important;
  display:grid!important;
  gap:clamp(16px,1.45vw,22px)!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy > .r53-page-side {
  grid-row:2!important;
  display:grid!important;
  align-content:start!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1[data-r78-hero-title] {
  max-inline-size:15ch!important;
  max-width:15ch!important;
  font-size:clamp(44px,3.8vw,68px)!important;
  line-height:1!important;
  text-wrap:balance!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 .r87-hero-phrase {
  display:inline!important;
  inline-size:auto!important;
  width:auto!important;
  max-inline-size:none!important;
  max-width:none!important;
  white-space:normal!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
  max-inline-size:10.5em!important;
  max-width:10.5em!important;
  font-size:clamp(40px,3.55vw,62px)!important;
  line-height:1.1!important;
  word-break:keep-all!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero[data-r78-hero="route"].r53-page-hero-has-media .r53-page-hero-media,
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero[data-r78-hero="route"].r53-page-hero-has-media.r54-route-hero-media-contain .r53-page-hero-media {
  position:absolute!important;
  z-index:0!important;
  inset:0!important;
  grid-area:auto!important;
  grid-column:auto!important;
  grid-row:auto!important;
  inline-size:100%!important;
  width:100%!important;
  block-size:100%!important;
  height:100%!important;
  min-block-size:100%!important;
  min-height:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  overflow:hidden!important;
}
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero-contact.r54-route-hero-media-contain .r53-page-hero-media :is(.r54-route-hero-responsive-picture,.r53-page-hero-image),
html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero-contact.r54-route-hero-media-contain .r53-page-hero-media > .r53-page-hero-image {
  inline-size:100%!important;
  width:100%!important;
  block-size:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:var(--r54-media-focus-wide,50% 52%)!important;
}

@media (max-width:620px) {
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero > .r54-route-hero-grid {
    grid-template-rows:minmax(clamp(500px,138vw,590px),auto)!important;
    min-height:clamp(500px,138vw,590px)!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero .r87-purpose-hero-copy,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero:not(.r53-page-hero-has-media) .r87-purpose-hero-copy {
    gap:22px!important;
    inline-size:100%!important;
    width:100%!important;
    max-inline-size:100%!important;
    max-width:100%!important;
    padding:40px 24px 44px!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1[data-r78-hero-title] {
    max-inline-size:100%!important;
    max-width:100%!important;
    font-size:clamp(34px,9.8vw,44px)!important;
    line-height:1.04!important;
  }
  html[lang^="ko"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1,
  html[lang^="zh"] body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero h1 {
    max-inline-size:10em!important;
    max-width:10em!important;
    font-size:clamp(32px,9.2vw,40px)!important;
    line-height:1.13!important;
  }
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero-contact.r54-route-hero-media-contain .r53-page-hero-media :is(.r54-route-hero-responsive-picture,.r53-page-hero-image),
  html body.gl-r53 .r53-site[data-site-production-root] #r53-main .r54-route-hero.r87-purpose-hero-contact.r54-route-hero-media-contain .r53-page-hero-media > .r53-page-hero-image {
    object-position:var(--r54-media-focus-mobile,50% 52%)!important;
  }
}
