:root {
    --mainColor: #009FCE;
    --secondaryColor: #1CB98B;
    --hoverColor: #FE7C22;
    --bgColor: #FAFAFA;
    --lineColor: #CCCCCC;
    --textColor: #333333;
    --whiteColor: #ffffff;
}

* {
    padding: 0;
    margin: 0;
    border: 0;
    box-sizing: border-box;
}

html,
body{
    font-family: "微軟正黑體", 'Roboto', open sans, sans-serif;
    text-align:justify;
    letter-spacing: 1px;
    font-size: 16px;
    color: var(--textColor);
}

/* Global Style */
a{
    font-weight: 700;
    text-decoration: none;
}

a:hover{
    text-decoration: none;
}

a:not([href]):not([class]):hover{
    color:var(--hoverColor);
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6{
    line-height: 1.5;
}

p{
    font-size: 1.125rem;
    margin-top: 0;
    margin-bottom: 0.5rem;
}

ul, ol{
    font-size: 1.125rem;
    padding: 0;
    list-style: none;
}

.container{
    position: relative;
}

img{
    max-width: 100%;
}

.title{
    position: relative;
    font-size: 1.5rem;
    font-weight: bold;
    margin-bottom: 1rem;
    color: var(--textColor);
}

.sec_title{
    font-size: 2rem;
    font-weight: 700;
}

.text_tit{
    font-size: 1.125rem;
    margin-bottom: 0;
}

@media screen and (min-width:1200px) {
    .title{
        font-size: 2.5rem;
        margin-bottom: 2rem;
    }
}

@media screen and (min-width: 1540px) {
    p{
        margin-bottom: 1rem;
    }
}

@media screen and (max-width: 767px) {
    .title {
        font-size: 1.75rem;    
    }
    
    .sec_title{
        font-size: 1.25rem;
        font-weight: 600;
    }
}

.bg_txt{
    position: absolute;
    font-weight: bold;
    letter-spacing: 15px;
    font-family: "Raleway", sans-serif;
    font-style: italic;
    opacity: 0.4;
}

.section_padding {
    padding: 80px 0;
}


/* menu */
.close__btn {
  top: -25%;
}

@media screen and (max-width: 991px) {
  .mobile__nav__toggler {
    top: -25%;
  }
}


/* slider */
.swiper {
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: none;
}

.swiper-slide {
    font-size: 1rem;
}

.swiper-button-next,
.swiper-button-prev {
    display: inline-block;
    position: absolute;
    top: auto;
    bottom: -7rem;
    width: 70px;
    height: 70px;
    padding: 1.25rem 0.5rem;
    margin: 0 0.5rem;
    text-align: center;
    color: var(--lineColor);
    border: 1px solid var(--lineColor);
    background-color: var(--whiteColor);
}

.swiper-button-next {
    left: 50%;
    right: auto;
}

.swiper-button-prev {
    right: 50%;
    left: auto;
    transform:scaleX(-1);
}

.swiperBox {
    position: absolute;
    right: 17.5rem;
    bottom: 3rem;
}

.banSwiper .swiper-button-next {
    right: 0;
    bottom: 0;
}

.banSwiper .swiper-button-prev {
    right: 0;
    bottom: 0;    
}

.swiper-button-next:after {
    content: '\e901';
}

.swiper-button-prev:after {
    content: '\e901';
}

.swiper-button-next:after,
.swiper-button-prev:after {
    font-family: "icomoon";
    font-size: 1.75rem;
}

.swiper-button-next:hover,
.swiper-button-prev:hover {
    border: 1px solid var(--hoverColor);
    background: var(--hoverColor);
    color: var(--whiteColor);
}

.swiper-pagination span {
    font-size: 3.125rem;
    font-weight: 500;
    background: #ddd;
    margin: 0 0.5rem !important;
    width: 16px;
    height: 16px;
    opacity: 1;
    border-radius: 50%;
}

.swiper-pagination span.swiper-pagination-bullet-active{
    background: var(--hoverColor);
}

.swiper-horizontal>.swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal, .swiper-pagination-custom, .swiper-pagination-fraction{
    bottom: 3rem;
}

.swiper-button-disabled {
  opacity: 1 !important;
  /* pointer-events: auto !important; */
}

@media screen and (max-width:767px) {
    .swiperBox {
        right: 50%;
    }

  .swiper-button-next, .swiper-button-prev {
    width: 60px;
    height: 60px;
    padding: 1rem 0.5rem;
  }
}


/* Banner_area */
.Banner_area {
    position: relative;
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
}

.Banner_area .swiper {
    background: none;
    overflow: unset;
}

.bannerWrap {
    margin-top: 75px;
}

.banSwiper {
    margin: 0 auto;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.banSwiper .swiper-slide {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 100%;
}

.banSwiper .swiper-slide img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: bottom center;
    z-index: 0;
}

.banSwiper .swiper-slide::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.25);
  z-index: 1;
}

.banSwiper .light::before {
  background: none !important;
}

@media screen and (max-width: 768px) {
  .banSwiper .swiper-slide img {
    object-position: 20% center;
  }
}


