@charset "utf-8";
body {
	background: #e3adc8;
	overflow-x: hidden;
	font-family: 'Noto Sans TC', sans-serif;
}
.notice{
    display: flex;
    justify-content: center;
    align-items: center;
    background: linear-gradient(135deg, #ffd700, #ffed4e, #ffb347, #ff8c00, #ffd700, #ffed4e);
    background-size: 400% 400%;
    animation: gradientAnimation 8s ease infinite;
    color: #2c2c2c;
    font-size: 40px;
    font-weight: 800;
    text-align: center;
    border-radius: 15px;
    box-shadow: 0 8px 25px rgba(255, 215, 0, 0.3);
    padding: 20px 30px;
    margin: 20px auto;
    position: relative;
    overflow: hidden;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    border: 2px solid rgba(255, 215, 0, 0.3);
}
.w50{width:50%; float: left;}
.w33{width:33%; float: left;}
/* 金色漸變動畫 */
@keyframes gradientAnimation {
    0% {
        background-position: 0% 50%;
    }
    25% {
        background-position: 100% 50%;
    }
    50% {
        background-position: 100% 100%;
    }
    75% {
        background-position: 0% 100%;
    }
    100% {
        background-position: 0% 50%;
    }
}

/* 添加光澤效果 */
.notice::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    animation: shine 3s ease-in-out infinite;
    transform: rotate(45deg);
}

@keyframes shine {
    0% {
        transform: translateX(-100%) translateY(-100%) rotate(45deg);
    }
    50% {
        transform: translateX(100%) translateY(100%) rotate(45deg);
    }
    100% {
        transform: translateX(-100%) translateY(-100%) rotate(45deg);
    }
}

/* 添加脈衝效果 */
@keyframes pulse {
    0% {
        transform: scale(1);
        box-shadow: 0 8px 25px rgba(255, 215, 0, 0.3);
    }
    50% {
        transform: scale(1.02);
        box-shadow: 0 12px 35px rgba(255, 215, 0, 0.5);
    }
    100% {
        transform: scale(1);
        box-shadow: 0 8px 25px rgba(255, 215, 0, 0.3);
    }
}

.notice {
    animation: gradientAnimation 8s ease infinite, pulse 4s ease-in-out infinite;
}


