@charset "UTF-8";
/*
  Responsive refinement layer
  ---------------------------
  Load after /mobile-polish.css when the shared layout is next edited.
  This file intentionally leaves the 78px/72px brand lockup, its three fitted
  lines, the reference contact rail, and all navigation JavaScript untouched.
*/

/* iOS/Chrome should not zoom legitimate text-entry controls on focus. */
.contact-form .field input:not([type="checkbox"]),
.contact-form .field select,
.contact-form .field textarea,
.faq-search input,
.faq-controls input,
.faq-controls select,
.online-chat-field input,
.online-chat-field textarea {
  font-size: 16px;
}

/* Protect entry controls in current and future language routes without hiding overflow. */
.contact-form .field,
.faq-controls > *,
.online-chat-field,
.online-chat-field-grid > * {
  min-inline-size: 0;
}

.contact-form .field input,
.contact-form .field select,
.contact-form .field textarea,
.faq-search input,
.faq-controls input,
.faq-controls select,
.online-chat-field input,
.online-chat-field textarea {
  max-inline-size: 100%;
}

/* Main guide copy retains a readable 16px baseline; citation and legal metadata remain scoped. */
.prose > .chapter > p,
.prose > .chapter > ul:not(.source-list) > li,
.prose > .chapter > ol > li,
main .card > p {
  font-size: 16px;
}

/* Wide data stays scrollable within its own region rather than forcing page-wide overflow. */
.table-wrap,
.contact-dialog-table-wrap {
  max-inline-size: 100%;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

.table-wrap > table,
.contact-dialog-table-wrap > table {
  margin-inline: 0;
}

/* Future three-link language control: desktop stays compact; handset menus give every link 44px. */
.site-header .locale-switch {
  display: flex;
  min-inline-size: 0;
  align-items: center;
  gap: 4px;
}

.site-header .locale-switch a {
  overflow-wrap: anywhere;
}

@media (min-width: 1201px) {
  .site-header .primary-nav .locale-switch {
    flex: 0 0 auto;
    margin-left: 4px;
    padding-left: 10px;
    border-left: 1px solid rgba(21, 62, 53, .18);
  }
}

@media (max-width: 1200px) {
  .site-header .primary-nav .locale-switch {
    display: flex;
    gap: 8px;
    justify-content: flex-start;
    margin: 0 0 12px;
    padding: 0 0 12px;
    border-bottom: 1px solid var(--rule);
  }

  .site-header .primary-nav .locale-switch a {
    display: inline-flex;
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 8px 10px;
  }
}

/* The fixed left-side message entry must not obscure the final footer links on phones. */
@media (max-width: 639px) {
  .site-footer.core-footer .core-footer-bottom {
    padding-bottom: max(88px, calc(68px + env(safe-area-inset-bottom)));
  }

  .online-chat-launcher {
    max-inline-size: calc(100vw - 24px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-header .locale-switch a {
    scroll-behavior: auto;
  }
}
