/* Launch emergency responsive fixes. Scoped below desktop; no effect above 1440px. */

@media (max-width: 1399px) {
  body:not(.hero-mode-scroll-sequence) {
    overflow-x: hidden;
}
  .top-info-inner {
    min-height: 40px !important;
    gap: 10px !important;
    padding-top: 4px !important;
    padding-bottom: 4px !important;
}
  .top-info-left,
  .top-info-links {
    gap: 10px !important;
    font-size: .84rem !important;
    line-height: 1.2 !important;
    min-width: 0;
}
  .top-info-left span,
  .top-info-links a {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
  .nav-inner {
    min-height: 68px !important;
}
  .brand-icon,
  .site-logo,
  .brand-logo,
  .site-header__logo,
  .site-header-logo {
    width: 50px !important;
    height: 50px !important;
    flex: 0 0 50px !important;
}
  .brand-icon img,
  .brand img,
  .site-brand img,
  .header-brand img,
  .public-brand img,
  .site-logo img,
  .brand-logo img,
  .site-header__logo img,
  .site-header-logo img {
    width: 50px !important;
    height: 50px !important;
    max-width: 50px !important;
    max-height: 50px !important;
}
  .brand-text strong {
    font-size: clamp(.96rem, 1vw, 1.08rem) !important;
    line-height: 1.04 !important;
}
}

@media (max-width: 1199px) {
  .top-info-inner {
    min-height: 34px !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
}
  .top-info-left {
    flex: 1 1 auto !important;
    width: auto !important;
    max-width: 46% !important;
    flex-wrap: nowrap !important;
}
  .top-info-links {
    flex: 0 1 auto !important;
    width: auto !important;
    margin-left: auto !important;
    justify-content: flex-end !important;
    flex-wrap: nowrap !important;
}
  .top-info-links .divider {
    display: inline !important;
    opacity: .35;
}
  .nav-inner {
    min-height: 62px !important;
    gap: 8px !important;
}
  .brand {
    gap: 8px !important;
}
  .brand-icon,
  .site-logo,
  .brand-logo,
  .site-header__logo,
  .site-header-logo {
    width: 44px !important;
    height: 44px !important;
    flex-basis: 44px !important;
}
  .brand-icon img,
  .brand img,
  .site-brand img,
  .header-brand img,
  .public-brand img,
  .site-logo img,
  .brand-logo img,
  .site-header__logo img,
  .site-header-logo img {
    width: 44px !important;
    height: 44px !important;
    max-width: 44px !important;
    max-height: 44px !important;
}
  .brand-sub {
    display: none !important;
}
  .header-tools {
    margin-top: 0 !important;
    gap: 6px !important;
    flex-wrap: nowrap !important;
}
  .lang-switcher {
    min-height: 36px !important;
    height: 36px !important;
    margin-top: 0 !important;
    padding: 0 8px !important;
    font-size: .78rem !important;
}
  .header-contact-link {
    width: 36px !important;
    height: 36px !important;
    flex-basis: 36px !important;
}
}

@media (max-width: 991px) {
  .top-info-inner {
    min-height: 32px !important;
    padding-top: 3px !important;
    padding-bottom: 3px !important;
    justify-content: center !important;
}
  .top-info-left {
    display: none !important;
}
  .top-info-links {
    flex: 1 1 auto !important;
    justify-content: center !important;
    gap: 8px !important;
    overflow: hidden !important;
    white-space: nowrap !important;
}
  .top-info-links a {
    max-width: 30vw !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}
  .top-info-links .divider {
    display: none !important;
}
  .nav-inner {
    min-height: 56px !important;
    flex-wrap: nowrap !important;
    padding-top: 4px !important;
    padding-bottom: 4px !important;
}
  .brand {
    flex: 1 1 auto !important;
    max-width: none !important;
    min-width: 0 !important;
}
  .brand-icon,
  .site-logo,
  .brand-logo,
  .site-header__logo,
  .site-header-logo {
    width: 40px !important;
    height: 40px !important;
    flex-basis: 40px !important;
}
  .brand-icon img,
  .brand img,
  .site-brand img,
  .header-brand img,
  .public-brand img,
  .site-logo img,
  .brand-logo img,
  .site-header__logo img,
  .site-header-logo img {
    width: 40px !important;
    height: 40px !important;
    max-width: 40px !important;
    max-height: 40px !important;
}
  .brand-text strong {
    font-size: .9rem !important;
}
  .nav-right {
    width: auto !important;
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
}
  .menu-toggle {
    display: inline-flex !important;
    width: 38px !important;
    height: 38px !important;
    flex: 0 0 38px !important;
    position: relative !important;
    z-index: 1202 !important;
}
  #navMenu.nav-menu {
    position: absolute !important;
    top: calc(100% + 6px) !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-height: calc(100vh - 96px) !important;
    margin-top: 0 !important;
    overflow: auto !important;
    z-index: 1201 !important;
}
}

@media (max-width: 767px) {
  .top-info-links {
    font-size: .72rem !important;
}
  .nav-inner {
    min-height: 52px !important;
    width: min(100% - 20px, var(--container)) !important;
}
  .brand-text strong {
    font-size: .84rem !important;
}
  .header-contact-link {
    display: none !important;
}
  .lang-switcher {
    min-height: 34px !important;
    height: 34px !important;
    font-size: .72rem !important;
}
  .menu-toggle {
    width: 36px !important;
    height: 36px !important;
    flex-basis: 36px !important;
}
}

