html,
body,
#app {
  width: 100%;
  min-height: 100%;
  margin: 0;
  overflow-x: hidden;
}

body,
body *:not(.fa) {
  font-family: Arial, "Helvetica Neue", sans-serif !important;
}

.fa {
  font-family: FontAwesome !important;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

img,
video,
canvas,
svg {
  max-width: 100%;
}

button,
a,
input,
select,
textarea {
  touch-action: manipulation;
}

.site-header-brand {
  position: relative;
}

.site-header-logo {
  clip-path: inset(0 0 34% 0);
}

.site-header-brand::after {
  content: "23–25 NOV 2026 · XIONG'AN, CHINA";
  position: absolute;
  right: 0;
  bottom: 1px;
  left: 0;
  color: #8b3f13;
  font-size: clamp(6px, 0.48vw, 9px);
  font-weight: 800;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}

.overflow-x-auto,
.table-wrap {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 767px) {
  .banner-logos {
    width: 100%;
    padding-inline: 0.75rem !important;
    justify-content: center !important;
    flex-wrap: nowrap;
    gap: 0.75rem !important;
  }

  .banner-logo-item {
    flex: 1 1 0;
    width: calc(50% - 0.375rem) !important;
    min-width: 0;
    height: 42px !important;
    object-fit: contain;
  }

  .banner-main-logos {
    width: 100%;
    min-width: 0;
    padding-inline: 0.75rem;
  }

  .banner-main-logo {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: none !important;
  }

  .carousel-content section,
  .banner-desc,
  .banner-buttons {
    min-width: 0;
  }

  .top-info-scroll-wrapper {
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .top-info-scroll-wrapper::-webkit-scrollbar {
    display: none;
  }

  .top-info-inner {
    min-width: max-content;
    padding-inline: 0.75rem;
  }

  .top-info-links {
    gap: 0.75rem;
  }

  .nav-container,
  .container,
  .faq-container,
  .submission-container {
    width: 100%;
    max-width: 100%;
  }

  .scrollable-content,
  main,
  section {
    max-width: 100vw;
  }

  .scrollable-content {
    scrollbar-width: none;
  }

  .scrollable-content::-webkit-scrollbar {
    display: none;
  }

  .banner-btn,
  .schedule-btn,
  .btn-primary,
  .mobile-nav-link,
  .mobile-submenu-btn {
    min-height: 44px;
  }

  input,
  select,
  textarea {
    max-width: 100%;
    font-size: 16px;
  }

  .custom-table,
  .schedule-table,
  .fee-table,
  .table-wrap > table,
  .overflow-x-auto > table {
    min-width: 680px;
  }

  .lightbox-toolbar {
    max-width: calc(100vw - 2rem);
    overflow-x: auto;
  }

  .fixed-header {
    width: 100%;
    max-width: 100vw;
  }
}

@media (max-width: 390px) {
  .top-info-links {
    gap: 0.5rem;
  }

  .nav-container {
    padding-inline: 0.75rem;
  }

  .banner-btn,
  .schedule-btn,
  .btn-primary {
    width: 100%;
    justify-content: center;
  }
}
