/* =========================================================================

==base
==header
==banner
==intro
==history
==certificate
==product
==news
==contact
==pagination + nodata
==footer
==breadcrumb
==privacy
==RWD

========================================================================= */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Noto+Sans+TC:wght@100..900&display=swap');

/* wow animation載入預設透明度校正，配合custom.js */
.wow {
	opacity: 0;
}

.cke_editable .wow {
	opacity: 1;
}

/* =========================================================================
==base
========================================================================= */
:root {
	--fs-BNTitle: 42px;
	--fs-sectionTitle: 36px; 
	--fs-infoTitle: 28px;
	--fs-contactTitle: 24px;
	--fs-itemTitle: 22px;
	--fs-BNTxt: 18px; 
	--fs-sectionSubTitle: 18px;
	--fs-headerNav: 18px;
	--fs-btn: 16px; 
	--fs-normal: 16px; 
}

.font-mont {
	font-family: "Montserrat", serif;
}

/* ================= ellipsis ================= */
.one-row { 
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
}

.two-row { 
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.three-row { 
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

/* ==================== btn ==================== */
.btn-base {
	font-size: var(--fs-btn);
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 1px;
	position: relative;
	display: inline-block;
	border: 0;
	padding: 14px 48px;
	border-radius: 50px;
	background-color: transparent;
	background: linear-gradient(90deg, #644BD1 0%, #781D86 100%);
	transition: .3s ease-in-out;
}

.btn-base span {
	color: var(--cnvs-white);
	position: relative;
	z-index: 1;
}

.btn-base::before {
	content: '';
	border-radius: 50px;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--cnvs-redcolor);
	opacity: 0;
	transition: .3s ease-in-out;
}

.btn-base:hover::before,
.btn-base:active::before {
	opacity: 1;
}

/* ==================== title ==================== */
.section-title {
	display: block;
	font-size: var(--fs-sectionTitle);
	line-height: 1.3;
	letter-spacing: 1px;
	font-weight: 600;
	color: var(--cnvs-black);
}

.section-title::after {
	content: '';
	display: block;
	margin: 16px auto;
	height: 60px;
	width: 1px;
	background-color: var(--cnvs-txtcolor);
}

.section-sub-title {
	display: block;
	font-size: var(--fs-sectionSubTitle);
	line-height: 1.3;
	letter-spacing: 2px;
	font-weight: 400;
	font-family: "Montserrat", serif;
	color: var(--cnvs-redcolor);
	margin-bottom: 4px;
}

.item-title {
	font-size: var(--fs-itemTitle) !important;
	line-height: 1.5;
	letter-spacing: 1px;
	font-weight: 600;
	margin-bottom: 0;
}

.info-title {
	font-size: var(--fs-infoTitle);
	line-height: 1.5;
	font-weight: 600;
	letter-spacing: 1px;
}


/* =========================================================================
==header
========================================================================= */
#top-search-trigger {
	padding: 17px 27px;
}


/* =========================================================================
==banner
========================================================================= */
#slider {
	aspect-ratio: 2000 / 780;
}

.swiper-slide-bg::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.50) 0%, rgba(0, 0, 0, 0.50) 100%);
}

/* ==================== scroll down animation ==================== */
.one-page-arrow {
	bottom: 30px;
}

.one-page-arrow .animated {
	-webkit-animation-duration: 2s;
	animation-duration: 2s;
}

/* ==================== title ==================== */
.banner-title {
	font-size: var(--fs-BNTitle);
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 2px;
	color: var(--cnvs-white);
	margin-bottom: 0;
}

.banner-txt {
	font-size: var(--fs-BNTxt);
	font-weight: 400;
	line-height: 1.75;
	letter-spacing: 1.5px;
	color: var(--cnvs-white);
	margin-bottom: 0;
}


/* =========================================================================
==intro
========================================================================= */
.map-image {
	top: -80px;
}

.section-map {
	padding-top: 50px;
}

.counter-section {
	position: relative;
	border-top: 1px dashed var(--cnvs-themecolor);
	padding-top: 48px;
	margin-top: 0px;
}

.counter-dots {
	position: absolute;
	display: block;
	height: 16px;
	width: 16px;
	top: -48px;
	left: 50%;
	margin-left: -10px;
	margin-top: -9px;
	background-color: var(--cnvs-themecolor);
	border: 4px solid #FFF;
	border-radius: 50%;
	-webkit-box-shadow: -1px 0 10px -1px rgba(0,0,0,.2);
	box-shadow: -1px 0 10px -1px rgba(0,0,0,.2);
}

.counter-wrap .counter-item:nth-child(even) .counter-dots {
	background-color: var(--cnvs-redcolor);
}