.prices {
	width: 60%;
	float: left;
	display: block;
}
.w20, .w40, .w60, .w80, .w100 {
	display: block;
	float: left;
	height: auto;
	min-height: 100px;
}
.woman {
	width: 283px;
	margin-top: -30px;
	z-index: 9999999;
	position: absolute;
}
.w40 {
	width: 40%;
}
.w60 {
	width: 60%;
}
.w20 {
	width: 20%;
}
.w80 {
	width: 80%;
}
.w100 {
	width: 100%;
}
.licens img {
	width: 100%
}
.top {
	margin: 10px 0px;
	display: block;
	width: 100%;
	float: left;
}
.newslist {
	letter-spacing: 2px;
	margin: 0px;
	display: block;
	float: left;
	padding: 0px;
}
.date {
	background-color: #666;
	color: #fff;
	padding: 0px 10px 3px;
	border-radius: 10px;
	font-size: 11px;
	margin-right: 1em
}
.logodown {
	float: left;
	width: 150px;
	margin: 15px 10px;
}
.newslist li {
	height: auto;
	margin: 10px;
	width: 100%;
	display: block;
	float: left;
	border-bottom: 1px dotted #666;
	padding-bottom: 10px;
}
.maincase {
	max-width: 1200px;
	display: block;
	margin: 0 auto;
}
.wcase {
	max-width: 1400px;
	margin: 0 auto;
	width: 98%;
	display: block;
	float: left;
}
#wowslider-container0 {
	width: 100%!important;
	margin: 3% auto 0%!important;
	display: block!important;
	height: fit-content;
	float: left;
}
.logotop {
	float: left
}
#logo {
	margin: 2% 0%;
	width: 20%;
	display: block;
	float: left;
}
nav {
	width: 80%;
	float: left;
	display: block;
}
.menu li {
	display: block;
	float: left;
	width: 16.5%;
	text-align: center;
}
.service {
	width: 60%;
	float: left;
}
.service50 {
	width: 50%;
	float: left;
}
.serv1 {
	width: 39%;
	float: left;
}
.service tr {
	padding: 5px 0px;
}
.mainarea {
	background-color: #fff0f0;
	padding: 1%;
	box-shadow: 0px 0px 22px 9px rgba(0, 0, 0, 0.3);
}
.menu ul {
	height: auto;
	display: block;
	float: left;
	width: 100%;
	padding-left: 10px;
	background: linear-gradient(  45deg,  rgba(0, 0, 0, 1) 12%,  rgba(255, 0, 81, 1) 84%);
	background-blend-mode: normal;
	height: 26px;
	margin-top: 63px;
}
.menu a {
	font-size: 16px;
	font-family: 'Noto Serif TC', sans-serif;
	font-weight: 800;
	text-decoration: none;
	color: #000;
	background-color: #ffffff;
	padding: 5px 25px;
	letter-spacing: 3px;
	border: #666 solid 1px;
}
.ws_carousel_basic {
	overflow: visible!important;
}
.notice li {
	width: 12%;
	margin: 1%;
	display: block;
	float: left;
	height: 125px;
	text-align: center;
	font-size: 20px;
	background-color: #f97089;
	padding: 3%;
	border-radius: 100px;
	font-weight: 800;
	text-shadow: 0px 0px 7px rgba(0, 0, 0, 0.3);
	color: #fff;
}
.notice li.mt30 {
	margin-top: 100px;
	margin-bottom: 50px;
}
.gmap {
	width: 56%;
	display: block;
	float: left;
	height: 350px;
	margin-bottom: 2%;
}
.ctarea {
	padding: 2%;
	line-height: 250%;
	font-size: 20px;
	color: #a91d36;
}
.abusp {
	text-align: center;
	font-size: 31px;
	font-weight: 600;
}
h2 {
	text-align: center;
	background-color: #a91d36;
	color: #fff;
	height: 40px;
	line-height: 40px;
	border-radius: 10px;
	width: 100%;
	float: left;
}
.serv1 {
	float: right;
}
.pri {
	background: #00000038;
}
h3 {
	text-align: left;
	color: #a91d36;
	height: 38px;
	font-size: 27px;
	line-height: 36px;
	border-bottom: 1px #666666 dashed;
	padding-bottom: 19px;
	width: 100%;
	float: left;
}
#wowslider_engine {
	position: relative;
	top: 0px;
	float: left;
	width: 100%;
	display: block;
}
#footer {
	width: 99%;
	display: block;
	float: left;
	line-height: 190%;
	font-size: 14px;
	letter-spacing: 2px;
	background: #fff;
	border-left: 10px solid #a91d36;
	position: relative;
	min-height: 1em;
}
#footer .footer-visitor-count {
	position: absolute;
	right: 15px;
	bottom: 8px;
	font-size: 12px;
	color: #666;
	letter-spacing: 1px;
}
.service td {
	border-bottom: 1px dotted #666;
	padding: 22px 15px;
}
.tabcontent {
	margin-bottom: 30px;
	float: left;
	width: 100%;
}
.service50 td {
	border-bottom: 1px dotted #666;
	padding: 5px 15px;
}
/* Style the tab */
.tab {
	overflow: hidden;
	border: 1px solid #ccc;
	background-color: #f1f1f1;
}
/* Style the buttons inside the tab */
.tab button {
	background-color: inherit;
	float: left;
	border: none;
	outline: none;
	cursor: pointer;
	padding: 14px 16px;
	transition: 0.3s;
	font-size: 17px;
	width: 33.33333%;
	font-weight: 600;
}
/* Change background color of buttons on hover */
.tab button:hover {
	background-color: #ddd;
}
/* Create an active/current tablink class */
.tab button.active {
	background-color: #ffffff;
}

