@charset "utf-8";
#Center { position: relative; }
#Center .guide_title { position: absolute; top: 0; left: 0; }

/*----------------------------------------------------------------------*/
/* KeyVisual */
#KeyVisual { position: relative; z-index: 1; overflow: hidden; }
#KeyVisual .banner_warp { max-width: 960px; margin: 0 auto; }
#KeyVisual .owl-carousel .owl-stage-outer { overflow: visible; }
#KeyVisual .index_slider_list a { display:block; max-width:100%; overflow:hidden; width: 100%; height: 0; padding-bottom: 54.167%; position: relative; border-radius: 30px; box-shadow: 0 0 18px 0 rgba(0,0,0,.2); }
#KeyVisual .index_slider_list a:hover, #KeyVisual .index_slider_list a:focus { box-shadow: 0 0 18px 0 rgba(0,0,0,.4); }
#KeyVisual .index_slider_list img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
#KeyVisual .owl-carousel .owl-nav .owl-prev { left: -18px; }
#KeyVisual .owl-carousel .owl-nav .owl-next { right: -18px; }
#KeyVisual::after { content: ''; position: absolute; left: 0; bottom: 0; background: url(../images/index_bg1.svg) no-repeat center bottom; background-size: contain; width: 100%; height: 100%; }

/* noscript */
#KeyVisual.noscript > div { max-width:960px; margin:0 auto; position: relative; z-index: 1; }
#KeyVisual.noscript .index_slider_list li { margin:10px 0; }
#KeyVisual.noscript + .return_form_noscript { padding-bottom:40px; }

/*----------------------------------------------------------------------*/
/* 輪播 owl-carousel */
.owl-carousel .disabled { display: none; }

.owl-carousel .owl-nav > div {
	position:absolute; top:50%; border:1px solid #444; text-indent:-999px; z-index:9999; overflow:hidden;
	-webkit-border-radius:5px;	-moz-border-radius:5px; border-radius:50%; background-color: #e9eaed;
	-webkit-transition: all 0.3s ease;
	-moz-transition: all 0.3s ease;
	transition: all 0.3s ease;
	}