.counter-wrap .counter-item:nth-child(even) .counter {
	color: var(--cnvs-redcolor);
}

/* ==================== idea ==================== */
.aiweb_1_idea {
  padding: 60px 0;
  background-repeat: no-repeat;
  background-position: right top;
  background-size: 26% 520px;
}

.aiweb_1_idea p {
  line-height: 2.2;
  text-align: justify;
}

.aiweb_1_idea img {
  box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.15);
}


/* =========================================================================
==history
========================================================================= */
.aiweb_1_history .aiweb_1_title::after {
  left: 50%;
  transform: translateX(-50%);
  width: 110%;
}

.aiweb_1_history p {
  text-align: justify;
}

.aiweb_1_intro_timeline:before {
  content: "";
  position: absolute;
  left: 50%;
  width: 2px;
  height: 100%;
  background: var(--cnvs-themecolor);
}

.aiweb_1_intro_timeline:after {
  content: "";
  position: absolute;
  top: -40px;
  left: 50%;
  width: 2px;
  height: 40px;
  background: var(--cnvs-themecolor);
}

.aiweb_1_intro_timeline-box {
  padding: 0;
}

.aiweb_1_intro_timeline-box+.aiweb_1_intro_timeline-box {
  padding-top: 40px;
}

.aiweb_1_intro_timeline-box+.aiweb_1_intro_timeline-box .aiweb_1_intro_timeline-year,
.aiweb_1_intro_timeline-box+.aiweb_1_intro_timeline-box .aiweb_1_intro_timeline-content {
	animation-delay: 0.3s;
}

.aiweb_1_intro_timeline-box:nth-child(even) {
  justify-content: flex-end;
}

.aiweb_1_intro_timeline-box:nth-child(even) .aiweb_1_intro_timeline-content {
	order: 1;
}

.aiweb_1_intro_timeline-content {
  max-width: 42%;
  border-color: var(--cnvs-themecolor) !important;
  margin-top: 28px;
}

.aiweb_1_intro_timeline-year {
  background: linear-gradient(90deg, #644BD1 0%, #781D86 100%);
  width: 16%;
}


/* =========================================================================
==certificate
========================================================================= */
.cer-item-wrap:nth-child(even) {
	animation-delay: .1s;
}

.cer-img::before,
.cer-img::after{
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 75%;
	height: 100%;
	border: 2px solid var(--cnvs-themecolor);
	z-index: -1;
	transition: .3s ease-in-out;
}

.cer-img::before {
	opacity: 0;
  background: linear-gradient(90deg, #644BD1 0%, #781D86 100%);
	transition: .3s ease-in-out;
}

.cer-item:hover .cer-img::after {
	width: 100%;
}

.cer-item:hover .cer-img::before {
	width: 100%;
	opacity: 1;
}



/* =========================================================================
==product
========================================================================= */
.index-product-section {
	background-color: #E4E4E4;
}

.index-product-section > img {
	bottom: 0;
	transform: translateY(50%);
}

.negetive-margin {
	margin-top: -230px;
	max-width: 100%;
	overflow: hidden;
}

.card-img-wrap::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(var(--cnvs-themecolor-rgb),.4);
	z-index: 1;
	opacity: 0;
	transition: .3s ease-in-out;
}

.card:hover .card-img-wrap::before {
	opacity: 1;
}

.card-img-top {
	aspect-ratio: 1 / 1;
	width: 100%;
	object-fit: contain;
}

.card-body {
	background: linear-gradient(90deg, #644BD1 0%, #781D86 100%);
}

.card-body::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--cnvs-black);
	opacity: 0;
	transition: .3s ease-in-out;
}

.card:hover .card-body::before {
	opacity: 1;
}

/* ==================== sidebar ==================== */
.product-cate-wrap .toggle .toggle-header {
	transition: .3s ease-in-out;
}

.product-cate-wrap .toggle:hover .toggle-header {
	background-color: rgba(var(--cnvs-themecolor-rgb),.2);
	color: var(--cnvs-themecolor);
}

.product-cate-wrap .toggle.active .toggle-header {
	background-color: var(--cnvs-themecolor);
	color: var(--cnvs-white);
}

.product-cate-wrap .toggle.active .toggle-header .toggle-title {
	color: var(--cnvs-white);
}

.product-cate-wrap .toggle.active .toggle-content {
	padding-top: 8px !important;
}

.product-cate-wrap .toggle-content li.active .product-page-link {
	color: var(--cnvs-themecolor);
}

.product-cate-wrap .toggle-title {
	width: 80%;
}

