/*font*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@100..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

/*color*/
:root {
    --color_main: #0031A9;
    --color_main-300: #4470DC;
    --color_main-200: #436CD0;
    --color_main-100: #2650B8;
    --color_main-light: #7090DF;
    --color_main-dark: #002275;

	    --color_light: #e5ebf1;
	    --color_light2: #e6f7ff;

    --color_sub: #E91122;

    --color_sup2: #FFC228;
    --color_sup2-900: #DE9F00;
    --color_sup2-300: #FFDB80;
    --color_sup2-200: #FFEFC7;
    --color_sup2-100: #FFFAEE;

    --color_gray: #ADB8D4;
    --color_gray-100: #BECAE5;
    --color_gray-200: #D4DBEC;

    --color_dark: #323743;
    --color_dark-100: #4D5464;
    --color_dark-200: #5A6476;

    --content_size: 20px;
    --content_size2: 1.1em;
}

/*cursor*/
body {
  cursor: url('../images/custom_cursor.cur'), url('../images/custom_cursor.png'), auto;
}

body, h1, h2, h3, h4, h5, h6, p {
	font-family: "Poppins", "Noto Sans TC", Arial, sans-serif; font-weight: 400;
}
a { color: var(--color_main); transition: all 500ms ease;}
a:hover { color: var(--color_sup2-900); transition: all 500ms ease;}
p { font-size: var(--content_size); }

