@charset "utf-8";
/* reset css */
@import url('reset.css');

/* owlCarousel */
@import url('owl.carousel.min.css');

body {
	background: #f7f7f7;
	font-family: arial, "微軟正黑體";
}

/* header */
header {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	background: #565656;
	z-index: 10;
}

header .title {
	font-size: 20px;
	color: #FFF;
	line-height: 45px;
	letter-spacing: 1px;
	text-align: center;
}

header a {
	position: absolute;
	top: 10px;
	display: block;
	width: 25px;
	height: 25px;
	text-indent: -9999px;
}

header .refresh {
	left: 20px;
	background: url('../images/refresh.svg');
}

header .resize {
	right: 55px;
	background: url('../images/resize_window.svg');
}

header .resize.active {
	background: url('../images/resize_fullscreen.svg');
}

header .close {
	right: 20px;
	background: url('../images/close.svg');
}

/* container */
#container {
	padding-top: 45px;
}

/* chat */
#chat {
	padding: 15px 15px 65px 15px;
}

#chat .dialog {
	margin-top: 25px;
}

#chat .dialog:first-child {
	margin: 0;
}

#chat .dialog.left {
	position: relative;
	padding: 10px 0 0 60px;
}

#chat .dialog.right {
	text-align: right;
}

#chat .dialog.left::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	display: block;
	width: 50px;
	height: 50px;
	background: url('../images/bot.svg') center bottom no-repeat #70fd08;
	background-size: 45px auto;
	border-radius: 50%;
}

#chat .dialog .wrap {
	position: relative;
	display: inline-block;
	max-width: 260px;
	border-radius: 10px;
	box-sizing: border-box;
	vertical-align: middle;
}

#chat .dialog.left .wrap {
	background: #a4c2cc;
}

#chat .dialog.right .wrap {
	background: #efefef;
}

#chat .dialog .wrap::before {
	content: "";
	position: absolute;
	top: 15px;
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-color: transparent;
}

#chat .dialog.left .wrap::before {
	right: 100%;
	border-width: 4px 4px 4px 0;
	border-right-color: #a4c2cc;
}

#chat .dialog.right .wrap::before {
	left: 100%;
	border-width: 4px 0 4px 4px;
	border-left-color: #efefef;
}

#chat .dialog .wrap .msg {
	padding: 10px 15px;
	font-size: 14px;
	line-height: 18px;
	letter-spacing: .5px;
}

#chat .dialog.left .wrap .msg {
	color: #FFF;
}

#chat .dialog.left .wrap .msg a {
	color: #FFF;
	text-decoration: underline;
}

#chat .dialog.right .wrap .msg {
	color: #555;
}

#chat .dialog.right .wrap .msg a {
	color: #555;
	text-decoration: underline;
}

#chat .dialog .wrap .link {
	border-top: 1px solid #b3d4df;
	border-radius: 0 0 10px 10px;
	overflow: hidden;
}

#chat .dialog .wrap .link a {
	float: left;
	width: 50%;
	display: block;
	background: #565656;
	font-size: 14px;
	color: #c5fffa;
	line-height: 45px;
	letter-spacing: .5px;
	text-align: center;
}

#chat .dialog .wrap .typing {
	padding: 10px 15px;
}

#chat .dialog .wrap .typing li {
	display: inline-block;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	text-indent: -9999px;
	vertical-align: middle;
	opacity: 0;
	animation: typing .5s infinite alternate;
}

@keyframes typing {
	to {
		opacity: 1;
	}
}

#chat .dialog .wrap .typing li:nth-child(1) {
	background: #c3f9ff;
	animation-delay: .1s;
}

#chat .dialog .wrap .typing li:nth-child(2) {
	background: #8be0ea;
	animation-delay: .3s;
}

#chat .dialog .wrap .typing li:nth-child(3) {
	background: #565656;
	animation-delay: .5s;
}

#chat .dialog .time {
	display: inline-block;
	font-size: 12px;
	color: #999;
	letter-spacing: .5px;
	vertical-align: middle;
}