@media (max-width: 500px)
{
.maincase {
	max-width: 500px;
}
.ws_carousel_basic {
	overflow: hidden!important;
}
nav {
	width: 100%;
}
.maincase {
	float: left;
	overflow: hidden;
}
#wowslider-container0 {
	overflow-x: hidden!important;margin: 5px auto 0%!important;
}
.w20, .w40, .w60, .w80, .w100 {
	width: 100%!important;
}
.serv1,.service{width: 100%;}
.notice li {
    width: 93%;
    margin: 0%!important;
    display: block;
    float: left;
    height: fit-content;
    text-align: left;
    font-size: 20px;
    color: #fff;
    border-radius: 0px;
    border-bottom: 1px #fff solid;
}
	.woman {
    width: 50%;
    margin-top: 0px;
    position: relative;
    margin-left: 25%;
}
	.abusp {
    font-size: 26px;
}
	.notice {
    margin: 0px;
    padding: 0px;
}
#logo {
    width: 100%;
    display: block;
    float: left;
    text-align: center;
}
.logotop {
    float: none;
    width: 35%;
}
	.gmap{display: none;}
.menu ul {
    padding-left: 0px;
    margin-top: 10px;
    background-color: #ffffff!important;
    height: auto;
    background-blend-mode: color;
    margin-bottom: 0px;
}
	.menu a {
    font-size: 18px;
    font-weight: 800;
    color: #000;
    background-color: #ffffff;
    padding: 0px;
    letter-spacing: 3px;
    border: 0px;
    width: 100%;
}
	.menu li {
    width: 32.7%;
    border: 1px solid #e3adc8!important;
}
}
/* Style the tab content */
.tabcontent {
	-webkit-animation: fadeEffect 1s;
	animation: fadeEffect 1s;
}

/* Fade in tabs */
@-webkit-keyframes fadeEffect {
 from {
opacity: 0;
}
 to {
opacity: 1;
}
}
 @keyframes fadeEffect {
 from {
opacity: 0;
}
 to {
opacity: 1;
}
}

/* 行動裝置快捷功能 */
.mobile-shortcuts {
	position: fixed;
	bottom: 20px;
	right: 20px;
	z-index: 9999;
	display: none;
	flex-direction: column;
	align-items: center;
	gap: 12px;
}

.mobile-shortcut-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	text-decoration: none;
	font-size: 28px;
	color: white;
	box-shadow: 0 8px 25px rgba(0,0,0,0.15);
	transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
	position: relative;
	overflow: hidden;
	border: 3px solid rgba(255,255,255,0.2);
	backdrop-filter: blur(10px);
}

.mobile-shortcut-btn::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(45deg, rgba(255,255,255,0.1), rgba(255,255,255,0.05));
	border-radius: 50%;
	opacity: 0;
	transition: opacity 0.3s ease;
}

.mobile-shortcut-btn:hover::before {
	opacity: 1;
}

.mobile-shortcut-btn:hover {
	transform: translateY(-3px) scale(1.05);
	box-shadow: 0 12px 35px rgba(0,0,0,0.25);
}

.mobile-shortcut-btn:active {
	transform: translateY(-1px) scale(0.98);
	transition: all 0.1s ease;
}