.product-cate-wrap .product-page-link {
	display: block;
	padding: 12px 16px;
	font-size: var(--fs-normal);
	line-height: 1.5;
	font-weight: 400;
	letter-spacing: 1px;
}

.product-cate-wrap .toggle-icon {
	font-size: 24px;
	transform: translateY(2px);
	width: 20%;
	text-align: right;
}

.product-page-link i {
	font-size: 12px;
	transform: translateY(4px);
}

/* ==================== info img ==================== */
.proSwiper2 .swiper-wrapper {
	align-items: center;
}

.swiper-slide-thumb-active {
	border-color: var(--cnvs-redcolor) !important;
}

.swiper-slide-thumb-active::before {
	content: '';
	position: absolute;
	display: block;
	width: 0;
	height: 0;
	left: calc(50% - .5em);
	top: -.5em;
	border-top: 0;
	border-right: .5em solid transparent;
	border-bottom: .5em solid var(--cnvs-redcolor);
	border-left: .5em solid transparent;
}

.prodcut-info-img-wrap [class*=swiper-button-] {
	width: 36px;
	height: 36px;
	margin-top: 0;
	border-color: rgba(var(--cnvs-contrast-rgb), 0.1) !important;
	opacity: 0;
	transition: .3s ease-in-out;
}

.prodcut-info-img-wrap [class*=swiper-button-]:after {
	opacity: 0;
}

.prodcut-info-img-wrap [class*=swiper-button-]:hover {
	background-color: var(--cnvs-themecolor) !important;
	color: var(--cnvs-white);
}

.prodcut-info-img-wrap:hover [class*=swiper-button-] {
	opacity: 1;
}

/* ==================== tab ==================== */
.product-tab-wrap .nav {
	gap: 16px;
}

.product-tab-wrap .nav-link:hover {
	background-color: rgba(var(--cnvs-themecolor-rgb), 0.2);
	color: var(--cnvs-themecolor);
}

.product-tab-wrap .nav-link {
	border: 2px solid var(--cnvs-themecolor);
}

.product-tab-wrap .nav-link.active {
	background-color: var(--cnvs-themecolor);
	color: var(--cnvs-white);
}


/* =========================================================================
==news
========================================================================= */
.news-img-wrap {
	aspect-ratio: 900 / 560;
}

.news-img-wrap::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(var(--cnvs-themecolor-rgb),.4);
	z-index: 1;
	opacity: 0;
	transition: .3s ease-in-out;
}

.news-img-wrap:hover::before {
	opacity: 1;
}

.news-txt-wrap  {
	background-color: #F4F4F4;
}

