@charset "utf-8";
/* CSS Document */

/* ===== Prevent Horizontal Scroll ===== */
html, body {
  overflow-x: hidden;
}

/* ===== Remove Top Whitespace on Mobile ===== */
#imart-container,
#imart-single-page,
.row-fluid,
.row-maxwidth-95pct {
  margin-top: 0;
  padding-top: 0;
}

.hero-section {
  margin-top: 0;
}

/* ===== SDK Section Button Fix ===== */
.mi-win-how-btn {
  display: flex;
  justify-content: center;
  gap: 65px;
}

/* ===== HR Style ===== */
hr {
  border: none;
  height: 1px;
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, #fff 35%, #fff 65%, rgba(255, 255, 255, 0) 100%);
}

/* ===== Features Section - Text Overlay ===== */
.mi-win-z02 {
  background: url(css-img/session-1_bg.jpg) no-repeat center / cover;
}

.mi-win-find-box {
  position: relative;
}

.mi-win-find-box .col-12.position-relative {
  position: relative;
  width: 100%;
}

.mi-win-find-box .col-12.position-relative img {
  width: 100%;
  display: block;
}

.feature-text-overlay {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 50%;
  padding: 20px 30px;
  z-index: 2;
}

.feature-text-overlay.feature-text-right {
  right: 0;
  padding-right: 10px;
}

.feature-text-overlay.feature-text-left {
  left: 0;
  padding-left: 10px;
}

/* ===== Hero Section (Banner + Feature Grid) ===== */
.hero-section {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  position: relative;
  background-color: #212121; 
}

/* 獨立背景層 - 可調整位置 */
.hero-background {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 980px;
  height: 100%;
  background: url(css-img/kv-bg.jpg) no-repeat center center / cover;
  z-index: 0;
  pointer-events: none;
}

/* 確保內容在背景之上 */
.hero-section > *:not(.hero-background) {
  position: relative;
  z-index: 1;
}

/* ===== Banner Dark Section ===== */
.banner-dark {
  /* background: linear-gradient(135deg, #0a1628 0%, #1a2a4a 50%, #0d1a2d 100%); */
  background: transparent;
  padding: 40px 20px 30px;
  text-align: center;
  
  /* 移除滿版設定，改由外層處理 */
  /* width: 100vw;
  margin-left: calc(-50vw + 50%); */
  position: relative;
}

.banner-content {
  max-width: 980px;
  margin: 0 auto;
}

.banner-subtitle {
  color: #ffffff;
  font-size: 36px;
  font-weight: bold;
  margin-bottom: 5px;
}

.banner-title {
  color: #fff !important;
  font-size: 22px !important;
  line-height: 1.5em !important;
  font-weight: normal;
  margin-bottom: 30px;
}

.banner-title sup {
  font-size: 12px;
}

.banner-image {
  position: relative;
  display: inline-block;
  /* margin-bottom: 20px; */
}

/* 移除 ::before，改由 .hero-section 統一處理背景 */

.banner-image img {
  max-width: 100%;
  max-height: 400px;
}

.price-tag {
  position: absolute;
  bottom: 20px;
  right: 0;
  color: #ffffff;
  font-size: 18px;
}

.price-tag span {
  color: #76c043;
  font-size: 42px;
  font-weight: bold;
}

.nvidia-partner {
  position: absolute;
  bottom: 80px;
  left: 20px;
}

.nvidia-partner img {
  height: 50px;
}

.banner-btns {
  display: flex;
  justify-content: right;
  gap: 20px;
  /* margin-top: 10px; */
}

.btn-banner {
  background-color: #2a7ab8;
  color: #ffffff;
  padding: 12px 30px;
  border-radius: 4px;
  text-decoration: none;
  font-size: 14px;
  transition: background-color 0.3s;
}

.btn-banner:hover {
  background-color: #3a9ad8;
  color: #ffffff;
  text-decoration: none;
}

/* ===== Feature Grid Section ===== */
.feature-grid-section {
  /* background: linear-gradient(135deg, #0a1628 0%, #1a2a4a 100%); */
  background: transparent;
  padding: 0 20px 40px;
  
  /* 移除滿版設定，改由外層處理 */
  /* width: 100vw;
  margin-left: calc(-50vw + 50%); */
  position: relative;
}

