/*
 * 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 { opacity: 0; transform: translateY(18px); transition: opacity .65s ease, transform .65s ease; }
.codex-home-page .codex-reveal.is-visible { opacity: 1; transform: none; }
.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; }
}