.date-wrap {
	width: 70px;
	height: 70px;
	background: linear-gradient(90deg, #644BD1 0%, #781D86 100%);
}

.date-wrap p {
	font-size: 30px;
	margin-bottom: 2px;
}

.date-wrap .month {
	font-size: 14px;
	border-top: 1px solid var(--cnvs-white);
}

.date-wrap .month span:last-child {
	margin-left: 2px;
}

/* ==================== sidebar ==================== */
.sidebar-wrap {
  top: 125px;
	position: sticky;
}

.news_1__widget-item {
  border: 2px solid rgba(var(--cnvs-themecolor-rgb),.3);
  /* background: url(../images/sidebarbg_800x550.jpg) left top / cover no-repeat; */
	background-image: url(../images/sidebarbg_800x550.jpg);
  margin-bottom: 36px;
}

.news_1__widget-categories li {
  border-bottom: 1px solid #DDD;
}

.news_1__widget-categories li:hover {
  border-color: var(--cnvs-themecolor);
  background-color: rgba(var(--cnvs-themecolor-rgb),0.2);
}

.news_1__widget-categories li.active {
  border-color: var(--cnvs-themecolor);
  background-color: var(--cnvs-themecolor);
}

.news_1__widget-categories li.active a,
.news_1__widget-categories li.active span {
  color: var(--cnvs-white);
}

.news_1__widget-categories i {
  font-size: 12px;
	transform: translateY(4px);
}

.news_1__widget-categories li a {
	padding: 12px 16px;
}


/* ==================== hot ==================== */
.news_1__side-thumb {
  width: 120px;
}

.news_1__side-content {
  -ms-flex-item-align: center;
  -ms-grid-row-align: center;
  align-self: center;
  width: calc(100% - 136px);
  margin-top: -7px;
}

.news_1__side-content span {
  color: #888888;
  font-size: 14px;
  text-transform: uppercase;
}

.news_1__side-content h3 {
  font-size: 18px;
}

.news_1__side-content h3 a:hover {
  color: var(--cnvs-themecolor);
}

.hot-date {
	font-size: 15px;
	line-height: 1.3;
}

/* =========================================================================
==pagination + nodata
========================================================================= */
.page-item {
	margin: 0 4px;
}

.page-link {
	width: 44px;
	height: 44px;
}

.page-link.arrow {
	background-color: transparent;
	color: var(--cnvs-themecolor);
}

.page-link.arrow:hover,
.page-link.arrow:active {
	background-color: var(--cnvs-themecolor);
	color: var(--cnvs-white);
}

.page-link.arrow i {
	font-size: 12px;
}

.no-data {
	border: 1px solid var(--cnvs-txtcolor);
}




/* =========================================================================
==contact
========================================================================= */
.contact-title {
	font-size: var(--fs-contactTitle);
	line-height: 1.5;
	font-weight: 600;
	letter-spacing: 1px;
	color: var(--cnvs-black);
	margin-bottom: 0;
}

.contact-info {
	font-size: var(--fs-sectionSubTitle);
	line-height: 1.3;
	font-weight: 400;
	letter-spacing: 1px;
	word-break: break-word;
}

.sending {
	display: flex;
}

/* =========================================================================
==footer
========================================================================= */
.footer-h1 {
	font-size: var(--fs-normal);
	line-height: 1.8;
	font-weight: 400;
	letter-spacing: 1px;
	color: var(--cnvs-white);
	margin: 0;
}

.site-map li:not(:last-child)::after {
	content: '/';
	display: inline-block;
	margin: 0 24px;
}

.footer-contact-info {
	border-radius: 16px;
	margin-top: 32px;
}

@media (min-width:1200px) {
	.footer-contact-info {
		width: fit-content;
		gap: 80px;
	}
}


/* =========================================================================
==breadcrumb
========================================================================= */
.breadcrumb-title {
	font-size: var(--fs-sectionTitle);
	line-height: 1.5;
	font-weight: 600;
	letter-spacing: 1px;
}

.php_breadcrumb li:not(:last-child)::after {
	content: '/';
	display: inline-block;
	margin: 0 12px;
}


/* =========================================================================
==RWD
========================================================================= */
@media (min-width:768px) {
	.three-md-row {
		display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
	}
}

@media (max-width:1399px) {
	/* ==================== base ==================== */
	:root {
		--cnvs-header-height: 48px;

		--cnvs-slider-arrows-size: 50px;
	}

	/* ==================== header ==================== */
	.is-expanded-menu .menu-container:not(.mobile-primary-menu) {
		gap: 8px;
	}

	/* ==================== banner ==================== */
	.one-page-arrow {
		width: 44px;
		height: 44px;
	}
}

@media (max-width:1199px) {
	/* ==================== base ==================== */
	:root {
		--cnvs-header-height: 42px;

		--cnvs-slider-arrows-size: 48px;
		--cnvs-slider-caption-width: 70%;
	}

	/* ==================== header ==================== */
	.is-expanded-menu .menu-container:not(.mobile-primary-menu) {
		gap: 4px;
	}

	.header-misc {
		margin-left: 24px;
	}

	/* ==================== banner ==================== */
	.slider-arrow-left i,
	.slider-arrow-right i {
		font-size: 18px;
	}

	.one-page-arrow {
		width: 40px;
		height: 40px;
	}

	/* ==================== intro ==================== */
	.section-map {
		padding-top: 30px;
	}

	.aiweb_1_idea {
		background-size: 26% 420px;
	}
}

@media (max-width:991px) {
	.wow {
		animation-name: none !important;
		visibility: visible !important;
		opacity: 1;
	}

	/* ==================== base ==================== */
	:root {
		--fs-BNTitle: 36px;
		--fs-sectionTitle: 32px;
		--fs-infoTitle: 26px;
		--fs-contactTitle: 22px;
		--fs-itemTitle: 20px;
		--fs-BNTxt: 17px;
		--fs-sectionSubTitle: 17px;
		--fs-headerNav: 17px;

		--cnvs-section-margin: 60px;
	}

	.btn-base {
		padding: 10px 38px;
	}

	/* ==================== header ==================== */
	.header-misc {
		margin-left: 0;
		margin-right: 24px;
	}

	.menu-link {
		padding: 12px 0;
	}

	.menu-item:hover > .menu-link,
	.menu-item.current > .menu-link {
		border-bottom: 0;
		color: var(--cnvs-black);
	}

	.menu-item.active > .menu-link {
		color: var(--cnvs-themecolor);
	}

	/* ==================== banner ==================== */
	.one-page-arrow {
		width: 32px;
		height: 32px;
	}

	/* ==================== intro ==================== */
	.map-image {
		top: -60px;
	}

	.counter {
		--cnvs-counter-font-size: 46px;
	}

	.section-map {
		padding-top: 0;
	}

	.aiweb_1_idea {
    padding: 0 0 60px;
    background-position-y: bottom;
    background-size: 70% 460px;
  }

	/* ==================== history ==================== */
	.aiweb_1_intro_timeline:before {
    left: 5%;
  }

  .aiweb_1_intro_timeline:after {
    display: none;
  }

	.aiweb_1_intro_timeline-box:nth-child(even) {
		justify-content: flex-start;
	}

  .aiweb_1_intro_timeline-content {
    max-width: 100%;
		order: 0 !important;
		padding-top: 28px !important;
		padding-left: 80px !important;
  }

	.aiweb_1_intro_timeline-year {
		width: fit-content;
		padding: 0px 16px;
		position: absolute;
		top: 40px;
	}

  .aiweb_1_intro_timeline-box:first-child .aiweb_1_intro_timeline-year {
		top: 0;
  }

	/* ==================== footer ==================== */
	.footer-contact-info {
		margin-top: 24px;
	}

	.php_footer_logo {
		width: 280px;
	}

	/* ==================== breadcrumb ==================== */
	.php_breadcrumb li:not(:last-child)::after {
		margin: 0 8px;
	}

	/* ==================== privacy ==================== */
	.feature-box {
		--cnvs-featured-box-icon: 3.3rem;
		--cnvs-featured-box-icon-size: 1.5rem;
	}

	/* ==================== news ==================== */
	.sidebar-wrap {
		position: static;
	}
	
}

@media (max-width:767px) {
	/* ==================== base ==================== */
	:root {
		--fs-BNTitle: 32px;
		--fs-BNTxt: 16px;

		--cnvs-header-height: 36px;
	}

	.section-title::after {
		margin: 12px auto;
		height: 48px;
	}

	/* ==================== header ==================== */
	.header-misc {
		margin-right: 16px;
	}

	#top-search-trigger {
		padding: 15px 24px;
	}

	/* ==================== intro ==================== */
	.counter {
		--cnvs-counter-font-size: 40px;
	}
	
	.aiweb_1_idea {
    padding: 0 0 40px;
    background-size: 73% 320px;
  }

	/* ==================== contact ==================== */
	.contact-icon {
		height: 80px;
	}
}