.feature-grid {
  max-width: 980px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 15px;
}

.feature-box {
  background: transparent;
  /* border: 2px solid #76c043; */
  border-radius: 8px;
  padding: 0;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
  overflow: hidden;
}

/* 第一個 feature-box 佔據兩列 */
.feature-box-wide {
  grid-column: span 2;
}

/* 最後一個 feature-box 橫跨兩行 */
.feature-box-tall {
  grid-row: span 2;
}

/* 當 feature-box 只包含圖片時，移除 padding */
.feature-box:has(.feature-box-img:only-child) {
  padding: 0;
}

.feature-box-img {
  margin: 0;
  width: 100%;
  height: 100%;
}

.feature-box-img img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
}

.feature-box-icon {
  margin-top: 10px;
}

.feature-box-icon img {
  max-height: 50px;
}

.feature-box-text {
  color: #ffffff;
  font-size: 16px;
  line-height: 1.6;
}

.feature-box-text .highlight {
  color: #ffffff;
  font-weight: bold;
}

.feature-box-text .highlight-green {
  color: #76c043;
  font-weight: bold;
}

.feature-box-text .highlight-red {
  color: #e85a5a;
  font-weight: bold;
}

.feature-box-text .large {
  font-size: 36px;
}

.feature-box-text .small {
  font-size: 14px;
  color: #b0c4de;
}

.feature-box-text .specs {
  color: #b0c4de;
  font-size: 18px;
}

.feature-box-text .specs .num {
  color: #ffffff;
  font-size: 28px;
  font-weight: bold;
}

/* ===== Responsive ===== */
@media (max-width: 768px) {
  .feature-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  
  .banner-btns {
    flex-direction: column;
    align-items: center;
  }
  
  .btn-banner {
    width: 80%;
    text-align: center;
  }
  
  .banner-subtitle {
    font-size: 22px;
  }
  
  .banner-title {
    font-size: 16px;
  }
  
  .nvidia-partner {
    position: relative;
    bottom: auto;
    left: auto;
    margin-bottom: 20px;
  }

  /* 平板/手機模式下 feature-text-overlay 改為靜態定位 */
  .feature-text-overlay {
    position: static;
    transform: none;
    width: 100%;
    padding: 15px 5%;
    background: rgba(255, 255, 255, 0.95);
    box-sizing: border-box;
  }

  .feature-text-overlay.feature-text-right,
  .feature-text-overlay.feature-text-left {
    padding-left: 5%;
    padding-right: 5%;
  }

  /* 修正小螢幕下容器左右間距 */
  .mi-win-box {
    padding-left: 3%;
    padding-right: 3%;
  }

  /* 修正 .col-12 超出右邊界的問題 */
  .mi-win-find-box .col-12 {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
  }

  .mi-win-find-box .col-12 {
    display: flex;
    flex-direction: column;
  }
}

@media (max-width: 480px) {
  .feature-grid {
    grid-template-columns: 1fr;
  }
  
  .feature-box-text .large {
    font-size: 28px;
  }

  /* 手機模式下 feature-text-overlay 改為靜態定位 */
  .feature-text-overlay {
    position: static;
    transform: none;
    width: 100%;
    padding: 15px 5%;
    background: rgba(255, 255, 255, 0.95);
    box-sizing: border-box;
  }

  .feature-text-overlay.feature-text-right,
  .feature-text-overlay.feature-text-left {
    padding-left: 5%;
    padding-right: 5%;
  }

  /* 修正小螢幕下容器左右間距 */
  .mi-win-box {
    padding-left: 4%;
    padding-right: 4%;
  }

  /* 修正 .col-12 超出右邊界的問題 */
  .mi-win-find-box .col-12 {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
  }
}

/* ===== Original Styles Below ===== */
*, ::after, ::before {
  box-sizing: initial;
}
.advan-solution *, .advan-solution *::before, .advan-solution *::after {
  box-sizing: border-box !important;
}
.advan-solution {
  font-family: "Heebo", "Arial", sans-serif !important;
}

.position-relative {
  position: relative;
}
.position-absolute {
  position: absolute;
}

.text-center {
  text-align: center !important;
}
.text-bolder {
  font-weight: bolder;
}
.text-primary {
  color: #0a417e;
}
.bg-white {
  background-color: white;
}