.banSwiper .swiper-slide-thumb-active {
    opacity: 1;
}

.banSwiper .ban_imgBox {
    width: 100%;
    height: 100%;
}

.banSwiper .contentWrap {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 50%;
    height: 200px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    z-index: 2;
}

.banSwiper .contentWrap.ban_txtStyle {
    right: 0%;
    top: 43%;
    transform: translate(-22%, -100%);
    flex-direction: inherit;
    z-index: 1;
}

.banSwiper .contentWrap.ban_txtStyle .ban_txtBox h1 {
  font-size: 3.25rem;
  font-weight: 700;
  text-align: left;
  color: var(--whiteColor);
  text-shadow: 0 3px 6px rgba(0, 0, 0, 0.3);
}

.banSwiper .contentWrap .btnBox {
    margin-left: 4.5rem;
    z-index: 1;
}

.Banner_area .swiper-button-next,
.Banner_area .swiper-button-prev {
  background-color: rgba(0, 0, 0, 0.3);
  color: var(--whiteColor);
  border: 1px solid var(--whiteColor);
}

.Banner_area .swiper-button-next:hover,
.Banner_area .swiper-button-prev:hover {
  background-color: var(--hoverColor);
  border: 1px solid var(--hoverColor);
}

@media screen and (max-width:1200px) {
  .banSwiper .contentWrap.ban_txtStyle .ban_txtBox h1 {
    font-size: 2.25rem;
  }
}

@media screen and (max-width:991px) {
  .banSwiper{
        right: auto;
        left: 50%;
        transform: translateX(-50%);
        bottom: 0;
    }
  .banSwiper .contentWrap {
      justify-content: center;
      width: 90%;
    }

    .banSwiper .contentWrap.ban_txtStyle {
      transform: translate(-50%, -100%);
    }

    .banSwiper .contentWrap .ban_txtBox {
        margin-left: 2rem;
        z-index: 1;
    }

    .banSwiper .contentWrap.ban_txtStyle .ban_txtBox h1 {
    text-align: center;
  }

    .banSwiper .contentWrap .btnBox {
        margin-left: 1rem;
        z-index: 1;
    }
}

@media screen and (max-width:767px) {
    .banSwiper .contentWrap .ban_txtBox {
      margin-left: 0;
    }
}


/* product_area */
.product_area {
  position: relative;
  padding: 80px 0 200px;
}

.product_area .item_container .item {
  position: relative;
  display: flex;
  min-height: 600px;
  height: auto;
  border: 1px solid var(--whiteColor);
}

.product_area .item_container .item .img_box {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  background: url(../images/idx/idx_pro_bg.jpg) no-repeat center;
  background-size: cover;
  overflow: hidden;
}

.product_area .item_container .item .img_box img {
  transform: scale(1);
  transition: all 0.3s ease;
}

.product_area .item_container .item:hover .img_box img {
  transform: scale(1.1);
}

.product_area .item_container .item .inner-pagination {
  position: absolute;
  bottom: 0;
  left: auto;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 28%;
  height: 80px;
  padding-right: 1rem;
  z-index: 10;
  /* pointer-events: auto; */
}

.product_area .item_container .item:hover .inner-pagination {
  bottom: 4.75rem;
  right: 35%;
  justify-content: center;
}

.product_area .item_container .item .swiper-pagination span {
  width: 12px;
  height: 12px;
}

.product_area .item_container .item .swiper-pagination span.swiper-pagination-bullet-active {
  position: relative;
  margin: 0 8px;
  border-radius: 50%;
  background: var(--whiteColor);
}

.product_area .item_container .item .swiper-pagination span.swiper-pagination-bullet-active::after {
  content: "";
  position: absolute;
  top: -5px;
  right: -5px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.5);
}

.product_area .item_container .item .content {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  color: var(--whiteColor);
  position: absolute;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 50%;
  padding: 1.5rem;
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0) 0%,
    rgba(0, 0, 0, 0) 50%,
    rgba(0, 0, 0, 1) 100%
  );
  transition: all 0.3s ease-in-out;
}

.product_area .item_container .item:hover .content {
  justify-content: flex-start;
  height: 100%;
  background: rgba(0, 159, 206, 0.94);
}

.product_area .item_container .item .content h4 {
  font-weight: 700;
  margin-bottom: 0rem;
  transition: all 0.3s ease;
}

.product_area .item_container .item:hover .content h4 {
  font-size: 1.75rem;
  margin-bottom: 0.5rem;
}

.product_area .item_container .item:hover .content p,
.product_area .item_container .item:hover .content ol {
  display: block;
  height: 66%;
  overflow-y: scroll;
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.2s;
}

.product_area .item_container .item:hover .content ol {
  list-style: decimal;
  padding-left: 1.5rem;
  margin-bottom: 1rem;
}

.product_area .item_container .item:hover .content ol>li>ol {
  list-style: circle;
}

.product_area .item_container .item .content .link {
  position: absolute;
  width: calc(100% - 3rem);
  bottom: 1.5rem;
}

