*{
	font-family: "Geograph", "Roboto", "Noto Sans TC", sans-serif;
}

body{
	width: 100vw;
	overflow-x: hidden;
	background: #efc18f;
	font-size: 16px;
}


h1, h2, h3, h4, h5, h6{
	font-family: "Geograph", "Roboto", "Noto Sans TC", sans-serif;
}

h1{
	font-size: 3.4em;
	font-weight: 700;
	line-height: 1.2em;
}

h2{
	font-size: 1.8em;
	font-weight: 700;
	line-height: 1.4em;
	margin-bottom: 10px;
}

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){
	h2{
		font-size: 2em;
	}

	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; */
}

/* ============================================================
LOADING
============================================================ */
.progress {
	position: fixed;
	z-index: 11111;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #efc18f;
	color: #ffffff;
}

.progress-inner {
	position: absolute;
	left: calc(50% - 150px);
	top: calc(50% - 76px);
	width: 300px;
	height: 152px;
	background-color: #efc18f;
	/*overflow: hidden;*/
}

/* .progress-inner img{
	width: 100%;
} */

.progress-bar {
	position: absolute;
	width: 100%;
	height: 100%;
	background-color: #efc18f;
}

.progress-text {
	color: #685547;
	font-family: "Geograph", "Roboto", "Noto Sans TC", sans-serif;
	font-size: 2em;
	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: #efc18f;
}

/* ============================================================
KV
============================================================ */
nav{
	width: 100%;
	height: 80px;
	position: fixed;
	top: 0;
	left: 0;
	background-image: linear-gradient(rgba(200, 140, 80, .9), rgba(200, 140, 80, 0));
	z-index: 10;
	display: flex;
	justify-content: flex-start;
	align-items: center;
}

.boulder-logo-fixed{
	width: 120px;
	margin: 0 5px 0 15px;
}

.ng-logo-fixed{
	width: 80px;
	margin: 0 0 0 5px;
}

.boulder-logo-fixed img, .ng-logo-fixed img{
	width: 100%;
}


h1{
	position: absolute;
	top: -100vh;
	left: -100vw;
	color: #efc18f;
}


header{
	width: 100%;
	min-height: 70vh;
	position: relative;
	margin: 0 auto;
	overflow: hidden;
}

@media screen and (orientation: landscape) {
	header{
		min-height: 100vh;
	}
}

.kv-container{
	width: 85%;
	max-width: 700px;
	/* position: relative;
	margin: 0 auto; */
	position: absolute;
	top: 50%;
	left: 48%;
	transform: translate(-50%,-50%);
}

.kv-container img{
	width: 100%;
	position: relative;
}

#animation_container{
	position: absolute;
	width: 100%;
	/* height: 100%; */
	padding-bottom: 78.13333%;
	top: 0;
	left: 0;
	transform: translate(0, -50%);
}

#animation_container canvas{
	width: 100%;
	position: absolute;
	top: 0;
	left: 0;
}

.bookswall{
	width: 285%;
	height: 80%;
	position: absolute;
}

.bookswall img{
	width: auto;
	height: 100%;
}

.bookswall canvas{
	width: auto;
	height: 100%;
	/* top: 50%;
    left: 0;
    transform: translate(-90%,-50%); */
}

.bookswall-0{
	top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    display: none;
}

.bookswall-1{
	width: 100%;
    height: 80%;
    position: absolute;
    top: 50%;
    left: 0%;
    transform: translate(-90%,-50%);
}

.bookswall-2{
	width: 100%;
    height: 80%;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translate(95%,-50%);
}

@media all and (min-width: 769px) {
	.boulder-logo-fixed{
		width: 150px;
		margin: 0 10px 0 15px;
	}

	.ng-logo-fixed{
		width: 100px;
		margin: 0 0 0 10px;
	}
}

@media screen and (orientation: landscape) and (min-width: 769px) {
	.bookswall-0{
		display: block;
	}

	.bookswall-1, .bookswall-2{
		display: none;
	}
}

/* ============================================================
goodpoint
============================================================ */
section.goodpoint{
	width: 100%;
	position: relative;
	background: #ffffff;
	margin-top: -30px;
	padding-bottom: 100px;
}

@media all and (min-width: 769px) {
	section.goodpoint{
		padding-bottom: 200px;
	}
}

.goodpoint-container{
	width: 90%;
	max-width: 1100px;
	position: relative;
	margin: 0 auto;
}

.sloth-1{
	width: 70%;
	max-width: 360px;
	position: absolute;
    transform: translate(0, -37%);
    animation: sloth1Move 30s linear forwards infinite;
}

.sloth-1 img{
	width: 100%;
}