.h-100 {
  height: 100%;
}
.w-100 {
  width: 100%;
}
.mw-100 {
  max-width: 100%;
}

.m-0 {
  margin: 0;
}
.mb-0 {
  margin-bottom: 0;
}
.m-3 {
  margin: 1rem;
}
.mb-3 {
  margin-bottom: 1rem;
}
.mr-0 {
  margin-right: 0;
}
.mt-15 {
  margin-top: 15px;
}
.mb-15 {
  margin-bottom: 15px;
}
.mr-15 {
  margin-right: 15px;
}
.mx-15 {
  margin-left: 15px;
  margin-right: 15px;
}

.p-0 {
  padding: 0px;
}
.pl-0 {
  padding-left: 0;
}
.p-15 {
  padding: 15px;
}
.pl-15 {
  padding-left: 15px;
}
.pr-15 {
  padding-right: 15px;
}
.px-15 {
  padding-left: 15px;
  padding-right: 15px;
}
.py-15 {
  padding-top: 15px;
  padding-bottom: 15px;
}
.px-40 {
  padding-left: 40px;
  padding-right: 40px;
}
.pl-45 {
  padding-left: 45px;
}
.pr-45 {
  padding-right: 45px;
}
.pl-80 {
  padding-left: 80px;
}
.pr-80 {
  padding-right: 80px;
}

.mw-1920 {
    max-width: 1920px!important;
    margin-left: auto;
    margin-right: auto;
    padding-top: 0;
    padding-bottom: 0;
}
.mw-980 {
    max-width: 980px!important;
    margin-left: auto;
    margin-right: auto;
    padding: 0;
}

.justify-content-center {
  justify-content: center;
}
.justify-content-end {
  justify-content: end;
}

.col {
  position: relative;
  width: 100%;
  min-height: 1px;

  flex: 1 0 0;
}
.col-auto {
  flex: 0 0 auto;
  width: auto;
}
.col-33 {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 33%;
  flex: 0 0 33%;
  max-width: 33%;
}

.btn {
  border-radius: 6px;
}

#banner {
  background-color: #212121;
}

#banner .mw-1920 {
  background: url(css-img/kv-bg.jpg) no-repeat center / cover;
}

#banner .banner-btns {
  justify-content: end;
  margin-top: -25px;
}

#banner .banner-btns .btn-primary,
#banner .banner-btns a.btn-primary {
  background-color: #2f90cf;
  border: 1px solid #2f90cf;
  margin: 0;
}

#banner .banner-btns .btn {
  padding: 8px 22px;
  margin-right: 15px!important;
}
#banner .banner-btns .btn:last-child {
  margin-right: 0!important;
}

#banner .banner-btns .btn-primary:hover {
  background-color: #41acf3;
  border: 1px solid #41acf3;
}

#features {
  background: url(css-img/session-1_bg.jpg) no-repeat center / cover;
}

#features .feature-title {
    line-height: 1.25;
    font-size: 34px;

    margin-bottom: 1rem;
}

#features .feature-m-row {
  display: none;
  background-color: white;
}
#features .feature-row .position-absolute {
  top: 0;
  width: 100%;
}
#features .feature-row .feature-text.left {
  padding: 10px 80px 10px 30px;
}
#features .feature-row .feature-text.right {
  padding: 10px 30px 10px 80px;
}

#sdk {
  background-color: #C6E3F3;
}

#sdk .sdk-btns {
  justify-content: center;
  padding-left: 15px;
  padding-right: 15px;
  margin-bottom: 1rem;
}

#sdk .blank-col {
  padding-left: 40px;
  padding-right: 40px;
}

#sdk .btn {
  border-radius: 2px;
  padding: 10px 40px;
}

#sdk .btn-primary,
#sdk a.btn-primary {
  background-color: #144d9e;
  border: 1px solid #144d9e;
  margin: 10px 0;
}

#sdk .btn-primary:hover {
  background-color: #2866bd;
  border: 1px solid #2866bd;
}

#sdk .sdk-card-row {
  justify-content: space-between;
}

#sdk .sdk-card-row .sdk-card {
  background: linear-gradient(to bottom, #0e4778 0%, #091630 100%);
  color: white;
  padding: 0;
  margin-bottom: 15px;

  text-align: center;
}

