*{
	font-family: 'Geograph','Roboto', "Noto Sans TC", sans-serif;
}

body{
	width: 100vw;
	overflow-x: hidden;
	background: #ffcc00;
	font-size: 16px;
}


h1, h2, h3, h4, h5, h6{
	font-family: 'Geograph','Roboto', "Noto Sans TC", sans-serif;
}

h1{
	font-size: 3em;
	font-weight: 700;
	line-height: 1.2em;
}

h2{
	font-size: 1.8em;
	font-weight: 700;
	line-height: 1.4em;
	margin-bottom: 10px;
	text-align: center;
}

h3{
	font-size: 1.2em;
	font-weight: 700;
	line-height: 1.4em;
}

h4{
	font-size: 1.25em;
	font-weight: 700;
}

h5{
	font-size: 1.125em;
	font-weight: 500;
}

h6{
	font-size: 1.1em;
    font-weight: 500;
}

p{
	font-family: 'Roboto', "Noto Sans TC", sans-serif;
	text-align: justify;
	font-size: 1em;
    line-height: 1.4em;
    font-weight: 400;
}

@media all and (min-width: 1024px){
	p{
		font-size: 1.1em;
	}
}

::selection {
    color: #000000;
    background: #ffcc00;
}

.show{
	display: block;
}

.hide{
	display: none;
}

.mobile{
	display: none;
}

.desktop{
	display: block;
}

.clearfix{
	clear: both;
}

section{
	position: relative;
	width: 100%;
	margin: 0 auto;
	/* overflow: hidden; */
}

@media all and (min-width: 1024px){
	h2{
		font-size: 2.2em;
	}

	p{
		font-size: 1.1em;
	}
}

/* ============================================================
LOADING
============================================================ */
.progress {
	position: fixed;
	z-index: 11111;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #f5f5f5;
	color: #ffffff;
}

.progress-inner {
	position: absolute;
	left: calc(50% - 80px);
	top: calc(50% - 26px);
	width: 160px;
	height: 52px;
	background-color: #f5f5f5;
}

.progress-bar {
	position: absolute;
	width: 100%;
	height: 100%;
	background-color: #f5f5f5;
}

.progress-text {
	color: #007caf;
	font-family: "Roboto", "Noto Sans TC", sans-serif;
	font-size: 1em;
	font-weight: 700;
	position: absolute;
	z-index: 9999999;
	width: 160px;
	text-align: center;
	top: 100%;
	left: 50%;
	transform: translate(-50%, 0);
}

/* .complete {
	overflow: auto;
} */

.progress-logo {
	-moz-transform: scale(1.02, 1.02);
	-ms-transform: scale(1.02, 1.02);
	-webkit-transform: scale(1.02, 1.02);
	transform: scale(1.02, 1.02);
	position: absolute;
	top: 0;
}

.progress-complete .progress-bar {
	background-color: #f5f5f5;
}

