/* bootstrap 5 fix */
@media (prefers-reduced-motion: no-preference) {
	:root {scroll-behavior: auto;}
}
:root{
	--color: #ffffff;
}
*{
	position: relative;
	box-sizing: border-box;
}
body{
	margin: 0;
	font-family: 'Noto Sans TC', sans-serif;
	font-weight: 400;
	color: var(--color);
	background-color: #f2f2f2;
}
img{
	position: relative;
	display: block;
	max-width: 100%;
}
a{display: inline-block;}
a, a:hover, a:focus{text-decoration: none;}
a:focus{outline: none;}
section{
	position: relative;
	overflow: hidden;
}
.flex{
	display: flex;
	flex-wrap: wrap;
}
.flex-row{
	display: flex;
	flex-wrap: wrap;
	margin-left: -12px;
	margin-right: -12px;
}
.flex-1{flex: 1;}
.center{
	margin-left: auto;
	margin-right: auto;
}
.t-center{text-align: center;}
.t-right{text-align: right;}
.v-center{
	top: 50%;
	transform: translateY(-50%);
}
.flex-center{justify-content: center;}
.flex-v-center{align-items: center;}
.show-xl, .show-lg, .show-md, .show-sm, .hide{
	display: none;
}
.container, .container-fluid, .container-xxl{
	padding-left: 15px;
	padding-right: 15px;
}
.row-p15{
	margin-left: -15px;
	margin-right: -15px;
}
.row-p15 > *{
	padding-left: 15px;
	padding-right: 15px;
}
.p15{
	padding-left: 15px;
	padding-right: 15px;
}
.fh{height: 100%;}
.full-img{
	max-width: none;
	width: 100%;
}
.cover{
	max-width: none;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.wow{visibility: hidden;}

/* main */
.pc_left{
	flex: 1;
	height: 100vh;
}
.pc_right{
	width: 500px;
	height: 100vh;
	border-left: 1px solid #ccc;
	background-color: #eee;
}
.pc_qrcode{
	width: 200px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 20px;
}
.pc_text{
	font-size: 18px;
	color: #000;
	text-align: center;
	line-height: 1.8em;
}
.body_frame{
	height: 100vh;
}
.mobile_frame{
	width: 400px;
	height: 854px;
	max-height: calc(100% - 30px);
	border: 5px solid #555555;
	border-radius: 25px;
	top: 50%;
	transform: translateY(-50%);
	margin-left: auto;
	margin-right: auto;
	overflow: hidden;
}
/* header */
header{
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 40px;
	z-index: 9999;
}
.header_frame{
	max-width: 576px;
	height: 100%;
	margin-left: auto;
	margin-right: auto;
}
.header_bg{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(#000000aa, #00000000);
}
.case_btn{
	position: absolute;
	top: 7px;
	left: 15px;
	font-size: 14px;
	color: #32302b;
	background-color: #fff;
	padding: 4px 12px;
	border-radius: 20px;
	cursor: pointer;
}
.case_btn:hover{
	background-color: #f5f1e8;
}
.menu_btn_icon{
	display: inline-block;
	width: 13px;
	margin-left: 10px;
	top: 1px;
}
.menu{
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	padding: 40px 20px;
	display: none;
}
.menu_bg{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.menu_div{
	max-height: 100%;
	background-color: rgba(255,255,255,0.85);
	border-radius: 10px;
	padding-top: 10px;
	padding-bottom: 10px;
	margin-left: auto;
	margin-right: auto;
	overflow-y: auto;
}
.menu_btn{
	display: block;
	color: #32302b;
	padding: 10px 20px;
}
.menu_btn:hover{
	color: #a38a54;
}
.header_logo{
	position: absolute;
	top: 17px;
	left: 30px;
	width: 110px;
}

/* index */
main{
	height: 100%;
	background: linear-gradient(323deg, #C7B370, #593721);
}
.main_bg{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-repeat: no-repeat;
	background-position: top center;
}
.bg_slick{
	height: 100%;
}
.bg_slick .slick-list{
	height: 100%;
}
.bg_slick .slick-track{
	height: 100%;
}
.bg_item{
	height: 100%;
	display: none;
}
.bg_item:first-child{
	display: block;
}
.bg_item img{
	max-width: none;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
}
.main_logo{
	position: absolute;
	top: 60px;
	left: 15px;
	width: 119px;
	z-index: 9999;
	overflow: hidden;
}
.main_frame{
	max-height: 100%;
	overflow-y: auto;
}
.main_con{
	max-width: 376px;
	padding-top: 80px;
	padding-left: 20px;
	padding-right: 20px;
	margin-left: auto;
	margin-right: auto;
}
.photo{
	height: 160px;
	margin-bottom: 30px;
}
.photo_sp{
	position: absolute;
	top: 0;
	right: 25px;
	width: 160px;
	height: 160px;
	background: linear-gradient(to right, #ffffff00, #ffffff55);
	border-radius: 50%;
	overflow: hidden;
	opacity: 0;
	animation-name: ani_photo_sp_move;
	animation-fill-mode: forwards;
	animation-duration: 1.5s;
}
.photo_div{
	position: absolute;
	top: 0;
	right: 25px;
	width: 160px;
	height: 160px;
	border-radius: 50%;
	overflow: hidden;
	opacity: 0;
	animation-name: ani_photo_move;
	animation-fill-mode: forwards;
	animation-duration: 1.5s;
}
@keyframes ani_photo_move{
	from{right: 25px; opacity: 0;}
	to{right: 0; opacity: 1;}
}
@keyframes ani_photo_sp_move{
	from{right: 25px; opacity: 0;}
	to{right: 55px; opacity: 1;}
}
.fadein{
	opacity: 0;
	animation-name: ani_fadein;
	animation-fill-mode: forwards;
	animation-duration: 1.5s;
}
@keyframes ani_fadein{
	from{opacity: 0;}
	to{opacity: 1;}
}
.name{
	font-size: 28px;
	font-weight: 400;
	letter-spacing: 1px;
	margin-top: 0;
	margin-bottom: 13px;
}
.name span{
	font-size: 22px;
	margin-left: 20px;
	letter-spacing: 0;
}
.job{
	font-size: 18px;
	letter-spacing: 2px;
	margin-bottom: 25px;
}
.hr{
	height: 1px;
	background-color: var(--color);
	opacity: 0.4;
	margin-bottom: 20px;
}
.info_con{
	max-width: 376px;
	padding-left: 20px;
	padding-right: 20px;
	margin-left: auto;
	margin-right: auto;
}
.info{
	margin-bottom: 15px;
}
.info_icon{
	width: 20px;
	overflow: hidden;
}
.info_icon img{
	left: -10000px;
	filter: drop-shadow(10000px 0 var(--color));
}
.info_text{
	flex: 1;
	font-family: "Arial";
	font-size: 18px;
	letter-spacing: 1px;
	padding-left: 15px;
}

/* contact */
.contact_mask{
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	height: calc(100% - 40px);
	display: none;
	z-index: 99;
}
.contact_mask.active{
	display: block;
}
footer{
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	z-index: 9990;
}
.contact_frame{
	max-width: 576px;
	margin-left: auto;
	margin-right: auto;
}
.contact{
	position: absolute;
	bottom: -360px;
	left: 0;
	width: 100%;
	height: 400px;
	background: linear-gradient(#ffffff, #ededed, #f4f4f4);
	border-top-left-radius: 20px;
	border-top-right-radius: 20px;
	transition: bottom 0.4s;
}
.contact.active{
	bottom: 0;
}
.contact_open{
	width: 100%;
	height: 40px;
	padding-top: 8px;
	cursor: pointer;
}
.contact_open_line{
	width: 60px;
	height: 3px;
	background-color: #ccc;
	margin-left: auto;
	margin-right: auto;
}
.contact_open_title{
	color: #5E5E5E;
	text-align: center;
}
.contact.active .contact_open_title{
	display: none;
}
.contact_con{
	max-width: 330px;
	padding: 10px 15px 30px 15px;
	margin-left: auto;
	margin-right: auto;
}
.contact_title1{
	font-size: 17px;
	font-weight: bold;
	text-align: center;
	letter-spacing: 1px;
}
.contact_title2{
	font-size: 22px;
	text-align: center;
	letter-spacing: 1px;
	margin-bottom: 20px;
}
.contact_item{
	display: none;
}
.contact_item:first-child{
	display: block;
}
.qrcode{
	margin-bottom: 30px;
}
.qrcode_item{
	display: none;
}
.qrcode_item.active{
	display: block;
}
.qrcode_item img{
	width: 200px;
	height: 200px;
	object-fit: contain;
	margin-left: auto;
	margin-right: auto;
	box-shadow: 10px 10px 20px #00000029;
}
.contact_btn_div{
	
}
.contact_btn{
	width: 50%;
	height: 40px;
	font-size: 17px;
	color: #32302b;
	text-align: center;
	border: 1px solid #32302b;
	background-color: #fff;
	padding-top: 6px;
	cursor: pointer;
}
.contact_btn:first-child{
	border-top-left-radius: 25px;
	border-bottom-left-radius: 25px;
}
.contact_btn:last-child{
	border-top-right-radius: 25px;
	border-bottom-right-radius: 25px;
}
.contact_btn_icon{
	position: absolute;
	top: 15px;
	left: 18px;
	border-style: solid;
	border-width: 5px 0 5px 6px;
	border-color: transparent transparent transparent #ffffff;
}
.type2 .contact_btn_icon{
	left: 11px;
}
.contact_btn.active{
	color: #fff;
	background-color: #32302b;
}
.contact_btn.active .contact_btn_icon{
	display: block;
}
.contact_close{
	position: absolute;
	top: -8px;
	right: 0px;
	font-size: 24px;
	color: #5E5E5E;
	cursor: pointer;
}

/* page 404 */
.page404_img{
	max-width: none;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
}

/* setting */
.white{color: #fff;}
.red{color: #f00;}
.mb-10{margin-bottom: 10px;}
.mb-20{margin-bottom: 20px;}
.mb-30{margin-bottom: 30px;}

@media (min-width: 576px){
	.main_frame::-webkit-scrollbar{
		width: 5px;
	}
	.main_frame::-webkit-scrollbar-track{
		border-radius: 10px;
	}
	.main_frame::-webkit-scrollbar-thumb{
		background-color: #aaa;
		border-radius: 10px;
	}
	.menu_div::-webkit-scrollbar{
		width: 5px;
	}
	.menu_div::-webkit-scrollbar-track{
		border-radius: 10px;
	}
	.menu_div::-webkit-scrollbar-thumb{
		background-color: #aaa;
		border-radius: 10px;
	}
}

@media (max-width: 991px){
	.pc_left{
		flex: 0 0 auto;
		width: 100%;
	}
	.pc_right{
		display: none;
	}
}

@media (max-width: 575px){
	.mobile_frame{
		width: 100%;
		height: 100%;
		max-height: none;
		top: 0;
		transform: translateY(0);
		border: none;
		border-radius: 0;
	}
}