:root {
  --green: #28583f; --deep: #183e31; --orange: #db6a19; --ink: #29332f; --muted: #67726c; --line: #dce1da;
  font: 16px/1.6 "Microsoft YaHei","PingFang SC","Noto Sans CJK SC",system-ui,sans-serif; color: var(--ink); background: white;
}
* { box-sizing: border-box }
body,h1,h2,h3,p,ul { margin: 0 }
body { overflow-wrap: break-word }
a { color: inherit; text-decoration: none }
button,select,input { color: inherit; font: inherit }
button,summary,select { cursor: pointer }
button { padding: 0; border: 0; background: transparent }
img { display: block; max-width: 100% }
.ico { width: 1.1em; height: 1.1em; flex: none; vertical-align: -.16em }
[hidden] { display: none !important }
:focus-visible { outline: 3px solid #2178bd; outline-offset: 3px }
.wrap { width: min(1200px,calc(100% - 96px)); margin-inline: auto }
.skip { position: fixed; z-index: 20; top: -90px; left: 15px; padding: 10px; background: white }
.skip:focus { top: 7px }
.utility { background: #414442; color: #fff; font-size: 12px }
.utility .wrap,.utility .wrap>div,.utility a,.utility button { display: flex; align-items: center }
.utility .wrap { justify-content: space-between; height: 36px }
.utility .wrap>div { gap: 14px }
.utility a,.utility button { gap: 6px }
.utility i { height: 12px; border-left: 1px solid #ffffff5e }
.language { background: #db742f; border-radius: 2px; padding: 0 7px; color: white }
.mast { background: white; box-shadow: 0 2px 8px #1e332311; position: relative; z-index: 5 }
.head-row { display: flex; justify-content: space-between; align-items: center; min-height: 73px; gap: 20px }
.wordmark { display: inline-flex; align-items: center; gap: 8px; color: var(--green); flex: none }
.mark { width: 47px; height: 47px }
.wordmark b,.wordmark small { display: block }
.wordmark b { font-size: 24px; letter-spacing: .06em; line-height: 1.18 }
.wordmark small { font: 650 9px/1.6 Arial,sans-serif; letter-spacing: .21em }
.wide-nav { display: flex; align-self: stretch; align-items: stretch; gap: clamp(17px,2.65vw,46px) }
.wide-nav a { display: grid; align-items: center; position: relative; white-space: nowrap; color: #555c56 }
.wide-nav a:hover,.wide-nav [aria-current] { color: var(--green) }
.wide-nav [aria-current]::after { content: ""; position: absolute; bottom: 9px; left: 24%; right: 24%; height: 2px; background: var(--orange) }
.menu { display: none; position: relative }
.menu summary { padding: 5px 10px; font-size: 23px; list-style: none; color: var(--green) }
.menu summary::-webkit-details-marker { display: none }
.menu nav { z-index: 8; width: 176px; position: absolute; right: 0; top: 110%; padding: 8px; border: 1px solid var(--line); background: white; box-shadow: 0 8px 20px #102d1826 }
.menu nav a { display: block; padding: 7px 12px }
.menu nav a:hover,.menu nav [aria-current] { color: var(--green); background: #eef2eb }
.carousel { height: clamp(380px,33.4vw,560px); color: white; background: #386451; position: relative }
.slide,.hero-copy,.slide picture,.slide img,.slide-controls { position: absolute; inset: 0; width: 100%; height: 100% }
.slide img { object-fit: cover; object-position: center }
.hero-copy { display: grid; align-items: center; justify-items: center; padding: 0 20px 45px; text-align: center; background: linear-gradient(0deg,#10291e42,transparent 32%,#10261c13 85%); text-shadow: 0 2px 15px #0d241acd }
.hero-copy>div { padding: 22px 30px; background: radial-gradient(ellipse closest-side,#122f2761,transparent); }
.hero-copy h1,.hero-copy h2 { font-family: "STSong","Songti SC","Noto Serif CJK SC",SimSun,serif; font-size: clamp(34px,3.95vw,68px); line-height: 1.28; font-weight: 650; letter-spacing: .09em }
.hero-copy a { display: inline-flex; justify-content: center; align-items: center; gap: 8px; margin-top: 15px; font-size: clamp(14px,1.15vw,19px); letter-spacing: .15em }
.hero-copy a:hover { text-decoration: underline }
.slide-controls { pointer-events: none; display: flex; justify-content: space-between; align-items: center; padding: 0 clamp(12px,3vw,55px) }
.slide-controls button { pointer-events: auto; color: white }
.prev,.next { border: 1px solid #ffffff7a; width: 35px; height: 35px; border-radius: 50%; background: #233e302b; display: grid; place-items: center }
.prev .ico { transform: rotate(180deg) }
.pager { position: absolute; display: flex; align-items: center; bottom: 110px; left: 50%; transform: translateX(-50%); }
.dot,.toggle { display: grid; align-items: center; justify-content: center; width: 25px; height: 22px }
.dot::after { content: ""; background: #ffffff73; width: 16px; height: 3px; border-radius: 2px }
.dot[aria-pressed=true]::after { background: white }
.toggle { font-size: 13px }
.toggle .ico:last-child,.toggle[data-stopped] .ico:first-child { display: none }
.toggle[data-stopped] .ico:last-child { display: block }
.search-wrap { position: relative; z-index: 2; margin-top: -92px; margin-bottom: 58px }
.finder { display: grid; grid-template-columns: 1.05fr 1.65fr 1.12fr 1.12fr auto; background: white; box-shadow: 0 5px 23px #12372530; border-radius: 4px; min-height: 65px; align-items: stretch }
.finder label { border-right: 1px solid #dedfdc; display: flex; align-items: center; gap: 10px; min-width: 0; padding: 8px clamp(10px,1.8vw,28px) }
.finder label>span { display: block; min-width: 0 }
.finder label>.ico { width: 19px; height: 19px; color: var(--green) }
.finder small { display: block; font-size: 11px; color: var(--muted); line-height: 1.35 }
.finder select,.finder input { display: block; max-width: 100%; width: 100%; border: 0; padding: 1px 0; border-radius: 0; background: transparent; min-width: 0; font-size: 15px; line-height: 1.4 }
.finder .keyword { display: flex; flex-direction: column; align-items: stretch; justify-content: center; gap: 0 }
.finder input::placeholder { color: #737b75 }
.finder .date-field { gap: 7px }
.date-field input { font-family: Arial,"Microsoft YaHei",sans-serif; font-size: 14px; min-height: 23px }
.find-submit { background: #e67828; color: white; padding: 0 clamp(13px,2vw,30px); border-radius: 0 4px 4px 0; font-size: 17px; font-weight: 600 }
.find-submit:hover { background: #c3611d }
.find-results { position: relative; margin-top: 7px; background: white; padding: 17px 23px; box-shadow: 0 6px 20px #20351c1a; border: 1px solid var(--line); border-radius: 4px }
.find-results>div { display: flex; justify-content: space-between; align-items: center }
.find-results button { font-size: 25px; line-height: 1 }
.find-results p { color: var(--muted); font-size: 14px }
.find-results ul { margin-top: 6px; padding-left: 20px }
.find-results a { color: var(--green); text-decoration: underline }
.section-heading { text-align: center }
.section-heading h2 { display: flex; justify-content: center; align-items: center; gap: 15px; color: #303a34; font-size: clamp(25px,2.25vw,34px); letter-spacing: .12em; line-height: 1.35; font-weight: 580 }
.section-heading h2::before,.section-heading h2::after { content: ""; background: #bbac8a; width: 36px; height: 1px }
.section-heading>span { display: block; margin-top: 3px; font: 12px/1.5 Arial,sans-serif; letter-spacing: .18em; color: #7e8275 }
.collection { padding: 41px 0 44px; background: #f8f9f7 }
.marks { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); align-items: stretch; gap: 12px; margin: 29px 0 22px }
.marks a { position: relative; min-height: 100px; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--green); border-bottom: 2px solid transparent }
.marks a+a::before { content: ""; width: 1px; height: 48%; background: #dde1d9; position: absolute; left: -6px; top: 25% }
.marks .ico { width: 29px; height: 29px; stroke-width: 1.3 }
.marks b { font: 600 19px/1.5 "STSong","Songti SC",serif; margin-top: 5px; letter-spacing: .08em }
.marks small { font: 9px/1.2 Arial,sans-serif; letter-spacing: .13em }
.marks a:nth-child(2) { color: #917047 } .marks a:nth-child(3) { color: #48697f } .marks a:nth-child(4) { color: #874e50 } .marks a:nth-child(5) { color: #79613a }
.marks a.chosen,.marks a:hover { background: #fff; border-bottom-color: #df8a45 }
.profile { display: grid; grid-template-columns: min(25%,285px) 1fr; gap: 30px; align-items: center; padding: 12px; border-radius: 4px; background: linear-gradient(110deg,#284239,#354e41 60%,#526957); color: white; box-shadow: 0 7px 17px #15282119; min-height: 190px }
.profile img { width: 100%; height: 164px; object-fit: cover; border-radius: 2px }
.profile-copy { padding: 3px 20px 3px 0 }
.profile h3 { font-size: 23px; font-weight: 600 }
.profile p { font-size: 15px; margin: 5px 0 16px; color: #f1f4ef }
.profile-links,.entry-buttons { display: flex; align-items: center; flex-wrap: wrap; gap: 12px }
.browse { font-size: 14px; margin-right: auto; text-decoration: underline; text-underline-offset: 4px }
.button,.contact-lines button,.contact-lines a { display: inline-flex; align-items: center; gap: 6px; justify-content: center; padding: 7px 16px; border-radius: 4px; font-size: 14px; font-weight: 600 }
.button.account { color: white; background: linear-gradient(#3983c0,#24649e); box-shadow: 0 3px 0 #174c7c,0 5px 10px #0f281b30 }
.button.official { color: #543d0e; background: linear-gradient(#ffe18a,#f1bb43); box-shadow: 0 3px 0 #b78729,0 5px 10px #0f281b30 }
.button:hover,.contact-dock>*:hover,.contact-lines button:hover,.contact-lines a:hover { filter: brightness(1.07) }
.hotel { padding-bottom: 43px; background: white }
.hotel-heading { background: linear-gradient(105deg,#e5ede2,#f3f2e8 49%,#e9eee5); padding: 32px 20px 42px; text-align: center }
.hotel-heading p { margin-top: 9px; color: #49574d }
.hotel-facts { display: grid; grid-template-columns: repeat(4,1fr); background: white; margin-top: -19px; padding: 20px; box-shadow: 0 5px 21px #1b372011 }
.hotel-facts>div { text-align: center } .hotel-facts>div+div { border-left: 1px solid var(--line) }
.hotel-facts b { color: var(--green); font: 500 clamp(38px,4vw,58px)/1.1 Georgia,serif }
.hotel-facts span { font-size: 14px; margin-left: 5px }
.hotel-facts p,.hotel-sources { font-size: 13px; color: var(--muted) }
.hotel-sources { display: flex; justify-content: center; gap: 16px; margin-top: 12px; text-decoration: underline; text-underline-offset: 3px }
.guest { background: #f7f8f6; padding: 42px 0 50px }
.service-card { display: grid; grid-template-columns: minmax(220px,31%) 1fr; gap: clamp(20px,4vw,60px); align-items: center; padding: 22px clamp(22px,4vw,60px); background: linear-gradient(115deg,#242a26,#38443b); color: white; margin-top: 25px; border-radius: 4px }
.pass-title { display: flex; align-items: center; gap: 14px; min-height: 86px; color: #574526; background: linear-gradient(125deg,#dec58b,#f4e2b2 57%,#c4a779); border: 1px solid #f7e8bf; border-radius: 7px; box-shadow: 0 4px 9px #121b1261; padding: 12px 18px }
.pass-title>.ico { width: 37px; height: 37px; stroke-width: 1.2 }
.pass-title small { font: 9px/1.3 Arial,sans-serif; letter-spacing: .15em }
.pass-title h3 { font-size: 20px; font-weight: 550 }
.pass-detail p { color: #f0f0e7; font-size: 16px }
.pass-detail nav { display: flex; flex-wrap: wrap; gap: 9px 24px; margin-top: 11px; font-size: 13px }
.pass-detail .ico { margin-right: 5px; color: #d7c899 }
.desk { background: #f6f7f4; padding: 37px 0 50px }
.desk article { display: grid; grid-template-columns: minmax(180px,26%) 1fr; gap: clamp(20px,4vw,55px); align-items: center; margin: 25px auto 0; max-width: 1000px }
.desk article img { border-radius: 4px; width: 100%; height: auto }
.desk article h3 { font-size: 23px } .desk article p { font-size: 15px; margin: 7px 0; color: #515e55 }
.desk article a { display: inline-block; margin-top: 7px; font-weight: 600; color: var(--green) }
.promo-grid,.story-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px }
.promo-grid { margin-top: 26px }
.promo-grid a { position: relative; overflow: hidden; border-radius: 4px; color: white; box-shadow: 0 4px 13px #16241921; isolation: isolate }
.promo-grid img { width: 100%; height: auto; aspect-ratio: 1.8; object-fit: cover }
.promo-grid a::after { content: ""; position: absolute; z-index: 0; inset: 0; background: linear-gradient(transparent 26%,#102a219e) }
.promo-grid a>div,.promo-grid a>.ico { position: absolute; z-index: 1; bottom: 17px; left: 20px }
.promo-grid a>.ico { left: auto; right: 18px; bottom: 21px }
.promo-grid strong { font-size: 23px }
.promo-grid p { font-size: 13px }
.journal { padding-block: 46px 60px }
.news-bar,.story-top,.read-links { display: flex; align-items: center; justify-content: space-between; gap: 12px }
.news-bar { font-size: 14px; color: var(--muted); margin: 20px 0 15px }
.news-bar a,.read-links a,.source-links a,.back { color: var(--green) }
.story-list article,.article-body,.guide-sections,.related { border: 1px solid var(--line); background: white; box-shadow: 0 3px 10px #152d1f0b; border-radius: 4px; }
.story-list article { padding: 19px 20px; display: flex; flex-direction: column }
.story-top,.read-links { font-size: 12px; color: var(--muted) }
.story-top span { color: #966524 }
.story-list h3 { font-size: 17px; line-height: 1.5; margin: 10px 0 7px }
.story-list h3 a:hover { color: var(--green); text-decoration: underline }
.story-list p { color: #5e6861; font-size: 14px; line-height: 1.8; margin-bottom: 13px }
.read-links { margin-top: auto; border-top: 1px solid #edf0eb; padding-top: 9px }
.read-links a:last-child:not(:first-child) { color: #68796d }
footer { background: #373d39; color: #dee2db; font-size: 14px }
.foot-grid { padding: 35px 0 25px; display: grid; grid-template-columns: 1fr 1.25fr .7fr; gap: 35px }
footer .wordmark { color: white }
.foot-brand p { margin-top: 11px; color: #bac1ba }
.foot-contact a,.foot-contact button { display: block; color: inherit }
.foot-grid strong { display: block; color: white; margin-bottom: 9px }
.foot-nav>div { display: grid; grid-template-columns: repeat(3,1fr); gap: 5px 9px }
.footnote { border-top: 1px solid #626a61; padding: 12px 0 19px; color: #c3cac3; font-size: 12px }
.contact-dock { position: fixed; z-index: 6; right: 7px; top: 39%; display: grid; gap: 4px }
.contact-dock>* { display: flex; align-items: center; justify-content: center; gap: 6px; text-align: left; min-height: 47px; padding: 6px 10px; border: 1px solid #d2dacf; border-radius: 5px; background: linear-gradient(#fff,#f1f4ed); color: var(--deep); box-shadow: 0 3px 0 #b7c1b5,0 5px 12px #13251929; font-size: 12px; line-height: 1.25 }
.contact-dock .ico { width: 18px; height: 18px }
.contact-dock b { display: block; font-family: Arial,sans-serif; font-size: 13px; margin-top: 2px }
.contact-dock .chat { color: white; border-color: #345e45; background: linear-gradient(#4e7b5c,#315741); box-shadow: 0 3px 0 #24412f,0 5px 12px #13251929 }
.toast { position: fixed; z-index: 10; bottom: 35px; left: 50%; transform: translateX(-50%); background: #203c2e; border-radius: 5px; padding: 9px 18px; color: white; white-space: nowrap; font-size: 14px }
.toast:empty { display: none }
.inner-body { padding-block: 20px 55px }
.crumb { font-size: 13px; color: var(--muted); margin-bottom: 20px }
.crumb span { padding: 0 7px }
.inner-body h1 { font-size: clamp(25px,2.5vw,35px); line-height: 1.45 }
.inner-body h2 { font-size: 20px }
.guide-body,.article-layout { display: grid; grid-template-columns: minmax(140px,205px) 1fr; gap: 26px }
.guide-body>aside { background: #f2f5ef; padding: 10px; align-self: start }
.guide-body>aside a { display: block; padding: 11px 12px; border-bottom: 1px solid #dee5d9 }
.guide-body>aside [aria-current] { background: var(--green); color: white }
.article-layout { grid-template-columns: minmax(0,1fr) minmax(180px,26%) }
.guide-sections,.article-body,.related { padding: clamp(20px,3vw,42px) }
.guide-sections h1,.article-body h1 { margin-bottom: 12px; color: var(--deep) }
.guide-sections section { margin-top: 24px }
.guide-sections h2 { margin-bottom: 6px }
.guide-sections p,.prose,.lead { line-height: 1.95; color: #46564b }
.story-meta { color: var(--muted); font-size: 13px; margin: 12px 0 }
.article-topic { display: inline-block; margin: 3px 0 12px; font-size: 13px; color: #92703e }
.prose,.lead { margin: 8px 0 }
.source-links { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 22px; font-size: 14px }
.related { align-self: start; background: #f5f7f2; padding: 21px }
.related a { display: block; font-size: 14px; border-top: 1px solid var(--line); padding: 9px 0 }
.related h2 { margin-bottom: 12px }
.contact-block { padding: 28px 12px; text-align: center; margin: 30px auto 0; background: #f5f7f1; border: 1px solid var(--line); box-shadow: 0 3px 10px #18351d0c; border-radius: 4px }
.contact-lines,.contact-lines>div,.contact-block .entry-buttons { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px }
.contact-lines { gap: 12px 24px; margin: 15px auto 19px }
.contact-lines button,.contact-lines a { color: white; background: linear-gradient(#557d5d,#35583f); box-shadow: 0 3px 0 #26452f }
.not-found { margin: 18px 0 45px }
@media (min-width: 761px) and (max-width: 1479px) {
  .search-wrap,.collection>.wrap,.hotel-facts,.guest>.wrap,.journal,.inner-body { width: min(1200px,calc(100% - 152px)); margin-left: max(14px,calc((100% - 1340px)/2)); margin-right: auto }
  .contact-dock { right: 4px }
  .contact-dock>* { padding-inline: 5px }
}
@media (min-width: 761px) and (max-width: 1040px) {
  .wide-nav { gap: 15px; font-size: 14px }
  .head-row.wrap { width: calc(100% - 30px) }
  .finder label { padding-inline: 7px }
  .finder .date-field>.ico { display: none }
  .finder { grid-template-columns: 1fr 1.1fr 1fr 1fr auto }
  .find-submit { font-size: 14px; padding-inline: 8px }
  .story-list { grid-template-columns: repeat(2,minmax(0,1fr)) }
}
@media (max-width: 760px) {
  body { padding-bottom: calc(64px + env(safe-area-inset-bottom,0px)) }
  .wrap { width: calc(100% - 28px) }
  .utility .wrap { height: 28px; font-size: 10px } .utility .wrap>div { gap: 8px }
  .utility button,.utility i { display: none }
  .head-row { min-height: 56px }
  .mark { width: 38px; height: 38px } .wordmark b { font-size: 20px }
  .wordmark small { font-size: 8px } .wide-nav { display: none } .menu { display: block }
  .carousel { height: clamp(295px,70vw,405px) }
  .hero-copy { padding: 0 20px 45px }
  .hero-copy>div { padding: 15px 0 }
  .hero-copy h1,.hero-copy h2 { font-size: clamp(26px,6.5vw,43px); letter-spacing: .035em }
  .hero-copy a { font-size: 13px; margin-top: 10px; letter-spacing: .08em }
  .prev,.next { width: 25px; height: 25px; font-size: 12px } .slide-controls { padding: 0 5px }
  .pager { bottom: 53px }
  .search-wrap { margin-top: -40px; margin-bottom: 16px }
  .finder { grid-template-columns: 1fr 1fr; border-radius: 5px; overflow: hidden }
  .finder label { padding: 7px 10px; border-bottom: 1px solid #e3e8de; min-height: 48px; gap: 6px }
  .finder label:nth-child(2n) { border-right: 0 }
  .finder small { font-size: 10px }
  .finder select,.finder input { font-size: 13px; min-height: 22px }
  .find-submit { grid-column: 1/-1; border-radius: 0; padding: 7px 12px; font-size: 15px }
  .collection,.guest { padding: 28px 0 30px }
  .section-heading h2 { font-size: 25px; gap: 11px } .section-heading h2::before,.section-heading h2::after { width: 23px }
  .section-heading>span { font-size: 10px }
  .marks { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin: 16px 0 }
  .marks a { min-height: 78px } .marks a:nth-child(4)::before { display: none }
  .marks b { font-size: 16px; margin-top: 2px } .marks .ico { width: 23px; height: 23px }
  .profile { display: block; padding: 0; overflow: hidden }
  .profile img { height: 130px; border-radius: 0; object-position: center 48% }
  .profile-copy { padding: 13px 15px 18px } .profile h3 { font-size: 20px } .profile p { font-size: 14px; margin-bottom: 11px }
  .profile-links { gap: 7px } .profile-links .button { padding: 6px 10px; font-size: 13px } .browse { font-size: 12px }
  .hotel { padding-bottom: 25px } .hotel-heading { padding: 24px 0 34px }
  .hotel-facts { grid-template-columns: 1fr 1fr; gap: 15px 0; padding: 17px 8px }
  .hotel-facts>div:nth-child(3) { border-left: 0 } .hotel-facts b { font-size: 35px }
  .hotel-facts p,.hotel-sources { font-size: 12px }
  .promo-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin-top: 17px }
  .promo-grid img { height: 145px; aspect-ratio: auto }
  .promo-grid a>div { left: 7px; right: 5px; bottom: 7px }
  .promo-grid strong { font-size: 16px } .promo-grid p { font-size: 11px; line-height: 1.4 } .promo-grid a>.ico { display: none }
  .journal { padding: 28px 0 }
  .story-list { grid-template-columns: 1fr; gap: 10px } .story-list article { padding: 13px 15px }
  .story-list h3 { margin: 5px 0 } .story-list p { margin-bottom: 7px } .news-bar { margin: 15px 0 9px }
  .foot-grid { grid-template-columns: 1fr 1fr; gap: 15px; padding: 22px 0 17px }
  .foot-brand { grid-column: 1/-1; display: flex; align-items: center; gap: 12px } .foot-brand p { margin: 0; font-size: 11px }
  .foot-nav>div { grid-template-columns: repeat(2,1fr) } .foot-contact,.foot-nav { font-size: 12px }
  .contact-dock { position: fixed; inset: auto 0 0; z-index: 12; grid-template-columns: 1.1fr 1.02fr .85fr; background: #f8faf6; border-top: 1px solid #c4d0c1; padding: 5px 5px calc(6px + env(safe-area-inset-bottom,0px)); gap: 5px; box-shadow: 0 -3px 13px #12321a15 }
  .contact-dock>* { padding: 5px 1px; min-height: 42px; font-size: 11px; gap: 4px }
  .contact-dock .ico { width: 15px; height: 15px } .contact-dock b { font-size: 12px }
  .toast { bottom: calc(69px + env(safe-area-inset-bottom,0px)) }
  .inner-body { padding: 15px 0 28px } .guide-body,.article-layout { display: block }
  .guide-body>aside { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; padding: 7px }
  .guide-body>aside a { border: 0; font-size: 12px; padding: 5px }
  .related { margin-top: 14px }
  .contact-lines { display: grid; font-size: 14px } .contact-lines>div { gap: 6px }
  .contact-lines button,.contact-lines a { font-size: 12px; padding: 6px 10px }
}

@media (max-width: 760px) {
  .service-card { grid-template-columns: 1fr; gap: 12px; padding: 13px; margin-top: 15px }
  .pass-title { max-width: 310px; min-height: 62px; padding: 7px 14px }
  .pass-title h3 { font-size: 17px } .pass-title>.ico { width: 29px; height: 29px }
  .pass-detail p { font-size: 13px }
  .pass-detail nav { gap: 8px 13px; font-size: 12px; margin-top: 7px }
  .desk { padding: 25px 0 }
  .desk article { grid-template-columns: minmax(90px,28%) 1fr; gap: 12px; align-items: start; margin-top: 15px }
  .desk article img { min-height: 125px; object-fit: cover }
  .desk article h3 { font-size: 16px } .desk article p,.desk article a { font-size: 13px }
}
/* Match the reference's 500 × 42 title lockups with live, editable text. */
.section-photo { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; z-index: -1; pointer-events: none }
.section-heading { display: flex; justify-content: center; align-items: center; gap: 18px }
.section-heading::before,.section-heading::after { content: ""; width: min(15vw,152px); height: 1px; background: linear-gradient(to right,transparent,#d2d2d2) }
.section-heading::after { transform: rotate(180deg) }
.section-lockup { display: inline-flex; align-items: center; text-align: left; gap: 3px }
.section-lockup .initial { font: 47px/.97 Georgia,"Times New Roman",serif; color: #f19a49 }
.section-lockup div>span { display: block; color: #989898; letter-spacing: .035em; font: 11px/1.25 Georgia,serif; text-transform: capitalize }
.section-lockup h2 { color: #363636; font: 650 21px/1.3 "Microsoft YaHei","PingFang SC",sans-serif; letter-spacing: .14em; white-space: nowrap }
.section-lockup h2::before,.section-lockup h2::after { content: none }
.nav-group { position: relative; display: flex }
.wide-nav .nav-group>a { display: flex; gap: 4px; align-items: center }
.wide-nav .nav-group .ico { width: 11px; height: 11px; color: #868686 }
.nav-sub { display: none; position: absolute; z-index: 5; top: calc(100% - 6px); left: 0; padding: 7px 0; min-width: 154px; max-width: 250px; border-radius: 4px; background: #434343; color: white; box-shadow: 0 4px 14px #0004 }
.nav-sub::before { content: ""; position: absolute; top: -5px; left: 21px; border: 5px solid transparent; border-top: 0; border-bottom-color: #434343 }
.nav-sub a { color: #fff; display: block; padding: 6px 14px; white-space: normal; font-size: 13px }
.nav-sub a:hover,.nav-sub a:focus { color: white; background: #5b6258 }
.nav-group:hover .nav-sub,.nav-group:focus-within .nav-sub { display: block }
.nav-group:last-child .nav-sub { left: auto; right: 0 }
.hero-sign { display: grid; justify-items: center; width: max-content; margin: 0 auto 9px; color: white }
.hero-sign .mark { width: 44px; height: 44px; filter: drop-shadow(0 1px 3px #1b2b24) }
.hero-sign small { font: 600 11px/1.2 Georgia,serif; letter-spacing: .12em }
.hero-copy h1,.hero-copy h2 { font-family: "Microsoft YaHei","PingFang SC",sans-serif; font-weight: 560 }
.hero-copy a { border-top: 1px solid #ffffffad; border-bottom: 1px solid #ffffffad; padding: 2px 12px }
.slide[data-layout=offer] .hero-copy { text-align: left; justify-items: start; padding-left: max(12%,calc((100% - 1000px)/2)); text-shadow: 0 2px 7px #23538866 }
.pager .dot::after { width: 9px; height: 9px; border-radius: 50%; background: #ffffff84 }
.pager .dot[aria-pressed=true]::after { background: #fff }
.find-submit { background: #fb822d; border: 0 }
.find-submit:hover { background: #df6c21 }
.collection { background: #fafafa }
.marks { max-width: 1140px; margin: 27px auto 31px; display: flex; justify-content: center; flex-wrap: wrap; column-gap: clamp(5px,1.2vw,22px); row-gap: 19px }
.marks a { min-height: 65px; width: calc(14.285% - clamp(5px,1.2vw,22px)); color: #394635; border: 0; text-align: center; padding: 4px 0; border-radius: 3px }
.marks .ico { width: 23px; height: 23px; stroke-width: 1.7 }
.marks a+a::before { display: none }
.marks b { font: 650 17px/1.28 "Microsoft YaHei","PingFang SC",sans-serif; letter-spacing: .04em; margin-top: 1px }
.marks small { font: 600 10px/1.1 Georgia,serif; letter-spacing: .065em }
.marks .mark-style-0 { color: #478a3f }
.marks .mark-style-1 { color: #117253 } .marks .mark-style-1 b { font-family: "STSong",SimSun,serif }
.marks .mark-style-2 { color: #a05b3e } .marks .mark-style-2 b { letter-spacing: .15em }
.marks .mark-style-3 { color: #594934 } .marks .mark-style-3 small { font-style: italic }
.marks .mark-style-4 { color: #395b80 } .marks .mark-style-4 b { font-family: Georgia,"STSong",serif }
.marks .mark-style-5 { color: #965e58 }
.marks a.chosen,.marks a:hover { color: #eb722f; background: #fff; box-shadow: inset 0 -2px #f19d62 }
.profiles { position: relative; isolation: isolate; background: #465146; border-radius: 2px; overflow: hidden; box-shadow: 0 4px 14px #2221 }
.profile { background: linear-gradient(90deg,#151a1717,#1e282777); box-shadow: none; border-radius: 0; grid-template-columns: 250px minmax(0,1fr); gap: 28px; padding: 9px 10px; min-height: 190px }
.profile img { width: 250px; height: 172px }
.profile-links .button { padding: 5px 18px } .profile p { letter-spacing: .065em }
.hotel { margin-top: 10px; padding-bottom: 35px }
.hotel-heading { position: relative; isolation: isolate; min-height: 215px; background: #626e64; color: #fff; padding: 26px 12px 82px; text-shadow: 0 1px 6px #13271d }
.hotel-heading>div { display: flex; justify-content: center; align-items: center; gap: 8px }
.hotel-heading .mark { width: 43px; height: 43px } .hotel-heading h2 { font-size: 25px; line-height: 1.2 }
.hotel-heading p { color: #fff; font-size: 13px; margin-top: 6px }
.hotel-facts { position: relative; padding: 0; margin: -94px auto 0; border-radius: 13px; overflow: hidden; gap: 0; box-shadow: 0 5px 18px #16211124 }
.hotel-facts>div { display: grid; position: relative; isolation: isolate; align-items: center; color: white; aspect-ratio: 300 / 320; background: #3d4c48; text-shadow: 0 1px 8px #192018 }
.hotel-facts>div+div { border: 0 }
.hotel-facts>div>div { padding: 10px }
.hotel-facts b { color: white; font: 650 clamp(34px,3.4vw,58px)/1.08 Arial,sans-serif }
.hotel-facts span { font-size: clamp(14px,1.3vw,20px); color: white }
.hotel-facts p { color: white; font-size: clamp(12px,1.2vw,17px); margin-top: 6px }
.guest { background: #fafafa; padding: 47px 0 45px }
.service-card { position: relative; isolation: isolate; overflow: hidden; color: white; background: #2f302e; grid-template-columns: 30% minmax(0,1fr); min-height: clamp(130px,17vw,214px); margin: 28px auto 0; border-radius: 0; box-shadow: none; padding: 15px 3% }
.pass-title { align-self: center; min-height: 0; width: 100%; max-width: none; justify-content: center; background: none; box-shadow: none; border: 0 }
.pass-detail nav { margin-top: 18px }
.promo-grid { gap: 1%; margin-top: 5px }
.promo-grid a { border-radius: 0 } .promo-grid a>div { bottom: 10%; left: 6% }
.promo-grid a>.ico { display: none }
.promo-grid strong { font-size: 24px; line-height: 1.25 }
.promo-grid small,.journal-tiles small { display: block; margin-top: 4px; font-size: 12px }
.strip-links { isolation: isolate; position: relative; margin-top: 7px; display: flex; min-height: clamp(66px,8vw,120px); align-items: stretch; padding: 7px 4%; background: #475865; color: white }
.strip-links a { flex: 1; display: flex; align-items: center; justify-content: center; gap: 12px; font-weight: 550; text-shadow: 0 1px 4px #182428 }
.strip-links .ico { border-radius: 50%; padding: 6px; width: 36px; height: 36px; background: #ffffff21 }
.journal-tiles { margin: 27px 0 19px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5% }
.journal-tiles a { display: block; padding: 6px 6px 0; border: 1px solid #e4e4e4; background: white; text-align: center; box-shadow: 0 2px 6px #00000012 }
.journal-tiles a>img { width: 100%; aspect-ratio: 380 / 225; height: auto; object-fit: cover }
.journal-tiles a>div { display: flex; align-items: center; justify-content: space-between; padding: 12px 5%; gap: 7px }
.journal-tiles strong { font-size: 18px } .journal-tiles small { color: #b65d22; margin: 0 }
.desk article { max-width: 1100px; grid-template-columns: minmax(170px,22%) 1fr }
footer { background: #323435 }
.foot-grid { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(260px,1fr); grid-template-rows: auto auto; column-gap: 4%; row-gap: 16px; padding: 20px 0 10px }
.foot-brand { grid-column: 1; align-self: end; padding: 10px 0; }
.foot-nav { grid-column: 1; border-top: 1px solid #666; padding: 13px 0 }
.foot-nav>div { display: flex; gap: 5px 17px; flex-wrap: wrap }
.foot-contact { position: relative; isolation: isolate; overflow: hidden; background: #f3f1ed; color: #4e4c46; grid-column: 2; grid-row: 1 / 3; min-height: 230px; padding: 16px 20px; text-align: right }
.foot-contact>strong,.foot-contact>button,.foot-contact>a { color: #83512a; margin-inline-start: auto }
.foot-codes { display: flex; justify-content: flex-end; gap: 15px; margin-top: 6px }
.foot-codes a { display: grid; justify-items: center }
.foot-codes span { display: block; width: 62px; height: 62px; background: white }
.foot-codes svg { display: block; width: 100%; height: 100%; shape-rendering: crispEdges }
.foot-codes small { color: #694a2d; font-size: 11px; background: #ffffffc4; padding: 0 4px }
@media (min-width: 761px) {
  .utility .wrap { justify-content: flex-end; gap: 17px; height: 36px; padding-right: clamp(0px,4.8vw,94px) }
  .utility { background: #434343 } .utility .ico { width: 20px; height: 20px }
  .head-row { height: 69px; min-height: 69px }
  .mast .wordmark { position: relative; align-self: flex-start; min-width: 170px; height: 80px; padding: 4px 10px; border-radius: 0 0 4px 4px; flex-direction: column; justify-content: center; gap: 0; color: white; background: linear-gradient(140deg,#acd238,#7eb735); text-align: center; box-shadow: 0 2px 4px #0002 }
  .mast .mark { width: 32px; height: 32px } .mast .wordmark b { font-size: 19px } .mast .wordmark small { font-size: 8px; letter-spacing: .07em }
  .wide-nav { font-size: 16px; gap: clamp(15px,2.4vw,36px) }
  .carousel { height: 560px }
  .hero-copy { padding-bottom: 65px } .hero-copy>div { padding: 0; background: none }
  .hero-copy h1,.hero-copy h2 { font-size: clamp(32px,2.25vw,45px); letter-spacing: .28em }
  .hero-copy a { font-size: 15px; margin-top: 15px; letter-spacing: .12em }
  .slide[data-layout=offer] .hero-copy h2 { letter-spacing: .08em; font-size: clamp(31px,3vw,54px) }
  .pager { bottom: 13px }
  .prev,.next { opacity: 0; transition: opacity .15s }
  .carousel:hover .prev,.carousel:hover .next,.carousel:focus-within .prev,.carousel:focus-within .next { opacity: 1 }
  .search-wrap { margin: -120px auto 0; padding-bottom: 62px; pointer-events: none }
  .finder,.find-results { pointer-events: auto }
  .finder { grid-template-columns: 18% 25% 1fr 1fr 138px; min-height: 58px; box-shadow: 0 1px 17px #0003 }
  .finder label { padding-block: 5px } .finder .date-field,.finder .service-choice { flex-direction: row }
  .find-submit { font-size: 20px }
  .collection { margin-top: 20px; padding-top: 40px; padding-bottom: 5px }
  .profile-copy { padding: 0 2% 0 0 }
}
@media (min-width: 761px) and (max-width: 1070px) {
  .mast .wordmark { min-width: 131px } .wide-nav { gap: 14px; font-size: 14px } .wide-nav .nav-group .ico { display: none }
  .finder { grid-template-columns: 16% 25% 1fr 1fr 105px } .find-submit { font-size: 16px }
}
@media (max-width: 760px) {
  .marks { gap: 7px 2px; margin: 14px 0 18px }
  .marks a { width: calc((100% - 10px)/4); min-height: 60px; padding: 3px 0 }
  .marks b { font-size: 13px } .marks small { font-size: 9px } .marks .ico { width: 20px; height: 20px }
  .section-lockup .initial { font-size: 35px } .section-lockup h2 { font-size: 19px }
  .section-lockup div>span { font-size: 10px }
  .hero-sign .mark { width: 34px; height: 34px } .hero-sign small { font-size: 8px }
  .hero-sign { margin-bottom: 6px }
  .slide[data-layout=offer] .hero-copy { padding-left: 9%; align-items: start; padding-top: 17% }
  .slide[data-layout=offer] .hero-copy h2 { font-size: clamp(20px,5vw,32px); letter-spacing: 0 }
  .slide[data-layout=offer] .hero-copy a { font-size: 11px }
  .hotel-heading { min-height: 148px; padding: 20px 0 48px }
  .hotel-facts { margin: -48px auto 0; gap: 0; padding: 0; border-radius: 7px }
  .hotel-facts>div { aspect-ratio: 1.55 }
  .hotel-facts b { font-size: 31px } .hotel-heading h2 { font-size: 20px }
  .service-card { display: grid; grid-template-columns: 29% 1fr; gap: 12px; min-height: 98px; padding: 8px 6px }
  .pass-title { display: grid; gap: 1px; justify-items: center; padding: 1px }
  .pass-title>.ico { width: 18px; height: 18px }
  .pass-title small { display: none } .pass-title h3 { text-align: center; font-size: 12px }
  .pass-detail p { font-size: 12px } .pass-detail nav { gap: 3px 8px; margin-top: 4px; font-size: 11px }
  .promo-grid a>div { bottom: 7px; left: 6px } .promo-grid small { display: none }
  .promo-grid strong { font-size: 15px }
  .strip-links { padding: 4px; min-height: 55px }
  .strip-links a { gap: 4px; font-size: 12px }
  .strip-links .ico { width: 24px; height: 24px; padding: 3px }
  .journal-tiles { gap: 5px; margin: 17px 0 10px }
  .journal-tiles a { padding: 2px 2px 0 }
  .journal-tiles a>div { display: block; padding: 5px 2px }
  .journal-tiles strong { font-size: 13px } .journal-tiles small { font-size: 10px }
  .desk article { grid-template-columns: 27% 1fr }
  .foot-grid { grid-template-columns: minmax(0,.95fr) minmax(135px,1fr); gap: 8px }
  .foot-brand { display: block } .foot-brand p { margin-top: 5px }
  .foot-contact { min-height: 155px; padding: 10px 8px }
  .foot-codes { gap: 5px } .foot-codes span { width: 50px; height: 50px }
}

.slide[data-layout=green] .hero-copy { justify-items: start; text-align: left; padding-left: max(11%,calc((100% - 1040px)/2)); color: #324c2b; text-shadow: none; background: transparent }
.slide[data-layout=green] .hero-copy a { color: #27582d; border-color: #567752 }
.slide[data-layout=red] .hero-copy { background: transparent; text-shadow: 0 5px 0 #0936377a }
.slide[data-layout=red] h2 { font-weight: 900; font-size: clamp(48px,5.4vw,96px); line-height: 1.04; color: #fffbea; letter-spacing: .09em; -webkit-text-stroke: 1px #6c2a1b }
.slide[data-layout=red] h2 span { display: block }
@media (min-width: 761px) {
  .contact-dock { top: 20%; }
  .search-wrap { width: min(1200px,calc(100% - 48px)); margin-left: auto; margin-right: auto }
  .collection>.wrap,.hotel-facts,.guest>.wrap,.journal { width: min(1200px,calc(100% - 48px)); margin-left: auto; margin-right: auto }
  .foot-brand .mark { color: #fff }
  .hero-copy { padding-bottom: 49px }
}
@media (max-width: 760px) {
  .profile .profile-picture { width: 100%; height: 135px }
  .slide[data-layout=green] .hero-copy { padding: 30px 7% 0; align-items: start }
  .slide[data-layout=green] .hero-copy h2 { font-size: 24px }
  .slide[data-layout=green] .hero-copy a { font-size: 12px; padding-inline: 5px }
  .slide[data-layout=red] .hero-copy h2 { font-size: clamp(40px,9.6vw,62px) }
}
