@charset "UTF-8";
:root
{
  --color-default: #ac92d3;
  --color-bg: #e3dcef;
}

h2{position: relative; display: inline-block; font-size: var(--big-size); color: var(--color-p); font-weight: 700; padding: 0 4px 10px; letter-spacing: 1px;}
h2::after{content: ''; position: absolute; left: 0; bottom: -3px; width: 100%; height: 3px; background: linear-gradient(to right, #ff1976, #ffc11c, #1fc2ff);}
p{font-size: var(--fourth-size); color: var(--color-k); line-height: 1.875; padding: 0 2%; font-weight: normal;}
p, span{font-weight: 500;}

.action-wrap{width: 100%; display: inline-block;}
.action-bg{width: 100%; background: var(--color-bg); padding: 20px 0 20px; display: inline-block;}
.action-td{width: 1280px; padding: 0 30px; margin: 40px auto 60px;}
.kv-tit{margin: 20px 0; border-bottom: 3px solid #ddd; text-align: left;}
.kv-pic{width: 96%; margin: 10px 2% 20px;}
.ps{padding-left: 3.5%;}
.ps li{list-style-type: decimal; font-size: var(--smallest-size); color: var(--color-grey); line-height: 1.75; text-align: left;font-weight: normal; font-weight: 500; margin-bottom: 5px;}
.ps li span{color: var(--color-o); font-size: var(--smallest-size);}
.ps li a, .ps2 li a{color: var(--color-link); cursor: pointer; text-decoration: underline; font-weight: 700; padding: 0 3px;}

.tit-wrap{display: flex; justify-content: center; margin: 70px 0 10px; flex-wrap: wrap;}
.tit-wrap h2{color: var(--color-bk); font-weight: 900; font-size: 2.5rem; line-height: 1.375; letter-spacing: 1px; border-bottom: none; padding: 0;}
.tit-wrap h2::after{position: static; width: auto; height: auto; background: none;}
.tit-wrap h2 span{color: var(--color-o); letter-spacing: 1px; font-weight: 900;}
.tit-wrap p{width: 100%; text-align: center; margin-top: 10px; font-size: var(--basics-size);}

.tit{ width: 100%; display: inline-block; border-radius: 20px 20px 0 0; text-align: center; background: linear-gradient(to right, var(--color-p), var(--color-link));}
.tit h4{padding: 10px 20px 12px; color: var(--color-w); font-size: var(--second-size); font-weight: 700;}
.tit h4 span{font-size: var(--basics-size); color: #fff6e8; font-weight: 500;}

.directions{text-align: center; margin-bottom: 20px; display: block;}
.date-wrap{display: flex; justify-content: space-evenly; width: 70%; margin: 40px auto 20px;}
.date-td{flex: 1; text-align: center; margin: 0 20px; padding: 20px; border-radius: 40px; border-left: 10px solid var(--color-default); border-right: 10px solid var(--color-default);}
.date-td p{font-weight: 700; color: var(--color-k); font-size: var(--second-size);}
.date-td p span{display: block; font-weight: 700; color: var(--color-p);}

/* ticket */
.ticket-bg{margin: 0 auto 40px; width: 100%; box-shadow: rgba(0, 0, 0, 0.45) 0px 25px 20px -20px;}
.ticket{padding: 20px 40px; width: 100%; border-radius: 12px; background: var(--color-w);
-webkit-mask: radial-gradient(circle 20px at 0 50%, transparent 98%, black 100%),radial-gradient(circle 20px at 100% 50%, transparent 98%, black 100%);
-webkit-mask-composite: destination-in;
mask: radial-gradient(circle 20px at 0 50%, transparent 98%, black 100%),radial-gradient(circle 20px at 100% 50%, transparent 98%, black 100%); mask-composite: intersect;}
.ticket-tit{background: var(--color-g); border-radius: 10px 10px 0 0; padding: 7px 0 5px; text-align: center; margin-bottom: 20px; border: 1px solid var(--color-g);}
.ticket-tit h3{padding: 0; color: var(--color-w);}
.ticket p{margin: 5px 0;}
.ticket p span{color: var(--color-o); font-weight: 700;}
.ticket-ps li{font-size: var(--fourth-size); color: var(--color-k); margin-left: 10px;}

/* 輪播圖 */
.pic{display: flex; justify-content: space-between; margin: 20px 0;}
.pic img{width: 32%; object-fit: cover; border-radius: 30px 0 30px 0;}

/* table */
table{width: 100%; border-collapse: collapse; border-spacing: 0; background: var(--color-w); margin-bottom: 60px;}
table tr{text-align: left; color: var(--color-k); border: 2px solid var(--color-k);}
table tr:last-child{border-bottom: none;}
table tr:nth-child(even){background:#f6f4f9;}
table th{font-weight: 700; padding: 10px 1em; background: #f6f4f9; font-size: var(--fourth-size); border: 1px solid var(--color-line); color: var(--color-bk); text-align: center;}
table th:first-child{border-right: 1px solid var(--color-line);}
table td{padding: 1em; border: 2px solid var(--color-k); text-align: center; width: 33%;}
table td h2{padding: 0; margin: 0; display: flex; align-items: center; justify-content: center; font-size: var(--second-size); line-height: 1.75; color: var(--color-p); letter-spacing: 0;}
table td h2::after, .content-intro h2::after{content: ''; left: 0; bottom: 0; height: 0; background: none;}
table td p{padding: 0; margin: 0;}
.ps2{display: flex; flex-wrap: wrap; padding: 0 20px;}
.ps2 li{list-style-type: disc; width: 50%; font-weight: 500; line-height: 1.75; color: var(--color-grey);}
.ps2 li, .ps2 li p, .ps2 li span{font-size: var(--fourth-size);}
.ps2 li span{color: var(--color-r);}

/* table2 */
.table2{width: 100%; border-collapse: collapse; border-spacing: 0; background: var(--color-w);}
.table2 td{text-align: left; width: 50%;}

/* table3 */
.table3{margin-bottom: 0;}
.table3 td{width: 25%;}
.table3 td h3{padding: 0; margin: 0; line-height: 1.5; display: flex; align-items: center; justify-content: center; font-size: var(--fourth-size); color: var(--color-p);}

/* 左圖右文 */
.division-map{display: flex; justify-content: space-between; align-items: flex-start; gap: 30px;}
.content-intro{flex: 1 1 55%; display: flex; justify-content: center; flex-wrap: wrap;}
.content-intro-pic{flex: 1 1 40%; overflow: hidden; position: relative; border-radius: 20px 0 20px 0;}
.content-intro-pic img{width: 100%; display: block; transition: transform 0.4s ease;}
.first{flex-direction: row;}
.second{flex-direction: row-reverse; margin: 80px 0;}
.content-intro h2{font-weight: 900; margin-bottom: 10px;}
.content-intro p span, .table2 p span{color: var(--color-g); font-weight: 700;}
.content-intro p span.stit, .table2 p span.stit{color: var(--color-bk); font-weight: 700;}

/* button */
.btn-wrap{text-align: center;}
.button{display: inline-flex; padding: 1rem 4rem; border-radius: 20px; background: var(--color-link); color: var(--color-w); font-size: var(--first-size); transition: all 0.3s; font-weight: 700; margin: 40px auto; text-decoration: none; cursor: pointer;}
.hvr-wobble-horizontal{transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);}
a:hover.hvr-wobble-horizontal, 
.hvr-wobble-horizontal:focus, 
a:active .hvr-wobble-horizontal, 
a.menulink:hover .card_btn,
button:hover{animation: hvr-wobble-horizontal 1s ease-in-out; animation-iteration-count: 1;}
@keyframes hvr-wobble-horizontal {
  16.65%{transform: translateX(8px);}
  33.3%{transform: translateX(-6px);}
  49.95%{transform: translateX(4px);}
  66.6%{transform: translateX(-2px);}
  83.25%{transform: translateX(1px);}
  100%{transform: translateX(0);}
}

/* tab */
.tabs{font-size: 0; list-style: none; overflow: hidden; display: flex; justify-content: space-between; margin-top: 30px;}
.tabs li{width: 100%; text-align: center; border-radius: 15px 15px 0 0; border: 2px solid var(--color-k); border-bottom: none; background: var(--color-w); margin-left: -1px; position: relative; z-index: 1;}
.tabs li:nth-child(1){margin-left: 0;}
.tabs li a{text-decoration: none; display: block; padding: 6px 25px; position: relative; color: var(--color-w);}
.tabs li.active, .tabs li:hover{background: var(--color-p); border-radius: 15px 15px 0 0;}
.tabs li a h2, .tabs li a span{color: var(--color-bk); display: inline; font-weight: 700;}
.tabs li.active a h2, .tabs li a:hover h2,
.tabs li.active a span, .tabs li a:hover span
{color: var(--color-w);}
.tabs li h2{font-size: var(--second-size); padding: 0;}
.tabs li h2::after{background: none;}
.tabs li span{font-size: var(--basics-size);}

/* hotel */
.hotel-wrap{display: flex; flex-wrap: wrap; justify-content: space-between; border: 2px solid var(--color-k); border-bottom: none;}
.hotel-wrap li{display: inline-flex; border-radius: 15px; width: 33.33%; padding: 1em 1.2em; border-bottom: 2px solid var(--color-k); border-right: 2px solid var(--color-k); border-radius: 0; background: var(--color-w);}
.hotel-wrap li:nth-child(3), .hotel-wrap li:nth-child(6), .hotel-wrap li:nth-child(9){border-right: none;}
.card{flex-grow: 1; display: flex; flex-direction: column; text-align: left;}
.card_td img{width: 100%; transition: .5s;}
.block{ background: var(--color-bk); transition: .5s;}
.card_td h2{font-size: var(--second-size); line-height: 1.75; color: var(--color-p); border: none; margin: 10px 0 0px; padding: 0; letter-spacing: 0;}
.card_td h2::after{content: ''; position: static; left: 0; bottom: 0; height: 0; background: none;}
.card_td h2 img{width: 20px; vertical-align: middle; margin: 0 5px;}
.card_td h2 span{margin: 0 5px; vertical-align: sub;}
.card_td p{padding: 0; color: var(--color-g); line-height: 1.75;}
.card_td p:last-child{margin-bottom: 10px;}
.feature{margin-bottom: 10px;}
.card_td ul.feature li{list-style-type: disc; padding: 0; margin: 5px 0 5px 1.2em; color: var(--color-grey); width: 95%; display: list-item; border: none; font-weight: 500;}
.hotel-price-wrap{padding: 0; font-size: var(--first-size); line-height: 1.5; color: var(--color-r); font-weight: 700; margin: auto 0 0; text-align: right;}
.hotel-price-wrap span{font-size: var(--smallest-size); color: var(--color-grey); font-weight: 500; margin: 0 5px;}
.hotel-price-wrap span.card_btn{font-size: var(--basics-size); color: var(--color-w); background: var(--color-link); border-radius: 20px; text-align: center; padding: 5px 25px 7px; margin-top: 8px; float: right; transition: .5s; font-weight: 700;}
a.menulink{transition: .5s; flex-grow: 1; display: flex; flex-direction: column;}
a.menulink:hover h2{ color: var(--color-link); transition: .5s;}
a.menulink:hover .block{transition: .5s;}
a.menulink:hover img{opacity: 70%; transition: .5s;}

/* highlight */
.introduce{font-weight: 700; color: var(--color-bk); text-align: left;}
.price{color: var(--color-r); font-weight: 700;}
span.price{font-size: var(--second-size);}
.att{font-size: var(--smallest-size); display: block; color: var(--color-grey); font-weight: normal; line-height: 2; margin: 20px 0 5px; font-weight: 500;}
.att a{color: var(--color-link);}
.hr{border: 0; height: 1px; margin: 20px 0; width: 100%; background-image: linear-gradient(to right, rgba(0,0,0,0), rgba(0,0,0,0.75), rgba(0,0,0,0));}
.intro-btn{margin-top: 30px; padding: 10px 25px; border-radius: 30px; transition: .5s; text-align: center; background: var(--color-link); font-size: var(--fourth-size); color: var(--color-w); font-weight: 700; border: none;}

@media screen and (max-width: 1360px) {
  .action-td, .tit h4{width: 100%;}
}

@media screen and (max-width: 1280px) {
  .button{font-size: var(--third-size);}
}

@media screen and (max-width: 1130px) {
  .tabs li h2{font-size: var(--third-size);}
  .tabs li a{padding: 6px 2%;}
  .date-wrap{width: 90%;}
  .division-map{gap: 20px;}
  .content-intro{flex: 1 1 65%;}
  .content-intro-pic{flex: 1 1 30%;}
  .intro-btn{margin-top: 20px;}
}

@media screen and (max-width: 1023px) {
  .action-td{padding: 0 5%;}
  .hotel-wrap{border-right: none;}
  .hotel-wrap li{width: 50%;}
  .hotel-wrap li:nth-child(3), .hotel-wrap li:nth-child(6), .hotel-wrap li:nth-child(9){border-right: 2px solid var(--color-k);}
  .ps{padding-left: 4%;}
  .date-wrap{width: 100%;}
  .ticket{padding: 15px 15px 20px 25px;}
}

@media screen and (max-width: 900px) {
  .tabs li h2{font-size: var(--fourth-size);}
}

@media screen and (max-width: 800px) {
  h2, p{padding-right: 0; padding-left: 0;}
  .kv-pic{width: 100%; margin: 10px 0 20px;}
  .tabs{justify-content: flex-start; flex-wrap: wrap; margin: 15px 0;}
  .tabs li{width: 31%; border-radius: 30px; border: 2px solid var(--color-k); margin: 6px;}
  .tabs li:nth-child(1){margin-left: 6px;}
  .tabs li a{padding: 8px 2% 10px;}
  .tabs li.active, .tabs li:hover{border-radius: 30px;}
  .tabs li h2{font-size: var(--third-size);}
  table thead{display: none;}
  table tr:last-child{border: 2px solid var(--color-k);}
  table td{display: inline-block; padding: 0 1em; border: none; text-align: left; width: 50%;}
  table td:nth-child(1),table td:nth-child(2){padding-top: 1em; padding-bottom: 5px;}
  table td:nth-child(3), table td:nth-child(4){padding-bottom: 1em;}
  table td h2{justify-content: flex-start;}
  table td p{display: inline-block; color: var(--color-g); font-size: var(--basics-size);}
  table td p.contents{color: var(--color-k);}
  table td[data-title]::before{content: attr(data-title); display: inline-block; margin-right: 2px; font-weight: 500; color: var(--color-k); font-size: var(--basics-size);}
  .table2 tr{display: block; border-bottom: none;}
  .table2 td{width: 100%;}
  .table2 td h2{margin-bottom: 10px;}
  .table2 td p{font-size: var(--basics-size);}
  .table2 td:nth-child(1){padding-bottom: 0;}
  .table2 td:nth-child(2){padding-top: 0; padding-bottom: 1em;}
  .table3 td{display: inline-block; padding: 0 1em; border: none; text-align: left; width: 50%;}
  .table3 td h3{justify-content: flex-start;}
  .grid{width: 100%;}
  .ps2 li, .ps2 li p, .ps2 li span{font-size: var(--basics-size); color: var(--color-k);}
  .division-map{flex-wrap: wrap; justify-content: center;}
  .content-intro{flex: none; width: 100%; padding: 0;}
  .content-intro-pic{flex: none; width: 70%;}
}

@media screen and (max-width: 768px) {
  .tabs li a h2, .tabs li a span{display: block;}
  .tabs li span{width: 100%;}
}

@media screen and (max-width: 640px) {
  .hotel-wrap li{width: 100%; padding: 1em;}
  .date-wrap{flex-direction: column; margin: 0 auto;}
  .date-td{flex: none; margin: 20px auto; width: 400px;}
  .tit-wrap{margin: 40px 0 10px;}
  .tit-wrap h2{font-size: var(--big-size);}
  .content-intro-pic{width: 100%;}
}

@media screen and (max-width: 500px) {
  h2{font-size: 1.75rem;}
  p{line-height: 1.75;}
  p, .ticket-ps li, table th, .ps2 li, .ps2 li p, .ps2 li span{font-size: var(--basics-size);}
  .att, .ps{font-size: var(--smallest-size);}
  .button{padding: 1rem 3rem; margin: 20px 0 40px; font-size: var(--fourth-size);}
  .hotel-price-wrap{padding: 0; font-size: var(--third-size);}
  .tabs li{width: 48%; margin: 6px 1%;}
  .tabs li:nth-child(1){margin-left: 1%;}
  .tabs li h2{font-size: var(--fourth-size);}
  .date-td{width: 90%;}
  .pic{position: relative; width: 100%; padding-top: 56.25%; overflow: hidden; margin: 10px 0;}
  .pic img{position: absolute; width: 95%; height: 95%; top: 2.5%; left: 2.5%; transition: opacity 1s ease; margin: 0;}
  .pic img.active{opacity: 1;}
  table{margin-bottom: 40px;}
  table td{width: 100%;}
  table td:nth-child(2){padding-top: 0;}
  table td h2, .card_td h2, .table3 td h3, .tit h4, span.price{font-size: var(--third-size);}
  .table3 td{width: 100%;}
  .table3 td:nth-child(1), .table3 td:nth-child(2),
  .table3 td:nth-child(3){padding-bottom: 5px;}
  .second{margin: 60px 0;}
}

@media screen and (max-width: 376px) {
  .button{padding: 1rem 2rem;}
  .tit h4{font-size: var(--third-size);}
}