@keyframes sloth1Move{
	0%{
		transform: translate(0, -37%);
	}

	5%{
		transform: translate(0, -37%);
	}

	10%{
		transform: translate(10px, -37%);
	}

	15%{
		transform: translate(10px, -37%);
	}

	20%{
		transform: translate(20px, -37%);
	}

	25%{
		transform: translate(20px, -37%);
	}

	30%{
		transform: translate(30px, -37%);
	}

	35%{
		transform: translate(30px, -37%);
	}

	40%{
		transform: translate(40px, -37%);
	}

	45%{
		transform: translate(40px, -37%);
	}

	50%{
		transform: translate(50px, -37%);
	}

	55%{
		transform: translate(50px, -37%);
	}

	60%{
		transform: translate(40px, -37%);
	}

	65%{
		transform: translate(40px, -37%);
	}

	70%{
		transform: translate(30px, -37%);
	}

	75%{
		transform: translate(30px, -37%);
	}

	80%{
		transform: translate(20px, -37%);
	}

	85%{
		transform: translate(20px, -37%);
	}

	90%{
		transform: translate(10px, -37%);
	}

	95%{
		transform: translate(10px, -37%);
	}

	100%{
		transform: translate(0px, -37%);
	}
}

.goodpoint-text{
	width: 100%;
	position: relative;
	padding-top: 120px;
	padding-bottom: 20px;
}

.goodpoint-text h2{
	font-size: 1.8em;
}

.goodpoint-text h2 em{
	font-size: 1.5em;
}

.goodpoint-text h3{
	font-size: 1.15em;
	line-height: 1.5em;
	font-weight: 500;
	color: #333333;
	margin-top: 20px;
}

.goodpoint-text h3 em{
	color: #d38a3c;
	font-size: 1.75em;
	font-weight: 600;
}

@media all and (min-width: 1024px) {
	.goodpoint-container{
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
	}

	.sloth-1{
		position: relative;
	}

	.goodpoint-text{
		max-width: 660px;
		padding-top: 0;
		padding-bottom: 0;
		margin-top: -43px;
	}

	.goodpoint-text h2{
		font-size: 2em;
	}

	.goodpoint-text h3{
		font-size: 1.3em;
	}
}

.goodpoint-content{
	width: 90%;
	max-width: 1100px;
	position: relative;
	margin: 20px auto;
	padding-bottom: 50px;
}

.goodpoint-content li{
	width: 100%;
	position: relative;
	margin: 20px auto;
	background: #efc18f;
	border-radius: 10px;
}

.goodpoint-content li a{
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
}

.goodpoint-item-content{
	width: 90%;
	position: relative;
	margin: 0 auto;
	padding: 20px 0;
}

.goodpoint-item-content h3{
	font-size: 1.7em;
	font-weight: 600;
	color: #000000;
}

.goodpoint-item-content h3 em{
	color: #af1515;
	font-size: 1.5em;
}

.goodpoint-item-content h3 span{
	font-size: .7em;
	background: #ffffff;
	border-radius: 5px;
	padding: 5px 10px;
	color: #d38a3c;
	font-weight: 400;
	margin-right: 10px;
}

.goodpoint-item-content h6{
	font-size: 1.15em;
	font-weight: 400;
	color: #222222;
	margin: 10px 0;
}

.goodpoint-item-content h6 em{
	color: #af1515;
	font-size: 1.4em;
	font-weight: 600;
}

.goodpoint-item-content h6 em.same{
	color: #af1515;
	font-size: 1.15em;
	font-weight: 500;
}

.goodpoint-img{
	width: 100%;
	position: relative;
}

.goodpoint-img img{
	width: 100%;
}

@media all and (min-width: 768px) {
	.goodpoint-content ul{
		width: 100%;
		position: relative;
		display: flex;
		justify-content: space-between;
		align-items: stretch;
	}

	.goodpoint-content li{
		width: 32%;
	}
}

@media all and (min-width: 1024px){
	.goodpoint-content{
		margin-top: -50px;
	}
}

/* ============================================================
products
============================================================ */
section.products{
	width: 100%;
	position: relative;
	margin: 0 auto;
}

.products-wrap{
	width: 90%;
	max-width: 1100px;
	position: relative;
	margin: 0 auto;
	z-index: 2;
}

.sloth-2{
	width: 60%;
	max-width: 400px;
	position: absolute;
	top: 0;
	right: 0;
	transform: translate(0,-70%);
	animation: sloth2Move 5s linear forwards infinite;
}

.sloth-2 img{
	width: 100%;
}

@keyframes sloth2Move{
	0%{
		transform: translate(0,-70%) rotate(-2deg);
	}

	25%{
		transform: translate(0,-70%) rotate(0deg);
	}

	50%{
		transform: translate(0,-70%) rotate(2deg);
	}

	75%{
		transform: translate(0,-70%) rotate(0deg);
	}

	100%{
		transform: translate(0,-70%) rotate(-2deg);
	}
}

