:root {
    --primary-color: #c32426;
    --secondary-color: #fdf3da;
	--bs-offwhite: #fffef7;
	--bs-purple: #790989;
}

body {
	font-family: "Heiti TC", "微軟正黑體", "Microsoft JhengHei", Avenir, sans-serif;
    background-color: var(--secondary-color);
    color: #333333;
    line-height: 1.6;
    font-size: 16px;
}

.text-primary {
	color: var(--primary-color) !important;
}
.text-purple {
	color: var(--bs-purple) !important;
}
.border-primary {
    border-color: var(--primary-color) !important;
}
.border-bottom-primary {
    border-bottom: 2px solid var(--primary-color) !important;
}
.border-box {
    box-sizing: border-box;
    border: 3px solid var(--primary-color);
    padding: 1rem;
}
.bg-primary {
	background-color: var(--primary-color) !important;
	color: var(--bs-offwhite);
}

.btn-primary,
input[type=submit].btn-primary,
input[type=reset].btn-primary,
input[type=button].btn-primary {
	display: inline-block;
	padding: 12px 20px;
	margin: 0;
	width: auto;
	line-height: 1.42;
	font-weight: bold;
	text-decoration: none;
	text-align: center;
	vertical-align: middle;
	white-space: normal;
	cursor: pointer;
	border: 1px solid transparent;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	-o-user-select: none;
	user-select: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	border-radius: 0;
	background-color: var(--primary-color);
	color: var(--bs-offwhite);
	-webkit-transition: background-color 0.4s ease-out;
	-moz-transition: background-color 0.4s ease-out;
	-ms-transition: background-color 0.4s ease-out;
	-o-transition: background-color 0.4s ease-out;
	transition: background-color 0.4s ease-out;
}

.btn-primary:hover,
input[type=submit].btn-primary:hover,
input[type=reset].btn-primary:hover,
input[type=button].btn-primary:hover {
	-webkit-transition: background-color 0.15s ease-out;
	-moz-transition: background-color 0.15s ease-out;
	-ms-transition: background-color 0.15s ease-out;
	-o-transition: background-color 0.15s ease-out;
	transition: background-color 0.15s ease-out;
	background-color: #ff7c7d;
	color: var(--bs-offwhite);
}

.btn-purple,
input[type=submit].btn-purple,
input[type=reset].btn-purple,
input[type=button].btn-purple {
	display: inline-block;
	padding: 12px 20px;
	margin: 0;
	width: auto;
	line-height: 1.42;
	font-weight: bold;
	text-decoration: none;
	text-align: center;
	vertical-align: middle;
	white-space: normal;
	cursor: pointer;
	border: 1px solid transparent;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	-o-user-select: none;
	user-select: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	border-radius: 0;
	background-color: var(--bs-purple);
	color: var(--bs-offwhite);
	-webkit-transition: background-color 0.4s ease-out;
	-moz-transition: background-color 0.4s ease-out;
	-ms-transition: background-color 0.4s ease-out;
	-o-transition: background-color 0.4s ease-out;
	transition: background-color 0.4s ease-out;
}

.btn-purple:hover,
input[type=submit].btn-purple:hover,
input[type=reset].btn-purple:hover,
input[type=button].btn-purple:hover {
	-webkit-transition: background-color 0.15s ease-out;
	-moz-transition: background-color 0.15s ease-out;
	-ms-transition: background-color 0.15s ease-out;
	-o-transition: background-color 0.15s ease-out;
	transition: background-color 0.15s ease-out;
	background-color: #a31e82;
	color: var(--bs-offwhite);
}

.btn-xl {
	font-size: 2rem;
}

input {
    margin-bottom: 0rem;
}

.form-select {
    font-size: 14px;
}

.input-group-text {
    font-size: 14px;
}

.form-control {
    font-size: 14px;
}

    input[type=email]:focus,
    input[type=search]:focus,
    input[type=text]:focus,
    input[type=tel]:focus,
    input[type=url]:focus,
    input[type=password]:focus,
    select:focus,
    textarea:focus {
        color: #5e5d5d;
        border: var(--bs-border-width) solid var(--bs-border-color);
        outline: 0
    }    

@media only screen and (min-width: 768px) {
        input[type=email], input[type=search], input[type=text], input[type=tel], input[type=url], input[type=password], select, textarea {
        border: var(--bs-border-width) solid var(--bs-border-color);
    }
}

.section-header {
    display: flex;
    width: 100%;
    align-items: flex-start;
    font-size: 1.2rem;
    border-bottom: 4px solid var(--primary-color);
}
.section-header span {
    background-color: var(--primary-color);
    color: #ffffff;
    padding: 1rem;
}

.social-media-list {
    list-style: none;
    padding-left: 0;
    margin: 0;
    text-align: start;
}
.social-media-list li {
    display: inline-block;
    margin-right: 0.1rem;
    padding: 0.5rem;
}

.social-media-list li img {
    width: auto;
    height: 24px;
}

.social-media-list li a {
    display: inline-block;
}

