/* R69 — full-production interface precision.
   The final layer owns action affordances, functional icons, word wrapping,
   contact geometry and disclosure controls for every locale and viewport.
   It deliberately removes legacy pseudo-glyphs so each action renders one
   project-owned SVG and one clear label. */

:root {
  --r69-control: 52px;
  --r69-touch: 44px;
  --r69-icon: 20px;
  --r69-accent: #811318;
  --r69-accent-deep: #4d0b0f;
  --r69-rule: #d9d4d0;
  --r69-rule-soft: #e8e4e1;
}

/* One destination label, one explicit SVG arrow. */
html body.gl-r53 .r53-site.r60-surface :where(
  .r53-button,
  .r53-header-contact,
  .r53-arrow-link,
  .r53-contact-link,
  .r54-integrated-inquiry-link,
  .r54-practice-inquiry-link,
  .r66-footer-contact-rule
)::after,
html body.gl-r53 .r53-site.r60-surface .r62-external-arrow::before {
  display: none !important;
  content: none !important;
}

html body.gl-r53 .r53-site.r60-surface :where(
  .r53-button,
  .r53-header-contact,
  .r53-contact-link,
  .r54-integrated-inquiry-link,
  .r54-practice-inquiry-link
) {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) var(--r69-icon) !important;
  gap: 16px !important;
  align-items: center !important;
  min-height: var(--r69-control) !important;
  padding: 13px 18px !important;
  line-height: 1.25 !important;
}

html body.gl-r53 .r53-site.r60-surface .r53-arrow-link {
  display: inline-grid !important;
  grid-template-columns: minmax(0, auto) var(--r69-icon) !important;
  gap: 12px !important;
  align-items: center !important;
  min-height: var(--r69-touch) !important;
}

html body.gl-r53 .r53-site.r60-surface :where(
  .r53-button,
  .r53-header-contact,
  .r53-arrow-link,
  .r53-contact-link,
  .r54-integrated-inquiry-link,
  .r54-practice-inquiry-link,
  .r66-footer-contact-rule
) > .r67-action-icon {
  display: grid !important;
  width: var(--r69-icon) !important;
  height: var(--r69-icon) !important;
  place-items: center !important;
  justify-self: end !important;
}

html body.gl-r53 .r53-site.r60-surface :where(
  .r53-button,
  .r53-header-contact,
  .r53-arrow-link,
  .r53-contact-link,
  .r54-integrated-inquiry-link,
  .r54-practice-inquiry-link,
  .r66-footer-contact-rule
) > .r67-action-icon .r67-icon {
  width: 18px !important;
  height: 18px !important;
}

html body.gl-r53 .r53-site.r60-surface :where(
  .r53-button,
  .r53-header-contact,
  .r53-arrow-link,
  .r53-contact-link,
  .r54-integrated-inquiry-link,
  .r54-practice-inquiry-link,
  .r66-footer-contact-rule
):is(:hover,:focus-visible) > .r67-action-icon {
  transform: translateX(3px) !important;
}

html body.gl-r53 .r53-site.r60-surface .r53-header-contact {
  grid-template-columns: minmax(0, auto) 18px !important;
  min-width: 152px !important;
  white-space: nowrap;
}

.r60-surface .r53-footer-top > .r66-footer-contact-rule {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 20px !important;
  gap: 18px !important;
  min-height: 52px !important;
  align-items: center !important;
  padding: 0 0 13px !important;
}

.r60-surface .r62-footer-social .r62-external-arrow {
  display: grid !important;
  width: 20px !important;
  height: 20px !important;
  place-items: center !important;
  color: inherit !important;
  transform: rotate(-45deg);
}

.r60-surface .r62-footer-social .r62-external-arrow .r67-icon {
  width: 15px !important;
  height: 15px !important;
}

/* Semantic wrapping: phrases remain intact where the script supports it. */
.r60-surface main :where(p,li,dd) {
  overflow-wrap: break-word !important;
  word-break: normal;
}

.r60-surface main :where(h1,h2,h3,h4,.r53-deck,.r54-person-role) {
  text-wrap: balance;
}