.mobile-shortcut-btn.phone {
	background: linear-gradient(135deg, #25D366, #128C7E);
}

.mobile-shortcut-btn.phone:hover {
	background: linear-gradient(135deg, #2EE56B, #1A9B8E);
}

.mobile-shortcut-btn.map {
	background: linear-gradient(135deg, #FF6B6B, #EE5A52);
}

.mobile-shortcut-btn.map:hover {
	background: linear-gradient(135deg, #FF7B7B, #F66A62);
}

.mobile-shortcut-btn.line {
	background: linear-gradient(135deg, #00C300, #00A000);
}

.mobile-shortcut-btn.line:hover {
	background: linear-gradient(135deg, #00D300, #00B000);
}

.mobile-shortcut-btn.whatsapp {
	background: linear-gradient(135deg, #25D366, #128C7E);
}

.mobile-shortcut-btn.whatsapp:hover {
	background: linear-gradient(135deg, #2EE56B, #1A9B8E);
}

/* 按鈕標籤 */
.mobile-shortcut-label {
	position: absolute;
	right: 70px;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(0,0,0,0.8);
	color: white;
	padding: 8px 12px;
	border-radius: 20px;
	font-size: 14px;
	font-weight: 500;
	white-space: nowrap;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s ease;
	backdrop-filter: blur(10px);
	border: 1px solid rgba(255,255,255,0.1);
}

.mobile-shortcut-btn:hover .mobile-shortcut-label {
	opacity: 1;
	visibility: visible;
	transform: translateY(-50%) translateX(-5px);
}

.mobile-shortcut-label::after {
	content: '';
	position: absolute;
	left: 100%;
	top: 50%;
	transform: translateY(-50%);
	border: 6px solid transparent;
	border-left-color: rgba(0,0,0,0.8);
}

/* 脈衝動畫效果 */
@keyframes pulse {
	0% {
		box-shadow: 0 8px 25px rgba(0,0,0,0.15);
	}
	50% {
		box-shadow: 0 8px 25px rgba(0,0,0,0.15), 0 0 0 10px rgba(37, 211, 102, 0.1);
	}
	100% {
		box-shadow: 0 8px 25px rgba(0,0,0,0.15);
	}
}

.mobile-shortcut-btn.phone {
	animation: pulse 2s infinite;
}

/* 行動裝置專用樣式 */
@media (max-width: 768px) {
	.mobile-shortcuts {
		display: flex;
		bottom: 20px;
		right: 20px;
	}
	
	.mobile-shortcut-btn {
		width: 56px;
		height: 56px;
		font-size: 24px;
	}
	
	.mobile-shortcut-label {
		font-size: 12px;
		padding: 6px 10px;
		right: 62px;
	}
}

@media (max-width: 480px) {
	.w50,.w33{width:100%; float: left;}
	.mobile-shortcuts {
		bottom: 15px;
		right: 15px;
		gap: 10px;
	}
	
	.mobile-shortcut-btn {
		width: 52px;
		height: 52px;
		font-size: 22px;
	}
	
	.mobile-shortcut-label {
		font-size: 11px;
		padding: 5px 8px;
		right: 58px;
	}
	
	/* 手機版隱藏footer內文，只保留logo */
	#footer {
		text-align: center;
		padding: 10px 0;
	}
	
	#footer .logodown {
		float: none;
		width: 120px;
		margin: 0 auto 10px;
		display: block;
	}
	
	#footer br {
		display: none;
	}
	
	#footer {
		font-size: 0;
		line-height: 0;
	}
	
	#footer .logodown {
		font-size: 14px;
		line-height: normal;
	}
}
}

/* 線上預約表單 */
.reservation-form-block {
	padding: 24px 0 32px;
	position: relative;
}
.reservation-form-block > h2 {
}
.reservation-hint {
	color: #666;
	margin-bottom: 20px;
	font-size: 14px;
	line-height: 1.5;
	padding-left: 2px;
}
.reservation-form {
	max-width: 500px;
	background: #fff;
	padding: 32px 28px;
	border-radius: 16px;
	box-shadow: 0 8px 28px rgba(0,0,0,0.08), 0 0 0 1px rgba(227, 173, 200, 0.15);
	border-top: 4px solid #e3adc8;
	transition: box-shadow 0.25s ease;
	margin: 0 auto;
}
.reservation-form:hover {
	box-shadow: 0 12px 36px rgba(0,0,0,0.1), 0 0 0 1px rgba(227, 173, 200, 0.2);
}
.reservation-form .form-row {
	margin-bottom: 20px;
}
.reservation-form .form-row:last-of-type {
	margin-bottom: 0;
}
.reservation-form label {
	display: block;
	margin-bottom: 8px;
	font-weight: 600;
	color: #444;
	font-size: 14px;
	letter-spacing: 0.01em;
}
.reservation-form .required {
	color: #c75b7a;
	font-weight: 700;
}
.reservation-form .form-row-inline {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}
.reservation-form .form-row-inline .inline-field {
	flex: 1;
	min-width: 140px;
}
.reservation-form select {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid #e0d4dc;
	border-radius: 10px;
	font-size: 15px;
	box-sizing: border-box;
	background: #fefcfd;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
	cursor: pointer;
}
.reservation-form select:hover {
	border-color: #e8dce4;
	background: #fff;
}
.reservation-form select:focus {
	outline: none;
	border-color: #e3adc8;
	box-shadow: 0 0 0 3px rgba(227, 173, 200, 0.25);
	background: #fff;
}
.reservation-form input[type="text"],
.reservation-form input[type="tel"],
.reservation-form input[type="number"],
.reservation-form input[type="date"] {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid #e0d4dc;
	border-radius: 10px;
	font-size: 15px;
	box-sizing: border-box;
	background: #fefcfd;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.reservation-form input::placeholder {
	color: #aaa;
}
.reservation-form input:hover {
	border-color: #e8dce4;
	background: #fff;
}
.reservation-form input:focus {
	outline: none;
	border-color: #e3adc8;
	box-shadow: 0 0 0 3px rgba(227, 173, 200, 0.25);
	background: #fff;
}
.captcha-row {
	background: linear-gradient(135deg, #fdf6f9 0%, #faf0f5 100%);
	border: 1px solid rgba(227, 173, 200, 0.35);
	border-radius: 12px;
	padding: 16px 18px;
	margin-top: 4px;
}
.captcha-row label {
	margin-bottom: 10px;
}
.captcha-row .captcha-question {
	display: inline-block;
	margin-right: 12px;
	font-weight: 700;
	color: #5a4a52;
	font-size: 15px;
}
.captcha-row .captcha-input {
	width: 100px;
	display: inline-block;
	padding: 10px 12px;
	vertical-align: middle;
}
.form-actions {
	margin-top: 28px;
	margin-bottom: 0;
}
.reservation-form .btn-submit {
	background: linear-gradient(135deg, #2c2c2c 0%, #4a3f45 50%, #8b6b7a 100%);
	color: #fff;
	border: none;
	padding: 14px 36px;
	font-size: 16px;
	font-weight: 600;
	border-radius: 10px;
	cursor: pointer;
	letter-spacing: 0.04em;
	box-shadow: 0 4px 14px rgba(139, 107, 122, 0.35);
	transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}
.reservation-form .btn-submit:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 20px rgba(139, 107, 122, 0.45);
	opacity: 1;
}
.reservation-form .btn-submit:active {
	transform: translateY(0);
}
.reservation-error {
	background: linear-gradient(135deg, #fff0f0 0%, #ffe8e8 100%);
	color: #b33;
	padding: 14px 18px;
	border-radius: 12px;
	margin-bottom: 16px;
	max-width: 500px;
	border: 1px solid rgba(204, 68, 68, 0.2);
	font-size: 14px;
}

/* 預約成功頁 */
.success-msg {
	max-width: 560px;
	background: #fff;
	padding: 30px;
	border-radius: 12px;
	box-shadow: 0 4px 15px rgba(0,0,0,0.08);
}
.success-msg p {
	margin: 0 0 12px;
	line-height: 1.6;
}
.success-msg p:last-of-type {
	margin-top: 20px;
	margin-bottom: 0;
}
.success-msg .back-link {
	color: #c00;
	font-weight: 600;
}
.success-msg .back-link:hover {
	text-decoration: underline;
}

/* 預約檢視頁（密碼登入 + 列表） */
.view-auth-box {
	max-width: 400px;
	background: #fff;
	padding: 28px 32px;
	border-radius: 16px;
	box-shadow: 0 8px 28px rgba(0,0,0,0.08);
	border-top: 4px solid #e3adc8;
}
.view-auth-hint {
	color: #555;
	margin-bottom: 18px;
	font-size: 15px;
}
.view-auth-form {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
}
.view-auth-form .view-password-input {
	flex: 1;
	min-width: 160px;
	padding: 12px 14px;
	border: 1px solid #e0d4dc;
	border-radius: 10px;
	font-size: 15px;
	background: #fefcfd;
}
.view-auth-form .view-password-input:focus {
	outline: none;
	border-color: #e3adc8;
	box-shadow: 0 0 0 3px rgba(227, 173, 200, 0.25);
}
.view-auth-form .btn-submit {
	background: linear-gradient(135deg, #2c2c2c 0%, #4a3f45 50%, #8b6b7a 100%);
	color: #fff;
	border: none;
	padding: 12px 24px;
	font-size: 15px;
	font-weight: 600;
	border-radius: 10px;
	cursor: pointer;
}
.view-actions {
	margin-bottom: 16px;
}
.view-logout-link {
	color: #666;
	font-size: 14px;
}
.view-logout-link:hover {
	color: #c75b7a;
}
.reservation-list-wrap {
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 8px 28px rgba(0,0,0,0.08), 0 0 0 1px rgba(227, 173, 200, 0.12);
	overflow: hidden;
	border-top: 4px solid #e3adc8;
}
.reservation-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}
.reservation-table th,
.reservation-table td {
	padding: 14px 18px;
	text-align: left;
	border-bottom: 1px solid #f0e8ec;
	vertical-align: middle;
}
.reservation-table th {
	background: linear-gradient(180deg, #faf2f6 0%, #f5e8ef 100%);
	color: #4a3f45;
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 0.03em;
	text-transform: none;
}
.reservation-table th:first-child {
	width: 56px;
	text-align: center;
}
.reservation-table tbody tr {
	transition: background 0.2s ease;
}
.reservation-table tbody tr:nth-child(even) {
	background: #fefcfd;
}
.reservation-table tbody tr:hover {
	background: #fdf6f9;
}
.reservation-table tbody tr:last-child td {
	border-bottom: none;
}
.reservation-table td {
	color: #333;
	line-height: 1.45;
}
.reservation-table td:first-child {
	text-align: center;
	font-weight: 600;
	color: #8b6b7a;
}
.no-data {
	padding: 48px 24px;
	text-align: center;
	color: #999;
	font-size: 15px;
	line-height: 1.6;
}
@media (max-width: 768px) {
	.reservation-list-wrap { border-radius: 12px; }
	.reservation-table { font-size: 13px; }
	.reservation-table th,
	.reservation-table td { padding: 10px 12px; }
	.reservation-table th:first-child { width: 44px; }
}

/* 每日瀏覽人數走勢圖 */
.daily-views-chart-wrap {
	margin-top: 36px;
	padding-top: 28px;
	border-top: 1px solid #f0e8ec;
}
.daily-views-chart-wrap .chart-title {
	font-size: 1.25em;
	font-weight: 700;
	color: #ffffff;
	margin-bottom: 4px;
}
.daily-views-chart-wrap .chart-hint {
	color: #888;
	font-size: 13px;
	margin-bottom: 16px;
}
.daily-views-chart-wrap .chart-container {
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 8px 28px rgba(0,0,0,0.08);
	padding: 20px 16px 12px;
	border-top: 4px solid #e3adc8;
	max-width: 900px;
}
.daily-views-chart-wrap canvas {
	display: block;
	width: 100% !important;
	height: auto !important;
}