.countdown {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-direction: column-reverse;
}
.countdown p {
	flex:1;
}
#countdown-timer {
    font-weight: 700;
	width: auto;
    text-align: start;
}
#countdown-timer::before {
    content: "剩餘時間：";  
    margin-right: 0.3rem;
    font-weight: 400;
}


.bg-gray-light {
    background-color: #ebebeb;
}



.popup-wrap {
	display: none;
	opacity: 0;
}

.popup-wrap.active {
	display: block;
	opacity: 1;
}

.popup-wrap .close-popup:after,
.popup-wrap .email-popup .close-popup:after,
.popup-wrap .error-popup .close-popup:after,
.video-player .close-btn:after {
	content: "X";
	font-family: "Heiti TC", "微軟正黑體", "Microsoft JhengHei", Avenir, sans-serif;
	font-weight: 700
}


.popup-wrap {
	position: fixed;
	top: 0;
	left: 0;
	bottom: 0;
	width: 100%;
	background: rgba(0, 0, 0, .5);
	z-index: 99999999;
	display: none;
	-webkit-transition: .4s;
	transition: .4s;
	font-size: 1.7rem;
}

.popup-wrap .login-popup,
.popup-wrap .email-popup,
.popup-wrap .error-popup {
	position: absolute;
	margin: 0 auto;
	height: auto;
	max-height: 100%;
	min-height: 300px;
	width: 90%;
	max-width: 740px;
	top: 50%;
	left: 0;
	right: 0;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	background-size: cover;
	text-align: center;
	color: #fff;
	overflow: auto
}

.popup-wrap .error-popup {
	min-height: 100px;
}

.popup-wrap .login-popup {
	max-width: 460px;
	overflow-y: auto;
	overflow-x: hidden;
}

.popup-wrap .login-popup .login-popup-container {
	/*    display: none;*/
	-webkit-transform: translateX(-100%);
	transform: translateX(-100%);
	-webkit-transition: transform 1s;
	transition: transform 1s;
}

.popup-wrap .login-popup .forgotpwd-popup-container {
	/*    display: none;*/
	-webkit-transform: translateX(100%);
	transform: translateX(100%);
	-webkit-transition: transform 1s;
	transition: transform 1s;
	position: absolute;
	top: 0;
}

.popup-wrap .login-popup .two_factor-popup-container {
	/*    display: none;*/
	-webkit-transform: translateX(100%);
	transform: translateX(100%);
	-webkit-transition: transform 1s;
	transition: transform 1s;
	position: absolute;
	top: 0;
}

.popup-wrap .login-popup .login-popup-container.active,
.popup-wrap .login-popup .forgotpwd-popup-container.active, 
.popup-wrap .login-popup .two_factor-popup-container.active 
{
	display: block;
	-webkit-transform: translateX(0);
	transform: translateX(0);
	-webkit-transition: transform 1s;
	transition: transform 1s;
}

.popup-wrap .close-popup,
.popup-wrap .email-popup .close-popup,
.popup-wrap .error-popup .close-popup {
	position: absolute;
	top: 0;
	right: 0;
	background-color: transparent;
	color: var(--primary-color);
	display: inline-block;
	padding: 25px;
	-webkit-transition: all .25s ease;
	transition: all .25s ease;
	border-radius: 0;
	z-index: 100;
	cursor: pointer
}

.popup-wrap .close-popup:hover:after,
.popup-wrap .email-popup .close-popup:hover,
.popup-wrap .error-popup .close-popup:hover {
	background-color: var(--bs-offwhite);
	color: var(--primary-color)
}

.popup-wrap .close-popup:after,
.popup-wrap .email-popup .close-popup:after {
	position: absolute;
	top: 0;
	left: 0;
	height: 50px;
	width: 50px;
	color: var(--bs-offwhite);
	z-index: 1;
	display: flex;
    align-items: center;
    justify-content: center;
}

.error-msg-popup-container {
	display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 200px;
	gap:1rem;
}
#error_message {
	margin:0;
}

.error {
    --bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);
}
label.error {
	margin-top:0.3rem;
	--bs-alert-padding-x: 0.8rem;
    --bs-alert-padding-y: 0.3rem;
    --bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);
    --bs-alert-border-radius: var(--bs-border-radius);
	position: relative;
    padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x);
    margin-bottom: var(--bs-alert-margin-bottom);
    color: var(--bs-alert-color);
    background-color: var(--bs-alert-bg);
    border: var(--bs-alert-border);
    border-radius: var(--bs-alert-border-radius);

	--bs-alert-color: var(--bs-danger-text-emphasis);
    --bs-alert-bg: var(--bs-danger-bg-subtle);
    --bs-alert-border-color: var(--bs-danger-border-subtle);
    --bs-alert-link-color: var(--bs-danger-text-emphasis);
}

.form-check-input.error {
	margin-top: 0.3rem;
	--bs-alert-padding-x: unset;
    --bs-alert-padding-y: unset;
}
label.error.valid {
	display: none !important;
}

.no-whitespace {
	white-space: nowrap !important;
} 