#chat .dialog.left .time {
	margin-left: 5px;
}

#chat .dialog.right .time {
	margin-right: 5px;
}

#chat .service {
	margin-top: 10px;
}

#chat .service dl {
	border: 1px solid #c9c9c9;
	border-radius: 10px;
	overflow: hidden;
}

#chat .service dt {
	position: relative;
}

#chat .service dt img {
	display: block;
	width: 100%;
	height: auto;
}

#chat .service dt span {
	position: absolute;
	left: 0;
	top: 50%;
	width: 100%;
	margin-top: -9px;
	font-size: 18px;
	color: #FFF;
	font-weight: bold;
	text-align: center;
}

#chat .service dd {
	background: #FFF;
}

#chat .service dd a {
	display: block;
	border-bottom: 1px solid #ebebeb;
	font-size: 15px;
	color: #565656;
	line-height: 33px;
	letter-spacing: .5px;
	text-align: center;
}

#chat .service dd a:last-child {
	border: none;
}

#chat .service .owl-nav > div {
	position: absolute;
	top: 50%;
	width: 40px;
	height: 40px;
	margin-top: -20px;
	background-color: rgba(164, 194, 204, .8);
	background-position: center center;
	background-repeat: no-repeat;
	text-indent: -9999px;
}

#chat .service .owl-nav .owl-prev {
	left: -15px;
	background-image: url('../images/arrow_prev.svg');
}

#chat .service .owl-nav .owl-next {
	right: -15px;
	background-image: url('../images/arrow_next.svg');
}

#chat .photo {
	margin-top: 10px;
	border-radius: 10px;
	overflow: hidden;
}

#chat .photo img {
	display: block;
	width: 100%;
	height: auto;
}

/* message */
#message {
	position: fixed;
	left: 0;
	bottom: 0;
	width: 100%;
	border-top: 1px solid #dfdfdf;
	z-index: 10;
}

#message input {
	display: block;
	width: 100%;
	height: 50px;
	padding: 0 100px 0 20px;
	border: none;
	font-size: 15px;
	color: #333;
	line-height: 50px;
	letter-spacing: .5px;
	box-sizing: border-box;
}

#message input::-webkit-input-placeholder {
	color: #AAA;
}

#message button {
	position: absolute;
	right: 20px;
	top: 13px;
	display: none;
	width: 25px;
	height: 25px;
	background: url('../images/send.svg');
	border: none;
	text-indent: -9999px;
}

/* main-title */
#main-title {
	padding: 15px;
	background: #FFF;
	box-shadow: 0 3px 3px rgba(0, 0, 0, .1);
	font-size: 17px;
	color: #333;
	letter-spacing: .5px;
	text-align: center;
}

#main-title::before {
	content: "";
	display: inline-block;
	width: 18px;
	height: 18px;
	margin-right: 10px;
	background: url('../images/main_title.svg');
	vertical-align: top;
}

/* history */
#history {
	position: relative;
	min-height: calc(100vh - 93px);
	padding: 0 20px;
}

#history::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	width: 2px;
	height: 100%;
	margin-left: -1px;
	background: #cddce1;
}

#history dl {
	padding-top: 20px;
	overflow: hidden;
}

#history dt,
#history dd {
	width: 50%;
	box-sizing: border-box;
}

#history dt span {
	position: relative;
	display: inline-block;
	padding: 10px;
	border-radius: 10px;
	background: #a4c2cc;
	font-size: 14px;
	color: #FFF;
	letter-spacing: .5px;
}

#history dt span::before {
	content: "";
	position: absolute;
	top: 50%;
	display: block;
	width: 0;
	height: 0;
	margin-top: -4px;
	border-style: solid;
	border-color: transparent;
}

#history dd {
	position: relative;
	margin-top: 10px;
	font-size: 12px;
	color: #999;
	letter-spacing: .5px;
}