#sdk .sdk-card-row .sdk-card hr {
  border: none;
  height: 1px;
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, #fff 35%, #fff 65%, rgba(255, 255, 255, 0) 100%);
}

#sdk .sdk-card-row .sdk-card .sdk-card-title {
  display: flex;
  justify-content: center;
  align-items: end;

  height: 82px;
  max-width: 300px;
  padding: 1rem 1rem 0 1rem;
  margin: 0 auto;
}

#sdk .sdk-card-row .sdk-card .sdk-card-title h3 {
  font-weight: bolder;
  margin-bottom: 0;
}

#sdk .sdk-card-row .sdk-card .sdk-card-content {
  min-height: 120px;
  padding: .5rem 2rem 1rem 2rem;
}

#sdk .sdk-card-row .sdk-card .sdk-card-img {
  padding: 0 .5rem 2rem .5rem;
}

#applications {
  background-color: #F4F5F5;
}

#applications .app-card-row {
  justify-content: space-between;
}

#applications .app-card-row .app-card {
  padding: 0;
  margin-bottom: 15px;

  text-align: center;
}

#applications .app-card-row .app-card .app-card-title {
  padding: 1rem 1rem 0 1rem;
}

#applications .app-card-row .app-card .app-card-title h3 {
  color: #0a417e;
  font-weight: bolder;
}

#applications .app-card-row .app-card .app-card-content {
  padding: 0 2rem 1rem 2rem;
}

#products {
  background-color: #F4F5F5;
}

#products .product-features {
  height: 180px;
}

#products ul {
  margin-left: 20px;
}

#products .btn {
  border-radius: 2px;
  padding: 10px 40px;
}

#products .btn-primary,
#products a.btn-primary {
  background-color: #144d9e;
  border: 1px solid #144d9e;
  margin: 10px 0;
}

#products .btn-primary:hover {
  background-color: #2866bd;
  border: 1px solid #2866bd;
}

@media (min-width: 577px) {
  .col-sm {
    position: relative;
    width: 100%;
    min-height: 1px;
    padding-right: 15px;
    padding-left: 15px;

    flex: 1 0 0;
  }
  .col-sm-auto {
    flex: 0 0 auto;
    width: auto;
  }
}

@media (max-width: 576px) {
  #banner .banner-btns .col-auto {
    display: flex;
    flex-flow: column;
  }
  #banner .banner-btns .btn {
    margin-right: 0!important;
    margin-bottom: 15px!important;
  }
  #banner .banner-btns .btn:last-child {
    margin-bottom: 0!important;
  }

  #sdk .blank-col {
    padding-left: 10px;
    padding-right: 10px;
  }

  #sdk .btn {
    padding: 8px 20px;
  }

  #products .product-features {
    height: unset;
  }

  #products .btn {
    padding: 8px 20px;
  }
}

@media (min-width: 769px) {
  .col-md {
    position: relative;
    width: 100%;
    min-height: 1px;
    padding-right: 15px;
    padding-left: 15px;

    flex: 1 0 0;
  }
  .col-md-auto {
    flex: 0 0 auto;
    width: auto;
  }
  .col-md-33 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 33%;
    flex: 0 0 33%;
    max-width: 33%;
  }
}

@media (max-width: 768px) {
  .adv-paragraph {
    padding-left: 15px;
    padding-right: 15px;
  }
  h1 {
    font-size: 36px !important;
  }
  #main-banner-wrapper .banner-wrapper .banner-item .banner-content h3 {
    font-size: 16px;
  }

  #banner .banner-btns {
    justify-content: center;
    margin-top: 15px;
  }

  #features .feature-row {
    display: none;
  }
  #features .feature-m-row {
    display: flex;
  }

  #features .feature-m-row .feature-img {
    order: 1;
  }
  #features .feature-m-row .feature-img img {
    width: 100%;
  }
  #features .feature-m-row .feature-text {
    position: unset;

    order: 2;
    max-width: unset;
    padding: 20px;
  }

  #sdk .sdk-card-row .sdk-card .sdk-card-title {
    height: unset;
    max-width: unset;
  }

  #sdk .sdk-card-row .sdk-card .sdk-card-content {
    min-height: unset;
  }
}

@media (max-width: 1133px) {
  #features .feature-title {
      font-size: 3vw;
  }
}