.products-title{
	width: 100%;
	position: relative;
	padding-top: 50px;
}

.products-title h2{
	width: 100%;
	font-size: 1.5em;
}


.bookicon{
	width: 50px;
	position: relative;
	margin-right: 10px;
}

.bookicon img{
	width: 50px;
	vertical-align: bottom;
}

@media all and (min-width: 768px){
	.products-title h2{
		width: calc(100% - 400px);
		transform: translate(0,-100%);
		font-size: 2em;
	}

	.products-title{
		padding-top: 7px;
	}
}

.products-nav{
	width: 100%;
	position: relative;
	background: #685547;
}

.products-nav.fixed{
	position: fixed;
	z-index: 20;
	top: 0;
    left: 0;
    background: #ffffff;
    box-shadow: 3px 3px 20px rgba(0,0,0,.3);
}

.products-nav-container{
	width: 90%;
	max-width: 1100px;
	position: relative;
	margin: 0 auto;
}

.products-nav ul{
	width: 100%;
	position: relative;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
}

.nav-item{
	width: 33%;
	/* max-width: 100px; */
	position: relative;
	color: #ffffff;
	font-size: 1.1em;
	font-weight: 500;
	text-align: center;
	padding: 20px 0;
	transition: .2s linear;
}

.nav-item a{
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	z-index: 2;
}

.nav-item.active:before{
	content: '';
	display: table;
	position: absolute;
	width: 100%;
	bottom: 0;
	left: 0;
	border-bottom: 5px solid #ffffff;
}

.nav-item.active:after{
	content: '▼';
	display: table;
	position: absolute;
	width: 100%;
	text-align: center;
	color: #ffffff;
	font-size: 16px;
	bottom: -16px;
}

.products-nav.fixed .nav-item{
	color: #685547;
}

.products-nav.fixed .nav-item.active:before{
	border-bottom: 5px solid #685547;
}

.products-nav.fixed .nav-item.active:after{
	color: #685547;
}

@media all and (min-width: 768px){
	.products-nav ul{
		max-width: 400px;
		margin: 0;
	}

	.products-nav{
		position: absolute;
		top: 0;
	}

	.nav-item:hover{
		background: #ffcc00;
	}

	/* .nav-item.active:hover{
		color: #ffcc00;
	} */
}




.products-book{
	width: 90%;
	max-width: 1100px;
	position: relative;
	margin: 0 auto;
}

.products-category{
	padding: 50px 0;
	position: relative;
}

.products-category h4{
	font-size: 1.3em;
	font-weight: 500;
	color: #333333;
	position: absolute;
	margin-left: 20px;
	z-index: 2;
	bottom: 0;
}

.products-category h4 em{
	color: #af1515;
	font-size: 1.5em;
	font-weight: 600;
}

.products-category h4:before{
	content: '';
	display: table;
	position: absolute;
	width: 100%;
	height: 20px;
	background: #ffe4ca;
	padding: 0 20px;
	margin-left: -20px;
	bottom: 0;
	z-index: -1;
}

.products-content{
	position: relative;
	padding-bottom: 130px;
}

.products-content ul{
	width: 100%;
	position: relative;
	display: flex;
	justify-content: flex-start;
	align-items: stretch;
	flex-wrap: wrap;
}


.books-item{
	width: 48%;
	position: relative;
	margin: 10px 1%;
	background: #ffffff;
	border-radius: 10px;
	padding: 20px 0;
	transition: .2s linear;
}

.books-item a{
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
}

.books-content{
	width: 90%;
	position: relative;
	margin: 0 auto;
}

.books-img{
	width: 100%;
	position: relative;
}

.books-img img{
	width: 100%;
}

.books-content h2{
	font-size: 1.3em;
	font-weight: 600;
	color: #c98943;
	text-align: center;
}

p.ori-price{
	text-align: left;
	font-size: 1em;
	font-weight: 400;
	color: #333333;
	text-decoration: line-through;
}



.books-content h5{
	font-size: 1.2em;
	font-weight: 500;
	color: #333333;
	text-align: right;
}

.books-content h5 em{
	font-size: 1.5em;
	font-weight: 600;
	color: #af1515;
}

h5.ori-price{
	text-decoration: line-through;
}

h5.text-center{
	text-align: center;
}

@media all and (min-width: 768px){
	.books-item{
		width: 24%;
		margin: 10px .5%;
	}

	.item-all5 .books-item{
		width: 18.8%;
		margin: 10px .6%;
	}

	.products-content{
		padding-bottom: 100px;
	}

	.books-item:hover{
		opacity: .8;
	}
}


.more-btn{
	width: 250px;
	height: 45px;
	position: relative;
	margin: 20px auto;
	text-align: center;
	line-height: 45px;
	color: #ffffff;
	background: #685547;
	font-size: 1em;
	border-radius: 5px;
	transition: .2s linear;
}