html:lang(ko) .r53-site main :where(h1,h2,h3,h4,p,li,dd,.r53-deck),
html:lang(ko-KR) .r53-site main :where(h1,h2,h3,h4,p,li,dd,.r53-deck) {
  word-break: keep-all !important;
  overflow-wrap: normal !important;
}

html:lang(zh) .r53-site main :where(h1,h2,h3,h4,p,li,dd,.r53-deck),
html:lang(zh-CN) .r53-site main :where(h1,h2,h3,h4,p,li,dd,.r53-deck) {
  line-break: strict;
  word-break: normal !important;
}

.r60-surface :where(a[href^="mailto:"],a[href^="tel:"]) {
  overflow-wrap: anywhere;
}

/* Office facts: title and information share one axis, then form a balanced
   factual band. No detached left title or unused middle void. */
html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] {
  padding-block: var(--r68-section-tight) !important;
}

html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] .r53-office-record-grid,
html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] .r53-office-record-copy {
  display: block !important;
  width: min(calc(100% - 2 * var(--r68-edge)), var(--r68-content)) !important;
  max-width: var(--r68-content) !important;
  margin-inline: auto !important;
  padding: 0 !important;
}

html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] .r53-section-heading {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 0 24px !important;
  border-bottom: 1px solid var(--r69-rule) !important;
}

html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] .r53-section-heading h2 {
  max-width: 12ch !important;
  margin: 0 !important;
  font-size: clamp(42px, 4vw, 56px) !important;
}

html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] .r53-fact-grid {
  display: grid !important;
  grid-template-columns: 1.45fr 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(--r69-rule) !important;
}

html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] .r53-fact-grid > div,
html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] .r53-fact-grid > div:nth-child(odd) {
  display: grid !important;
  grid-template-columns: 30px minmax(0, 1fr) !important;
  gap: 12px !important;
  align-content: start !important;
  min-height: 132px !important;
  padding: 24px 20px !important;
  border: 0 !important;
  border-right: 1px solid var(--r69-rule-soft) !important;
  border-bottom: 1px solid var(--r69-rule) !important;
  text-align: left !important;
}

html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] .r53-fact-grid > div:first-child {
  padding-left: 0 !important;
}

html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] .r53-fact-grid > div:last-child {
  padding-right: 0 !important;
  border-right: 0 !important;
}

html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] .r67-office-fact-icon {
  width: 30px !important;
  height: 30px !important;
  color: var(--r69-accent) !important;
}

html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] dt {
  margin-bottom: 9px !important;
  color: var(--r69-accent) !important;
}

html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] dd {
  margin: 0 !important;
  font-size: 15px !important;
  line-height: 1.52 !important;
}

/* Contact form information hierarchy never repeats the page title. */
html body.gl-r53 .r53-site.r60-surface .r54-contact-workflow-has-form .r53-form-label {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: space-between !important;
  gap: 8px 18px !important;
  min-height: var(--r69-touch) !important;
  padding: 0 0 14px !important;
  border-bottom: 1px solid var(--r69-rule) !important;
}

html body.gl-r53 .r53-site.r60-surface .r54-contact-workflow-has-form .r53-form-label > span:first-child {
  color: var(--r67-ink) !important;
  font: 650 13px/1.4 var(--r53-sans) !important;
  letter-spacing: .08em !important;
  text-transform: uppercase;
}

html body.gl-r53 .r53-site.r60-surface .r54-contact-workflow-has-form .r53-form-label > span:last-child {
  color: var(--r67-muted) !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
}

/* Native FAQ disclosure: the plus/minus has a fixed visible control frame. */
html body.gl-r53 .r53-site.r60-surface .r53-faq summary {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 38px !important;
  gap: 20px !important;
  align-items: center !important;
  min-height: 86px !important;
  padding: 22px 0 !important;
  list-style: none !important;
}

html body.gl-r53 .r53-site.r60-surface .r53-faq summary::before {
  position: relative !important;
  inset: auto !important;
  grid-column: 2 !important;
  grid-row: 1 !important;
  display: block !important;
  width: 38px !important;
  height: 38px !important;
  border: 1px solid var(--r69-rule) !important;
  border-radius: 50% !important;
  background:
    linear-gradient(currentColor,currentColor) center / 14px 1px no-repeat !important;
  color: var(--r69-accent) !important;
  content: "" !important;
  transform: none !important;
}