.owl-carousel .owl-nav > div:hover { background-color: #444; }
.owl-carousel .owl-nav > div::after { 
	content:''; display:block; position:absolute; top:50%; width:12px; height:12px; margin-top:-6px;
	border-left:1px solid #444; border-top:1px solid #444; 
	-webkit-transition: all 0.3s ease;
	-moz-transition: all 0.3s ease;
	transition: all 0.3s ease;
	}
	.owl-carousel .owl-nav .owl-prev::after { 
		-webkit-transform: rotate(-45deg);
		-moz-transform: rotate(-45deg);
		transform: rotate(-45deg);
        left:50%; margin-left:-9px;
		}
	.owl-carousel .owl-nav .owl-next::after { 
		-webkit-transform: rotate(135deg);
		-moz-transform: rotate(135deg);
		transform: rotate(135deg);
        right:50%; margin-right:-9px;
		}
.owl-carousel .owl-nav > div:hover::after { border-color:#fff; }
.owl-carousel .owl-nav > div::before { 
	content:''; display:block; position:absolute; top:50%; width:20px; height:1px; background-color: #444;
	-webkit-transition: all 0.3s ease;
	-moz-transition: all 0.3s ease;
	transition: all 0.3s ease;
	}
    .owl-carousel .owl-nav .owl-prev::before { left: calc(50% - 10px); }
    .owl-carousel .owl-nav .owl-next::before { right: calc(50% - 10px); }
    .owl-carousel .owl-nav > div:hover::before { background-color:#fff; }

.owl-carousel .owl-dots { width:100%; text-align:center; line-height:0; position: absolute; bottom: -30px; }
.owl-carousel .owl-dots .owl-dot { 
	display:inline-block; width:14px; height:14px; margin:0 0.4vw; background-color:#fff; border: 2px solid #d8eeff; box-sizing: border-box;
	-webkit-border-radius:7px; -moz-border-radius:7px; border-radius:7px; 
	-webkit-transition: all 0.3s ease;
	-moz-transition: all 0.3s ease;
	transition: all 0.3s ease;
}
.owl-carousel .owl-dots .owl-dot:hover { border-color: var(--color1); }
.owl-carousel .owl-dots .owl-dot.active, .owl-carousel .owl-dots .owl-dot:focus { 
    background-color: var(--color1);
}

@media screen and (min-width: 1600px) {
    #KeyVisual .owl-carousel .owl-nav .owl-prev { left: -10vw; }
    #KeyVisual .owl-carousel .owl-nav .owl-next { right: -10vw; }
}
@media screen and (min-width: 1024px) {
	.owl-carousel .owl-nav > div { margin-top:-23px; width:46px; height:46px; }
	.IndexBlock .owl-carousel .owl-nav > div { margin-top:-23px; width:46px; height:46px; margin-top: -23px; }
    .IndexBlock .owl-carousel .owl-nav .owl-prev { left: -25px; }
    .IndexBlock .owl-carousel .owl-nav .owl-next { right: -25px; }
    #KeyVisual { padding: 20px 100px; }
}
@media screen and (max-width: 1023px) {
	.owl-carousel .owl-nav > div { margin-top:-17px; width:34px; height:34px; }
    .owl-carousel .owl-nav > div::before { width: 16px; right: calc(50% - 8px); }
    .owl-carousel .owl-nav > div::after { width: 8px; height: 8px; margin-top: -4px; }
    .IndexBlock .owl-carousel .owl-nav .owl-prev { left: -18px; }
    .IndexBlock .owl-carousel .owl-nav .owl-next { right: -18px; }
    .owl-carousel .owl-nav .owl-prev::before { left: calc(50% - 8px); }
    .owl-carousel .owl-nav .owl-next::before { right: calc(50% - 8px); }
    .owl-carousel .owl-nav .owl-prev::after { margin-left: -7px; }
    .owl-carousel .owl-nav .owl-next::after { margin-right: -7px; }
    .owl-carousel .owl-dots .owl-dot { margin: 0 5px; }
}
@media screen and (max-width: 639px) {
    .index_carousel { max-width: 320px; }
    .index_carousel .owl-nav { position: relative; padding-top: 10px; }
    .IndexBlock .owl-carousel .owl-nav > div { top: auto; }
    .IndexBlock .owl-carousel .owl-nav .owl-prev { right: auto; left: calc(50% - 45px); }
    .IndexBlock .owl-carousel .owl-nav .owl-next { right: calc(50% - 45px); }
    #KeyVisual { padding: 20px 20px 15px; }
}
@media screen and (min-width: 640px) and (max-width: 1023px) {
    #KeyVisual { padding: 30px 5%; }
}

/*----------------------------------------------------------------------*/
/* 首頁共用樣式 */
.IndexBlock { overflow: hidden; position: relative; padding: 40px 0; }
.IndexBlock a { -webkit-transition: all 0.3s ease; -moz-transition: all 0.3s ease; transition: all 0.3s ease; }
.index_title { position: relative; text-align: center; margin-bottom: 30px; }
.index_title.sr-only { margin-bottom: 0; }
.index_title h2 { font-size: 2.25em; line-height: 1.25em; position: relative; white-space: nowrap; letter-spacing: .2em; font-weight: 700; text-transform:uppercase; display: flex; flex-direction: column; align-items: center; font-family: "Poppins", "Noto Sans TC", sans-serif; }
.index_title h2::before { content: ''; width: 16px; height: 13px; background: url(../images/icon_main.svg) no-repeat; display: inline-block; margin-top: 5px; margin-bottom: 5px; }

.more_btn { text-align: center; display: flex; justify-content: center; align-items: center; }
.more_btn a { text-decoration: none; display: flex; justify-content: center; align-items: center; background-color: #fffa6b; border: 1px solid #444; border-radius: 50px; letter-spacing: .15em; font-size: 1.125em; padding: .5em 1.75em .5em 2em; color: #222; }
.more_btn a::after { content:''; display:block; width:19px; height:17px; background: url(../images/btn_arrow.svg) no-repeat; margin-left: 10px; transition: all 0.3s ease; }
.more_btn a:hover, .more_btn a:focus { box-shadow: 0 0 8px rgba(42, 42, 42, .4); }
.more_btn a:hover::after, .more_btn a:focus::after { transform: translateX(5px); }

@media screen and (max-width: 639px) {
    .IndexBlock { padding: 30px 0; }
    .index_title h2 { font-size: 1.5em; }
    .more_btn a { font-size: 1em; }
}
@media screen and (min-width: 1280px) {
    .index_title .en span { display: block; }
}
@media screen and (min-width: 1024px) {
    .more_btn a { height: 60px; width: 200px; }
}

/*----------------------------------------------------------------------*/
/* 標語 */
.IndexSlogan { position: relative; padding-bottom: 20px; padding-top: 50px; }
.IndexSlogan::before { content: ''; position: absolute; left: 0; bottom: 0; width: 100%; height: 100%; background-color: #ffcbcc; }
.IndexSlogan::after { content: ''; position: absolute; left: 0; bottom: 0; width: 100%; height: 100%; background: url(../images/index_bg2.svg) no-repeat center top; background-size: cover; z-index: 2; }
.IndexSlogan .textBox { text-align: center; position: relative; z-index: 3; }
.IndexSlogan .t1 { font-family: "Poppins", "Noto Sans TC", sans-serif; font-size: min(max(1em, 3vw), 1.75em); font-weight: 700; display: flex; flex-direction: column; align-items: center; margin-bottom: 10px; }
.IndexSlogan .t1 span { background: linear-gradient(transparent 50%, #fffa6b 50%); padding: 0 .25em; line-height: 1.65em; }

@media screen and (min-width: 1024px) {
    .IndexSlogan { margin-top: -20vh; }
    .IndexSlogan::before { height: 8vw; }
    .IndexSlogan .textBox { width: 47vw; margin: 0 3vw 3.4vw auto; }
}
@media screen and (max-width: 1023px) {
    .IndexSlogan::after { background: url(../images/index_bg4.svg) no-repeat center top; background-size:cover; }
}

/*----------------------------------------------------------------------*/
/* 快速選單 */
.IndexFunction { padding-bottom: 140px; }
.IndexFunction::after { content: ''; position: absolute; left: 0; bottom: 0; width: 100%; height: 20vh; background: linear-gradient(to bottom, #ffffff 0%, #ffeee4 100%); }

.FunctionList { position: relative; z-index: 5; }
.FunctionList a { text-decoration: none; width: 100%; display: block; border-radius: 10px; padding: 16px 30px; }
.FunctionList > ul > li > a { position: relative; font-family: "Poppins", "Noto Sans TC", sans-serif; background-color: #2478cc; color: #fff; font-size: min(max(1.125em, 1.8vw), 2em); font-weight: 600; margin-bottom: 25px; box-shadow: 0 5px 0 #104982; padding-right: 70px; }
.FunctionList > ul > li > a::before { content: ''; position: absolute; right: 25px; top: calc(50% - 13px); background-color: #104982; width: 32px; height: 32px; border-radius: 50%; }
.FunctionList > ul > li > a::after {
	content:''; position:absolute; top:calc(50% - 3px); right:37px; width:8px; height:8px; border-top:3px solid #fff; border-right:3px solid #fff;
	-webkit-transform: rotate(45deg);
	-moz-transform: rotate(45deg);
	transform: rotate(45deg);
	}
.FunctionList > ul > li > a:hover,
.FunctionList > ul > li > a:focus { transform: translateY(5px); box-shadow: 0 0 0 #104982; color: #fffa6b; }

.FunctionList li ul li { margin-bottom: 20px; }
.FunctionList li ul li a { font-size: 1.25em; text-align: center; background-color: #d8eeff; display: flex; justify-content: center; align-items: center; }
.FunctionList li ul li a:hover,
.FunctionList li ul li a:focus { background-color: #2478cc; color: #fff; }

@media screen and (max-width: 1023px) {
    .FunctionList li ul li a { font-size: 1em; }
}
@media screen and (max-width: 639px) {
    .IndexFunction { padding-bottom: 100px; }
}

@media screen and (min-width: 1024px) {
    .IndexFunction { padding-bottom: 200px; padding-top: 60px; }
    .FunctionList > ul { display: flex; justify-content: space-between; }
    .FunctionList > ul > li { flex: 1; max-width: 450px; }
    .FunctionList > ul > li:not(:first-child) { margin-left: 3vw; }
    .FunctionList li ul li a { min-height: 80px; }
}
@media screen and (min-width: 1024px) and (max-width: 1279px) {
    .FunctionList > ul > li > a { padding: 16px 55px 16px 16px; }
    .FunctionList > ul > li > a::before { right: 15px; }
    .FunctionList > ul > li > a::after { right: 27px; }
}

/*----------------------------------------------------------------------*/
/* Video */
.IndexVideo { padding-top: calc(110px + 50px); margin-top: -109px; z-index: 5; }
.IndexVideo::before { content: ''; position: absolute; left: 0; top: 0; width: 100%; height: 110px; background: url(../images/index_bg4.svg) no-repeat center top; background-size: cover; }
.IndexVideo::after { content: ''; position: absolute; left: 0; bottom: 0; width: 100%; height: 14vw; background: url(../images/index_bg3.svg) no-repeat center top; background-size: cover; }
.IndexVideo .inner { position: relative; z-index: 5; }

.VideoGroup .textBox, .VideoGroup .videoBox { border: 1px solid #444; border-radius: 20px; }
.VideoGroup .textBox { background-color: #ffeee4; letter-spacing: .05em; }
.VideoGroup .titleBox { display: inline-block; margin: 0 auto; position: relative; margin-bottom: 20px; width: 100%; }
.VideoGroup .titleBox::before { content: ''; position: absolute; background: url(../images/quotation_marks.png) no-repeat; background-size: contain; width: 36px; height: 29px; }
.VideoGroup .titleBox::before { left: 0; top: -3em; }
.VideoGroup .textBox .t1 { font-size: min(max(1.25em, 3vw), 2.25em); font-weight: 700; }
.VideoGroup .textBox .desc { font-size: min(max(1em, 1.5vw), 1.25em); text-align: left; line-height: 2em; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:5; }
.VideoGroup .textBox .desc p { margin-bottom: 1em; }

.VideoGroup .videoBox { overflow: hidden; }
.VideoGroup .videoBox .video { position: relative; border-radius: 20px; width: 100%; height: 0; padding-bottom: 56.25%; }
.VideoGroup .videoBox .video img, .VideoGroup .videoBox .video iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }

@media screen and (min-width: 1280px) {
    .VideoGroup { display: flex; flex-wrap: wrap; }
    .VideoGroup .textBox, .VideoGroup .videoBox { width: 50%; }
    .VideoGroup .textBox { padding: 80px 60px 40px 60px; margin-right: -1px; display: flex; flex-direction: column; align-items: center; justify-content: center; }
    .VideoGroup .textBox .t1 { overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:1; }
    .IndexVideo { padding-bottom: 100px; }
}
@media screen and (max-width: 1279px) {
    .VideoGroup { max-width: 800px; margin: 0 auto; }
    .VideoGroup .videoBox { margin-top: -1px; }
    .VideoGroup .textBox { padding: 65px 25px 25px; }
    .VideoGroup .titleBox::before { width: 30px; height: 24px; top: -2.5em; }
}
@media screen and (max-width: 639px) {
    .VideoGroup .titleBox::before { display: none; }
    .VideoGroup .textBox .desc { -webkit-line-clamp:3; }
    .VideoGroup .textBox { padding: 20px; }
    .VideoGroup .titleBox { margin-bottom: 1em; }
    .IndexVideo { padding-top: 70px; margin-top: -69px; }
}

@media screen and (min-width: 1280px) and (max-width: 1659px) {
    .VideoGroup .textBox { padding: 75px 40px 40px; }
    .VideoGroup .titleBox::before { width: 30px; height: 24px; top: -2.5em; }
    .VideoGroup .textBox .desc { -webkit-line-clamp:3; }
}