/*
 * Winseety Design System - Home page migration
 * Scope: .codex-home-page only. Legacy business markup and interactions remain unchanged.
 */
.codex-home-page {
  --codex-home-ink: var(--ws-color-heading);
  --codex-home-muted: var(--ws-color-text-secondary);
  --codex-home-surface: var(--ws-color-surface);
  --codex-home-section: var(--ws-color-background);
  background: var(--codex-home-section) !important;
  color: var(--codex-home-ink);
  font-family: var(--ws-font-sans);
  overflow-x: hidden;
}
.codex-home-page *,
.codex-home-page *::before,
.codex-home-page *::after { box-sizing: border-box; }
.codex-home-page img { max-width: 100%; height: auto; }
.codex-home-page a { color: inherit; }
.codex-home-page :where(a,button,input,textarea,select):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--ws-color-focus) 36%, transparent);
  outline-offset: 3px;
}

/* Header is intentionally scoped until the shared Header/Footer migration. */
.codex-home-page .th_header,
.codex-home-page .header-wap {
  position: fixed !important;
  inset: 0 0 auto;
  z-index: 1000;
  min-height: 72px;
  padding: 0 var(--ws-page-gutter) !important;
  background: rgba(255,255,255,.90) !important;
  border-bottom: 1px solid rgba(226,232,240,.72);
  box-shadow: 0 8px 28px rgba(15,23,42,.05);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  transition: background-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.codex-home-page .th_header > *,
.codex-home-page .header-wap > * { position: relative; }
.codex-home-page .th_header h1,
.codex-home-page .header-wap > a:first-child { margin: 0 !important; }
.codex-home-page .th_header h1 img,
.codex-home-page .header-wap img {
  display: block;
  width: auto !important;
  max-width: 160px;
  height: 42px !important;
  object-fit: contain;
}
.codex-home-page .th_nav { height: 72px !important; }
.codex-home-page .th_nav > ul { height: 100%; display: flex; align-items: center; gap: 4px; }
.codex-home-page .th_nav > ul > li > a {
  display: inline-flex !important;
  align-items: center;
  min-height: 42px;
  padding: 0 15px !important;
  border-radius: var(--ws-radius-full);
  color: var(--ws-color-text-secondary) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: .01em;
  transition: color .2s ease, background-color .2s ease, transform .2s ease;
}
.codex-home-page .th_nav > ul > li > a:hover,
.codex-home-page .th_nav > ul > li:hover > a {
  color: var(--ws-color-primary) !important;
  background: var(--ws-color-primary-soft);
  transform: translateY(-1px);
}
.codex-home-page .th_phone { padding-top: 18px !important; }
.codex-home-page .th_phone dd { color: var(--ws-color-primary) !important; font-size: 13px !important; line-height: 1.4 !important; }
.codex-home-page .header-wap { display: none !important; }

/* Hero */
.codex-home-page .swiper_heads {
  position: relative;
  min-height: min(820px, 100vh);
  margin: 0 !important;
  overflow: hidden;
  background: #071725;
}
.codex-home-page .swiper_heads::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(3,15,27,.82) 0%, rgba(3,15,27,.45) 43%, rgba(3,15,27,.18) 100%);
  z-index: 2;
}
.codex-home-page .swiper_heads .swiper-wrapper,
.codex-home-page .swiper_heads .swiper-slide_heads,
.codex-home-page .swiper_heads .slide-box_heads { min-height: inherit; height: 100%; }
.codex-home-page .image_lb_heads {
  display: block;
  width: 100% !important;
  height: min(820px, 100vh) !important;
  min-width: 0 !important;
  object-fit: cover;
  object-position: center;
  opacity: .92;
}
.codex-home-page .swiper_heads .tech-overlay,
.codex-home-page .swiper_heads .particles-overlay,
.codex-home-page .swiper_heads .scan-line { z-index: 3; opacity: .22; }
.codex-home-page .swiper_heads .slide-layout-content,
.codex-home-page .swiper_heads .slider-layout-content { position: relative; z-index: 4; }
.codex-home-page .swiper_heads .tech-title {
  max-width: 760px;
  margin: 0 auto !important;
  color: #fff !important;
  font-size: clamp(38px, 5.2vw, 72px) !important;
  line-height: 1.08 !important;
  font-weight: 800 !important;
  letter-spacing: -.045em;
  text-shadow: 0 16px 34px rgba(0,0,0,.28);
}
.codex-home-page .swiper_heads .tech-subtitle { color: rgba(255,255,255,.82) !important; }