.product_area .item_container .item .content .link .btn_rc {
  display: none;
  font-size: 1.125rem;
  padding: 0.75rem;
  margin: 0.75rem 0 0;
  border: 1px solid var(--whiteColor);
  background-color: var(--whiteColor);
  pointer-events: none;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.product_area .item_container .item:hover .content .btn_rc {
  display: block;
  opacity: 1;
  transform: translateY(0);
  animation: enableClick 0s ease 0.5s forwards;
}

@keyframes enableClick {
  to {
    pointer-events: auto;
  }
}

.product_area .item_container .item .content .btn_rc::before {
  content: "";
	width: 120%;
	left: -10%;
	background-color: var(--mainColor);
	transform: skew(30deg);
	transition: transform 0.4s cubic-bezier(0.3, 1, 0.8, 1);
}

.product_area .item_container .item .content .btn_rc:hover::before {
  transform: translate3d(100%,0,0);
}

.product_area .item_container .item .content p,
.product_area .item_container .item .content ol,
.product_area .item_container .item .content .btn_rc {
  display: none;
  opacity: 0;
  transform: translateY(100%);
  transition: all 0.3s ease-out;
  transition-delay: 0s;
}

.product_area .item_container .item .content .link .btn_rc:hover span,
.product_area .item_container .item .content .link .btn_rc:hover::after {
  color: var(--mainColor);
  opacity: 1;
  transition-delay: 0s;
}

@media screen and (max-width:767px) {
  .product_area .item_container .item {
    min-height: 550px;
  }

  .product_area .item_container .item:hover .content p,
  .product_area .item_container .item:hover .content ol {
    height: 54%;
  }
}


/* News_area */
.news_area {
  position: relative;
  padding: 80px 0 200px;
  background: url(../images/idx/news_bg.jpg) center no-repeat fixed;
}

.news_area::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    315deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.6) 20%,
    rgba(255, 255, 255, 1) 80%
  );
}

.news_area .item_container .item {
  position: relative;
  border: 1px solid var(--lineColor);
  overflow: hidden;
}

.news_area .item_container {
  height: auto;
}

.news_area .item_container .item img {
  width: 100%;
  height: 300px;
  object-fit: cover;
  transform: scale(1);
  transition: all 0.3s ease;
}

.news_area .item_container .item:hover img {
  transform: scale(1.1);
}

.news_area .item_container .item .content {
  position: relative;
  min-height: 140px;
  padding: 1.25rem 1.5rem 1.5rem;
  border-top: 1px solid var(--lineColor);
  background-color: var(--whiteColor);
}

.news_area .item_container .item .content::before {
  content: "\e901";
  font-family: 'icomoon';
  position: absolute;
  top: -1.2rem;
  right: 2rem;
  font-size: 1.5rem;
  color: var(--whiteColor);
  z-index: 1;
}

.news_area .item_container .item .content::after {
  content: "";
  position: absolute;
  top: -1.5rem;
  right: 1.25rem;
  width: 50px;
  height: 50px;
  background-color: var(--mainColor);
}

.news_area .item_container .item span {
  display: block;
  font-size: 1.125rem;
  font-weight: 700;
  padding-bottom: 0.5rem;
  color: var(--secondaryColor);
}

.news_area .item_container .item p {
  color: var(--textColor);
  font-size: 1.25rem;
  letter-spacing: 0;
  margin-bottom: 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.news_area .item_container .item:hover span, 
.news_area .item_container .item:hover p {
  color: var(--mainColor);
  transition: all 0.3s;
}

.news_area .item_container .item:hover .content::before  {
  transform: rotate(-45deg);
  transition: all 0.3s;
}

@media screen and (max-width:425px) {
  .news_area .item_container .item img {
    height: 223px;
  }
}


/* link_area */
.link_area {
  padding: 80px 0 200px;
}

.link_area .title {
  margin-bottom: 4rem;
}

.link_area .item_container .item {
  position: relative;
  overflow: hidden;
  text-align: center;
  padding: 2.5rem 1rem;
  border: 1px solid var(--lineColor);
  background-color: var(--whiteColor);
  z-index: 0;
  transition: color 0.3s ease;
}

.link_area .item_container .item::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--mainColor);
  transform: translateY(100%);
  transition: transform 0.2s ease;
  z-index: -1;
}

.link_area .item_container .item:hover::before {
  transform: translateY(0%);
}

.link_area .item_container .item:hover {
  color: var(--whiteColor);
  border: 1px solid var(--mainColor);
}

.link_area .item_container .item img {
  width: 45%;
  transition: transform 0.3s ease;
}

.link_area .item_container .item img:nth-child(2),
.link_area .item_container .item:hover img:nth-child(1) {
  display: none;
}

.link_area .item_container .item:hover img:nth-child(2) {
  display: block;
  margin: 0 auto;
}

.link_area .item_container .item h5 {
  font-weight: 700;
  color: var(--textColor);
  padding-top: 0.5rem;
  margin-bottom: 0;
  transition: transform 0.3s ease;
}

.link_area .item_container .item:hover h5 {
  color: var(--whiteColor);
}

@media screen and (max-width:767px) {
  .link_area .item_container .item {
    height: 160px;
    padding: 1.5rem 0.5rem;
  }
}