/* ============================================================
HEADER
============================================================ */
header{
	width: 100%;
	min-height: 70vh;
	position: relative;
	margin: 0 auto;
	overflow: hidden;
	background-image: linear-gradient(180deg, #02746F 0%, #115753 78%);
}
@media all and (max-width: 1280px) {

	header {
		min-height: fit-content;
	}
}

.header-bg{
	position: absolute;
	top: -25%;
	left: 50%;
	transform: translate(-50%,0);
	width: 100%;
	max-width: 1000px;
}

.header-bg img{
	width: 100%;
}

.dm-logo{
	width: 80px;
	position: absolute;
	top: 15px;
	left: 15px;
	z-index: 3;
}

.dm-logo img{
	width: 100%;
}

@media all and (min-width: 768px) {
	.dm-logo{
		width: 100px;
	}
}

.header-container{
	width: 100%;
	max-width: 1440px;
	position: relative;
	z-index: 2;
	margin: 0 auto;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
}

.dm-img{
	width: 100%;
	max-width: 450px;
	position: relative;
	margin: 0 auto;
	animation: emagMove 1.5s forwards 0s cubic-bezier(.25,.35,.69,1.44) 1;
}

.dm-img img{
	width: 100%;
}

@media all and (max-width: 1280px) {

	.dm-img {
		width: 100%;
		max-width: 350px;
		position: relative;
		margin: 0 auto;
	}
}

@keyframes emagMove{
	0%{
		padding-right: 400px;
		/* -webkit-filter:brightness(3);
		filter:brightness(3); */
	}
	
	100%{
		padding-right: 0;
		/* -webkit-filter:brightness(1);
		filter:brightness(1); */
	}
}

.sth-0{
	position: absolute;
	z-index: 1;
}

.sth-0 img {
	width: 100%;
}

/* background illustrations */
.sth-1 {
	width: 36%;
	max-width: 120px;
    top: -10%;
    left: -10%;
    animation: moveUpDown 1.5s forwards linear infinite;
}

.sth-2 {
	width: 9%;
    max-width: 60px;
    top: 18%;
    right: 22%;
    animation: moveUpDown 1.8s forwards linear infinite;
}

.sth-3 {
	width: 7%;
    max-width: 50px;
    top: 32%;
    left: 10%;
    animation: moveUpDown 2.2s forwards linear infinite;
}

.sth-4 {
	width: 12%;
    max-width: 80px;
    top: 9%;
    left: 20%;
    animation: moveUpDown 2.5s forwards linear infinite;
}

.sth-5 {
	width: 7%;
	max-width: 50px;
	bottom: 95px;
    left: -10%;
    animation: lore5Move 1s forwards 0.5s cubic-bezier(.25,.35,.69,1.44) 1;
}

.sth-6 {
	width: 20%;
	max-width: 150px;
    bottom: 95px;
    right: -10%;
    animation: lore6Move 1s forwards 0.5s cubic-bezier(.25,.35,.69,1.44) 1;
}

@keyframes moveUpDown{
	0%{
		margin-top: 0;
	}

	50%{
		margin-top: 15px;
	}

	100%{
		margin-top: 0;
	}
}

@keyframes lore5Move{
	0%{
		left: 0;
	}

	100%{
		left: 22%;
	}
}

@keyframes lore6Move{
	0%{
		right: 0;
	}

	100%{
		right: 22%;
	}
	
}

@media all and (max-width: 768px) {
	.sth-2 {
		right: 5%;
	}

	.sth-3 {
		left: 5%;
	}

	.sth-4 {
		top: 0;
    	left: 65%;
	}
	
	@keyframes lore5Move{
		0%{
			left: 0;
		}
	
		100%{
			left: 5%;
		}
	}
	
	@keyframes lore6Move{
		0%{
			right: 0;
		}
	
		100%{
			right: 5%;
		}
		
	}
}




.wave {
	position: absolute;
	width: 100%;
	height: 100%;
	bottom: 0;
	left: 0;
	z-index: 0;
	background-repeat: no-repeat;
}

.wave1 {
	background: url(../img/wave1.svg) no-repeat;
	height: 105%;
}

.wave2 {
	background: url(../img/wave2.svg) no-repeat right;
}

.wave3 {
	background: url(../img/wave3.svg) no-repeat;
	height: 105%;
}

.wave4 {
	background: url(../img/wave4.svg) no-repeat right;
}

.wave5 {
	background: url(../img/wave5.svg) no-repeat top left;
	display: none;
}

@media all and (max-width: 768px) {
	.dm-img {
		width: 65%;
	}
	.wave1,
	.wave3 {
		background-size: 70%;
		background-position: -40% bottom ;
	}
	.wave2,
	.wave4 {
		background-size: 70%;
		background-position: right bottom ;
	}
	.wave5 {
		display: block;
	}
}

.stars {
	background: url(../img/stars.png) no-repeat center 30%;
	background-size: 50%;
}

@media all and (max-width: 768px){
	.stars {
		background-size: 90%;
	}
}

.floor {
	width: 100%;
	height: 100px;
	bottom: 0;
	left: 0;
	z-index: 0;
	background-image: linear-gradient(265deg, #FFCC00 4%, #FFEDA7 25%, #FFE680 71%, #FFCC00 98%);
}

.header-content{
	width: 100%;
	position: relative;
	padding: 80px 0 10px 0;
}

@media screen and (orientation: landscape) {
	.header-content{
		padding: 40px 0 20px
	}
}

.h1-all{
	width: 90%;
	max-width: 400px;
	position: relative;
	margin: 0 auto;
	text-align: center;
	color: #ffffff;
}

.h1-all h3 {
	font-size: 2.2em;
	font-weight: 600;
}

.h1-all p {
	text-align: center;
	margin: 20px 0 0px;
    font-size: 1.5rem;
}

.h1-all p em {
	font-size: 2em;
	font-weight: bold;
	color: #FF684A;
}

@media all and (max-width: 768px){
	.h1-all h1
	{
		font-size: 2em;
	}
	.h1-all h3 {
		font-size: 1.5em;
	}
	.h1-all p {
		font-size: 1.25em;
	}
}

@media all and (min-width: 768px){
	.header-bg{
		top: -50%;
		opacity: .8;
	}
}



/* ============================================================
DEFINE
============================================================ */
section.define{
	width: 95%;
	max-width: 1100px;
	position: relative;
	margin: 0 auto;
	padding-bottom: 50px;
	padding-top: 50px;
}

.section-container {
	
	position: relative;
	margin: 0 auto;
	border-radius: 20px;
	background: #f7f7f7;
}

.section-content{
	width: 90%;
	position: relative;
	margin: 0 auto;
	padding: 30px 0;
}

.section-content h2{
	font-size: 2em;
	font-weight: 600;
	text-align: center;
	color: #333333;
}

.section-content p{
	margin: 20px 0 10px;
    border-left: 5px solid #ffcc00;
    padding-left: 10px;
	line-height: 1em;
	font-size: 1em;
	color: #333333;
	text-align: left;
}

.intro-all {
	margin: 10px auto;
}

.intro-text {
	width: 100%;
	position: relative;
	margin: 0 auto;
}

.intro-text h6{
	font-size: 1.2em;
	font-weight: 500;
	color: #333333;
}

.intro-text a {
	color: #333333;
	transition: all 0.3s ease;
}

.intro-text a:hover {
	color: #5181A4;
}

table.device-version td {
	padding: 10px;
	background: #eeeeee;
}
table.device-version td:first-child {
	text-align: center;
	width: 90px;

	@media all and (max-width:768px){
		width: 60px;
	}
}

@media all and (max-width:768px){
	table.device-version td {
		padding: 5px;
	}
	table.device-version td:first-child {
		width: 60px;
	}
}

table.device-version td em {
	font-weight: 700;
	color: #846853;
}

.bag-img{
	width: 100%;
	max-width: 320px;
	position: relative;
	margin: 10px auto;
}

.bag-img img{
	width: 100%;
}

.cube-btn {
	width: 234px;
	height: 40px;
	text-align: center;
	line-height: 41px;
	position: relative;
	margin: 10px auto;
	border-radius: 5px;
	background: #000000;
	color: #ffffff;
	font-size: 1em;
	transition: .2s linear;
}

.cube-btn:hover {
	background: #846853;
}

.cube-btn a{
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
}

@media all and (min-width: 768px){
	.intro-all{
		display: flex;
		justify-content: space-between;
		align-items: center;
		flex-wrap: wrap;
	}

	.intro-text{
		width: 60%;
	}

	.bag-img{
		width: 40%;
		max-width: 40%;
	}

}



/* ============================================================
PLANS
============================================================ */
section.plan {
	width: 100%;
	max-width: 1100px;
	position: relative;
	padding: 60px 0;
}
.plan::after {
	content: "";
    width: 100%;
    height: 100px;
    background: url(../img/shelf_shadow.png) center no-repeat;
    position: absolute;
    left: 0;
    bottom: 50px;
    z-index: 0;
}

.plan h2 {
	position: relative;
	width: 100%;
}

.plan h2::before {
	content: "";
    width: 50%;
    height: 40px;
    background: url(../img/flag.png) 40% no-repeat;
	position: absolute;
	left: 0;
	top: 0;
}

.plan h2::after {
	content: "";
    width: 50%;
    height: 40px;
    background: url(../img/flag.png) 60% no-repeat;
	position: absolute;
	right: 0;
	top: 0;
}

@media all and (max-width: 768px){
	.plan h2::before {
		width: 30%;
		top: -40px;
		background-size: contain;
	}
	.plan h2::after {
		width: 30%;
		top: -40px;
		background-size: contain;
	}
}

h3.sub-title{
	font-size: 1.15em;
	font-weight: 600;
	color: #5181A4;
	width: 100%;
	margin: 5px 0;
}

.products-wrap {
	width: 100%;
	position: relative;
	margin: 40px auto;
	padding-top: 20px;
	padding-bottom: 50px;
	background: #9A7F6A;
	border-radius: 10px;
	z-index: 1;
}

.products-wrap ul {
	display: flex;
	flex-wrap: wrap;
}

.product-item {
	width: calc(50% - 40px);
	position: relative;
	background: #6A5444;
	padding: 20px;
	margin: 20px;
	color: #ffffff;
	border-radius: 10px;
	box-sizing: border-box;
}

.product-item.focus-sale {
	width: calc(100% - 42px);
	display: flex;
}
.product-item.focus-sale .product-img {
	width: 54%;
    text-align: center;
}

.product-item.focus-sale .product-text {
	width: 45%;
	padding-top: 30px;
    text-align: left;
}

.product-item.focus-sale .product-text h4{
	text-align: left;
}

.discount-number {
	width: 80px;
	height: 80px;
	padding-top: 12px;
    box-sizing: border-box;
	background: #CC3917;
	color: #ffffff;
	font-weight: 700;
	text-align: center;
	border-radius: 100%;
	position: absolute;
	z-index: 2;
	top: 20px;
	left: 20px;
}

.discount-number em {
	font-size: 1.5em;
	display: block;
}

@media all and (max-width: 768px){
	.products-wrap {
		width: 95%;
		padding-top: 2px;
	}

	.products-wrap ul {
		display: block;
	}

	.product-item {
		width: calc(100% - 22px);
		margin: 20px auto;
		/* width: 100%; */
	}

	.product-item.focus-sale {
		width: calc(100% - 22px);
		display: block;
	}

	.product-item.focus-sale .product-img {
		width: 100%;
		text-align: center;
	}

	.product-item.focus-sale .product-text {
		width: 100%;
		padding-top: 0;
		text-align: center;
	}

	.discount-number {
		top: 10px;
    	left: 10px;
	}
}

.product-img {
	width: 100%;
	position: relative;
	text-align: center;
}

.product-img img{
	width: 90%;
	margin: 0 auto;
}

.product-item h4{
	font-weight: 600;
	font-size: 1.5em;
	text-align: justify;
	margin: 10px 0;
	text-align: center;
}

@media all and (max-width: 768px){
	.product-item h4{
		font-size: 1.25em;
	}
}

.product-item h5 {
	margin: 10px 0;
	padding-bottom: 10px;
	border-bottom: 1px solid #A98E7B;
	font-size: 1em;
	text-align: left;
}

.product-item h5 ul {
	display: block
}

.product-item h5 ul, 
.product-item h5 ul li{
	list-style: disc; 
	margin-left: 12px;
}

.product-item p{
	font-size: 1em;
	margin-top: 10px;
}

.product-item h6{
	color: #333333;
	font-weight: 500;
	font-size: 1em;
	text-align: right;
	margin-top: 5px;
}

.price-compare {
	width: 50%;
	margin: 20px 0;
	display: inline-block;
}

.price-compare p {
	margin-top: 10px;
}

.price-compare p em {
	font-size: 2rem;
	color: #FF5F3F;
	font-weight: bold;
}

.subscribe-btn {
	width: 210px;
	height: 50px;
	margin: 10px auto;
	padding-right: 20px;
	background: url(../img/subs-btn-bg.svg) no-repeat;
	line-height: 50px;
	font-weight: 500;
	text-align: center;
	color: #000000;
	font-size: 1.25em;
    letter-spacing: 3px;
	box-sizing: border-box;
	cursor: pointer;
	position: relative;
	display: inline-block;

	-o-transition: .2s linear;
	-webkit-transition: .2s linear;
	-moz-transition: .2s linear;
	transition:  .2s linear;
}

.subscribe-btn a {
	width: 100%;
	height: 100%;
	display: block;
    position: absolute;
    left: 0;
    top: 0;
}

.subscribe-btn::after {
	content: "";
	width: 24px;
	height: 16px;
	background: url(../img/icon-arrow-black.svg) -12px no-repeat;
	position: absolute;
	top: 18px;
	right: 45px;
	-o-transition: .2s linear;
	-webkit-transition: .2s linear;
	-moz-transition: .2s linear;
	transition:  .2s linear;
}

.subscribe-btn:hover {
	padding-right: 40px;
	background: url(../img/subs-btn-hover.svg) no-repeat;
	-o-transition: .2s linear;
	-webkit-transition: .2s linear;
	-moz-transition: .2s linear;
	transition:  .2s linear;
}

.subscribe-btn:hover::after {
	background: url(../img/icon-arrow-black.svg) 5px no-repeat;
	-o-transition: .2s linear;
	-webkit-transition: .2s linear;
	-moz-transition: .2s linear;
	transition:  .2s linear;
}

@media all and (max-width: 768px){
	.price-compare {
		width: 100%;
		display: block;
	}
	.subscribe-btn {
		display: block;
	}
}



/* ============================================================
FOOTER
============================================================ */
footer{
	width: 100%;
	position: relative;
	background: #000000;
	color: #ffffff;
}

footer h5{
	text-align: center;
	font-weight: 600;
	font-size: 1.2em;
	margin: 10px 0;
}

footer p{
	text-align: center;
}

footer p a{
	color: #ffffff;
	text-decoration: underline;
}

.copyright{
	width: 100%;
	position: relative;
	/* border-top: 1px solid #999999; */
	display: flex;
	justify-content: flex-start;
	align-items: center;
	flex-wrap: wrap;
}

.ng-logo{
	width: 100px;
	position: relative;
	padding: 15px;
}

.boulder-logo{
	width: 150px;
	position: relative;
	padding: 15px;
}

.copyright-p{
	color: #ffffff;
	font-size: .9em;
	padding: 10px;
}

.footer-logo a{
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
}

.copyright-p a{
	text-decoration: none;
	color: #f5f5f5;
}
.service {
	margin: 0 15px;
	padding: 15px 0 30px;
	font-size: .9em;
	border-top: 1px solid #333333;
}
.service a {
	color: #f5f5f5;
}
.service a:hover{
	color: #ffcc00;
}
.service span {
	margin-right: 20px;
}



/* ============================================================
GO TOP
============================================================ */

#gotop{
	/* width: 52px;
	height: 52px; */
	/* background: rgba(214,144,90,.7); */
	z-index:9;
	position: fixed;
	right: 0;
	bottom: 0;
	cursor: pointer;
	display:none;
	-o-transition: .2s linear;
	-webkit-transition: .2s linear;
	-moz-transition: .2s linear;
	transition:  .2s linear;
	z-index: 5;

	border-color: transparent rgba(20,179,173,0.8) transparent transparent;
    border-style: solid solid solid solid;
 
    /* 設定邊框大小可拼湊出任意形狀的三角形 */
    border-width: 90px 90px 0px 0px;
 
    /* 設定 width、height 可更好理解原理 */
    height: 0px;
    width: 0px;
}

#gotop i{
	font-size: 2.5em;
	color: #ffffff;
	/* width: 52px;
	line-height: 52px; */
	text-align: center;
	-o-transition: .2s linear;
	-webkit-transition: .2s linear;
	-moz-transition: .2s linear;
	transition:  .2s linear;
	position: absolute;
	bottom: 5px;
    right: -80px;
}





/* ============================================================
RWD
============================================================ */
@media all and (max-width: 1440px) {
	
}

@media all and (max-width: 1366px){
	
}

@media all and (max-width: 1280px){
	
}

@media all and (max-width: 1024px) {
	
}

@media all and (max-width: 960px) {
	
}

@media screen and (orientation: portrait) {
	
}

@media all and (max-width: 768px) {
	
}

@media all and (max-width: 640px) {
	
}

@media all and (max-width: 480px) {
	
}


@media all and (max-width: 320px){
	
}