/* Shared section rhythm */
.codex-home-page .container_jj_bt,
.codex-home-page .container_jj_bt2,
.codex-home-page .container_jj_bt3 {
  width: min(var(--ws-container-xl), calc(100% - 2 * var(--ws-page-gutter))) !important;
  margin: 0 auto !important;
  padding: 0 !important;
  text-align: left !important;
}
.codex-home-page .container_jj_bt .title_bt,
.codex-home-page .container_jj_bt2 .title_bt,
.codex-home-page .container_jj_bt3 .title_bt {
  color: var(--ws-color-heading) !important;
  font-size: clamp(26px, 3.1vw, 42px) !important;
  line-height: 1.18 !important;
  font-weight: 750 !important;
  letter-spacing: -.035em;
}
.codex-home-page .container_jj_bt .line_bt,
.codex-home-page .container_jj_bt2 .line_bt,
.codex-home-page .container_jj_bt3 .line_bt {
  width: 52px !important;
  height: 4px !important;
  margin-top: 18px !important;
  border-radius: 3px;
  background: var(--ws-color-primary) !important;
}
.codex-home-page .container_gy,
.codex-home-page .container_cp,
.codex-home-page .body_ys,
.codex-home-page .body_zl,
.codex-home-page .body_sp,
.codex-home-page .body_xw,
.codex-home-page .body_hz,
.codex-home-page .body_lx {
  padding-top: var(--ws-section-space) !important;
  padding-bottom: var(--ws-section-space) !important;
  background: var(--ws-color-surface) !important;
}
.codex-home-page .container_gy > *,
.codex-home-page .container_cp > *,
.codex-home-page .container_ld1,
.codex-home-page .container_ys,
.codex-home-page .container_zl,
.codex-home-page .container_outer_ld,
.codex-home-page .container_sp,
.codex-home-page .container_xw,
.codex-home-page .container_lx1,
.codex-home-page .customer_hz { width: min(var(--ws-container-xl), calc(100% - 2 * var(--ws-page-gutter))) !important; margin-left: auto !important; margin-right: auto !important; }