@media (max-width:575px) {
	/* ==================== base ==================== */
	:root {
		--fs-BNTitle: 30px;
		--fs-infoTitle: 24px;
		--fs-sectionTitle: 28px;
		--fs-BNTxt: 16px;
		--fs-sectionSubTitle: 16px;

		--cnvs-header-height: 32px;
		--cnvs-section-margin: 40px;
	}

	.btn-base {
		padding: 8px 32px;
	}

	.section-title::after {
		height: 40px;
	}

	/* ==================== header ==================== */
	.header-misc {
		margin-right: 8px;
	}

	/* ==================== banner ==================== */
	.slider-caption .btn-base {
		font-size: 14px;
		padding: 8px 26px;
	}

	/* ==================== intro ==================== */
	.map-image {
		top: -40px;
	}
	
	.aiweb_1_idea {
    padding: 0 0 20px;
    background-size: 82% 200px;
  }

	/* ==================== history ==================== */
	.aiweb_1_intro_timeline-content {
		padding-left: 64px !important;
	}

	/* ==================== footer ==================== */
	.php_footer_logo {
		width: 265px;
	}

	/* ==================== privacy ==================== */
	.fbox-content {
		padding-left: 6px;
	}

	/* ==================== contact ==================== */
	.form-check-input {
		transform: translateY(6.5px);
	}

	/* ==================== news ==================== */
	.news-share-wrap [class*=border-] {
		border: 0 !important;
	}

	.news-share-wrap a {
		display: inline-block;
		font-size: 24px;
		margin: 0 8px;
	}

	.news-share-wrap a[title="Facebook"] {
		font-size: 26px;
	}
}

@media (max-width:479px) {
	/* ==================== base ==================== */
	:root {
		--fs-BNTitle: 24px;

		--cnvs-slider-caption-width: 85%;
	}

	/* ==================== banner ==================== */
	.banner-txt {
		display: none;
	}

	/* ==================== footer ==================== */
	.site-map {
		margin-bottom: -16px;
	}

	.site-map li {
		margin-bottom: 16px;
	}

	.site-map li:not(:last-child)::after {
		margin: 0 16px;
	}

	/* ==================== privacy ==================== */
	.feature-box {
		--cnvs-featured-box-icon: 3rem;
	}
}