html{font-family:Helvetica Neue,Helvetica,PingFang SC,Microsoft YaHei,STHeiTi,Arial,sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;background:#0d3028}
article,body,button,div,footer,h3,img,main,p,section,span{margin:0;padding:0}
body{background:white;color:#fff;line-height:1.5;overflow-x:hidden;-webkit-overflow-scrolling:touch}
button{background:0 0;border:0;cursor:pointer;font-family:inherit;-webkit-tap-highlight-color:transparent}
img{border:0;display:block;max-width:100%;outline:0;width:100%}
*{box-sizing:border-box;touch-action:pan-y}
.page{background:#0d3028;margin:0 auto;max-width:1080px;overflow:hidden;position:relative;width:100%}
.hero-section,.hotel-section,.tail-section{position:relative}
.visual-img{height:auto;width:100%}
.hero-img{animation:heroFloat .9s cubic-bezier(.22,1,.36,1) both}
.hotel-panel{background:url("../assets/guilin-03.webp") repeat top center;background-size:100% auto;left:0;position:relative;right:0;top:0;z-index:3}
.intro-banner{margin-bottom:-.9rem;position:relative}
.intro-addr{bottom:.36rem;display:inline-block;left:50%;max-width:92%;padding-bottom:.18rem;position:absolute;transform:translateX(-50%);width:max-content;z-index:2}
.intro-addr-row{align-items:center;background:url("../assets/addr-border.webp") no-repeat left bottom / 100% .24rem;display:-webkit-flex;display:flex;justify-content:center;margin-top:-1.2rem;padding-bottom:.12rem;white-space:nowrap}
.intro-addr-icon{flex:0 0 .6rem;height:.6rem;margin-right:-.08rem;margin-top:-.1rem;width:.6rem}
.intro-addr-name{color:#fff;font-size:.36rem;font-weight:500;letter-spacing:.01rem;line-height:1.2}
.hotel-block{overflow:hidden;position:relative;width:100%}
.hotel-block-addr{display:-webkit-flex;display:flex;justify-content:center;padding:.36rem .3rem .2rem;position:relative;z-index:2}
.hotel-block-addr-row{align-items:center;background:url("../assets/addr-border.webp") no-repeat left bottom / 100% .24rem;display:-webkit-flex;display:flex;justify-content:center;max-width:92%;padding-bottom:.12rem;width:max-content;white-space:nowrap}
.hotel-block-addr-icon{flex:0 0 .6rem;height:.6rem;margin-right:-.08rem;margin-top:-.1rem;width:.6rem}
.hotel-block-addr-name{color:#fff;font-size:.36rem;font-weight:500;letter-spacing:.01rem;line-height:1.2}
.hotel-swiper{margin:0 auto;overflow:hidden;width:100%}
.swiper-track{display:-webkit-flex;display:flex;transition:transform .35s cubic-bezier(.22,1,.36,1);width:100%;will-change:transform}
.swiper-slide{align-content:start;box-sizing:border-box;flex:0 0 100%;pointer-events:none;position:relative;width:100%}
.swiper-slide.is-active{pointer-events:auto}
.hotel-swiper.has-pages .swiper-slide{min-height:12.72rem}
.hotel-swiper.has-pages.is-cards-3 .swiper-slide{min-height:9.48rem}
.hotel-list{align-content:start;align-items:stretch;box-sizing:border-box;display:grid;gap:.24rem;overflow:hidden;padding:0;width:100%}
.hotel-card{align-items:center;aspect-ratio:1080/324;background-position:center;background-repeat:no-repeat;background-size:100% 100%;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:1fr 1fr;height:auto;max-width:100%;overflow:hidden;padding:0 .4rem;position:relative;transition:transform .2s ease;width:100%}
.hotel-card.is-left{background-image:url("../assets/hotel-card-b.webp")}
.hotel-card.is-right{background-image:url("../assets/hotel-card-a.webp")}
.hotel-card:active{transform:scale(.985)}
.hotel-card.is-right .hotel-cover{order:2}
.hotel-card.is-right .hotel-info{order:1}
.hotel-cover{align-self:center;aspect-ratio:1.15;border-radius:.2rem;justify-self:center;max-height:78%;overflow:hidden;position:relative;width:78%}
.hotel-cover img{border-radius:.2rem;height:100%;left:0;margin:0;object-fit:cover;object-position:center;position:absolute;top:0;width:100%}
.hotel-info{align-self:stretch;display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;justify-content:space-between;min-width:0;overflow:hidden;padding:.4rem .3rem;position:relative}
.hotel-title{color:#fff;display:-webkit-box;font-size:.3rem;font-weight:700;letter-spacing:0;line-height:1.2;max-height:10rem;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.hotel-bottom{align-items:flex-end;display:-webkit-flex;display:flex;justify-content:flex-start;margin-top:.04rem}
.hotel-price{color:#f8e268;font-size:.22rem;font-weight:normal;line-height:1;white-space:nowrap}
.hotel-price em{font-size:.4rem;font-style:normal;letter-spacing:0;margin:0 .02rem}
.swiper-dots{align-items:center;display:-webkit-flex;display:flex;gap:.12rem;justify-content:center;padding:.28rem 0 .2rem}
.swiper-dots button{background:#fff;border-radius:999px;height:.14rem;opacity:.98;transition:width .25s ease;width:.16rem}
.swiper-dots button.is-active{width:.4rem}
.footer-section{margin-top:-.01rem;padding-bottom:env(safe-area-inset-bottom)}
#ios{background:#000;color:#fff;display:none;font-size:10px;margin:0 auto;max-width:1080px;padding:.3rem 0;text-align:center}
.loading-tip{align-items:center;background:url("../assets/guilin-03.webp") repeat top center;background-size:100% 100%;border-radius:.16rem;color:#e9fffa;display:-webkit-flex;display:flex;font-size:.26rem;font-weight:700;justify-content:center;min-height:2.7rem;width:100%}
.reveal{opacity:0;transform:translateY(.46rem);transition:opacity .72s ease,transform .72s cubic-bezier(.22,1,.36,1)}
.reveal.is-visible{opacity:1;transform:translateY(0)}
@keyframes heroFloat{0%{opacity:0;transform:translateY(-.24rem) scale(1.015)}to{opacity:1;transform:translateY(0) scale(1)}}
@media (max-width:360px){.hotel-card{padding:.09rem .14rem}.hotel-title{font-size:.17rem;line-height:.22rem}.book-btn{font-size:.2rem;padding:.11rem .18rem}.hotel-price em{font-size:.3rem}}
@media (prefers-reduced-motion:reduce){.hero-img{animation:none}.reveal{opacity:1;transform:none;transition:none}}