/* About */
.codex-home-page .container_gy {
  display: grid !important;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  align-items: center;
  gap: clamp(32px, 7vw, 92px);
}
.codex-home-page .container_gy::before {
  content: 'ABOUT / WINSEE';
  grid-column: 1 / -1;
  color: var(--ws-color-primary);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .16em;
}
.codex-home-page .container_gy .image-block_gy {
  width: 100% !important;
  max-height: 560px;
  object-fit: cover;
  border-radius: var(--ws-radius-2xl);
  box-shadow: var(--ws-shadow-lg);
}
.codex-home-page .container_gy .content2_gy { width: auto !important; }
.codex-home-page .container_gy .content_gy { padding: 0 !important; }
.codex-home-page .container_gy .content_gy h2 {
  margin: 0 0 22px !important;
  color: var(--ws-color-heading) !important;
  font-size: clamp(28px, 3.2vw, 44px) !important;
  line-height: 1.18 !important;
  font-weight: 750 !important;
}
.codex-home-page .container_gy .content_gy p,
.codex-home-page .container_gy .content_gy div,
.codex-home-page .container_gy .content_gy span { color: var(--ws-color-text-secondary) !important; font-size: 17px !important; line-height: 1.95 !important; }
.codex-home-page .container_gy .button_gy {
  display: inline-flex !important;
  align-items: center;
  min-height: 46px;
  margin-top: 26px !important;
  padding: 0 22px !important;
  border: 1px solid var(--ws-color-primary) !important;
  border-radius: var(--ws-radius-full) !important;
  color: var(--ws-color-primary) !important;
  background: transparent !important;
  font-weight: 700;
  text-decoration: none;
  transition: .2s ease;
}
.codex-home-page .container_gy .button_gy:hover { color: #fff !important; background: var(--ws-color-primary) !important; transform: translateY(-2px); }

/* Products */
.codex-home-page .container_cp { position: relative; overflow: hidden; }
.codex-home-page .container_cp .bj_cp,
.codex-home-page .container_cp .bj2_cp { display: none !important; }
.codex-home-page .container_cp .container_2 {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
  width: min(var(--ws-container-xl), calc(100% - 2 * var(--ws-page-gutter))) !important;
  padding: 30px 0 0 !important;
}
.codex-home-page .container_cp .block_cp {
  position: relative !important;
  inset: auto !important;
  width: auto !important;
  height: 390px !important;
  min-height: 0 !important;
  overflow: hidden;
  border: 1px solid var(--ws-color-border);
  border-radius: var(--ws-radius-xl);
  background: var(--ws-color-surface);
  box-shadow: var(--ws-shadow-sm);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.codex-home-page .container_cp .block_cp:hover { transform: translateY(-8px); border-color: var(--ws-color-brand-300); box-shadow: var(--ws-shadow-lg); }
.codex-home-page .container_cp .block_cp > a { display: block; width: 100%; height: 100%; }
.codex-home-page .container_cp .img_cp { width: 100% !important; height: 100% !important; object-fit: cover; transition: transform .4s ease; }
.codex-home-page .container_cp .block_cp:hover .img_cp { transform: scale(1.04); }
.codex-home-page .container_cp .text_h1 {
  position: absolute !important;
  inset: auto 16px 16px !important;
  z-index: 3;
  margin: 0 !important;
  color: #fff !important;
  font-size: 17px !important;
  line-height: 1.45 !important;
  font-weight: 700 !important;
  text-shadow: 0 2px 12px rgba(0,0,0,.46);
}
.codex-home-page .container_cp .block_cp::after { content: ''; position: absolute; inset: 40% 0 0; background: linear-gradient(transparent, rgba(2,6,23,.72)); pointer-events: none; }
.codex-home-page .container_cp .hover-hint { color: var(--ws-color-text-tertiary) !important; font-size: 13px !important; }

/* Cases */
.codex-home-page .lunbo_ld1 { padding: 0 0 var(--ws-section-space) !important; background: var(--ws-color-background) !important; }
.codex-home-page .container_ld1 { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.codex-home-page .container_ld1 .image-box_ld1 { position: relative; min-height: 210px; overflow: hidden; border-radius: var(--ws-radius-xl); background: var(--ws-color-surface); box-shadow: var(--ws-shadow-sm); transition: transform .25s ease, box-shadow .25s ease; }
.codex-home-page .container_ld1 .image-box_ld1:hover { transform: translateY(-6px); box-shadow: var(--ws-shadow-lg); }
.codex-home-page .container_ld1 .image-box_ld1 a { display: flex; height: 100%; align-items: flex-end; padding: 18px; color: #fff; font-weight: 700; text-decoration: none; background: linear-gradient(transparent 42%, rgba(2,6,23,.78)); }
.codex-home-page .container_ld1 .img_ld1 { position: absolute; inset: 0; z-index: -1; width: 100% !important; height: 100% !important; object-fit: cover; }

/* Advantages */
.codex-home-page .body_ys { background: var(--ws-color-background) !important; }
.codex-home-page .body_ys > .container_jj_bt { margin-bottom: 30px !important; }
.codex-home-page .body_ys .container_ys { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.codex-home-page .body_ys .advantage-box_ys { min-height: 210px; padding: 28px 22px !important; border: 1px solid var(--ws-color-border); border-radius: var(--ws-radius-xl); background: var(--ws-color-surface); box-shadow: var(--ws-shadow-xs); transition: transform .25s ease, box-shadow .25s ease; }
.codex-home-page .body_ys .advantage-box_ys:hover { transform: translateY(-5px); box-shadow: var(--ws-shadow-md); }
.codex-home-page .body_ys .icon_ys { width: 56px !important; height: 56px !important; object-fit: contain; margin-bottom: 24px; }
.codex-home-page .body_ys .title_ys { color: var(--ws-color-heading) !important; font-size: 18px !important; line-height: 1.55 !important; font-weight: 700 !important; }

/* Patents */
.codex-home-page .body_zl { color: #fff !important; background: var(--ws-color-brand-950) !important; }
.codex-home-page .body_zl .container_zl,
.codex-home-page .body_zl .title2_zl { color: #fff !important; }
.codex-home-page .body_zl .title_zl { font-size: clamp(34px, 5vw, 68px) !important; font-weight: 800 !important; letter-spacing: -.045em; }
.codex-home-page .body_zl .title2_zl { font-size: 16px !important; line-height: 2 !important; opacity: .78; }

/* Video center */
.codex-home-page .body_sp { color: #fff !important; background: #0a1827 !important; }
.codex-home-page .body_sp .container_jj_bt2 .title_bt { color: #fff !important; }
.codex-home-page .body_sp .container_jj_bt2 .line_bt { background: #79c5e6 !important; }
.codex-home-page .container_sp { display: grid !important; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: 24px; }
.codex-home-page .container_sp .main-video_sp,
.codex-home-page .container_sp .side-videos_sp { min-width: 0; }
.codex-home-page .container_sp .main-video_sp > *,
.codex-home-page .container_sp .side-videos_sp > * { border-radius: var(--ws-radius-xl); overflow: hidden; }
.codex-home-page .container_sp img { display: block; max-width: 100%; object-fit: cover; }

/* News */
.codex-home-page .body_xw { background: var(--ws-color-background) !important; }
.codex-home-page .container_xw { padding-top: 26px !important; }
.codex-home-page .nav_xw { display: flex; gap: 8px; margin-bottom: 24px !important; }
.codex-home-page .nav_xw button { min-height: 40px; padding: 0 16px; border: 1px solid var(--ws-color-border) !important; border-radius: var(--ws-radius-full); color: var(--ws-color-text-secondary) !important; background: var(--ws-color-surface) !important; font-weight: 700; cursor: pointer; transition: .2s ease; }
.codex-home-page .nav_xw button:hover,
.codex-home-page .nav_xw button.active { color: #fff !important; border-color: var(--ws-color-primary) !important; background: var(--ws-color-primary) !important; }
.codex-home-page .module_xw { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.codex-home-page .module_xw .title_xw2 { min-height: 290px; overflow: hidden; border: 1px solid var(--ws-color-border); border-radius: var(--ws-radius-xl); background: var(--ws-color-surface); box-shadow: var(--ws-shadow-sm); transition: transform .25s ease, box-shadow .25s ease; }
.codex-home-page .module_xw .title_xw2:hover { transform: translateY(-6px); box-shadow: var(--ws-shadow-lg); }
.codex-home-page .module_xw .title_xw2 a { display: block; height: 100%; text-decoration: none; }
.codex-home-page .module_xw .img_xw { width: 100% !important; height: 175px !important; object-fit: cover; }
.codex-home-page .module_xw .title_xw2 p,
.codex-home-page .module_xw .title_xw2 h3 { padding: 16px 18px 0 !important; color: var(--ws-color-heading) !important; font-size: 17px !important; line-height: 1.55 !important; font-weight: 700 !important; }
.codex-home-page .module_xw .title_xw2 .txt_xw { padding: 6px 18px 18px !important; color: var(--ws-color-text-secondary) !important; font-size: 14px !important; line-height: 1.7 !important; }

/* Contact */
.codex-home-page .body_lx { background: var(--ws-color-surface) !important; }
.codex-home-page .content_lx { display: grid !important; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 30px; align-items: stretch; }
.codex-home-page .map_lx,
.codex-home-page .info_lx { min-height: 380px; border: 1px solid var(--ws-color-border); border-radius: var(--ws-radius-xl); overflow: hidden; background: var(--ws-color-surface); box-shadow: var(--ws-shadow-sm); }
.codex-home-page .map_lx img { width: 100% !important; height: 100% !important; min-height: 380px; object-fit: cover; }
.codex-home-page .info_lx { padding: clamp(28px, 4vw, 52px) !important; }
.codex-home-page .info_lx h2 { margin: 0 0 22px !important; color: var(--ws-color-heading) !important; font-size: 34px !important; }
.codex-home-page .info_lx p,
.codex-home-page .info_lx li,
.codex-home-page .info_lx span { color: var(--ws-color-text-secondary) !important; font-size: 16px !important; line-height: 1.8 !important; }
.codex-home-page .info_lx a { display: inline-flex; align-items: center; min-height: 44px; margin: 22px 8px 0 0; padding: 0 18px; border-radius: var(--ws-radius-full); color: #fff !important; background: var(--ws-color-primary); text-decoration: none; font-weight: 700; }
.codex-home-page .info_lx a:last-child { color: var(--ws-color-primary) !important; background: var(--ws-color-primary-soft); }

/* Footer fallback styling, before shared footer migration */
.codex-home-page .th_footer { margin-top: 0 !important; color: rgba(255,255,255,.78) !important; background: var(--ws-color-brand-950) !important; }
.codex-home-page .th_footer a { color: rgba(255,255,255,.78) !important; transition: color .2s ease; }
.codex-home-page .th_footer a:hover { color: #fff !important; }
.codex-home-page .th_footer img { max-width: 180px; height: auto; }
.codex-home-page .th_copyright { border-top-color: rgba(255,255,255,.14) !important; }

/* JS enhancement */
.codex-home-page .codex-reveal,
.codex-home-page .codex-reveal.is-visible { opacity: 1 !important; visibility: visible !important; transform: none !important; }
.codex-home-page .codex-back-top { position: fixed; right: 22px; bottom: 22px; z-index: 1100; width: 46px; height: 46px; border: 1px solid var(--ws-color-border); border-radius: 50%; color: var(--ws-color-primary); background: rgba(255,255,255,.92); box-shadow: var(--ws-shadow-md); opacity: 0; visibility: hidden; transform: translateY(8px); transition: .2s ease; cursor: pointer; }
.codex-home-page .codex-back-top.is-visible { opacity: 1; visibility: visible; transform: none; }

@media (max-width: 1100px) {
  .codex-home-page .th_nav > ul > li > a { padding: 0 9px !important; }
  .codex-home-page .th_phone { display: none !important; }
  .codex-home-page .container_cp .container_2 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .codex-home-page .container_ld1 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .codex-home-page .th_header { display: none !important; }
  .codex-home-page .header-wap { display: flex !important; align-items: center; justify-content: space-between; }
  .codex-home-page .header-wap > a:last-child { display: grid; gap: 4px; width: 36px; padding: 8px; }
  .codex-home-page .header-wap .btn-wrap-t,
  .codex-home-page .header-wap .btn-wrap-c,
  .codex-home-page .header-wap .btn-wrap-b { display: block; height: 2px; background: var(--ws-color-primary); }
  .codex-home-page .swiper_heads { min-height: 640px; }
  .codex-home-page .image_lb_heads { height: 640px !important; }
  .codex-home-page .container_gy { grid-template-columns: 1fr; gap: 28px; }
  .codex-home-page .container_gy::before { grid-column: auto; }
  .codex-home-page .container_cp .container_2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .codex-home-page .container_cp .block_cp { height: 250px !important; }
  .codex-home-page .container_ld1,
  .codex-home-page .body_ys .container_ys,
  .codex-home-page .module_xw { grid-template-columns: 1fr 1fr; gap: 12px; }
  .codex-home-page .container_sp,
  .codex-home-page .content_lx { grid-template-columns: 1fr; }
  .codex-home-page .module_xw .title_xw2 { min-height: 0; }
  .codex-home-page .module_xw .img_xw { height: 130px !important; }
  .codex-home-page .module_xw .title_xw2 p,
  .codex-home-page .module_xw .title_xw2 h3 { font-size: 15px !important; }
  .codex-home-page .map_lx,
  .codex-home-page .info_lx { min-height: 300px; }
  .codex-home-page .map_lx img { min-height: 300px; }
}
@media (max-width: 460px) {
  .codex-home-page .container_cp .container_2,
  .codex-home-page .container_ld1,
  .codex-home-page .body_ys .container_ys,
  .codex-home-page .module_xw { grid-template-columns: 1fr; }
  .codex-home-page .container_cp .block_cp { height: 300px !important; }
  .codex-home-page .container_jj_bt .title_bt,
  .codex-home-page .container_jj_bt2 .title_bt,
  .codex-home-page .container_jj_bt3 .title_bt { font-size: 28px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .codex-home-page *, .codex-home-page *::before, .codex-home-page *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .codex-home-page .codex-reveal { opacity: 1; transform: none; }
}


/* 1.0.1 stability patch: legacy rem/animation rules must never hide homepage content. */
.codex-home-page :is(.container_gy, .container_cp, .container_ld1, .advantage-box_ys, .container_zl, .container_sp, .module_xw, .content_lx, .customer_hz) {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
.codex-home-page :is(.container_gy, .container_cp, .container_ld1, .container_ys, .container_zl, .container_outer_ld, .container_sp, .container_xw, .container_lx1, .customer_hz) {
  max-width: 100%;
}
@media (max-width: 760px) {
  .codex-home-page .swiper_heads,
  .codex-home-page .image_lb_heads { min-height: 560px; height: 560px !important; }
  .codex-home-page .container_gy,
  .codex-home-page .container_cp,
  .codex-home-page .body_ys,
  .codex-home-page .body_zl,
  .codex-home-page .body_sp,
  .codex-home-page .body_xw,
  .codex-home-page .body_hz,
  .codex-home-page .body_lx { padding-top: 64px !important; padding-bottom: 64px !important; }
}


/* 1.0.2 layout integrity patch: reset legacy fixed widths inside homepage modules. */
.codex-home-page .container_ld1 > .image-box_ld1 {
  position: relative !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: 230px !important;
  min-height: 230px !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  box-sizing: border-box !important;
}
.codex-home-page .container_ld1 > .image-box_ld1 > a {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  isolation: isolate;
  box-sizing: border-box !important;
}
.codex-home-page .container_ld1 > .image-box_ld1 > a::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(2, 10, 22, 0) 38%, rgba(2, 10, 22, .82) 100%);
}
.codex-home-page .container_ld1 .number_ld1 {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}
.codex-home-page .container_ld1 .img_ld1 {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  transition: transform .45s ease !important;
}
.codex-home-page .container_ld1 .image-box_ld1:hover .img_ld1 { transform: scale(1.035) !important; }
.codex-home-page .container_ld1 .text_ld1 {
  position: absolute !important;
  inset: auto 0 0 !important;
  z-index: 2 !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 22px !important;
  box-sizing: border-box !important;
}
.codex-home-page .container_ld1 .text_ld2 {
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  color: #fff !important;
  font-size: 17px !important;
  line-height: 1.55 !important;
  font-weight: 700 !important;
  text-shadow: 0 1px 12px rgba(0, 0, 0, .28);
}

/* The legacy DOM wraps news cards in .title_xw2; grid that wrapper, not .module_xw. */
.codex-home-page .module_xw {
  display: none !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
  grid-template-columns: none !important;
}
.codex-home-page .module_xw.active_xw { display: block !important; }
.codex-home-page .module_xw > .title_xw2 {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 18px !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}
.codex-home-page .module_xw > .title_xw2:hover { transform: none !important; box-shadow: none !important; }
.codex-home-page .module_xw .item_xw {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 370px !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  flex: none !important;
  overflow: hidden !important;
  border: 1px solid var(--ws-color-border) !important;
  border-radius: var(--ws-radius-xl) !important;
  background: var(--ws-color-surface) !important;
  box-shadow: var(--ws-shadow-sm) !important;
  box-sizing: border-box !important;
  transition: transform .25s ease, box-shadow .25s ease !important;
}
.codex-home-page .module_xw .item_xw:hover { transform: translateY(-5px) !important; box-shadow: var(--ws-shadow-lg) !important; }
.codex-home-page .module_xw .item_xw > a {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 370px !important;
  margin: 0 !important;
  padding: 0 !important;
}
.codex-home-page .module_xw .item_xw > a > span { display: block !important; width: 100% !important; overflow: hidden !important; }
.codex-home-page .module_xw .item_xw .img_xw {
  display: block !important;
  width: 100% !important;
  height: 210px !important;
  object-fit: cover !important;
  transition: transform .4s ease !important;
}
.codex-home-page .module_xw .item_xw:hover .img_xw { transform: scale(1.025) !important; }
.codex-home-page .module_xw .item_xw .th_con {
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 20px !important;
  box-sizing: border-box !important;
}
.codex-home-page .module_xw .item_xw dl,
.codex-home-page .module_xw .item_xw dt,
.codex-home-page .module_xw .item_xw dd { width: 100% !important; margin: 0 !important; padding: 0 !important; }
.codex-home-page .module_xw .item_xw p {
  margin: 0 0 10px !important;
  padding: 0 !important;
  color: var(--ws-color-heading) !important;
  font-size: 17px !important;
  line-height: 1.55 !important;
  font-weight: 700 !important;
}
.codex-home-page .module_xw .item_xw dd {
  display: -webkit-box;
  overflow: hidden;
  color: var(--ws-color-text-secondary) !important;
  font-size: 14px !important;
  line-height: 1.75 !important;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

/* Partner logos must not stay at opacity:0 when the legacy observer misses them. */
.codex-home-page .customer_hz {
  display: block !important;
  width: min(var(--ws-container-xl), calc(100% - 2 * var(--ws-page-gutter))) !important;
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
}
.codex-home-page .customer2_hz {
  display: grid !important;
  grid-template-columns: repeat(10, minmax(0, 1fr)) !important;
  gap: 12px !important;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  margin: 0 !important;
  overflow: visible !important;
}
.codex-home-page .customer2_hz .logo-column {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 12px !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
}
.codex-home-page .customer2_hz .logo_hz {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 76px !important;
  margin: 0 !important;
  padding: 10px !important;
  overflow: hidden !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  border-radius: var(--ws-radius-md) !important;
  background: #fff !important;
  box-sizing: border-box !important;
}
.codex-home-page .customer_hz img {
  position: static !important;
  display: block !important;
  width: auto !important;
  max-width: 90% !important;
  height: 52px !important;
  margin: 0 auto !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  object-fit: contain !important;
}

/* Contact section: remove old 60% width and flex margins. */
.codex-home-page .content_lx {
  display: grid !important;
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr) !important;
  gap: 30px !important;
  width: min(var(--ws-container-xl), calc(100% - 2 * var(--ws-page-gutter))) !important;
  max-width: 1160px !important;
  height: auto !important;
  margin: 0 auto !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}
.codex-home-page .content_lx > .map_lx,
.codex-home-page .content_lx > .info_lx {
  position: relative !important;
  inset: auto !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 430px !important;
  margin: 0 !important;
  float: none !important;
  flex: none !important;
  box-sizing: border-box !important;
}
.codex-home-page .content_lx > .map_lx img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 430px !important;
  object-fit: cover !important;
}

@media (max-width: 1050px) {
  .codex-home-page .customer2_hz { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
  .codex-home-page .content_lx { grid-template-columns: minmax(0, 1fr) minmax(320px, .85fr) !important; }
}
@media (max-width: 760px) {
  .codex-home-page .module_xw > .title_xw2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
  .codex-home-page .content_lx { grid-template-columns: minmax(0, 1fr) !important; gap: 18px !important; }
  .codex-home-page .content_lx > .map_lx,
  .codex-home-page .content_lx > .info_lx { min-height: 320px !important; }
  .codex-home-page .content_lx > .map_lx img { min-height: 320px !important; }
}
@media (max-width: 520px) {
  .codex-home-page .container_ld1 { grid-template-columns: minmax(0, 1fr) !important; }
  .codex-home-page .container_ld1 > .image-box_ld1 { height: 235px !important; min-height: 235px !important; }
  .codex-home-page .module_xw > .title_xw2 { grid-template-columns: minmax(0, 1fr) !important; }
  .codex-home-page .module_xw .item_xw,
  .codex-home-page .module_xw .item_xw > a { min-height: 0 !important; }
  .codex-home-page .customer2_hz { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
}


/* 1.0.3 partner-carousel compatibility: preserve the legacy moving wrapper, only modernize its cards. */
.codex-home-page .customer_hz {
  height: auto !important;
  min-height: 0 !important;
  overflow: hidden !important;
  background: transparent !important;
}
.codex-home-page .customer2_hz {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  overflow: hidden !important;
  background: transparent !important;
}
.codex-home-page .customer2_hz .overall_hz,
.codex-home-page .customer2_hz .carousel-container {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}
.codex-home-page .customer2_hz .carousel-wrapper {
  display: flex !important;
  align-items: stretch !important;
  gap: 12px !important;
  width: max-content !important;
  min-width: max-content !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  will-change: transform;
}
.codex-home-page .customer2_hz .carousel-wrapper > .logo-column {
  display: grid !important;
  grid-template-columns: 1fr !important;
  grid-template-rows: repeat(2, 76px) !important;
  flex: 0 0 120px !important;
  gap: 12px !important;
  width: 120px !important;
  min-width: 120px !important;
  max-width: 120px !important;
  height: 164px !important;
  margin: 0 !important;
  padding: 0 !important;
}
.codex-home-page .customer2_hz .carousel-wrapper > .logo-column > .logo_hz {
  width: 120px !important;
  height: 76px !important;
}
@media (max-width: 520px) {
  .codex-home-page .customer2_hz .carousel-wrapper { gap: 10px !important; }
  .codex-home-page .customer2_hz .carousel-wrapper > .logo-column {
    flex-basis: 104px !important;
    width: 104px !important;
    min-width: 104px !important;
    max-width: 104px !important;
  }
  .codex-home-page .customer2_hz .carousel-wrapper > .logo-column > .logo_hz { width: 104px !important; }
}

/* 1.0.4 partner-section visual repair */
.codex-home-page .body_hz {
  height: auto !important;
  min-height: 0 !important;
  background: var(--ws-color-surface) !important;
}
.codex-home-page .body_hz .container_jj_bt3 {
  position: relative !important;
  z-index: 2 !important;
  background: transparent !important;
  color: var(--ws-color-heading) !important;
}
.codex-home-page .body_hz .container_jj_bt3 .title_bt,
.codex-home-page .body_hz .container_jj_bt3 .title_bt p {
  margin: 0 !important;
  color: var(--ws-color-heading) !important;
}
.codex-home-page .body_hz .container_jj_bt3 .line_bt {
  width: auto !important;
  height: auto !important;
  margin: 9px 0 28px !important;
  background: transparent !important;
  border-radius: 0 !important;
}
.codex-home-page .body_hz .container_jj_bt3 .line_bt p {
  margin: 0 !important;
  color: var(--ws-color-text-secondary) !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
  font-weight: 650 !important;
  letter-spacing: .13em !important;
  text-transform: uppercase !important;
}
.codex-home-page .body_hz .customer_hz + .container_jj_bt3 {
  margin-top: clamp(48px, 6vw, 76px) !important;
}
.codex-home-page .body_hz .customer_hz {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: transparent !important;
}
.codex-home-page .body_hz .customer2_hz,
.codex-home-page .body_hz .overall_hz,
.codex-home-page .body_hz .carousel-container,
.codex-home-page .body_hz .carousel-wrapper {
  background: transparent !important;
}
.codex-home-page .body_hz .overall_hz {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  overflow: hidden !important;
}
.codex-home-page .body_hz .overall_hz::before {
  display: none !important;
  content: none !important;
}
.codex-home-page .body_hz .carousel-container {
  position: relative !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 14px 0 !important;
  overflow: hidden !important;
  border: 1px solid var(--ws-color-border) !important;
  border-radius: var(--ws-radius-xl) !important;
  background: #f7f9fc !important;
  box-shadow: var(--ws-shadow-sm) !important;
  box-sizing: border-box !important;
}
.codex-home-page .body_hz .carousel-container::before,
.codex-home-page .body_hz .carousel-container::after {
  top: 0 !important;
  bottom: 0 !important;
  width: 52px !important;
  height: auto !important;
  z-index: 5 !important;
}
.codex-home-page .body_hz .carousel-container::before {
  background: linear-gradient(to right, #f7f9fc 18%, rgba(247,249,252,0)) !important;
}
.codex-home-page .body_hz .carousel-container::after {
  background: linear-gradient(to left, #f7f9fc 18%, rgba(247,249,252,0)) !important;
}
.codex-home-page .body_hz .carousel-wrapper {
  position: relative !important;
  z-index: 1 !important;
}
.codex-home-page .body_hz .logo_hz {
  border: 1px solid rgba(15, 35, 58, .09) !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-shadow: 0 8px 24px rgba(15, 35, 58, .06) !important;
}
.codex-home-page .body_hz .logo_hz::before {
  display: none !important;
  content: none !important;
}
.codex-home-page .body_hz .logo_hz:hover {
  border-color: rgba(0, 104, 165, .22) !important;
  background: #fff !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 30px rgba(15, 35, 58, .11) !important;
}
@media (max-width: 520px) {
  .codex-home-page .body_hz .container_jj_bt3 .line_bt { margin-bottom: 20px !important; }
  .codex-home-page .body_hz .carousel-container { padding: 10px 0 !important; border-radius: 16px !important; }
  .codex-home-page .body_hz .carousel-container::before,
  .codex-home-page .body_hz .carousel-container::after { width: 28px !important; }
}