html body.gl-r53 .r53-site.r60-surface .r53-faq summary::after {
  position: relative !important;
  inset: auto !important;
  z-index: 2 !important;
  grid-column: 2 !important;
  grid-row: 1 !important;
  justify-self: center !important;
  display: block !important;
  width: 1px !important;
  height: 14px !important;
  background: var(--r69-accent) !important;
  content: "" !important;
  transform: scaleY(1) !important;
  transition: transform .2s ease !important;
}

html body.gl-r53 .r53-site.r60-surface .r53-faq details[open] summary::after {
  transform: scaleY(0) !important;
}

html body.gl-r53 .r53-site.r60-surface .r53-faq summary > strong {
  grid-column: 1 !important;
  grid-row: 1 !important;
  min-width: 0;
}

/* Held functional routes have the same direct-contact control language as the
   rest of the site, but remain explicitly non-submitting. */
.r60-functional main .r54-functional {
  padding-block: var(--r68-section-tight) !important;
}

.r60-functional main .r54-functional-shell {
  display: block !important;
  width: min(calc(100% - 2 * var(--r68-edge)), var(--r68-content)) !important;
  max-width: var(--r68-content) !important;
  margin-inline: auto !important;
  border: 1px solid var(--r69-rule) !important;
  background: #fff !important;
}

.r60-functional main .r54-functional-surface {
  display: grid !important;
  grid-template-columns: minmax(0, .58fr) minmax(320px, .42fr) !important;
  gap: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
}

.r60-functional main .r54-functional-availability {
  gap: 16px !important;
  padding: clamp(34px, 4vw, 52px) !important;
}

.r60-functional main .r54-functional-availability h2 {
  max-width: 15ch !important;
  margin: 0 !important;
  font-size: clamp(34px, 3.5vw, 48px) !important;
  line-height: 1.04 !important;
  letter-spacing: -.025em !important;
}

.r60-functional main .r54-functional-contact-links {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-left: 1px solid var(--r69-rule) !important;
}

.r60-functional main .r54-functional-contact-link {
  display: grid !important;
  grid-template-columns: 26px minmax(0, 1fr) !important;
  gap: 14px !important;
  align-items: center !important;
  min-height: 72px !important;
  padding: 18px 24px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--r69-rule) !important;
  color: var(--r67-ink) !important;
  font-weight: 650 !important;
  text-decoration: none !important;
}

.r60-functional main .r54-functional-contact-link:last-child { border-bottom: 0 !important; }
.r60-functional main .r54-functional-contact-link-primary { background: var(--r69-accent) !important; color: #fff !important; }
.r60-functional main .r54-functional-contact-link:is(:hover,:focus-visible) { background: var(--r67-paper) !important; }
.r60-functional main .r54-functional-contact-link-primary:is(:hover,:focus-visible) { background: var(--r69-accent-deep) !important; }
.r60-functional main .r54-functional-contact-icon { display: grid; width: 24px; height: 24px; place-items: center; }
.r60-functional main .r54-functional-contact-icon .r67-icon { width: 19px; height: 19px; }

/* Media titles own their line above a stable player, with no detached footer. */
.r60-surface main .r54-source-video-grid {
  gap: clamp(28px, 4vw, 44px) !important;
}

.r60-surface main .r54-source-video-card {
  display: grid !important;
  gap: 14px !important;
}

.r60-surface main .r54-source-video-title {
  margin: 0 !important;
  padding: 0 0 13px !important;
  border-bottom: 1px solid var(--r69-rule) !important;
}

.r60-surface main .r54-source-video-card video {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  background: #100d0e !important;
}

@media (max-width: 980px) {
  html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] .r53-fact-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] .r53-fact-grid > div,
  html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] .r53-fact-grid > div:nth-child(odd) {
    padding-inline: 18px !important;
  }

  html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] .r53-fact-grid > div:nth-child(odd) {
    padding-left: 0 !important;
  }

  html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] .r53-fact-grid > div:nth-child(even) {
    padding-right: 0 !important;
    border-right: 0 !important;
  }

  .r60-functional main .r54-functional-surface {
    grid-template-columns: 1fr !important;
  }

  .r60-functional main .r54-functional-contact-links {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    border-top: 1px solid var(--r69-rule) !important;
    border-left: 0 !important;
  }

  .r60-functional main .r54-functional-contact-link {
    min-height: 82px !important;
    border-right: 1px solid var(--r69-rule) !important;
    border-bottom: 0 !important;
  }

  .r60-functional main .r54-functional-contact-link:last-child { border-right: 0 !important; }
}