@media (max-width: 575px) {
  .top-info-links a {
    max-width: 31vw !important;
}
  .brand-text strong span {
    max-width: 156px !important;
}
  .brand-icon,
  .site-logo,
  .brand-logo,
  .site-header__logo,
  .site-header-logo {
    width: 36px !important;
    height: 36px !important;
    flex-basis: 36px !important;
}
  .brand-icon img,
  .brand img,
  .site-brand img,
  .header-brand img,
  .public-brand img,
  .site-logo img,
  .brand-logo img,
  .site-header__logo img,
  .site-header-logo img {
    width: 36px !important;
    height: 36px !important;
    max-width: 36px !important;
    max-height: 36px !important;
}
}

/* Final launch guard: loaded last, scoped below large desktop only. */
@media (max-width: 1399px) {
  body:not(.hero-mode-scroll-sequence) {
    max-width: 100%;
    overflow-x: hidden;
}
  .top-info {
    font-size: 11.5px !important;
    line-height: 1.2 !important;
}
  .top-info-inner {
    min-height: 34px !important;
    padding-top: 4px !important;
    padding-bottom: 4px !important;
    gap: 8px 16px !important;
    align-items: center !important;
}
  .top-info-left,
  .top-info-links {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 6px 12px !important;
    min-width: 0 !important;
}
  .top-info-left span,
  .top-info-links a {
    line-height: 1.2 !important;
    white-space: nowrap !important;
}
  .nav-inner {
    min-height: 62px !important;
    gap: 12px !important;
}
  .site-brand {
    min-width: 0 !important;
    max-width: min(420px, 38vw) !important;
}
  .site-brand img,
  .nav-logo {
    width: 46px !important;
    height: 46px !important;
    max-width: 46px !important;
    max-height: 46px !important;
}
  .site-brand-title {
    font-size: 1.12rem !important;
    line-height: 1.06 !important;
}
  .site-brand-subtitle {
    font-size: 0.62rem !important;
    line-height: 1.15 !important;
    letter-spacing: 0.01em !important;
}
}

@media (max-width: 1199px) {
  .top-info-inner {
    min-height: 30px !important;
    justify-content: center !important;
}
  .top-info-left,
  .top-info-links {
    justify-content: center !important;
    gap: 4px 10px !important;
}
  .top-info-left span,
  .top-info-links a {
    font-size: 10.5px !important;
}
  .nav-inner {
    min-height: 56px !important;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
}
  .site-brand {
    max-width: min(360px, 48vw) !important;
}
  .site-brand img,
  .nav-logo {
    width: 42px !important;
    height: 42px !important;
    max-width: 42px !important;
    max-height: 42px !important;
}
  .site-brand-title {
    font-size: 1.02rem !important;
}
  .site-brand-subtitle {
    display: none !important;
}
}

@media (max-width: 991px) {
  .top-info {
    font-size: 10px !important;
}
  .top-info-inner {
    min-height: 0 !important;
    padding: 4px 12px !important;
    gap: 4px 8px !important;
}
  .top-info-left,
  .top-info-links {
    width: 100% !important;
    gap: 3px 8px !important;
}
  .top-info-links .divider {
    display: none !important;
}
  .main-nav {
    overflow: visible !important;
}
  .nav-inner {
    min-height: 50px !important;
    padding-top: 5px !important;
    padding-bottom: 5px !important;
}
  .site-brand {
    max-width: calc(100vw - 92px) !important;
}
  .site-brand img,
  .nav-logo {
    width: 38px !important;
    height: 38px !important;
    max-width: 38px !important;
    max-height: 38px !important;
}
  .site-brand-title {
    font-size: 0.96rem !important;
}
  .nav-right {
    margin-left: auto !important;
    flex: 0 0 auto !important;
}
  .menu-toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 38px !important;
    height: 38px !important;
    position: relative !important;
    z-index: 1002 !important;
}
  #navMenu.nav-menu {
    left: 12px !important;
    right: 12px !important;
    width: auto !important;
    max-width: calc(100vw - 24px) !important;
    max-height: calc(100vh - 92px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    z-index: 1001 !important;
}
  .site-lang-form {
    width: 100% !important;
}
  .lang-switcher {
    width: 100% !important;
    max-width: 100% !important;
}
}

@media (max-width: 767px) {
  .top-info-left span,
  .top-info-links a {
    white-space: normal !important;
}
  .top-info-left {
    display: none !important;
}
  .top-info-links {
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    justify-content: flex-start !important;
    scrollbar-width: none;
}
  .top-info-links::-webkit-scrollbar {
    display: none;
}
  .nav-inner {
    min-height: 46px !important;
}
  .site-brand img,
  .nav-logo {
    width: 36px !important;
    height: 36px !important;
    max-width: 36px !important;
    max-height: 36px !important;
}
  .site-brand-title {
    font-size: 0.9rem !important;
}
}

@media (max-width: 575px) {
  .top-info-inner {
    padding-left: 10px !important;
    padding-right: 10px !important;
}
  .site-brand {
    max-width: calc(100vw - 78px) !important;
}
  .site-brand img,
  .nav-logo {
    width: 34px !important;
    height: 34px !important;
    max-width: 34px !important;
    max-height: 34px !important;
}
  .site-brand-title {
    font-size: 0.84rem !important;
}
  .menu-toggle {
    width: 34px !important;
    height: 34px !important;
}
}
/* Sticky hero safety:
   Do not hide overflow on html/body during scroll-sequence mode.
   Hiding overflow on html/body breaks position: sticky below desktop. */
@media (max-width: 1440px) {
  html.hero-mode-scroll-sequence,
  html.hero-mode-scroll-sequence body,
  body.hero-mode-scroll-sequence {
    overflow-x: visible !important;
  }
}