#history dd::before {
	content: "";
	position: absolute;
	top: 50%;
	display: block;
	width: 15px;
	height: 15px;
	margin-top: -7.5px;
	background: #565656;
	border-radius: 50%
}

#history .left dt {
	float: left;
	padding-right: 20px;
	text-align: right;
}

#history .left dt span::before {
	left: 100%;
	border-width: 4px 0 4px 4px;
	border-left-color: #a4c2cc;
}

#history .right dt {
	float: right;
	padding-left: 20px;
}

#history .right dt span::before {
	right: 100%;
	border-width: 4px 4px 4px 0;
	border-right-color: #a4c2cc;
}

#history .left dd {
	float: right;
	padding-left: 20px;
}

#history .left dd::before {
	right: 100%;
	margin-right: -7.5px;
}

#history .right dd {
	float: left;
	padding-right: 20px;
	text-align: right;
}

#history .right dd::before {
	left: 100%;
	margin-left: -7.5px;
}

#history .first dt span {
	background: #ffb400;
}

#history .first.left dt span::before {
	border-left-color: #ffb400;
}

#history .first.right dt span::before {
	border-right-color: #ffb400;
}

#history .first dd::before {
	background: #ffb400;
}

/* fill-form */
.fill-form .note {
	padding: 10px 15px;
	font-size: 14px;
	color: #a4c2cc;
	letter-spacing: .5px;
}

.fill-form .section {
	margin-bottom: 10px;
	padding: 15px;
	background: #FFF;
	border-bottom: 1px solid #d2d2d2;
	box-shadow: 0 1px 0 rgba(234, 234, 234, 1.0);
}

.fill-form li {
	margin-bottom: 10px;
}

.fill-form li span {
	display: block;
	margin-bottom: 5px;
	font-size: 16px;
	color: #666;
	letter-spacing: .5px;
}

.fill-form li span i {
	font-style: normal;
	font-size: 12px;
	color: #a4c2cc;
	letter-spacing: .5px;
}

.fill-form li span b {
	color: #565656;
}

.fill-form li input[type="text"],
.fill-form li input[type="email"],
.fill-form li input[type="tel"],
.fill-form li input[type="date"],
.fill-form li input[type="number"],
.fill-form li select {
	display: block;
	width: 100%;
	height: 40px;
	padding: 10px 15px;
	background: #f7f7f7;
	border: 1px solid transparent;
	border-radius: 10px;
	font-size: 15px;
	color: #333;
	letter-spacing: .5px;
	box-sizing: border-box;
}

.fill-form li input::-webkit-input-placeholder {
	color: #CCC;
}

.fill-form li label {
	margin-bottom: 10px;
	font-size: 16px;
	color: #666;
	letter-spacing: .5px;
}

.fill-form li label input[type="checkbox"] {
	display: inline-block;
	width: 30px;
	height: 30px;
	margin-right: 15px;
	background-color: #f7f7f7;
	border-radius: 10px;
	vertical-align: middle;
	appearance: none;
	-webkit-appearance: none;
}

.fill-form li label input[type="checkbox"]:checked {
	background: url('../images/check.svg') center center no-repeat #565656;
}

.fill-form li .check-list-row label {
	display: block;
}

.fill-form li .check-list-row label input[type="text"] {
	display: inline-block;
	margin-left: 15px;
	width: calc(100% - 100px);
}

.fill-form li .check-list-row label.error input[type="text"] {
	border-color: #cb5a85;
}

.fill-form li .check-list-inline {
	overflow: hidden;
}

.fill-form li .check-list-inline label {
	float: left;
	width: 33.33%;
}

.fill-form li .check-list-inline label input[type="text"] {
	display: inline-block;
	height: 30px;
	vertical-align: middle;
}

.fill-form li .check-list-inline label.other {
	width: 66.66%;
}

.fill-form li .check-list-inline label.other input[type="text"] {
	width: calc(100% - 100px);
	margin-left: 10px;
}

.fill-form li .range {
	position: relative;
	padding: 20px 90px 20px 60px;
	background: #f7f7f7;
	border-radius: 10px;
}