@media (max-width: 820px) {
  html body.gl-r53 .r53-site.r60-surface .r53-header-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto auto !important;
    gap: 8px !important;
    align-items: center !important;
    min-height: 70px !important;
  }

  html body.gl-r53 .r53-site.r60-surface .r53-brand {
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
  }

  html body.gl-r53 .r53-site.r60-surface .r53-languages {
    grid-column: 2 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
  }

  html body.gl-r53 .r53-site.r60-surface .r53-menu {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end !important;
  }

  html body.gl-r53 .r53-site.r60-surface .r53-header-contact {
    display: none !important;
  }
}

@media (max-width: 620px) {
  :root { --r69-control: 54px; }

  html body.gl-r53 .r53-site.r60-surface :where(
    .r53-button,
    .r53-contact-link,
    .r54-integrated-inquiry-link,
    .r54-practice-inquiry-link
  ) {
    width: 100% !important;
  }

  html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] {
    padding-block: 42px !important;
  }

  html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] .r53-section-heading {
    padding-bottom: 18px !important;
  }

  html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] .r53-section-heading h2 {
    font-size: clamp(36px, 10vw, 42px) !important;
  }

  html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] .r53-fact-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] .r53-fact-grid > div,
  html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] .r53-fact-grid > div:nth-child(odd),
  html body.gl-r53 .r53-site.r60-surface.r60-contact main [data-r53-component="contact.coordinates"] .r53-fact-grid > div:nth-child(even) {
    min-height: 0 !important;
    padding: 18px 0 !important;
    border-right: 0 !important;
  }

  html body.gl-r53 .r53-site.r60-surface .r53-faq summary {
    grid-template-columns: minmax(0, 1fr) 36px !important;
    gap: 16px !important;
    min-height: 78px !important;
    padding: 19px 0 !important;
  }

  html body.gl-r53 .r53-site.r60-surface .r53-faq summary::before {
    width: 36px !important;
    height: 36px !important;
  }

  .r60-functional main .r54-functional-surface {
    padding: 0 !important;
  }

  .r60-functional main .r54-functional-availability {
    padding: 28px 22px !important;
  }

  .r60-functional main .r54-functional-contact-links {
    grid-template-columns: 1fr !important;
  }

  .r60-functional main .r54-functional-contact-link {
    min-height: 64px !important;
    padding: 15px 20px !important;
    border-right: 0 !important;
    border-bottom: 1px solid var(--r69-rule) !important;
  }

  .r60-functional main .r54-functional-contact-link:last-child { border-bottom: 0 !important; }
  html body.gl-r53 .r53-site.r60-surface .r54-contact-workflow-has-form .r53-form-label {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 5px !important;
    align-items: start !important;
  }

  html body.gl-r53 .r53-site.r60-surface .r53-header-grid {
    width: min(calc(100% - 28px), var(--r68-header-shell)) !important;
  }

  html body.gl-r53 .r53-site.r60-surface .r53-languages {
    gap: 0 !important;
  }

  html body.gl-r53 .r53-site.r60-surface .r53-languages :where(a,span) {
    min-width: 34px !important;
    min-height: 44px !important;
    padding-inline: 6px !important;
    font-size: 9px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html body.gl-r53 .r53-site.r60-surface :where(
    .r53-button,
    .r53-header-contact,
    .r53-arrow-link,
    .r53-contact-link,
    .r54-integrated-inquiry-link,
    .r54-practice-inquiry-link,
    .r66-footer-contact-rule
  ) > .r67-action-icon,
  html body.gl-r53 .r53-site.r60-surface .r53-faq summary::after {
    transition: none !important;
  }
}