.more-btn a{
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
}

@media all and (min-width: 768px){
	.more-btn:hover{
		background: #f5f5f5;
		color: #000000;
	}
}


.sloth-3{
	width: 60%;
	max-width: 300px;
	position: absolute;
	bottom: 0;
	right: 0;
	animation: sloth3Move 5s linear forwards infinite;
}

@keyframes sloth3Move{
	0%{
		transform: skew(-1.5deg, -1.5deg);
	}

	25%{
		transform: skew(0deg, 0deg);
	}

	50%{
		transform: skew(1.5deg, 1.5deg);
	}

	75%{
		transform: skew(0deg, 0deg);
	}

	100%{
		transform: skew(-1.5deg, -1.5deg);
	}
}

.sloth-4{
	width: 80%;
	max-width: 700px;
	position: absolute;
	bottom: 0;
	right: 0;
	animation: sloth4Move 5s linear forwards infinite;
}

@keyframes sloth4Move{
	0%{
		transform: rotate(-2deg);
	}

	25%{
		transform: rotate(0deg);
	}

	50%{
		transform: rotate(2deg);
	}

	75%{
		transform: rotate(0deg);
	}

	100%{
		transform: rotate(-2deg);
	}
}

.sloth-3 img, .sloth-4 img{
	width: 100%;
}

.sloth-4.hide{
	display: none;
}

/* ============================================================
ATTENTION
============================================================ */
section.attention{
	width: 100%;
	position: relative;
	background: #685547;
	padding: 100px 0;
}

.attetion-container{
	width: 90%;
	max-width: 1100px;
	position: relative;
	margin: 0 auto;
}

.attetion-title h2{
	color: #ffffff;
}

.attetion-category{
	padding: 50px 0;
	position: relative;
}

@media all and (min-width: 400px) {
	.attetion-category{
		padding: 30px 0;
	}
}

.attetion-category h4{
	font-size: 1.3em;
	font-weight: 500;
	color: #f5f5f5;
	position: absolute;
	margin-left: 20px;
	z-index: 2;
	bottom: 0;
}

.attetion-category h4 em{
	color: #e5b985;
	font-size: 1.5em;
	font-weight: 600;
}

.attetion-category h4:before{
	content: '';
	display: table;
	position: absolute;
	width: 100%;
	height: 20px;
	background: #a59186;
	padding: 0 20px;
	margin-left: -20px;
	bottom: 0;
	z-index: -1;
}

ol.attention-ol, ol.attention-ol li{
	list-style: decimal;
}

ol.attention-ol li{
	color: #f5f5f5;
	font-size: 1.05em;
	margin: 5px 0;
	line-height: 1.5em;
}

/* ============================================================
FOOTER
============================================================ */
footer{
	width: 100%;
	position: relative;
	background: #000000;
	color: #f5f5f5;
	padding: 50px 0;
}

.footer-container{
	width: 90%;
	max-width: 1100px;
	position: relative;
	margin: 0 auto;
}

.boulder-footer-logo{
	width: 200px;
	position: relative;
	margin: 10px auto;
}

.boulder-footer-logo img{
	width: 100%;
}

footer p{
	text-align: center;
	font-size: .95em;
	margin: 5px 0;
}

footer p a{
	color: #ffffff;
	text-decoration: underline;
}




/* ============================================================
Shop Fixed
============================================================ */
.shop-fixed{
	position: fixed;
	right: 0;
	bottom: 100px;
	width: 50px;
	padding: 30px 0 5px 0;
	padding-top: 30px;
	background: #ffffff;
	box-shadow: 3px 3px 10px rgba(0, 0, 0, .2);
	border-radius: 5px 0 0 5px;
	z-index: 10;
}

.sloth-shop{
	width: 100%;
	position: absolute;
	top: 0;
	right: 0;
	transform: translate(0, -65%);
}

.sloth-shop img{
	width: 100%;
}

.shop-cart{
	font-size: 2.5em;
	color: #685547;
	position: relative;
	overflow: hidden;
}

.shop-cart i{
	position: relative;
	animation: cartMove 1.8s linear infinite;
}

@keyframes cartMove{
	0%{
		left: -100%;
	}

	100%{
		left: 100%;
	}
}

.shop-text{
	width: 100%;
	color: #685547;
	text-align: center;
	margin: 10px auto;
	font-size: 1.1em;
	font-weight: 500;
}

.shop-fixed a{
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
}

@media all and (min-width: 768px) {
	.shop-fixed{
		width: 80px;
	}
}


/* ============================================================
GO TOP
============================================================ */

#gotop{
	/* width: 52px;
	height: 52px; */
	/* background: rgba(255,204,0,.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(255,204,0,.7) 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){
	
}