.fill-form li .range::before,
.fill-form li .range::after {
	content: "";
	position: absolute;
	top: 50%;
	display: block;
	width: 25px;
	height: 25px;
	margin-top: -12.5px;
}

.fill-form li .range::before {
	left: 15px;
	background: url('../images/range_bad.svg');
}

.fill-form li .range::after {
	right: 40px;
	background: url('../images/range_good.svg');
}

.fill-form li .range input[type="range"] {
	display: block;
	width: 100%;
	height: 4px;
	background: #DDD;
	border-bottom: 1px solid #FFF;
	appearance: none;
	-webkit-appearance: none;
}

.fill-form li .range input[type="range"]::-webkit-slider-thumb {
	width: 20px;
	height: 20px;
	background: linear-gradient(#fefefe, #f8f8f8);
	border-radius: 50%;
	box-shadow: 1px 1px 2px rgba(0, 0, 0, .5);
	appearance: none;
	-webkit-appearance: none;
}

.fill-form li .range .number {
	position: absolute;
	right: 15px;
	top: 15px;
	font-size: 16px;
	color: #565656;
}

.fill-form li .level {
	position: relative;
	padding: 0 60px;
	border-radius: 10px;
	overflow: hidden;
}

.fill-form li .level::before,
.fill-form li .level::after {
	content: "";
	position: absolute;
	top: 0;
	display: block;
	width: 60px;
	height: 40px;
}

.fill-form li .level::before {
	left: 0;
	border-radius: 10px 0 0 10px;
	background: url('../images/level_good.svg') center center no-repeat #e4f1c5;
}

.fill-form li .level::after {
	right: 0;
	border-radius: 0 10px 10px 0;
	background: url('../images/level_bad.svg') center center no-repeat #f4c7c4;
}

.fill-form li .level input[type="radio"] {
	display: none;
}

.fill-form li .level label {
	float: left;
	display: block;
	width: 25%;
	margin: 0;
	background: #f7f7f7;
	border-right: 1px solid #FFF;
	font-size: 15px;
	color: #a4c2cc;
	line-height: 40px;
	text-align: center;
	box-sizing: border-box;
}

.fill-form li .level input[type="radio"]:checked + label {
	color: #FFF;
}

.fill-form li .level input[type="radio"]:checked + label.color-1 {
	background: #565656;
}

.fill-form li .level input[type="radio"]:checked + label.color-2 {
	background: #56c6b0;
}

.fill-form li .level input[type="radio"]:checked + label.color-3 {
	background: #eddd4a;
}

.fill-form li .level input[type="radio"]:checked + label.color-4 {
	background: #ebb14e;
}

.fill-form li .notice {
	margin-top: 5px;
	font-size: 12px;
	color: #cb5a85;
	letter-spacing: .5px;
	text-align: right;
}

.fill-form li.error input {
	border-color: #cb5a85;
}

.fill-form li.error .range,
.fill-form li.error .level {
	border: 1px solid #cb5a85;
}

.fill-form .button {
	padding: 0 15px 15px 15px;
	overflow: hidden;
}

.fill-form .button a,
.fill-form .button button {
	display: block;
	width: 49%;
	padding: 15px;
	border: none;
	border-radius: 10px;
	font-size: 16px;
	color: #f7f7f7;
	letter-spacing: .5px;
	text-align: center;
	box-sizing: border-box;
}

.fill-form .button a,
.fill-form .button button[type="reset"] {
	float: left;
	background: #a4c2cc;
}

.fill-form .button button {
	float: right;
	background: #565656;
	line-height: 1;
}

.fill-form .note-bottom {
	position: relative;
	padding: 0 15px 15px 40px;
	font-size: 14px;
	color: #555;
	line-height: 20px;
	letter-spacing: .5px;
}

.fill-form .note-bottom::before {
	content: "";
	position: absolute;
	left: 15px;
	top: 0;
	display: block;
	width: 18px;
	height: 18px;
	background: url('../images/notice.svg');
}