/*overall*/
body, html { overflow-x: hidden; }
::-moz-selection { /* Code for Firefox */
  color: #fff;
  background: var(--color_main);
}
::selection {
  color: #fff;
  background: var(--color_main);
}
section:not(#home_banner, #home_search-bar, #home_function-bar), .tp_area { padding: 100px 0; }
	@media only screen and (max-width: 991px) {
		section:not(#home_banner), .tp_area { padding: 50px 0; }
		:root {
		    --content_size: 1.05em;
		    --content_size2: .95em;
		}
	}

tbody, td, tfoot, th, thead, tr { border-width: 1px; }

.tp_title { font-weight: bolder; }
.tp_btn a, button.style_main-btn { display: inline-block; padding: .75em 2em; text-align: center; min-width: 180px; text-decoration: none; }
	.tp_btn a.style_main, button.style_main-btn { 
		position: relative; font-weight: 600; letter-spacing: 1px; color: var(--color_main);
		background: transparent; border: 2px solid var(--color_main); border-radius: 60px;  z-index: 1;
	}
	.tp_btn a.style_main.white, button.style_main-btn.white { border-color: #fff; color: #fff; }
	.tp_btn a.style_main:hover, button.style_main-btn:hover { border-color: var(--color_sup2-900); color: #fff; background: transparent; }
	.tp_btn a.style_main::before, button.style_main-btn::before { 
		content: ''; position: absolute; width: 0%; height: 100%; left: 0; top: 0; opacity: 0; background: var(--color_sup2-900); z-index: -1;
		transition: opacity 300ms linear, width 700ms ease-in; border-radius: 60px;
	}
	.tp_btn a.style_main:hover::before, button.style_main-btn:hover::before { width: 100%; opacity: 1; transition: all 700ms ease;}


.grid_box { display: grid; }
.flex_box { display: flex; }

.img-rwd { max-width: 100%; }
.divider { border-color: var(--color_main-light); }

.bg-color { background: var(--color_main-dark); color: #fff;}

.limited_lines {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden; text-overflow: ellipsis;
}

.tp_button-area { text-align: center; }
.tp_button-style > img { padding-left: 10px; }
.tp_button-style { 
	padding: .5em 1.75em; font-size: 1.6em; font-weight: bolder; position: relative; display: inline-block; text-align: center;
	text-decoration: none; border-width: 1px; border-bottom-width: 5px; border-style: solid; border-radius: 10px; transition: all ease-in-out 300ms;
}
.tp_button-style.color_y { color: #000; text-shadow: 0 -1px 0 var(--color_sup2); background: var(--color_sup2-200); border-color: var(--color_sup2); }
.tp_button-style.color_b { color: #fff; text-shadow: 0 -1px 0 var(--color_main-200); background: var(--color_main-light); border-color: var(--color_main-200);  }
.tp_button-style.color_w { color: #000; text-shadow: 0 -1px 0 var(--color_gray-200); background: #fff; border-color: var(--color_main-light);  }
	.tp_button-style:hover img { transform: rotate(10deg); }
	.tp_button-style.color_y:hover { background: var(--color_sup2-100); }
	.tp_button-style.color_b:hover { background: var(--color_sup2-100); color: #000; text-shadow: 0 -1px 0 var(--color_sup2); border-color: var(--color_sup2); }
	.tp_button-style.color_w:hover { color: var(--color_main); background:linear-gradient(to bottom, #fff 0%, #fff 50%, rgba(0,49,169,.1) 100%); }

.tp_section-title { position: relative; padding: 1em 0; z-index: 1; }
.tp_section-title p { font-size: 42px; font-weight: 600; margin: 0 0 -25px; letter-spacing: 2px; }
.tp_section-title h2 { font-size: 65px; font-weight: 900; }
.tp_section-title h2>span { position: relative; display: inline-block; }
	.tp_section-title h2>span::before, .tp_section-title h2>span::after { 
		content: ''; position: absolute; display: inline-block; width: 96px; height: 46px; top: calc(50% - 23px - 12px); z-index: -1;
	}
	.tp_section-title h2>span::before { left: -90px; }
	.tp_section-title h2>span::after { right: -90px; transform: scaleX(-1); }
	.tp_section-title.color_y p { color: var(--color_sup2); }
	.tp_section-title.color_y h2>span::before, .tp_section-title.color_y h2>span::after { 
		background: url(../images/title_decorate-y.png) no-repeat center; background-size: contain; z-index: 1;
	}
	.tp_section-title.color_b p { color: var(--color_main-light); }
	.tp_section-title.color_b h2>span::before, .tp_section-title.color_b h2>span::after { 
		background: url(../images/title_decorate-b.png) no-repeat center; background-size: contain; z-index: 1;
	}

	@media only screen and (max-width: 991px) {
		.tp_button-style { font-size: 1.2em; }
		.tp_section-title p { font-size: 25px; margin-bottom: -15px; }
		.tp_section-title h2 { font-size: 46px; }
	}
	@media only screen and (max-width: 540px) {
		.tp_section-title { padding-bottom: 0; overflow-x: hidden;}
		.tp_section-title h2 { font-size: 38px; }
		.tp_button-style > img { width: 45px; height: auto; }
	}
	@media only screen and (max-width: 375px) {
		.tp_section-title p { font-size: 20px; }
		.tp_section-title h2 { font-size: 30px; }
		.tp_section-title h2>span::before, .tp_section-title h2>span::after { 
			width: 60px; height: 26px; top: calc(50% - 10px - 12px);
		}
		.tp_section-title h2>span::before { left: -60px; }
		.tp_section-title h2>span::after { right: -60px; }
	}

/*----- main -----*/
/*color*/
:root {
	--header_bar-height: 35px;
	--header_menu-height: 90px;
}
nav.fixed-top { background-color: #fff; box-shadow: 0 0 15px rgba(0, 0, 0, 0.05);}
nav a.nav-link { color: var(--color_dark-100); }
.navbar-nav li:nth-child(2) { text-transform: uppercase; }

#topbar { 
	position: fixed;display: grid; top: 0; width: 100%; height: var(--header_bar-height);
	background: #fff; border-bottom: 1px solid var(--color_gray-200); z-index: 999;
}
#topbar .container { display: flex; align-items: center; }
	.tp_marquee, .tp_sns-header { flex-basis: 50%;}
	#topbar .tp_marquee { width: 100%; height: var(--header_bar-height); overflow: hidden; position: relative;}
	#topbar .tp_marquee .marquee_inner { display: flex; flex-direction: column; transition: transform 0.5s ease; align-items: flex-start;}
	#topbar .tp_marquee p { 
		height: var(--header_bar-height); line-height: var(--header_bar-height); margin: 0; text-align: center; font-size: 17px;
		overflow: hidden;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 1;
	}
	#topbar .tp_marquee p a { text-decoration: none; display: block; position: relative; }
	#topbar .tp_marquee p a::before {
		content: ''; display: inline-block; width: 20px; height: 23px; top: 5px; margin-right: 5px; position: relative;
		background: url(../images/marquee_icon.png) no-repeat center; background-size: contain;
	}
#topbar .tp_sns-header ul { display: flex; justify-content: flex-end; list-style-type: none; margin: 0 auto; padding: 0; gap: 15px; }
#topbar .tp_sns-header a { font-size: 14px; color: var(--color_dark-100); text-decoration: none; }
#topbar .tp_sns-header img { width: 16px; height: 16px; margin-right: 3px; transform: translateY(-2px); }

.fixed-top { top: var(--header_bar-height); }

@media only screen and (max-width: 991px) {
	header { height: 135px; }
	.fixed-top { top: 65px; }
	#topbar { height: 65px; }
	#topbar .container { display: block;}
	#topbar .tp_sns-header ul { justify-content: center; }

	nav.fixed-top { position: fixed; }
	nav a.nav-link, .navbar-nav .dropdown-menu .dropdown-item { font-size: 18px; }
	nav a.nav-link img { margin-right: 10px; }
	.navbar-brand.logo img { max-height: 45px; }
	.navbar>.container, .navbar>.container-fluid, .navbar>.container-lg, .navbar>.container-md, .navbar>.container-sm, .navbar>.container-xl, .navbar>.container-xxl {
		display: grid; grid-template-columns: 30% 70%; grid-template-rows: auto auto;
	}
	.navbar-brand { order: 1; text-align: center; margin: 0 auto;}
	.dropbtn { order: 2; }
	.navbar-toggler { order: 3; border: none; padding: 0; border-radius: 0; text-align: right;}
		 .navbar-toggler:focus, .navbar-toggler:active { border-radius: 0; box-shadow: none;}
		 .navbar-toggler-icon { padding: 15px; background: url(../images/icon_nav.png) no-repeat center; background-size: contain;}
	.navbar-collapse { order: 4; grid-column: span 3;}
	.nav-item + .nav-item { border-top: 1px solid var(--color_light); }
	.navbar-nav .dropdown-menu { border: none; border-radius: 0; background: var(--color_sup2-100); }
	.navbar-nav .dropdown-menu .dropdown-item { color: var(--color_dark); display: flex; align-items: center; flex-wrap: wrap; }
		.navbar-nav .dropdown-item:focus, .navbar-nav .dropdown-item:hover { background: var(--color_main); color: #fff; }
	.navbar-nav .dropdown-menu .dropdown-item span { display: inline-block; padding-left: 15px; }
	.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon { 
		background: url(../images/icon_close.png) no-repeat center; background-size: contain;
	}
	.navbar-nav .nav-link.active { color: var(--color_main); font-weight: 800; }
	.navbar-nav .nav-link.show { color: var(--color_sup2-900); font-weight: 800; }

	/*第二層*/
	.dropdown .dropdown-menu .dropdown-submenu > .dropdown-menu { display: block; padding-left: 1em; padding-top: 0;}
	.dropdown .dropdown-menu .dropdown-submenu > .dropdown-menu a::before { content: '-'; }
	.dropdown .dropdown-menu .dropdown-submenu > .dropdown-menu .dropdown-item { font-size: 16px;}
}
	@media only screen and (max-width: 640px) {
		#topbar .tp_sns-header .link-mail span, #topbar .tp_sns-header .link-tel span { display: none; }
		#topbar .tp_sns-header .link-mail img { width: 20px; height: 20px; }
	}
@media only screen and (min-width: 992px) {
	nav { height: var(--header_menu-height); }
	header { padding-top: calc(var(--header_menu-height) + var(--header_bar-height)); }
	.navbar-brand.logo img { max-height: 65px; }
    .dropdown:hover .dropdown-menu { display: block;}
    .navbar-expand-lg .navbar-collapse { justify-content: center; }
    .navbar-expand-lg .navbar-nav { 
    	display: grid; grid-template-columns: repeat(7, minmax(0, 1fr));
        width: 100%; height: var(--header_menu-height); align-items: center; justify-content: stretch; text-align: center; justify-items: stretch;
    }
    .navbar-expand-lg .navbar-nav .nav-link { 
    	position: relative; display: flex; height: var(--header_menu-height); flex-direction: column; align-items: center; justify-content: center;
    }
    .navbar-expand-lg .navbar-nav .nav-link img { display: block; width: 30px; height: 30px; transform: translateY(-6px); transition: all ease-in-out 500ms; }
    	.navbar-expand-lg .navbar-nav .nav-link:hover img { transform: translateY(-3px); }
    .navbar-expand-lg .navbar-nav .nav-link::after {
    	content: ''; position: absolute; display: inline-block; width: 0; height: 0; border-style: solid; right: 0; bottom: 0;
    	border-width: 0 0 var(--header_menu-height) 2px; border-color: transparent transparent var(--color_gray-200) transparent; transition: all linear 200ms;
    }
    	.navbar-expand-lg .navbar-nav .nav-link:hover::after { border-width: 0 0 var(--header_menu-height) 6px;}
    .navbar-expand-lg .navbar-nav .nav-link::before {
    	content: ''; position: absolute; display: inline-block; width: 0; height: 0; border-style: solid; right: 0; bottom: 0;
    	border-width: 0 0 0 0; border-color: transparent transparent var(--color_gray-200) transparent; transition: all linear 300ms;
    }
    	.navbar-expand-lg .navbar-nav .nav-link:hover::before { border-width: 0 0 6px 100px;}
    .navbar-expand-lg .navbar-nav .nav-link span { display: inline-block; transition: transform linear 300ms; }
    .navbar-expand-lg .navbar-nav .nav-link:hover span { transform: skewX(-7deg); }

    .navbar-expand-lg .navbar-nav .dropdown-menu { 
    	position: absolute; margin: 0; padding: 15px 0; top: var(--header_menu-height); left: 0; width: 100%;
    	background: #fff; border: 2px solid var(--color_gray-200); border-bottom-width: 5px; border-radius: 0;
    }
    .dropdown .dropdown-menu { display: none; justify-content: center; flex-wrap: wrap; }
    .dropdown:hover .dropdown-menu { animation: fadein 500ms ease; }
    	@keyframes fadein {
    		0%   { opacity: 0; transform: translateY(-2px); }
    		100% { opacity: 1; transform: translateY(0); }
    	}
    .navbar-expand-lg .navbar-nav .dropdown-menu li a:hover { color: var(--color_sup2-900); background: var(--color_sup2-100); }
    .dropdown .dropdown-menu .dropdown-item { 
    	display: grid; color: var(--color_dark); font-weight: 400; background: transparent; text-align: center; 
    	justify-items: center; white-space: normal; position: relative;
    }
    .dropdown-item span { display: inline-block; justify-content: center; word-wrap:break-word; }
    	.dropdown .dropdown-menu .dropdown-item img { display: block; padding-bottom: 5px; max-width: 80px; max-height: 80px; transition: all 500ms linear;}
    	.dropdown .dropdown-menu .dropdown-item:hover img { transform: scale(1.1); transition: all 500ms ease-in-out;}
    	.dropdown-item.active, .dropdown-item:active, .dropdown-item:focus, .dropdown-item:hover { background: transparent; color: #fff }
    .nav-item:hover .nav-link { color: var(--color_main); font-weight: 800!important; }
    .nav-item:hover .nav-link a.active { color: #fff!important; }
        .nav-item.dropdown::before { 
        	content: ''; position: absolute; left: calc(50% - 5px); bottom: 10px; 
        	transform: scale(1); transform-origin: bottom; width: 0; height: 0; opacity: 1; transition: all 300ms ease;
    		border-left: 6px solid transparent;  
    		border-right: 6px solid transparent;  
    		border-top: 5px solid var(--color_gray-100);
    	}
    	.nav-item.dropdown:hover::before { 
    		border-top: 5px solid var(--color_main);
    	}
    .navbar-nav .nav-link.active, .navbar-nav .nav-link.show { color: var(--color_main); font-weight: 800!important; }

    /* 定位第二層 submenu */
    .dropdown .dropdown-menu .dropdown-submenu > .dropdown-toggle::after { position: absolute; right: 7px; top: calc(50% - 2px); transform: rotate(-90deg); }
    .dropdown .dropdown-menu .dropdown-submenu { position: relative; }
    .dropdown .dropdown-menu .dropdown-submenu > .dropdown-menu {
    	top: -20px; left: 100%; margin-left: 0.1rem; margin-right: 0.1rem; display: none; position: absolute;
    }
    .dropdown .dropdown-menu .dropdown-submenu:hover > .dropdown-menu { display: block;}
    .dropdown .dropdown-menu .dropdown-submenu > .dropdown-menu .dropdown-item { justify-items: start; text-align: left; }
}
@media only screen and (min-width: 1280px) {
	.navbar-expand-lg .navbar-nav .nav-link { font-size: 17px; padding: 0 0.5em; font-weight: 500;}
	.zh.navbar-expand-lg .navbar-nav .nav-link { letter-spacing: 2px;}
}

/**/
/*首頁-橫幅輪播*/
:root {
	--home_banner-height: auto;
}

#home_banner { position: relative; height: var(--home_banner-height); width: 100%; overflow: hidden;}
#home_banner .carousel-wrap { width: 100%; height: var(--home_banner-height); position: relative;}

#home_banner .tp_article { 
	position: absolute; width: 100%; color: #fff; top: calc(50% - 30px); left: 0; z-index: 15;
	transform: translateY(-50%); text-align: center; padding: 0 2vw;
}
#home_banner .tp_article .tp_title { 
	position: relative; font-size: 3.5em; font-weight: 900; line-height: 1.15; margin-bottom: 1em;
	text-shadow: 0 0 15px var(--color_main);
}
#home_banner .tp_button-area img { width: 50px; display: inline-block; }

.banner_list .banner_item { position: relative; height: var(--home_banner-height); overflow: hidden;}
.banner_list .banner_item .tp_figure { width: 100%; height: 100%; object-fit: contain; object-position: top; display: block;}
.banner_list .banner_item .tp_figure.box { position: relative; }

	#home_banner .tp_figure.box::before { 
		content: ''; position: absolute; display: block; width: 100%; height: 100%; 
		background: linear-gradient(to bottom, rgba(0,0,0,.1) 0%, rgba(0,0,0,.1) 80%, rgba(255,255,255,1) 100%); z-index: 10;
	}

	#home_banner .owl-nav .owl-prev { left: 30px;}
	#home_banner .owl-nav .owl-next { right: 30px;}
	#home_banner .owl-nav i { color: #fff !important; }

	@media only screen and (max-width: 768px) {
		#home_banner .tp_article .tp_title { font-size: 2.5em; }
	}
	@media only screen and (max-width: 640px) {
		#home_banner .tp_article .tp_title { font-size: 1.6em; }
	}
		@media only screen and (min-width: 768px) {
			.banner_list .banner_item .tp_figure.size_mob { display: none; }
		}
		@media only screen and (max-width: 767px) {
			.banner_list .banner_item .tp_figure.size_pc { display: none; }
		}


/**/
/*首頁-班次搜尋區*/

:root {
	--seatch_label-width: 80px;
}

#home_search-bar { position: relative; margin-top: -100px; margin-bottom: 50px; z-index: 20; }
.tp_search-bar .grid_box { 
	background: var(--color_main); color: #fff; padding: 1em 1.5em; justify-content: space-evenly; align-items: center;
	grid-template-columns: calc(23% - 15px) calc(23% - 15px) calc(54% - 250px - 15px) calc(250px - 15px); gap: 15px; border-radius: 15px;
}
.tp_search-bar .tp_form-style { align-items: center; gap: 10px; }
.tp_search-bar label { font-size: var(--content_size); text-align: right; width: var(--seatch_label-width); }
.tp_search-bar .tp_form-control {
	font-size: 1.6em; font-weight: bolder;	position: relative;	display: inline-block;
	text-decoration: none; border-width: 1px; border-bottom-width: 5px; border-style: solid; border-radius: 10px;
	transition: all ease-in-out 300ms; width: 100%;
}
.tp_submit .tp_form-control:hover img { filter: invert(2); }

	@media screen and (max-width: 1399px) {
		.tp_search-bar .grid_box { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
	}
	@media screen and (max-width: 991px) {
		#home_search-bar { padding-bottom: 0!important; margin-bottom: 0; }
		.tp_search-bar .tp_form-control { font-size: 1.2em; }
	}
	@media screen and (max-width: 767px) {
		:root {
			--seatch_label-width: 65px;
		}
		.tp_search-bar label { padding-right: 5px; }
		.tp_search-bar .grid_box { grid-template-columns: repeat(1, minmax(0, 1fr)); gap: 15px; }
		.tp_search-bar .tp_form-box { width: calc(100% - var(--seatch_label-width) - 5px); }
	}

/**/
/*首頁-快速連結區*/

#home_function-bar .grid_box { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px;}
#home_function-bar .tp_button-style { padding-top: 0; }
#home_function-bar .tp_button-style img { display: block; margin: -20px auto 5px; }

	@media screen and (max-width: 991px) {
		#home_function-bar { padding: 30px 0 !important; }
		#home_function-bar .grid_box { grid-template-columns: repeat(2, minmax(0, 1fr));}
		#home_function-bar .tp_button-style img { width: auto; height: 70px; }
	}

/**/

.carousel-wrap { position: relative;}

.owl-carousel .item { position: relative; z-index: 100; -webkit-backface-visibility: hidden; }

.owl-nav > div {  margin-top: -26px; position: absolute; top: 50%;}
.owl-nav i { font-size: calc(1em + 1vw); color: var(--color_main); transition: 300ms linear;}
.owl-nav i:hover { color: var(--color_sup2-900); }
.owl-carousel .owl-stage-outer { z-index: 5; }
.owl-nav { position: absolute; width: 100%; top: calc(50% - 10px); transform: translateY(-50%); z-index: 999; }
.owl-nav .owl-prev { position: absolute; left: -30px;}
.owl-nav .owl-next { position: absolute; right: -30px;}
.owl-dots {
  text-align: center;
  margin-top: 20px;
}
.owl-carousel button.owl-dot {
  display: inline-block; width: 12px; height: 12px; transition: 300ms linear;
  background: var(--color_main); transform: scale(.6); border-radius: 50%; margin: 5px 10px; opacity: .25;
}
.owl-carousel button.owl-dot.active {
  background: var(--color_main); transform: scale(1); opacity: 1;
}
.owl-carousel button.owl-dot:hover { background: var(--color_sup2-900); transform: scale(1); opacity: 1; }


/**/
/*首頁-最新消息*/
:root {
	--home_news_bg-width: 1950px;
}

#home_news { position: relative; padding-bottom: 300px!important; overflow: hidden; }
	#home_news::after { 
		content: ''; position: absolute; display: block; right: 0; bottom: 0; width: 1950px; height: 737px;
		background: url(../images/home_news-bg.png) no-repeat center; background-size: 100%; z-index: -1;
	}
	#home_news::before { 
		content: ''; position: absolute; display: block; right: 0; bottom: 0; width: 1950px; height: 737px;
		background: url(../images/home_news-building.png) no-repeat center; background-size: 100%; z-index: 5;
	}
	#home_news .tp_decorate-animate { position: absolute; top: 0; bottom: 0; width: 100%; height: 100%; }
		#home_news .tp_decorate-animate::before { 
			content: ''; position: absolute; display: block; left: 0; bottom: 0; width: calc(var(--home_news_bg-width) * 2); height: 737px;
			background: url(../images/home_news-silhouette.png) repeat-x center; background-size: var(--home_news_bg-width) auto; z-index: 1;
			animation: bg_scroll 32s linear infinite;
		}
		#home_news .tp_decorate-animate::after { 
			content: ''; position: absolute; display: block; left: 0; bottom: 0; width: calc(var(--home_news_bg-width) * 2); height: 737px;
			background: url(../images/home_news-cloud.png) repeat-x center; background-size: var(--home_news_bg-width) auto; z-index: 1;
			animation: bg_scroll 52s linear infinite;
		}
			@keyframes bg_scroll {
				0%   { background-position: calc(0px - var(--home_news_bg-width)) 100%; }
				100% { background-position: 0 100%; }
			}

#home_news .tp_button-area,
.news_box { position: relative; list-style-type: none; padding: 0; margin: 0; z-index: 15; }
.news_box li { margin-top: 15px; }
.news_box .tp_article { 
	padding: 1em 2em; background: #fff; box-shadow: 0 5px 10px var(--color_gray-200); border-radius: 15px;
	align-items: center; grid-template-columns: 50px 120px calc(100% - 50px - 120px - 60px); gap: 15px;
	text-decoration: none; position: relative;
}
	.tp_news-title::after {
		position: absolute; content: ''; display: inline-block; width: 28px; height: 28px; right: 1.5em; top: calc(50% - 14px);
		background: url(../images/home_news-link.png) no-repeat center; background-size: contain; opacity: .3; transition: all linear 200ms;
	}
	.news_box .tp_article:hover .tp_news-title::after { opacity: 1; }
.news_box .tp_article:hover img { transform: rotate(10deg); }

.tp_news-title {
	margin: 0; font-size: 23px; font-weight: bolder; transition: all linear 200ms;
	overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1;
}
#home_news .news_box .tp_article:hover:hover { color: var(--color_sub); }
#home_news .tp_date { color: var(--color_dark); }

#home_news .tp_btn { position: relative; z-index: 15; }

	@media only screen and (min-width: 1024px) {
		#home_news .news_box { padding: 0 10vw; }
	}
	@media only screen and (max-width: 1280px) {
		:root {
			--home_news_bg-width: 1200px;
		}
		#home_news::before { width: var(--home_news_bg-width); height: 454px; }
		#home_news::after { width: var(--home_news_bg-width); height: 461px; }
		#home_news .tp_decorate-animate::before, #home_news .tp_decorate-animate::after { height: 461px; }

		#home_news { padding-bottom: 250px!important; }
	}
	@media only screen and (max-width: 1023px) {
		#home_news { padding-top: 0!important; }
	}
	@media only screen and (max-width: 768px) {
		.tp_date { font-size: 14px; }
		.tp_news-title { font-size: 18px; }
		.news_box .tp_article { padding: 1em; grid-template-columns: 35px 80px calc(100% - 35px - 80px - 60px);}
		.news_box .tp_article img { width: 35px; height: 35px; }
		.tp_news-title::after { width: 20px; height: 20px; top: calc(50% - 10px); right: 1em; opacity: 1;}
	}
	@media only screen and (max-width: 640px) {
		:root {
			--home_news_bg-width: 800px;
		}
		#home_news::before { width: var(--home_news_bg-width); height: 303px; right: -175px; bottom: -1px; }
		#home_news::after { width: var(--home_news_bg-width); height: 307px; }
		#home_news .tp_decorate-animate::before, #home_news .tp_decorate-animate::after { height: 307px; }
		#home_news .tp_decorate-animate::before { animation: bg_scroll 13s linear infinite; }

		#home_news { padding-bottom: 160px!important; }
	}


/**/
/*首頁-關於我們*/

#home_about { 
	position: relative; z-index: 5; 
	background: linear-gradient(to bottom, var(--color_gray-200) 0%, #fff 150px, #fff 100%);
}
#home_about .tp_slogan { color: var(--color_main); text-align: center; font-size: 30px; letter-spacing: 2px; }
.tp_decorate-bus { position: absolute; top: calc(0px - 170px + 10px); left: 15vw; animation: bus_goahead 10s linear infinite;}
.tp_decorate-bus img { max-width: 100%; }
	@keyframes bus_goahead {
		0%   { transform: translateY(0); }
		10%  { transform: translateY(2px);}
		20%  { transform: translateY(0); }
		21%  { transform: translateY(-2px); }
		23%  { transform: translateY(2px); }
		25%  { transform: translateY(-1px); }
		26%  { transform: translateY(0); }
		40%  { transform: translateY(2px); }
		50%  { transform: translateY(0); }
		60%  { transform: translateY(1px); }
		61%  { transform: translateY(-2px); }
		63%  { transform: translateY(2px); }
		65%  { transform: translateY(-1px); }
		66%  { transform: translateY(1px); }
		100% { transform: translateY(0); }
	}
	.tp_decorate-bus::before, .tp_decorate-bus::after {
		position: absolute; content: ''; display: inline-block; width: 55px; height: 54px; bottom: 0;
		background: url(../images/decorate_bus-2.png) no-repeat center; background-size: contain;
		animation: otate_tire 2s linear infinite;
	}
		.tp_decorate-bus::before{ left: 88px; }
		.tp_decorate-bus::after { right: 80px; }
		@keyframes otate_tire {
			0%   { transform: rotate(0deg); }
			100% { transform: rotate(-360deg); }
		}

		#home_search-bar .container { position: relative; }
		#home_search-bar .tp_decorate-bus { width: 120px; top: -43px; left: auto; right: 5vw; }
		#home_search-bar .tp_decorate-bus::before, #home_search-bar .tp_decorate-bus::after { width: 15px; height: 15px; }
		#home_search-bar .tp_decorate-bus::before{ left: 25px; }
		#home_search-bar .tp_decorate-bus::after { right: 22px; }

		@media only screen and (max-width: 640px) {
			#home_about .tp_decorate-bus { width: 250px; top: calc(0px - 90px + 10px); left: auto; right: 5vw; }
			#home_about .tp_decorate-bus::before, #home_about .tp_decorate-bus::after { width: 33px; height: 33px; }
			#home_about .tp_decorate-bus::before{ left: 51px; }
			#home_about .tp_decorate-bus::after { right: 46px; }

			#home_about .tp_slogan { font-size: 20px; }
		}

/**/

#home_partner { background: url(../images/home_partner-bg.png) center #fff; background-size: contain; }

.partner_list .partner_item { position: relative; overflow: hidden; border-radius: 15px; }
.partner_list .partner_item .tp_more,
.partner_list .partner_item .tp_more a { position: absolute; left: 0; top: 0; width: 100%; height: 100%; }
.partner_list .partner_item .tp_more a img { position: absolute; width: 50px; height: 50px; left: calc(50% - 25px); top: calc(50% - 25px); opacity: 0;}
.partner_list .partner_item .tp_more a:hover img { opacity: 1; }

	.partner_list .partner_item .tp_more a::before {
		content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0;
		background: var(--color_sup2); transition: opacity 200ms linear; opacity: 0;
	}
	.partner_list .partner_item .tp_more a:hover::before { opacity: .5; }


.partner_page .partner_list { gap: 20px; flex-wrap: wrap;}
.partner_page .partner_item { flex-basis: calc(50% - 20px); }
.partner_page .partner_item a { 
	text-decoration: none; width: 100%; padding: 15px; border: 5px solid rgba(255,215,115,.05); overflow: hidden; 
	background: var(--color_sup2-100); border-radius: 15px; transition: all 500ms ease; cursor: pointer; align-items: center; grid-template-columns: 60% 40%;
}
.partner_page .partner_item .tp_article { padding: 15px; }
.partner_page .partner_item .tp_article .tp_desc { color: var(--color_dark); }
.partner_page .partner_item .tp_article i { display: inline-block; margin-right: 5px; }
.partner_page .partner_item .tp_figure img { border-radius: 10px; }

	@media screen and (max-width: 991px) {
		.partner_page .partner_item { flex-basis: 100%; }
	}
	@media screen and (max-width: 540px) {
		#tp_partner-carousel { padding: 0 30px; }
	}


/**/

.tp_form-style label { font-weight: bolder; margin-bottom: 10px; border-radius: 0!important;}

.tp_form-select { width: 100%; position: relative; }
.tp_form-select select { appearance: none; -webkit-appearance: none;  cursor: pointer;}
	.tp_form-select::after {
		content: ''; position: absolute; top: 50%; right: 15px; transform: translateY(-50%); pointer-events: none; z-index: 5;
		background: url(../images/icon_chevron-down.png) no-repeat center; width: 30px; height: 30px;
	}

.tp_form-style select, .tp_form-style input {
	padding: .75em 1em; font-weight: 500; letter-spacing: 0.1em; font-size: var(--content_size); width: 100%;
	color: var(--color_main-light); border: 1px solid var(--color_light); border-radius: 15px;
}
.tp_form-style textarea {
	display: block; width: 100%; height: 240px; resize: none; font-size: var(--content_size);
	padding: .75em 1em; letter-spacing: 0.1em;	border-color: var(--color_light); border-radius: 15px;
}
.tp_form-style input, .tp_form-style textarea { 
	color: var(--color_dark); 
	-webkit-text-fill-color: var(--color_gray); 
	border-color: var(--color_light);
}
	.tp_form-box .placeholder { color: var(--color_main-light); background: #fff;}
	.tp_form-box option { color: var(--color_dark); }
	.tp_form-box.valid { color: var(--color_main); }
.tp_form-style input:focus, .tp_form-style input:active, .tp_form-style textarea:focus, .tp_form-style textarea:active { 
	background: var(--color_sup2-100) !important; border-radius: 10px;
	-webkit-text-fill-color: var(--color_dark) !important;
}
.tp_form-style input::placeholder, .tp_form-style textarea::placeholder { 
	color: var(--color_main-light); 
	-webkit-text-fill-color: var(--color_main-light); font-weight: 400;
}
.tp_form-style input:not(:placeholder-shown), .tp_form-style textarea:not(:placeholder-shown) { 
  background: #fff; 
  -webkit-text-fill-color: var(--color_main); 
  color: var(--color_main); transition: background .25s; font-weight: 500; 
}
.tp_form-style input:-webkit-autofill,
.tp_form-style input:-webkit-autofill:hover,
.tp_form-style input:-webkit-autofill:focus,
.tp_form-style input:-webkit-autofill:active {
	color: var(--color_main);
	-webkit-text-fill-color: var(--color_main);
	-webkit-box-shadow: 0 0 0 1000px var(--color_sup2-100) inset;
	transition: background-color 5000s ease-in-out 0s;
}
.tp_form-style input, .tp_form-style textarea {	outline-color: var(--color_sup2-900);}

input[type="search"] { -webkit-appearance: none; background: none; border-radius: 0;}
input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; background: none; border-radius: 0;}

.tp_form-style .captcha_area { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; align-items: center; justify-content: center; }
.tp_form-style .captcha_area img { max-width: 100%; }

		@media only screen and (min-width: 1920px) {
			#contact_page .tp_decorate { background-size: contain;}
		}
		@media only screen and (max-width: 1399px) {
			#contact_page .gmap>.grid_box { grid-template-columns: 55% 45%;}
		}
		@media only screen and (max-width: 991px) {
			#contact_page .tp_decorate { background-position: 16% 0; background-size: calc(550px + 60vw);}
			#contact_page .gmap { margin-top: -50px; }
			#contact_page .gmap .gmap_canvas { position: relative; height: 250px; }
			#contact_page .gmap>.grid_box { grid-template-columns: 100%; gap: 0;}
			#contact_page .gmap .grid_box .tp_article { padding: 1.5em 5em; }
		}
		@media only screen and (max-width: 640px) {
			#contact_page .gmap .grid_box .tp_article { padding: 25px 15px; font-size: .75rem; }
		}

/**/

#page_banner { position: relative; padding: 100px 0 50px!important; background-size: cover; background-position: center; }
#page_banner::before {
	content: ''; position: absolute; left: 0; top: 0; width: 100%; height: 100%;
	background: linear-gradient(35deg, var(--color_main) 0%, rgba(255,240,203,.5) 60%, rgba(255,255,255,0) 100%);
}
#page_banner .container { position: relative; z-index: 3;}
#page_banner .tp_page-title { font-size: 36px; line-height: 1.35; color: #fff; font-weight: bolder; text-shadow: 0 0 10px rgb(0 34 117 / 30%);}
#page_banner .breadcrumb a,
.breadcrumb-item+.breadcrumb-item::before,
#page_banner .breadcrumb-item.active { color: #fff; }

#page_banner .decorate_wrap { position: relative; transform: translateY(60px); }
#page_banner .decorate_wrap .tp_decorate-bus { width: 120px; top: -43px; left: auto; right: 5vw; }
#page_banner .decorate_wrap .tp_decorate-bus::before, #page_banner .decorate_wrap .tp_decorate-bus::after { width: 15px; height: 15px; }
		#page_banner .decorate_wrap .tp_decorate-bus::before{ left: 25px; }
		#page_banner .decorate_wrap .tp_decorate-bus::after { right: 22px; }

	@media only screen and (max-width: 991px) {
		#page_banner .tp_page-title { font-size: 24px; line-height: 1.2; }
	}


.pagination .page-link {
    color: var(--color_main); font-size: 1em; line-height: 1em; padding: .5em; margin: 0 .5em;
    border: 1px solid transparent; border-radius: 50px;
}
.pagination .page-link:hover {
    background-color: transparent; color: var(--color_sup2);
}
.pagination .page-item.active .page-link {
    background-color: var(--color_main); border-color: transparent; color: #fff; font-weight: 700; font-size: 1.1em;
}
.pagination .page-item.active .page-link:hover {
	background-color: var(--color_sup2); color: #fff; 
}

.pagination .page-item.disabled .page-link {
    color: var(--color_main); background-color: transparent; border-color: transparent; opacity: .5
}

.tp_nodata-wrap p { text-align: center; margin: 2em 0; }

/**/
/*乘車資訊*/
.tp_bus-page ul,
.tp_bus-page ul li { padding:0; margin:0; list-style-type: none; }
.tp_bus-page ul { margin: 15px 0 30px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.tp_bus-page ul li a { 
	text-decoration: none; padding: 10px 14px; display: block; font-size: 20px; font-weight: bold;
	border-radius: 15px; border: 5px solid rgba(115 154 255 / 5%); background: #fff;
}
.tp_bus-page ul li a:hover { border-color: var(--color_sup2-100); }
.tp_bus-page ul li a::before { content: '👉'; margin-right: 5px; }
.bus_wrap .tp_title { position: relative; color: var(--color_main); }
.bus_wrap .tp_title i { margin-right: 10px; }
.bus_wrap .tp_title::after {
	content: ''; position: absolute; display: inline-block;
	width: 55px; height: 22px; top: calc(50% - 11px);
	background: url(../images/title_decorate-b.png) no-repeat center;
    background-size: contain; z-index: 1; transform: translateX(-5px) scaleX(-1);
}
.tp_bus-page hr { color: var(--color_gray); margin: 3em 0; }


	@media only screen and (max-width: 991px) {
		.tp_bus-page ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	}
	@media only screen and (max-width: 768px) {
		.tp_bus-page ul { grid-template-columns: 100%; }
	}

/**/
/*時刻票價*/

.businfo_item { gap: 15px; flex-wrap: wrap; margin-right: -15px;}
.businfo_item .bus_box-wrap { flex-basis: calc(33.333% - 15px);}
.businfo_item .bus_box-wrap .bus_box { 
	gap: 15px; padding: 30px; text-decoration: none; width: 100%; border: 5px solid rgba(255,215,115,.05);
	background: var(--color_sup2-100); border-radius: 15px; transition: all 500ms ease; cursor: pointer; flex-wrap: nowrap;
}
.businfo_item .tp_figure { flex-basis: 60px; min-width: 60px; }
.businfo_item .tp_article {  position: relative; z-index: 2; }
.businfo_item .tp_num { font-size: 2em; font-weight: bolder; color: var(--color_main); transition: all 500ms ease;}
.businfo_item .tp_bus-title { font-size: 1.5em; }
.businfo_item .tp_desc { color: var(--color_dark); }
	.businfo_item .bus_box-wrap .bus_box:hover { border: 5px solid rgba(255,215,115,.5); background: #fff; }
	.businfo_item .bus_box-wrap .bus_box:hover .tp_num { color: var(--color_sup2-900); }

	.businfo_item .bus_box-wrap .tp_info-area .tp_num { font-size: 3em;}
	.businfo_item .bus_box-wrap .tp_article.grid_box { grid-template-columns: calc(100% - 310px) 310px; }
	.businfo_item .bus_box-wrap .tp_button-style { transform: scale(.9); }

	.bus_info .businfo_item { margin-right: 0; padding: 0 2em 3em; background: url(../images/home_partner-bg.png) center #fff; background-size: 350px; }
	.bus_info .businfo_item .tp_figure img { max-width: 50px; transform: translateY(-1.5em); }

	#businfo_tab { background-color: var(--color_sup2-200); border:0; justify-content: center; flex-wrap: nowrap; }
	#businfo_tab .nav-link { 
		font-size: 1.25em; font-weight: 500!important; color: var(--color_sup2-900);
		border: 0!important; border-radius: 0!important; position: relative;
	}
	#businfo_tab .nav-tabs .nav-item, #businfo_tab .nav-item + .nav-item,
	#businfo_tab .nav-tabs .nav-item.show .nav-link, #businfo_tab .nav-tabs .nav-link.active { border-radius: 0!important; border: 0!important; }
	#businfo_tab .nav-link.active { color: var(--color_main); }
		#search_tab .nav-link.active::after,
		#businfo_tab .nav-link.active::after { 
			content: ''; position: absolute; left: calc(50% - 5px); bottom: -5px; width: 0; height: 0; opacity: 1;
			border-left: 6px solid transparent;  
			border-right: 6px solid transparent;  
			border-top: 5px solid var(--color_main);
			animation: up_down 2s ease infinite;
		}
			@keyframes up_down {
				0% { transform: translateY(0); }
				50% { transform: translateY(-5px); }
				100% { transform: translateY(0); }
			}
	#businfo_tab-container { padding: 2em 0; }
	#businfo_tab .nav-link i { margin-right: 8px; }

.buspageinfo_item { flex-wrap: wrap; gap: 25px; }
.buspageinfo_item .bus_box-wrap .bus_box { 
	gap: 15px; text-decoration: none; width: 100%; border: 5px solid rgba(115 154 255 / 5%); overflow: hidden; 
	background: #eef6ff; border-radius: 15px; transition: all 500ms ease; cursor: pointer; align-items: center; grid-template-columns: 60% 40%;
}
.buspageinfo_item .bus_box-wrap .bus_box:hover { border: 5px solid rgba(255,215,115,.5); background: #fff; }
.buspageinfo_item .bus_box-wrap .bus_box:hover .tp_title { color: var(--color_main); }
.buspageinfo_item .bus_box-wrap .tp_article { padding: 30px;}
.buspageinfo_item .bus_box-wrap .tp_article i { display: inline-block; margin-right: 5px; }

	.price_table table {
		min-width: 900px;
	}
	.price_table table tr, .price_table table td { white-space: normal; word-break: break-word; }
		.price_table {
			width: 100%;
			-webkit-overflow-scrolling: touch;
			overflow-x: auto !important;
		}
		.price_table::-webkit-scrollbar {
			width: 10px;
		    height: 10px;
		    background-color: var(--color_dark);
		}
		.price_table::-webkit-scrollbar-thumb {
			border-radius: 3px;
			background-color: var(--color_sup2);
		}
		.price_table::-webkit-scrollbar-track {
		    background-color: var(--color_main-dark);
		}

	@media only screen and (max-width: 1100px) {
		.businfo_item .tp_figure { flex-basis: 50px; min-width: 50px; }
	}
	@media only screen and (max-width: 991px) {
		.businfo_item .bus_box-wrap { flex-basis: calc(50% - 15px);}
		.businfo_item .bus_box-wrap .tp_article.grid_box { grid-template-columns: 100%; }
		.businfo_item .bus_box-wrap .tp_info-area,
		.bus_info .businfo_item .tp_figure { text-align: center; }
		.bus_info .businfo_item .tp_button-area { margin-top: 20px; }

		.buspageinfo_item .bus_box-wrap .bus_box { grid-template-columns: 100%; }
		.buspageinfo_item .bus_box-wrap .tp_article { padding-bottom: 0; }
	}
	@media only screen and (max-width: 768px) {
		.businfo_item { margin-right: 0;}
		.businfo_item .bus_box-wrap { flex-basis: 100%;}
		.businfo_item .bus_box-wrap .bus_box { padding: 15px; }
	}
	@media only screen and (max-width: 425px) {
		#businfo_tab .nav-link i { display: block; margin: 0 0 5px; }
	}

/**/
/*台灣好行*/

.tripinfo_item { gap: 15px; flex-wrap: wrap; margin-right: -15px;}
.tripinfo_item .bus_box-wrap { flex-basis: calc(50% - 15px);}
.tripinfo_item .bus_box-wrap .bus_box { 
	gap: 15px; padding: 30px; text-decoration: none; width: 100%; border: 5px solid rgba(115 154 255 / 5%);
	background: #eef6ff; border-radius: 15px; transition: all 500ms ease; cursor: pointer; flex-wrap: nowrap;
}
.tripinfo_item .bus_box-wrap .bus_box:hover { border: 5px solid rgba(255,215,115,.5); background: #fff; }
.tripinfo_item .bus_box-wrap .bus_box:hover .tp_num { color: var(--color_sup2-900); }
	.tripinfo_item .tp_bus-title { font-weight: 800; }
	.tripinfo_item .bus_box-wrap .bus_box .tp_figure { flex-basis: 80px; min-width: 80px;} }

	@media only screen and (max-width: 1100px) {
			.tripinfo_item .bus_box-wrap .bus_box .tp_figure { flex-basis: 50px; min-width: 50px; }
		}
	@media only screen and (max-width: 991px) {
		.tripinfo_item .bus_box-wrap { flex-basis: calc(100% - 15px);}
	}



/**/
/*最新消息*/

#sidebar_menu .tp_area { padding: calc(.5em + 1vw);}
	@media only screen and (min-width: 992px) and (max-width: 1199px) {
		#sidebar_menu .tp_area { padding: 30px 10px;  }
	}
#sidebar_menu .tp_area h5 { position: relative; font-weight: 900; letter-spacing: 2px; }
#sidebar_menu .tp_area h5::after {
	content: ''; position: absolute; display: inline-block;
	width: 55px; height: 22px; top: calc(50% - 11px);
	background: url(../images/title_decorate-b.png) no-repeat center;
    background-size: contain; z-index: 1; transform: translateX(-5px) scaleX(-1);
}

#sidebar_menu .side-menu a { text-decoration: none; color: black; display: block; margin-right: 1rem; padding: .25rem 0;}
#sidebar_menu .side-menu a[data-bs-toggle] span.bi { transition-property: transform; transition-duration: 200ms; float: right;}
#sidebar_menu .side-menu a[data-bs-toggle].collapsed span.bi { transform: rotate(180deg);}
#sidebar_menu ul.collapse li:hover { background-color: var(--color_1_main);}

/* multi-level menu */
#sidebar_menu ul.collapse ul a:hover { font-weight: 500;}
#sidebar_menu ul { list-style-type: none; margin: 0; padding: 0; }

/* top level menu */
#sidebar_menu .side-menu > li { margin-bottom: 5px;  }
#sidebar_menu .side-menu > li + li { border-top: 1px solid var(--color_light); padding-top: 5px; }

/* top level menu */
#sidebar_menu .side-menu > li > a { font-weight: 500;}
#sidebar_menu .side-menu > li.active > a { color: var(--color_main); }
#sidebar_menu .side-menu > li.active > a:hover { color: var(--color_sup2-900); }

#sidebar_menu .side-menu a[data-bs-toggle] { margin-bottom: 0.5rem;}

#sidebar_menu .side-menu > li > a > i { color: var(--color_main); }
#sidebar_menu .side-menu > li > a { position: relative; display: grid; grid-template-columns: 25px calc(100% - 25px); padding: 10px 0; align-items: center;}
	#sidebar_menu .side-menu > li:last-child > a { padding-bottom: 0; }
#sidebar_menu .side-menu > li > a img { filter: invert(2); max-width: 40px; }
#sidebar_menu .side-menu > li:hover > a,
#sidebar_menu .side-menu > li:hover > a > i { color: var(--color_sup2-900); }
#sidebar_menu .side-menu .child_menu a { padding-left: 1em; }
#sidebar_menu .side-menu .child_menu a:hover { color: #fff; }

.news_info .tp_category a { text-decoration: none; display: inline-block; margin-left: 10px;}
.news_info .tp_category a + a { margin-left: 25px; }
.tp_area.three .news_box li .tp_article .tp_category .tp_sort,
.news_info .tp_category .tp_sort { padding: 2px 10px; color: var(--color_sup2-900); border: 1px solid var(--color_sup2-300); }
.news_info .tp_category .tp_sort:hover { color: #fff; background-color: var(--color_sup2-900); border-color: var(--color_sup2-900);}
.news_info .tp_category .tp_date { color: var(--color_dark-200); }
.news_info .tp_news-title { font-size: 40px; color: var(--color_dark); display: block; -webkit-box-orient: initial; -webkit-line-clamp: initial; }
.news_info .tp_news-title::after { display: none; }
	.news_info .editor p,
	.about_info .editor p { line-height: 1.75; margin: 1.25em 0; }

.tp_search { position: relative; background: none; border: 1px solid var(--color_light); border-radius: 20px; padding: 0; overflow: hidden; transition: 0.5s;}
.tp_search:hover { border-color: var(--color_sup2-900); }
.tp_search .search-form { display: grid; grid-template-columns: calc(100% - 40px) 60px; border-radius: 0; }
.tp_search .search-form input {
	height: 60px; padding: 10px 10px 10px 20px; width: 100%; display: block; outline: 0; 
	border: none; font-size: 1em; color: var(--color_gray); line-height: 1; letter-spacing: 0.05em;	font-weight: 400;
	-webkit-transition: 0.5s;
			transition: 0.5s;
}
.tp_search .search-form button {
	position: absolute; right: 0; outline: 0; bottom: 0; height: 60px; width: 40px; z-index: 1;
	color: var(--color_main); cursor: pointer; background: transparent; border: none;
	-webkit-transition: 0.5s;
			transition: 0.5s;
}
.tp_search .search-form button:hover { color: var(--color_sup2-900); background: var(--color_3_sub); }

.tp_area.three .news_box li { flex-wrap: wrap; }
.tp_area.three .news_box li .tp_figure { overflow: hidden; border-radius: 15px 15px 0 0; }
.tp_area.three .news_box li .tp_article { padding: .75em 1.5em 1em; }
.tp_area.three .news_box li .tp_article a { text-decoration: none; }
.tp_area.three .news_box li .tp_article .tp_category { font-size: 12px; }
.tp_area.three .news_box li .tp_article .tp_category .tp_date { margin-left: 7px; }
.tp_area.three .news_box li .tp_article .tp_pdt-title { font-size: 16px; margin-top: 7px; line-height: 1.25; font-weight: bold; }


.tp_share-sns ul, .tp_share-sns li { list-style-type: none; padding: 0; margin: 0; }
.tp_share-sns ul { display: flex; margin: 2em 0; align-items: center; justify-content: center;}
.tp_share-sns ul li { display: flex; align-items: center; }
.tp_share-sns ul li a { display: flex; width: 100%; min-width: auto; color: var(--color_dark); background: transparent; border: none; }
.tp_share-sns ul li a i { display: flex; font-size: 25px; margin-right: 10px; }
	.tp_share-sns ul li:first-child i { display: inline-block; margin-right: 5px; }
	.tp_share-sns ul li a.btn-fb { color: #1877F2; }
	.tp_share-sns ul li a.btn-fb:hover { color: #fff; background-color: #1877F2; }
	.tp_share-sns ul li a.btn-x:hover { color: #fff;  background-color: #000 }
	.tp_share-sns ul li a.btn-line { color: #03b44b; }
	.tp_share-sns ul li a.btn-line:hover { color: #fff; background-color: #03b44b; }
	@media only screen and (max-width: 991px) {
		.tp_share-sns ul { margin: .5em 0;}
		.tp_share-sns ul li span { display: none; }
		.tp_share-sns li:not(:first-child) a i { margin: 0; }

		.news_info .tp_news-title { font-size: 25px; }
		.news_info .tp_article .tp_figure img { margin-bottom: 0!important; }
	}
	@media only screen and (max-width: 767px) {
		.news_info .tp_button-area { margin: 15px 0 30px!important; }
	}


/**/
/*popup*/
/*搜尋*/
#searchpopup { position: fixed; }
.modal-header { border: 0; }
.tp_download .modal-header .btn-close,
#searchpopup .modal-header .btn-close { background: transparent; font-size: 30px; padding-right: 15px; color: var(--color_main); }
	#searchpopup .modal-header .tp_decorate-bus { width: 120px; left: 50px; top: -30px; }
	#searchpopup .modal-header .tp_decorate-bus::before, #searchpopup .modal-header .tp_decorate-bus::after { width: 15px; height: 15px; }
			#searchpopup .modal-header .tp_decorate-bus .tp_decorate-bus::before{ left: 25px; }
			#searchpopup .modal-header .tp_decorate-bus .tp_decorate-bus::after { right: 22px; }

#searchpopup .modal-dialog { max-width: 70%; height: 50%; margin-top: 10vw; }
.tp_download .modal-content,
#searchpopup .modal-content { height: 100%; border-radius: 30px; }
#searchpopup .modal-body { 
	display: flex; justify-content: center; position: relative; border-radius: 25px 0 25px 0; overflow: hidden;
}
#searchpopup .modal-body::after {
	content: ''; position: absolute; left: 0; top: 0; width: 100%; height: 100%; opacity: .25;
	background: url(../images/home_news-building.png) no-repeat right bottom; background-size: contain;
}

:root {
	--searchpopup_submit:230px;
}
.searchpopup_wrap { width: 90%; position: relative; z-index: 5; }
.searchpopup_wrap .grid_box {
	grid-template-columns: calc(100% - 40% - var(--searchpopup_submit)) calc(100% - 40% - var(--searchpopup_submit)) var(--searchpopup_submit);
	align-items: center; justify-content: center; gap: 20px;
}
	.searchpopup_wrap #tp_keyword .grid_box { grid-template-columns: calc(100% - var(--searchpopup_submit)) var(--searchpopup_submit); }
.searchpopup_wrap .tp_submit { text-align: center;}
.searchpopup_wrap .tab-content { padding-top: 5%; }

#search_tab .nav-link { position: relative; border: 0!important; color: var(--color_sup2-900); padding: 1vw 2vw; border-radius: 15px; }
#search_tab .nav-link.active { color: var(--color_main); font-weight: 800; background-color: rgb(129 213 254 / 10%); }
#search_tab { border: 0; justify-content: center; flex-wrap: nowrap;}
#search_tab li { font-size: 1.25em; border: 0!important;}
#search_tab li i { display: block; font-size: 2em; padding-bottom: 10px; }

/*下載*/
.tp_download .modal-dialog { margin-top: 12vw; }
.tp_download .modal-body { word-break: break-all; }
.tp_download .modal-footer { border: 0; padding-top: 25px; justify-content: center; }
.tp_download .modal-footer .tp_button-style { font-size: 18px; }

	@media only screen and (max-width: 1280px) {
		#searchpopup .modal-dialog { max-width: 95%; margin-top: 15vw; }
	}
	@media only screen and (max-width: 991px) {
		#search_tab li { font-size: 20px; }
		#search_tab li i { font-size: 25px;}
	}
	@media only screen and (max-width: 767px) {
		#searchpopup .modal-dialog { height: 70%; min-height: 400px; }
		#searchpopup .modal-body { padding-bottom: 10vw;}
		#search_tab li { font-size: 15px; padding: 15px 5px; }
		.searchpopup_wrap .grid_box,
		.searchpopup_wrap #tp_keyword .grid_box { grid-template-columns: 100%; }
		.searchpopup_wrap .tab-content { padding-top: 25px; }

		.tp_download .modal-dialog { margin-top: 20vw; }
	}



/**/
/* 文件下載*/

.dw_wrap .tp_title { position: relative; color: var(--color_main); }
.dw_wrap .tp_title i { margin-right: 10px; }
.dw_wrap .tp_title::after {
	content: ''; position: absolute; display: inline-block;
	width: 55px; height: 22px; top: calc(50% - 11px);
	background: url(../images/title_decorate-b.png) no-repeat center;
    background-size: contain; z-index: 1; transform: translateX(-5px) scaleX(-1);
}
.dw_wrap .dw_item { margin: 1em 0 1.5em; }
.dw_wrap .tp_button-area { text-align: initial; }
.dw_wrap .tp_button-area button { 
	padding: 10px 20px; font-size: 20px; margin-bottom: 5px; border-radius: 15px; border: 5px solid rgba(115 154 255 / 5%);
	background: #fff; text-align: initial; word-break: break-all;
}
.dw_wrap .tp_button-area button:hover { color: var(--color_sup2-900); border: 5px solid rgba(255, 215, 115, .5); }
.dw_wrap .tp_button-area button i { margin-right: 10px; }
.dw_wrap .tp_desc { font-size: 15px; }

.tp_download hr { color: var(--color_gray); margin-bottom: 2.5em; }
	@media only screen and (max-width: 767px) {
		.dw_wrap .dw_item { margin: .5em 0 1em; }
		.dw_wrap .tp_button-area button { font-size: 16px; }
	}


/**/
/*聯絡我們*/

#contact_tab { border:0; justify-content: center; flex-wrap: nowrap; }
#contact_tab .nav-link { 
	font-size: 1.25em; font-weight: 500!important; color: var(--color_dark-200);
	border: 3px solid rgba(0,0,0,.035); border-radius: 15px; position: relative; padding: 1em 2em; margin: 0 5px;
}
#contact_tab .nav-tabs .nav-item, #businfo_tab .nav-item + .nav-item,
#contact_tab .nav-tabs .nav-item.show .nav-link, #businfo_tab .nav-tabs .nav-link.active { border-radius: 0!important;}
#contact_tab .nav-link.active { 
	color: var(--color_main); background: linear-gradient(to bottom, #fff 0%, #fff 50%, rgba(0,49,169,.1) 100%);
	border: 3px solid var(--color_gray-200);
}
	#contact_tab .nav-link.active::after { 
		content: ''; position: absolute; left: calc(50% - 20px); bottom: -10px; width: 0; height: 0; opacity: 1;
		border-left: 20px solid transparent;  
		border-right: 20px solid transparent;  
		border-top: 10px solid var(--color_gray-200);
	}
#contact_tab-container { padding: 2em 0; }
#contact_tab .nav-link i { margin-right: 8px; }
#contact_tab .nav-link .tp_title { font-size: 2em; font-weight: 800; margin-top: 10px; }
#contact_tab .nav-link .tp_desc { font-size: 1em; letter-spacing: 2px; }

	@media only screen and (max-width: 767px) {
		#contact_tab .nav-link .tp_title { font-size: 1.25em; }
	}


/**/
/*SNS*/
#tp_sns-fixed {
	position: fixed; right: 15px; bottom: 100px; width: 70px; z-index: 99;
}
#tp_sns-fixed > .flex_box { flex-wrap: wrap; gap: 10px; }

#tp_sns-fixed .tp_list a { display: flex; width: 70px; height: 70px; justify-content: center; align-items: center; }
	#tp_sns-fixed .tp_list img {
		position: relative; z-index: 2; padding: 12px; max-width: 100%;
		animation: heart_beat 5.5s ease infinite;
	}
	@keyframes heart_beat {
		0% { transform: scale(1); }
		20% { transform: scale(1); }
		25% { transform: scale(1.05); }
		40% { transform: scale(.8); }
		50% { transform: scale(1); }
		60% { transform: scale(.95); }
		70% { transform: scale(1); }
		100% { transform: scale(1); }
	}
#tp_sns-fixed .tp_list { position: relative; border-radius: 30px; overflow: hidden;}
#tp_sns-fixed .tp_list::after {
	content: ''; position: absolute; width: calc(100% + 20px); height: calc(100% + 20px); left: -10px; top: -10px;
	animation: rotate_bg 2.25s ease-in-out infinite;
}
	@keyframes rotate_bg {
		0% { transform: rotate(0); }
		100% { transform: rotate(360deg); }
	}

	#tp_sns-fixed .link-line::after {
		background: linear-gradient(to right, #00FF00 0%, #008B00 100%);
	}
	#tp_sns-fixed .link-tel::after {
		background: linear-gradient(to right, #FF1717 0%, #510001 100%);
	}
	#tp_sns-fixed .link-info::after {
		background: linear-gradient(to right, #65B4FF 0%, #1E04AF 100%);
	}

	@media only screen and (max-width: 767px) {
		#tp_sns-fixed { right: 12px; bottom: 100px; width: 50px;}
		#tp_sns-fixed .tp_list a { width: 50px; height: 50px; }
		#tp_sns-fixed .tp_list img { padding: 7px; }
	}


/**/
/*FOOTER*/

footer { 
	position: relative; padding-top: 50px; color: var(--color_main-dark); overflow: hidden;
	background: #fff;
	background-position: calc(100% + 50px) calc(100% + 30px), center;
	background-size: 250px, cover; z-index: 50; border-top: 1px solid var(--color_gray-200);
}
footer a { color: var(--color_main-dark); }
footer p { margin-bottom: 0; font-size: .9em; font-weight: 300; letter-spacing: 1px; color: var(--bs-gray-500); }
footer p a { color: var(--color_gray); }

footer .footer_layout { grid-template-columns: 20% 60% 20%; justify-items: center;}

.tp_sns-list { list-style-type: none; padding: 0; margin: 0 auto; }
.footer_menu { width: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); justify-items: center; }
.footer_menu .tp_list a { text-decoration: none; font-size: 15px; letter-spacing: 2px; }
.footer_menu .tp_list div + div { margin-top: 5px; }
	@media only screen and (max-width: 991px) {
		footer { text-align: center; }
		.footer_menu { margin: 0 0 15px 0; }
	}

.tp_sns-list li { display: inline-block; font-size: 1.5em;}
.tp_sns-list li + li { margin-left: 8px; }
.tp_sns-list li a { padding: 2px; color: var(--color_main-dark); }
.tp_sns-list li a:hover { color: var(--color_sup2-900); }

:root {
	--decorate_footer-bg-width: 1920px;
}

.footer_copyright { position: relative; padding: 25px 15px; color: #fff; background: var(--color_main-dark);}
	footer .footer_content { position: relative; padding-bottom: 80px;  }
	footer .footer_content::after {
		content: ''; position: absolute; bottom: -12px; left: calc(50% - 50px); width: 100px; height: 50px;
		background: url(../images/decorate_bus.png) no-repeat; background-size: contain;
		animation: bus_goahead 10s linear infinite; z-index: 2;
	}
	footer .footer_content::before {
		content: ''; position: absolute; bottom: 0; left: 0; width: calc(var(--decorate_footer-bg-width) * 2); height: 50px;
		background: url(../images/decorate_footer-bg.png) repeat-x;
		background-size: var(--decorate_footer-bg-width) auto;
		animation: bg_scroll2 15s linear infinite;
	}
		@keyframes bg_scroll2 {
			0%   { background-position: 0 100%;}
			100% { background-position: calc(0px - var(--decorate_footer-bg-width)) 100%;}
		}
.footer_copyright a { color: #fff; }

	@media only screen and (max-width: 767px) {
		.footer_copyright { padding: 25px 15px 50px;}
		footer .footer_layout { grid-template-columns: 100%; }
	}

/**/

#back-to-up { 
	background: var(--color_sup2-900); font-size: 23px; color: #fff; border-radius: 50px; padding: 5px 10px;
	z-index: 999; right: 15px; transition: all 500ms ease-out;
}
#back-to-up:hover { background: var(--color_main); color: #fff; }
	@media only screen and (min-width: 1024px) {
		#back-to-up { font-size: 30px; padding: 0 20px; right: -15px!important;}
}