/*
  CN2G multilingual fit layer.
  This file is intentionally loaded after the app CSS so translated text can
  wrap, shrink, and keep the page inside the viewport without changing markup.
*/

html.cn2g-i18n-active,
html.cn2g-i18n-active body {
  max-width: 100%;
  overflow-x: clip !important;
  text-size-adjust: 100%;
}

html.cn2g-i18n-active body {
  min-width: 0 !important;
}

html.cn2g-i18n-active :where(*, *::before, *::after) {
  box-sizing: border-box;
}

html.cn2g-i18n-active :where(#root, main, section, article, aside, header, footer, nav, div, form, fieldset, ul, ol, li) {
  min-width: 0 !important;
}

html.cn2g-i18n-active :where(img, picture, video, canvas, svg) {
  max-width: 100%;
}

html.cn2g-i18n-active :where(h1, h2, h3, h4, h5, h6, p, li, dt, dd, label, span, strong, small, em, b, a, button, th, td, input, textarea, select) {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
  hyphens: auto;
  text-wrap: pretty;
}

html.cn2g-i18n-active :where(figcaption, caption) {
  max-width: 100%;
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: normal;
  line-height: 1.16;
  text-align: center;
}

html.cn2g-i18n-active :where(h1, h2, h3, h4, .section-intro h2, .hero-copy h1, .page-hero h1) {
  line-height: 1.12;
  text-wrap: balance;
}

html.cn2g-i18n-active :where(button, a, .primary-button, .secondary-button, .ghost-button, .header-cta, .member-chip, .language-select) {
  min-width: 0 !important;
  max-width: 100%;
}

html.cn2g-i18n-active :where(.primary-button, .secondary-button, .ghost-button, .header-cta, .member-chip, .language-select, .shop-filter-tabs button, .hero-channel-tabs button, .hero-weight-presets button) {
  white-space: normal !important;
  text-align: center;
  line-height: 1.18;
}

html.cn2g-i18n-active :where(.site-header, .header-actions, .nav, .hero-actions, .contact-actions, .support-contact-actions, .recharge-actions, .purchase-send-actions, .admin-editor-actions, .shop-filter-tabs, .hero-channel-tabs, .hero-panel-actions, .hero-weight-presets) {
  min-width: 0 !important;
  flex-wrap: wrap;
}

html.cn2g-i18n-active .site-header {
  align-items: center;
  overflow: visible;
}

html.cn2g-i18n-active .brand,
html.cn2g-i18n-active .brand span,
html.cn2g-i18n-active .header-actions {
  min-width: 0 !important;
}

html.cn2g-i18n-active .brand strong,
html.cn2g-i18n-active .brand small {
  min-width: 0;
  overflow-wrap: anywhere;
  white-space: normal !important;
}

html.cn2g-i18n-active .nav {
  overflow: visible !important;
  row-gap: 6px;
}

html.cn2g-i18n-active .nav a {
  flex: 0 1 auto;
  max-width: 19ch;
  min-height: 34px;
  white-space: normal !important;
  text-overflow: clip !important;
  overflow: visible !important;
  line-height: 1.14;
}

html.cn2g-i18n-active :where(.card-grid, .stats-grid, .membership-grid, .support-grid, .process-grid, .case-grid, .language-grid, .help-category-grid, .trust-document-grid, .insurance-grid, .platform-grid, .shop-grid, .shop-logo-wall, .payment-options, .deposit-amounts, .result-metrics, .input-grid, .currency-mini-grid, .admin-stats-grid, .channel-compare-grid, .package-presets) {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)) !important;
}

html.cn2g-i18n-active .home-steps-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)) !important;
}

html.cn2g-i18n-active :where(.shopping-flow-strip, .shop-help-strip, .proof-band) {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)) !important;
}

html.cn2g-i18n-active :where(.hero-copy, .section-intro, .contact-copy, .shopping-payment-copy, .shop-showcase-head, .shop-directory-status, .destination-result-head, .hero-panel-subhead, .tower-head, .support-agent-chat-head) {
  min-width: 0 !important;
}

html.cn2g-i18n-active :where(.home-steps-grid, .operation-flow, .hero-mini-flow, .shopping-flow-strip, .shop-help-strip, .process-grid, .support-grid, .proof-band) article {
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  overflow: visible !important;
}

html.cn2g-i18n-active :where(.home-steps-grid, .operation-flow, .hero-mini-flow, .shopping-flow-strip, .shop-help-strip, .process-grid, .support-grid, .proof-band) article::after {
  display: none !important;
}

html.cn2g-i18n-active :where(.home-steps-grid, .operation-flow, .hero-mini-flow, .shopping-flow-strip, .shop-help-strip, .process-grid, .support-grid, .proof-band) article > * {
  min-width: 0 !important;
  max-width: 100%;
}

html.cn2g-i18n-active :where(.home-steps-grid, .operation-flow, .hero-mini-flow, .shopping-flow-strip, .shop-help-strip, .process-grid, .support-grid, .proof-band) :where(strong, span, p, small, figcaption) {
  white-space: normal !important;
  overflow-wrap: anywhere;
  text-overflow: clip !important;
}

