/* color */
/* font */
/* transition */
.bannerBox {
  position: relative; }

.bannerProgress {
  position: absolute;
  height: 100px;
  width: 5px;
  right: 120px;
  bottom: 100px;
  background-color: #b50800;
  z-index: 5; }
  .bannerProgress .current {
    height: var(--progress);
    width: 5px;
    background-color: #fff;
    transition: all 0.5s ease-in-out; }

.linkBox {
  overflow: hidden; }
  .linkBox .circuit {
    position: absolute;
    left: -15%;
    top: 0; }
  .linkBox .hline {
    position: absolute;
    right: -15%;
    top: 7%; }
  .linkBox .wrap {
    position: relative;
    padding: 120px 50px 80px; }
    @media (max-width: 1024px) {
      .linkBox .wrap {
        padding: 60px 50px 40px; } }
    @media (max-width: 768px) {
      .linkBox .wrap {
        padding: 60px 20px; } }
    @media (max-width: 640px) {
      .linkBox .wrap {
        padding: 40px 0; } }
  .linkBox .topBox,
  .linkBox .bottomBox {
    display: flex; }
  .linkBox .bottomBox .linkItem {
    padding-top: 0; }
  .linkBox:has(:hover) :not(:hover) img {
    filter: brightness(0.7); }

.linkContent {
  display: flex; }
  @media (max-width: 640px) {
    .linkContent {
      flex-direction: column; } }

.linkItem {
  padding: 5px;
  overflow: hidden; }
  .linkItem img {
    width: 100%;
    object-fit: cover;
    transition: all 0.5s ease-in-out; }

