:root{color-scheme:light;--ink:#30283d;--plum:#634483;--muted:#62576e;--lavender:#eee5f7;--line:#ded4e6;--paper:#fdfbf8;--blue:#1558c9;--orange:#ff8246}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#faf7f4;color:var(--ink);font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit}
a:focus-visible,summary:focus-visible{outline:3px solid #8a54cb;outline-offset:4px}
.skip-link{position:absolute;z-index:20;top:-80px;left:16px;padding:10px 16px;background:#fff;border-radius:8px}
.skip-link:focus{top:16px}
.page{max-width:1280px;margin:auto;padding:0 clamp(16px,4vw,52px)}
.topbar{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{text-decoration:none;font:400 26px/1 Georgia,serif;letter-spacing:-1.2px;white-space:nowrap}
.brand span,.footer span span{color:#a680c7;font-size:15px;vertical-align:top;margin-left:5px}
.topbar nav{display:flex;align-items:center;gap:clamp(14px,3vw,34px)}
.topbar nav a{display:inline-flex;align-items:center;min-height:44px;font-size:13px;text-decoration:none;color:#554961}
.topbar nav a:hover,.footer a:hover{text-decoration:underline;text-underline-offset:5px}
.hero{position:relative;isolation:isolate;display:flex;align-items:center;min-height:clamp(520px,56vw,640px);padding:clamp(34px,7vw,88px);overflow:hidden;background:#30263d;border-radius:30px}
.hero-copy{position:relative;z-index:2;max-width:600px;color:#fff}
.hero .eyebrow{color:#f0dffa}
.eyebrow{margin:0;color:#6b4a84;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.hero h1,.stays-intro h2,.hotel-heading h2,.hotel-heading h3,.chongqing-intro h2{font-family:Georgia,"Times New Roman",serif;font-weight:400}
.hero h1{margin:18px 0 20px;font-size:clamp(47px,6.1vw,84px);line-height:1.04;letter-spacing:-.055em;text-shadow:0 2px 22px #170e2859}
.hero h1 em{color:#e8d0f7;font-weight:400}
.hero-subtitle{max-width:440px;margin:0;color:#fff;font-size:clamp(16px,1.7vw,19px);line-height:1.55;text-shadow:0 1px 14px #170e2870}
.hero-cta{display:inline-flex;align-items:center;gap:22px;min-height:48px;margin-top:30px;padding:0 0 5px;border-bottom:1px solid #f5e9ff;color:#fff;font-size:14px;font-weight:700;text-decoration:none}
.hero-cta span{font-size:21px;font-weight:400}
.hero-image{position:absolute;z-index:0;inset:0;margin:0;overflow:hidden;background:#40304f}
.hero-image::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#24172bdc 0%,#24172bb3 46%,#24172b6b 100%)}
.hero-image img{width:100%;height:100%;object-fit:cover;object-position:center 57%;display:block;filter:blur(5px);transform:scale(1.04)}
.hero-image figcaption{position:absolute;z-index:1;right:20px;bottom:18px;padding:7px 10px;border-radius:6px;background:#23182b85;font-size:11px;color:#fff}
.hero-reveal{animation:soft-reveal .72s cubic-bezier(.2,.7,.2,1) both}
.reveal-one{animation-delay:.05s}.reveal-two{animation-delay:.15s}.reveal-three{animation-delay:.3s}.reveal-four{animation-delay:.45s}
@keyframes soft-reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.booking-tip{display:flex;align-items:flex-start;gap:17px;margin:20px 0 0;padding:20px 24px;background:#f0e9f7;border:1px solid #e7dcef;border-radius:18px}
.booking-tip p{margin:0;color:#51445f;font-size:14px}
.booking-tip strong{color:var(--ink)}
.tip-icon{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;color:var(--plum);background:#fff;border-radius:50%;font-size:14px}
.stays-intro{display:flex;align-items:end;justify-content:space-between;gap:24px;padding:82px 5px 27px}
.stays-intro h2{margin:8px 0 0;font-size:clamp(34px,4vw,50px);letter-spacing:-.045em;line-height:1.1}
.city-nav{display:flex;gap:9px;flex-wrap:wrap}
.city-nav a{display:inline-flex;align-items:center;justify-content:space-between;gap:18px;min-width:132px;min-height:46px;padding:0 16px;border:1px solid #d3c1e1;border-radius:99px;color:var(--plum);background:#fff;text-decoration:none;font-size:13px;font-weight:700}
.city-nav a:hover{background:var(--lavender)}
.hotel{margin:0 0 24px;padding:clamp(21px,3.3vw,38px);background:var(--paper);border:1px solid var(--line);border-radius:26px;box-shadow:0 14px 36px #3e28500a;scroll-margin-top:24px}
.hotel-heading{margin-bottom:24px}
.hotel-heading h2{margin:6px 0 0;font-size:clamp(31px,3.8vw,48px);letter-spacing:-.045em;line-height:1.13}
.hotel-heading>p:last-child{margin:5px 0 0;color:var(--muted);font-size:14px}
.hotel-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,4vw,56px);align-items:start}
.gallery-wrap{min-width:0;border-radius:18px;overflow:hidden;background:#eee5f7;border:1px solid #e6dcec}
.gallery-wrap iframe{display:block;width:100%;height:428px;border:0;background:#eee5f7}
.hotel-content{padding:4px 0 0}
.hotel-lead{margin:0 0 18px;font:400 clamp(22px,2.5vw,29px)/1.27 Georgia,serif;letter-spacing:-.026em}
.features{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0 0 24px;padding:0}
.features li{padding:7px 11px;border:1px solid #ddd2e6;border-radius:99px;color:#554761;font-size:12px;line-height:1.2}
.booking-links{display:grid;gap:10px}
.book-button{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:space-between;min-height:54px;padding:12px 17px;overflow:hidden;border-radius:11px;color:#fff;background:var(--blue);text-decoration:none;font-size:15px;font-weight:700;transition:filter .2s ease,transform .2s ease}
.book-button.klook{background:var(--orange);color:#352333}
.book-button:hover{filter:brightness(1.05);transform:translateY(-1px)}
.book-button>span{position:relative;z-index:2}
.book-button>span:last-child{font-size:20px;font-weight:400}
.book-button::before{content:"";position:absolute;z-index:1;top:0;bottom:0;left:-35%;width:26%;opacity:0;background:linear-gradient(105deg,transparent,#fff,transparent);transform:skewX(-16deg)}
.book-button::after{content:"✦";position:absolute;z-index:1;top:50%;left:-5%;color:#fff;font-size:12px;opacity:0;transform:translateY(-50%)}
.book-button.is-sparkling::before{animation:spark-sweep 1.8s ease-in-out both}
.book-button.is-sparkling::after{animation:spark-star 1.8s ease-in-out both}
.book-button.klook.is-sparkling::before,.book-button.klook.is-sparkling::after{animation-direction:reverse}
@keyframes spark-sweep{0%{left:-35%;opacity:0}20%,75%{opacity:.2}100%{left:110%;opacity:0}}
@keyframes spark-star{0%{left:-5%;opacity:0}20%,75%{opacity:.22}100%{left:105%;opacity:0}}
.hotel-details{margin-top:25px;border-top:1px solid var(--line)}
.hotel-details summary{display:flex;align-items:center;justify-content:space-between;min-height:54px;padding:7px 0;color:var(--plum);font-size:14px;font-weight:700;cursor:pointer;list-style:none}
.hotel-details summary::-webkit-details-marker{display:none}
.hotel-details summary span{font-size:22px;font-weight:400;transition:transform .2s ease}
.hotel-details[open] summary span{transform:rotate(45deg)}
.detail-copy{padding:0 0 5px;color:#51445f;font-size:14px}
.detail-copy p{margin:0 0 14px}
.detail-copy strong{color:var(--ink)}
.chongqing-section{margin:64px 0 32px;scroll-margin-top:24px}
.chongqing-intro{margin:0 5px 24px}
.chongqing-intro h2{margin:7px 0 4px;font-size:clamp(34px,4vw,50px);letter-spacing:-.045em;line-height:1.12}
.chongqing-intro>p:last-child{margin:0;color:var(--muted);font-size:15px}
.chongqing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.hotel-compact{display:flex;flex-direction:column;min-width:0;min-height:475px;margin:0;background:linear-gradient(145deg,#f6effa 0%,var(--paper) 45%)}
.hotel-compact .hotel-heading{margin-bottom:24px}
.hotel-compact .hotel-heading h3{margin:6px 0 0;font-size:clamp(30px,3.2vw,40px);letter-spacing:-.045em;line-height:1.13}
.hotel-compact .hotel-lead{max-width:25ch}
.hotel-compact .features{margin-bottom:14px}
.hotel-card-note{margin:0 0 24px;color:var(--muted);font-size:14px}
.hotel-compact .booking-links{margin-top:auto}
.footer{display:flex;justify-content:space-between;gap:20px;align-items:center;min-height:96px;color:#6c6075;font-size:13px}
.footer a{text-decoration:none}
@media(max-width:860px){
  .hero{min-height:570px}
  .hero-image::after{background:linear-gradient(90deg,#24172bdc 0%,#24172b9e 70%,#24172b70 100%)}
  .hotel-grid{grid-template-columns:1fr;gap:20px}
  .gallery-wrap iframe{height:430px}
  .hotel-content{padding:0}
  .chongqing-grid{grid-template-columns:1fr;gap:18px}
  .hotel-compact{min-height:0}
}
@media(max-width:560px){
  .topbar{min-height:100px;flex-wrap:wrap;gap:0;padding:8px 0 12px}.brand{font-size:22px}.topbar nav{width:100%;justify-content:space-between;gap:10px}.topbar nav a{font-size:12px}.topbar nav .nav-tip{display:none}
  .hero{min-height:530px;padding:34px 24px;border-radius:22px}
  .hero h1{font-size:clamp(43px,11vw,59px);margin:14px 0 15px}
  .hero-subtitle{font-size:15px}
  .hero-cta{margin-top:19px}
  .hero-image img{object-position:center 59%}
  .hero-image::after{background:linear-gradient(180deg,#24172bd1 0%,#24172ba8 56%,#24172b80 100%)}
  .booking-tip{padding:16px;gap:12px}.booking-tip p{font-size:12px}
  .stays-intro{display:block;padding:56px 1px 22px}
  .city-nav{margin-top:20px}.city-nav a{min-width:0;flex:1}
  .hotel{padding:18px;margin-bottom:18px;border-radius:20px}
  .hotel-heading{margin-bottom:16px}.hotel-heading h2{font-size:33px}
  .gallery-wrap iframe{height:343px}
  .hotel-lead{font-size:24px}
  .chongqing-section{margin:52px 0 22px}.chongqing-intro{margin-bottom:19px}.chongqing-intro h2{font-size:34px}
  .hotel-compact .hotel-heading h3{font-size:32px}
  .footer{min-height:80px}
}
@media(max-width:360px){
  .brand{font-size:20px}.topbar nav{gap:9px}.topbar nav a{font-size:11px}
  .hero h1{font-size:42px}
  .gallery-wrap iframe{height:310px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero-reveal,.book-button.is-sparkling::before,.book-button.is-sparkling::after{animation:none}
  .book-button,.hotel-details summary span{transition:none}
}