html.cn2g-i18n-active :where(.hero-copy p, .section-intro p, .contact-copy p, .shopping-payment-copy p, .shop-showcase-head p, .shop-card p, .shop-help-strip p, .support-message-bubble, .cn2g-live-message-bubble) {
  overflow-wrap: anywhere;
  word-break: normal;
}

html.cn2g-i18n-active :where(.fee-table, table) {
  table-layout: auto;
}

html.cn2g-i18n-active :where(th, td) {
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: normal;
}

html.cn2g-i18n-active :where(.fee-table-wrap, .table-wrap, .support-table-wrap, .cn2g-fp-table-wrap, .cn2g-live-table-wrap) {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-x: contain;
}

html.cn2g-i18n-active .cn2g-lang-native-trigger,
html.cn2g-i18n-active .cn2g-lang-trigger,
html.cn2g-i18n-active .cn2g-lang-option {
  min-width: 0 !important;
}

html.cn2g-i18n-active .cn2g-lang-trigger strong,
html.cn2g-i18n-active .cn2g-lang-option strong,
html.cn2g-i18n-active .cn2g-lang-trigger em,
html.cn2g-i18n-active .cn2g-lang-option em {
  white-space: normal !important;
  text-overflow: clip !important;
}

html.cn2g-i18n-active .cn2g-freight-pro,
html.cn2g-i18n-active .cn2g-live-root,
html.cn2g-i18n-active .customer-support-widget {
  max-width: 100%;
}

html.cn2g-i18n-active .cn2g-freight-pro :where(.cn2g-fp-shell, .cn2g-fp-grid, .cn2g-fp-results, .cn2g-fp-card, .cn2g-country-trigger, .cn2g-country-option, .cn2g-fp-route-grid, .cn2g-fp-tabs) {
  min-width: 0 !important;
}

html.cn2g-i18n-active .cn2g-freight-pro .cn2g-fp-grid,
html.cn2g-i18n-active .cn2g-freight-pro .cn2g-fp-results,
html.cn2g-i18n-active .cn2g-freight-pro .cn2g-fp-route-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)) !important;
}

html.cn2g-i18n-active .cn2g-freight-pro .cn2g-fp-tabs {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr)) !important;
}

html.cn2g-i18n-active .cn2g-freight-pro :where(.cn2g-fp-tab, .cn2g-fp-quote-btn, .cn2g-country-trigger, .cn2g-country-option) {
  white-space: normal !important;
  line-height: 1.18;
}

html.cn2g-i18n-active .cn2g-freight-pro :where(.cn2g-country-main strong, .cn2g-fp-card h3, .cn2g-fp-card strong) {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

html.cn2g-i18n-active .cn2g-live-button {
  max-width: min(320px, calc(100vw - 24px));
  white-space: normal !important;
}

html.cn2g-i18n-active .cn2g-live-panel,
html.cn2g-i18n-active .support-chat-panel {
  width: min(430px, calc(100vw - 24px)) !important;
  max-width: calc(100vw - 24px) !important;
}

html.cn2g-i18n-active .cn2g-live-admin-layout,
html.cn2g-i18n-active .admin-support-desk {
  max-width: 100%;
  overflow-x: clip;
}

html.cn2g-i18n-active .cn2g-live-admin-grid,
html.cn2g-i18n-active .support-agent-layout {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)) !important;
}

html.cn2g-i18n-active :where(.cn2g-live-status-actions, .support-status-actions, .cn2g-live-admin-actions, .support-agent-head-controls, .support-inline-language-select) {
  flex-wrap: wrap;
  min-width: 0 !important;
}

html.cn2g-i18n-active :where(.cn2g-live-status-actions button, .support-status-actions button, .cn2g-live-list button, .support-conversation-list button) {
  white-space: normal !important;
  overflow-wrap: anywhere;
}

.cn2g-i18n-fit-wrap {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

.cn2g-i18n-fit-anywhere {
  overflow-wrap: anywhere !important;
  word-break: break-word;
  hyphens: auto;
}

.cn2g-i18n-fit-scaled {
  line-height: 1.12 !important;
  letter-spacing: 0 !important;
}

.cn2g-i18n-fit-last-resort {
  overflow-wrap: anywhere !important;
  word-break: break-all;
}

@media (max-width: 900px) {
  html.cn2g-i18n-active .nav a {
    max-width: none;
  }

  html.cn2g-i18n-active :where(.site-header, .header-actions) {
    gap: 8px;
  }

  html.cn2g-i18n-active :where(.hero-actions, .contact-actions, .support-contact-actions, .recharge-actions, .purchase-send-actions) > * {
    flex: 1 1 min(100%, 220px);
  }
}

@media (max-width: 560px) {
  html.cn2g-i18n-active :where(.card-grid, .stats-grid, .membership-grid, .support-grid, .process-grid, .case-grid, .language-grid, .help-category-grid, .trust-document-grid, .insurance-grid, .platform-grid, .shop-grid, .shop-logo-wall, .payment-options, .deposit-amounts, .result-metrics, .input-grid, .currency-mini-grid, .admin-stats-grid, .channel-compare-grid, .package-presets) {
    grid-template-columns: 1fr !important;
  }

  html.cn2g-i18n-active :where(.primary-button, .secondary-button, .ghost-button, .header-cta, .member-chip, .language-select) {
    min-height: 38px;
    padding-inline: 10px;
  }
}