.aboutBox {
  position: relative;
  padding: 120px 0;
  background-image: url("../assets/images/homeAboutBg.jpg"); }
  @media (max-width: 768px) {
    .aboutBox {
      overflow: hidden; } }
  .aboutBox:after {
    content: "";
    position: absolute;
    background-image: url("../assets/images/aboutBg.png");
    background-size: contain;
    background-position: right bottom;
    background-repeat: no-repeat;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    z-index: -1; }
    @media (max-width: 1024px) {
      .aboutBox:after {
        background-position: 350% bottom;
        opacity: 0.5; } }
    @media (max-width: 640px) {
      .aboutBox:after {
        background-position: center; } }
  .aboutBox .wrap {
    position: relative; }
  .aboutBox .contentBox {
    background-color: rgba(0, 0, 0, 0.6);
    width: 40%;
    padding: 50px;
    transform: translateY(50%); }
    @media (max-width: 768px) {
      .aboutBox .contentBox {
        width: 60%;
        transform: translateY(10%); } }
    @media (max-width: 640px) {
      .aboutBox .contentBox {
        width: 100%;
        transform: translateY(0); } }
  .aboutBox .content p {
    font-weight: 500;
    color: #fff; }
  .aboutBox .btnBox {
    text-align: right;
    padding-right: 120px; }
    @media (max-width: 640px) {
      .aboutBox .btnBox {
        padding-right: 0; } }

.aboutLogo {
  max-width: 200px;
  margin-bottom: 15px; }

.productBox {
  padding: 70px 0;
  position: relative; }
  .productBox:before {
    content: "";
    position: absolute;
    width: 10px;
    height: 50%;
    left: 12%;
    bottom: -5%;
    background-image: linear-gradient(to bottom, #b50800, #000000);
    z-index: 2; }
    @media (max-width: 1680px) {
      .productBox:before {
        left: 8%; } }
    @media (max-width: 1440px) {
      .productBox:before {
        left: 3%; } }
  .productBox:after {
    content: "";
    position: absolute;
    width: 15px;
    height: 70%;
    right: 12%;
    bottom: 0;
    background-image: linear-gradient(to bottom, #b50800, #000000); }
    @media (max-width: 1680px) {
      .productBox:after {
        right: 8%; } }
    @media (max-width: 1440px) {
      .productBox:after {
        right: 3%; } }
  @media (max-width: 1024px) {
    .productBox {
      padding: 40px 0; } }
  @media (max-width: 640px) {
    .productBox {
      padding: 35px 0;
      overflow: hidden; } }

.productTypes {
  display: flex;
  justify-content: space-between; }
  @media (max-width: 640px) {
    .productTypes {
      flex-direction: column; } }

.productType {
  position: relative; }
  .productTypeTxt {
    color: #fff;
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    align-items: center;
    display: flex;
    justify-content: center;
    flex-direction: column;
    z-index: 2; }
    .productTypeTxt h2 {
      font-size: 24px;
      font-weight: 500;
      padding-bottom: 10px;
      margin-bottom: 20px;
      position: relative;
      letter-spacing: 2.88px; }
      @media (max-width: 640px) {
        .productTypeTxt h2 {
          font-size: 20px;
          margin-bottom: 10px;
          letter-spacing: 2.16px; } }
      .productTypeTxt h2:after {
        content: "";
        position: absolute;
        background-color: #fff;
        bottom: 0;
        content: '';
        height: 1px;
        left: 50%;
        transform: translateX(-50%);
        width: 180px; }
    .productTypeTxt p:not(:first-child) {
      margin-bottom: 10px; }

.productList {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  column-gap: 20px;
  margin-top: 30px; }
  @media (max-width: 1024px) {
    .productList {
      grid-template-columns: repeat(3, 1fr);
      column-gap: 20px; } }
  @media (max-width: 640px) {
    .productList {
      grid-template-columns: repeat(2, 1fr);
      column-gap: 0;
      margin-top: 0; } }
  .productList .productTitle h2 {
    font-size: 18px;
    max-width: 85%;
    margin: auto;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    letter-spacing: 1.08px; }
  .productList .productBtn {
    margin-top: -10px;
    position: relative;
    z-index: 3; }

.productItem {
  align-items: center;
  display: flex;
  flex-direction: column; }
  @media (min-width: 1281px) {
    .productItem:hover a:after {
      content: "";
      position: absolute;
      opacity: 1; } }
  .productItem > a {
    align-items: center;
    display: flex;
    flex-direction: column;
    padding-bottom: 25px;
    position: relative;
    width: 100%;
    color: currentColor; }
    .productItem > a:after {
      content: "";
      position: absolute;
      height: 100%;
      width: 100%;
      top: 0;
      left: 0;
      border: 3px solid #b50800;
      border-radius: 25px;
      transition: all 0.5s ease-in-out;
      pointer-events: none;
      opacity: 0;
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); }

.productTitle h2 {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 1.44px; }
  @media (max-width: 640px) {
    .productTitle h2 {
      font-size: 18px;
      letter-spacing: 1.08px; } }

.newsBox {
  padding: 150px 0;
  position: relative;
  overflow: hidden; }
  @media (max-width: 1680px) {
    .newsBox {
      padding: 120px 0; } }
  @media (max-width: 640px) {
    .newsBox {
      padding: 40px 0; } }
  .newsBox .circuit {
    right: 0;
    top: -17%;
    pointer-events: none;
    position: absolute;
    z-index: -1; }
  .newsBox:before {
    content: "";
    position: absolute;
    width: 100%;
    height: 10px;
    top: 13%;
    background-image: linear-gradient(to right, #000000 70%, #b50800 70%); }
    @media (max-width: 1680px) {
      .newsBox:before {
        top: 14%; } }
    @media (max-width: 640px) {
      .newsBox:before {
        top: 11%;
        height: 8px; } }
  .newsBox:after {
    content: "";
    position: absolute;
    width: 100%;
    height: 50%;
    left: 0;
    bottom: 0;
    pointer-events: none;
    background-image: url("../assets/images/homeNewsBg.jpg");
    z-index: -1; }

.newsSwiper {
  padding-bottom: 30px; }
  @media (max-width: 768px) {
    .newsSwiper {
      margin-top: 50px; } }

.newsItem a {
  color: #fff; }

.newsItem .date {
  align-items: baseline;
  display: flex;
  padding: 15px 35px;
  border-radius: 15px;
  width: fit-content;
  margin: 15px auto;
  font-family: "Arial", Noto Sans TC, sans-serif;
  font-weight: 700;
  position: relative; }
  .newsItem .date:before {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background-image: url("../assets/images/dateBg.png");
    background-size: 100%;
    background-position: center;
    background-repeat: no-repeat;
    transition: all 0.5s ease-in-out;
    z-index: -1; }

.newsItem .mon {
  color: #fff;
  font-size: 16px;
  margin-right: 25px;
  transition: all 0.5s ease-in-out; }

.newsItem .day {
  color: #fff;
  font-size: 24px;
  letter-spacing: 1.92px; }

.newsItem .title {
  font-size: 21px;
  font-weight: 700;
  transition: all 0.5s ease-in-out;
  letter-spacing: 1.26px; }

@media (min-width: 1281px) {
  .newsItem:hover .newsImg img {
    scale: 1.1; }
  .newsItem:hover .title {
    text-decoration: underline; } }

.newsInfo {
  max-width: 80%;
  margin: auto;
  color: #fff; }
  .newsInfo a {
    color: #fff; }
  .newsInfo .btnBox {
    text-align: right;
    margin-top: 30px;
    margin-left: auto; }
    .newsInfo .btnBox .btn {
      color: #fff;
      border-color: #fff; }

.newsImg {
  overflow: hidden; }
  @media (max-width: 1680px) {
    .newsImg {
      height: 500px; } }
  @media (max-width: 640px) {
    .newsImg {
      height: 350px; } }
  .newsImg img {
    height: 100%;
    max-width: 100%;
    object-fit: cover;
    width: 100%;
    transition: all 0.5s ease-in-out; }
