.journey-revoke{display:none!important}
.journey-search-hotel{width:100%;margin:0 0 8px;padding:11px 13px;border:1px solid #b8d7db;border-radius:12px;background:rgba(255,255,255,.75);font:inherit}
.consult-panel{display:none!important}
.jp-quick{position:fixed;right:22px;bottom:24px;z-index:1000;font-family:inherit;color:#244852}
.jp-launch{border:1px solid #ffffffa8;border-radius:26px;background:#e4f5f4df;backdrop-filter:blur(20px);box-shadow:0 8px 30px #174f6024;padding:12px 18px;cursor:pointer;color:inherit}
.jp-quick-box{position:absolute;right:0;bottom:58px;width:310px;max-width:calc(100vw - 32px);background:#f4fbf8ed;border:1px solid #fff;border-radius:22px;padding:18px;box-shadow:0 15px 55px #154f642b;backdrop-filter:blur(24px);transform-origin:bottom right;opacity:0;transform:translateY(12px) scale(.9);visibility:hidden;transition:opacity .25s,transform .3s,visibility .3s}
.jp-quick.open .jp-quick-box{opacity:1;transform:none;visibility:visible}
.jp-quick-box{max-height:calc(100dvh - 110px);overflow:auto}
.jp-quick header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.jp-quick button{cursor:pointer}.jp-quick header button{border:0;background:transparent;font-size:24px;color:inherit}
.jp-quick input,.jp-quick textarea{box-sizing:border-box;width:100%;padding:10px;border:1px solid #c8dddc;border-radius:10px;font:inherit;margin:6px 0;background:#ffffffb8}
.jp-quick textarea{min-height:66px;resize:vertical}.jp-suggestions{display:flex;flex-wrap:wrap;gap:6px}.jp-suggestions button{border:1px solid #c7dfde;border-radius:16px;background:#fff9;color:inherit;padding:6px 9px;font:inherit;font-size:12px}
.jp-quick label{display:flex;align-items:center;gap:7px;font-size:12px}.jp-quick label input{width:auto}.jp-send{width:100%;border:0;background:#307e91;color:white;border-radius:12px;padding:11px;font:inherit}.jp-status{font-size:12px;line-height:1.6;margin:10px 0 0}.jp-quick-log{max-height:130px;overflow:auto;font-size:12px;white-space:pre-wrap;line-height:1.6}
.journey-tools{background:linear-gradient(135deg,#edf9f5d9,#e2f3f2e3),url('hotels/avani-fares/official-southwest.jpg') center/cover}.journey-tools-grid{align-items:start}
.hotel-detail-v2 .detail-intro,.hotel-detail-v2 .detail-section,.hotel-detail-v2 .detail-consult{padding-top:55px;padding-bottom:55px}.hotel-detail-v2 .editorial-list{gap:28px}.hotel-detail-v2 .editorial-list article{min-height:0}.hotel-detail-v2 .catalogue{margin-top:20px}.hotel-detail-v2 .dining-mosaic{align-items:start;gap:22px}
@media(max-width:600px){.jp-quick{right:12px;bottom:14px}.hotel-detail-v2 .detail-intro,.hotel-detail-v2 .detail-section{padding-top:32px;padding-bottom:32px}}
@media(prefers-reduced-motion:reduce){.jp-quick-box{transition:none}}
.hotel-detail-v2 .editorial-section{padding-top:55px;padding-bottom:55px}.hotel-detail-v2 .archive-copy-only{padding:20px;min-height:0;background:rgba(246,252,249,.65);border-radius:18px}.hotel-detail-v2 .editorial-list:has(.archive-copy-only){align-items:start}.hotel-detail-v2 .editorial-photo{min-height:0;aspect-ratio:1.5}.hotel-detail-v2 .editorial-photo img{width:100%;height:100%;object-fit:cover}
/* Consistent collection cards: the photograph and summary share one rhythm. */
.hotel-grid{align-items:stretch!important}.hotel-card-shell{display:flex;flex-direction:column;height:100%;box-sizing:border-box}.hotel-card{display:flex;flex-direction:column;flex:1;min-height:0}.hotel-copy{height:238px;flex:0 0 238px!important;box-sizing:border-box;overflow:hidden}.hotel-copy>small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.hotel-copy h3{height:2.7em;min-height:2.7em!important;margin:10px 0 8px;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:22px;line-height:1.35}.hotel-copy>p{height:1.6em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin:0 0 10px}.hotel-copy .chips{height:28px;overflow:hidden;flex-wrap:nowrap}.hotel-copy footer{margin-top:auto!important;gap:8px}.hotel-copy footer>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:65%}.hotel-copy footer strong{white-space:nowrap}
.hotel-detail-v2 .editorial-head{margin-bottom:30px;gap:30px}.hotel-detail-v2 .experience-section,.hotel-detail-v2 .hotel-cta-v2{padding:55px 0}.hotel-detail-v2 .decision-section{padding-top:50px;padding-bottom:50px}.hotel-detail-v2 .editorial-list{gap:28px}.hotel-detail-v2 .editorial-copy h3{font-size:clamp(22px,2.5vw,34px);margin:12px 0}.hotel-detail-v2 .editorial-copy p{margin:10px 0}.hotel-detail-v2 .editorial-list article:has(.photo-pending){display:block!important;padding:20px!important}.hotel-detail-v2 .editorial-list article:has(.photo-pending) .editorial-photo{display:none}.hotel-detail-v2 .cinematic-gallery:has(.photo-pending){display:flex;flex-wrap:wrap;gap:18px;height:auto}.hotel-detail-v2 .cinematic-gallery figure:has(.photo-pending){display:none}.hotel-detail-v2 .cinematic-gallery figure{flex:1 1 320px;height:280px}.hotel-detail-v2 .catalogue-grid article{min-height:0;padding:20px}.hotel-detail-v2 .dining-mosaic article>div:has(.photo-pending){display:none}
.jp-quick-log{max-height:none;height:260px;overflow:auto;white-space:normal;margin:12px 0}.jp-chat-welcome p{font-size:14px;line-height:1.8;margin:12px 0 20px}.jp-chat-welcome+.jp-quick-log:empty{display:none}.jp-msg{max-width:88%;padding:10px 12px;border-radius:14px;background:#fff;margin:10px 0;overflow-wrap:anywhere}.jp-msg.mine{margin-left:auto;background:#dcefea}.jp-msg small{font-size:10px;color:#688489}.jp-msg p{white-space:pre-wrap;margin:5px 0 0;font-size:13px;line-height:1.7}.jp-quick header .jp-end{font-size:12px;padding:7px;border-radius:9px;color:#54757b}.jp-quick form[hidden],.jp-chat-welcome[hidden],.jp-end[hidden]{display:none!important}.jp-quick form{display:flex;gap:8px;align-items:end}.jp-quick form textarea{flex:1;min-height:44px;max-height:90px;margin:0}.jp-quick form .jp-send{width:auto;padding:11px 14px}
@media(max-width:600px){.hotel-copy{height:220px;flex-basis:220px!important}.hotel-copy h3{font-size:20px}.hotel-detail-v2 .editorial-section,.hotel-detail-v2 .experience-section,.hotel-detail-v2 .hotel-cta-v2{padding:32px 0}.jp-quick-log{height:230px}}
.hotel-card-shell{align-self:stretch!important}.hotel-card-shell>.hotel-card{display:flex!important;flex-direction:column;height:auto!important}.hotel-photo{flex:0 0 auto}.hotel-detail-v2 .editorial-list article:has(.photo-pending) .editorial-copy{max-width:none;padding:0}.hotel-detail-v2 .cinematic-gallery:empty{display:none}
.hotel-detail-v2 .detail-hero-v2{min-height:clamp(380px,65svh,700px);padding-bottom:45px}.hotel-detail-v2 .cinematic-gallery{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none!important;grid-auto-rows:auto!important;gap:18px;margin-top:35px;margin-bottom:35px}.hotel-detail-v2 .cinematic-gallery figure{height:auto;grid-row:auto!important;aspect-ratio:1.5;margin:0}.hotel-detail-v2 .cinematic-gallery figure img{width:100%;height:100%;object-fit:cover}.hotel-detail-v2 .cinematic-gallery figure:has(.photo-pending){display:none!important}.hotel-detail-v2 .experience-section>.shell,.hotel-detail-v2 .decision-section{gap:35px}.hotel-detail-v2 .experience-grid article{padding:20px}.hotel-detail-v2 .catalogue-grid article:empty{display:none}
@media(max-width:600px){.hotel-detail-v2 .cinematic-gallery{grid-template-columns:1fr}.hotel-detail-v2 .detail-hero-v2 h1{font-size:42px}}
.hotel-detail-v2 .cinematic-gallery:empty{display:none!important}
.journey-chat{display:none!important}
@media(min-width:700px){.hotel-detail-v2 .editorial-list article:not(:has(.photo-pending)):not(.archive-copy-only),.hotel-detail-v2 .editorial-list article.reverse:not(:has(.photo-pending)){grid-template-columns:1.1fr 1fr;gap:30px;align-items:start}.hotel-detail-v2 .editorial-list article.reverse .editorial-photo{order:0}}
.journey-detail-actions{bottom:90px!important}

/* Final layout pass: less dead space, calmer section changes and contained text. */
html,body{max-width:100%;overflow-x:clip}
.hero,.hero-slides,.site-main{max-width:100%;overflow-x:hidden}
.section{padding-top:clamp(62px,7vw,92px)!important;padding-bottom:clamp(62px,7vw,92px)!important}
.manifesto{display:grid!important;grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr)!important;gap:clamp(42px,7vw,92px)!important;align-items:center!important}
.manifesto>div{min-width:0}
.manifesto h2{max-width:760px!important;margin:0!important;font-size:clamp(42px,4.35vw,62px)!important;line-height:1.22!important;letter-spacing:-.035em!important;text-wrap:balance}
.manifesto p{max-width:640px;overflow-wrap:anywhere}
.journey-tools{position:relative;isolation:isolate;padding-top:70px!important;padding-bottom:76px!important;background:transparent!important}
.journey-tools:before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);background:linear-gradient(180deg,#f5fbfa 0%,#edf8f7 70%,#f5fbfa 100%)}
.journey-tools:after{content:"";position:absolute;z-index:-1;left:50%;bottom:-1px;width:100vw;height:70px;transform:translateX(-50%);background:linear-gradient(180deg,transparent,#f7fbfa)}
.journey-glass{padding:clamp(18px,2.4vw,28px)!important}
#inquiry.journey-glass{background:rgba(247,252,251,.86)!important;border-color:rgba(255,255,255,.94)!important;box-shadow:0 18px 52px rgba(35,99,103,.07)!important}
.journey-inquiry-form{padding-bottom:0!important;margin-bottom:0!important}
.journey-form-status:empty,.journey-chat[hidden]{display:none!important}
.hotel-section.section{padding-top:76px!important;padding-bottom:82px!important}
.hotel-section .section-title{margin-bottom:28px!important}
.hotel-card-shell>.hotel-card{padding-bottom:46px!important}
.hotel-copy{height:auto!important;min-height:190px!important;flex:1 1 auto!important;padding:20px!important}
.hotel-copy h3{height:auto!important;min-height:2.65em!important;margin:8px 0 6px!important;font-size:clamp(19px,1.6vw,22px)!important;overflow-wrap:anywhere}
.hotel-copy>p{height:auto!important;min-height:1.5em;margin-bottom:9px!important}
.hotel-copy .chips{height:27px!important}
.journal,.feedback,.service-code{background:#f4faf9!important}
.journal.section,.feedback.section,.service-code.section{padding-top:72px!important;padding-bottom:76px!important}
.section-title>*{min-width:0}.section-title h2,.section-title p{overflow-wrap:anywhere}
.contact-card,.service-code-intro,.feedback-grid article,.journal-grid article{min-width:0;overflow-wrap:anywhere}
@media(max-width:900px){.manifesto{grid-template-columns:1fr!important;gap:30px!important}.manifesto h2{font-size:clamp(38px,8vw,54px)!important}.journey-tools{padding-top:58px!important;padding-bottom:62px!important}}
@media(max-width:600px){.section{padding-top:50px!important;padding-bottom:50px!important}.manifesto{gap:24px!important}.manifesto h2{font-size:clamp(34px,10.5vw,45px)!important;line-height:1.18!important}.hotel-copy{min-height:178px!important}.hotel-card-shell>.hotel-card{padding-bottom:43px!important}.journal.section,.feedback.section,.service-code.section{padding-top:52px!important;padding-bottom:55px!important}}
.weather-widget{max-width:calc(100vw - 24px)!important}
.weather-popover{width:min(720px,calc(100vw - 24px))!important;max-width:calc(100vw - 24px)!important;box-sizing:border-box}
.weather-fab{max-width:100%!important;box-sizing:border-box}

/* Unified AI concierge and human-advisor chat. */
.jp-quick{right:24px;bottom:24px;color:#173f46;font-family:inherit}.jp-quick [hidden]{display:none!important}
.jp-launch{display:flex;align-items:center;gap:10px;min-width:218px;padding:9px 10px;border:1px solid rgba(255,255,255,.86);border-radius:999px;background:rgba(240,250,248,.94);box-shadow:0 14px 38px rgba(12,65,75,.19);backdrop-filter:blur(22px);text-align:left;transition:transform .2s ease,box-shadow .2s ease}.jp-launch:hover{transform:translateY(-2px);box-shadow:0 18px 45px rgba(12,65,75,.24)}
.jp-launch-icon,.jp-avatar{display:grid;place-items:center;flex:0 0 auto;width:36px;height:36px;border-radius:50%;background:linear-gradient(145deg,#0c7b84,#39a49a);color:#fff;font-style:normal;box-shadow:inset 0 0 0 1px rgba(255,255,255,.32)}.jp-launch>span:nth-child(2){display:flex;flex:1;flex-direction:column;line-height:1.25}.jp-launch b{font-size:13px;font-weight:650}.jp-launch small{margin-top:2px;color:#618087;font-size:10px}.jp-launch>i{padding:7px 10px;border-radius:999px;background:#fff;color:#16727b;font-size:11px;font-style:normal}
.jp-quick-box{display:flex;flex-direction:column;right:0;bottom:64px;width:410px;height:auto;max-width:calc(100vw - 32px);max-height:calc(100dvh - 112px);padding:0;overflow:hidden;border:1px solid rgba(255,255,255,.92);border-radius:26px;background:rgba(247,252,250,.97);box-shadow:0 28px 90px rgba(10,57,67,.25);backdrop-filter:blur(28px)}
.jp-chat-head{display:flex!important;align-items:center!important;gap:11px!important;flex:0 0 auto;margin:0!important;padding:16px 17px 14px;border-bottom:1px solid rgba(43,111,117,.1);background:linear-gradient(120deg,rgba(233,248,245,.98),rgba(247,252,250,.92))}.jp-avatar{width:38px;height:38px;font-family:Georgia,serif;font-size:17px}.jp-chat-head>div{display:flex;min-width:0;flex:1;flex-direction:column}.jp-chat-head strong{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.jp-chat-head small{display:flex;align-items:center;gap:6px;margin-top:4px;color:#67858a;font-size:11px}.jp-chat-head small i{width:7px;height:7px;border-radius:50%;background:#2ab27b;box-shadow:0 0 0 3px rgba(42,178,123,.12)}.jp-chat-head button{font:inherit!important}.jp-chat-head .jp-end{padding:6px 9px;border:1px solid rgba(40,103,109,.14);border-radius:9px;background:rgba(255,255,255,.72);color:#627d82;font-size:10px!important}.jp-chat-head .jp-min{width:30px;height:30px;color:#496b71;font-size:21px!important;line-height:1}
.jp-chat-body{display:flex;min-height:0;max-height:calc(100dvh - 250px);flex:0 1 auto;flex-direction:column;overflow:auto;padding:16px 16px 8px;scrollbar-width:thin;scrollbar-color:#b9d7d3 transparent}.jp-intro{padding:18px;border:1px solid rgba(45,119,123,.1);border-radius:20px;background:linear-gradient(145deg,#edf8f5,#f8fcfa)}.jp-intro-mark{display:grid;width:36px;height:36px;place-items:center;border-radius:12px;background:#d9efea;color:#15777a;font-size:18px}.jp-intro h3{margin:12px 0 6px;color:#173f46;font-family:inherit;font-size:19px;letter-spacing:-.02em}.jp-intro p{margin:0;color:#5b777d;font-size:12px;line-height:1.7}.jp-prompts{display:grid!important;grid-template-columns:1fr 1fr;gap:7px!important;margin-top:14px}.jp-prompts button{padding:9px 10px!important;border:1px solid #cce2de!important;border-radius:11px!important;background:rgba(255,255,255,.84)!important;color:#285c62!important;font-size:11px!important;text-align:left}.jp-prompts button:hover{border-color:#7ab8b2!important;background:#fff!important}
.jp-quick-log{height:auto;max-height:none;overflow:visible;margin:0;white-space:normal}.jp-msg{width:fit-content;max-width:86%;margin:11px 0;padding:10px 12px;border:1px solid rgba(35,102,108,.08);border-radius:6px 16px 16px 16px;background:#fff;box-shadow:0 5px 16px rgba(20,70,76,.06)}.jp-msg.mine{margin-left:auto;border-color:transparent;border-radius:16px 6px 16px 16px;background:linear-gradient(135deg,#167b82,#2a918d);color:#fff}.jp-msg.advisor{background:#fff9e9;border-color:#eee2bc}.jp-msg small{color:#729096;font-size:9px}.jp-msg.mine small{color:rgba(255,255,255,.72)}.jp-msg p{margin:4px 0 0;font-size:12px;line-height:1.65;white-space:pre-wrap}.jp-typing{display:flex;align-items:center;gap:4px;width:max-content;margin:10px 0;padding:10px 12px;border-radius:6px 15px 15px;background:#fff}.jp-typing span{width:5px;height:5px;border-radius:50%;background:#65a29e;animation:jp-dot 1.1s infinite}.jp-typing span:nth-child(2){animation-delay:.15s}.jp-typing span:nth-child(3){animation-delay:.3s}.jp-typing small{margin-left:5px;color:#719096;font-size:10px}@keyframes jp-dot{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-3px);opacity:1}}
.jp-requirements,.jp-recommendations{margin-top:11px;padding:12px;border:1px solid rgba(33,107,109,.11);border-radius:15px;background:rgba(237,248,245,.72)}.jp-requirements>small,.jp-recommendations>small{display:block;margin-bottom:8px;color:#66858a;font-size:10px}.jp-requirements>div{display:flex;flex-wrap:wrap;gap:6px}.jp-requirements span{display:flex;gap:4px;padding:6px 8px;border-radius:9px;background:#fff;color:#476a70;font-size:10px}.jp-requirements b{color:#19787b;font-weight:600}.jp-recommendations>div{display:grid;gap:7px}.jp-recommendations article{padding:10px;border-radius:12px;background:#fff}.jp-recommendations article>div{display:flex;align-items:start;justify-content:space-between;gap:8px}.jp-recommendations article b{font-size:12px}.jp-recommendations article span{flex:0 0 auto;color:#6e898e;font-size:9px}.jp-recommendations article p{margin:5px 0 0;color:#617c82;font-size:10px;line-height:1.5}.jp-recommendations footer{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}.jp-recommendations footer i{padding:3px 6px;border-radius:99px;background:#e9f5f2;color:#34777a;font-size:9px;font-style:normal}
.jp-chat-actions{display:flex;flex:0 0 auto;gap:8px;padding:8px 16px 0}.jp-chat-actions button{flex:1;padding:9px 11px;border:1px solid #c4ded9;border-radius:11px;background:#fff;color:#276d72;font:inherit;font-size:11px}.jp-chat-actions .jp-quote{border-color:transparent;background:#e0f2ec;color:#176d68}.jp-human-mode .jp-chat-actions{display:none}
.jp-quick form{display:flex;align-items:end;flex:0 0 auto;gap:8px;margin:0;padding:10px 16px 8px}.jp-quick form textarea{min-height:42px;max-height:96px;margin:0;padding:11px 13px;resize:none;border:1px solid #c5ddd9;border-radius:14px;background:#fff;font-size:13px;line-height:1.45}.jp-quick form textarea:focus{border-color:#55a9a3;outline:3px solid rgba(85,169,163,.12)}.jp-quick form .jp-send{display:grid;width:42px;height:42px;flex:0 0 42px;place-items:center;padding:0;border-radius:13px;background:linear-gradient(145deg,#137c83,#28928d);font-size:19px}.jp-quick button:disabled{cursor:wait;opacity:.55}.jp-status{flex:0 0 auto;margin:0;padding:0 17px 13px;color:#789196;font-size:9px;line-height:1.5}
@media(max-width:600px){.jp-quick{right:10px;bottom:10px}.jp-launch{min-width:0;padding:8px}.jp-launch>span:nth-child(2),.jp-launch>i{display:none}.jp-launch-icon{width:42px;height:42px}.jp-quick-box{position:fixed;right:8px;bottom:8px;left:8px;width:auto;height:auto;max-width:none;max-height:calc(100dvh - 16px);border-radius:22px;transform-origin:bottom center}.jp-chat-head{padding:14px}.jp-chat-body{max-height:calc(100dvh - 230px);padding:13px 13px 6px}.jp-intro{padding:15px}.jp-chat-actions{padding-right:13px;padding-left:13px}.jp-quick form{padding-right:13px;padding-left:13px}.jp-status{padding-right:14px;padding-left:14px}.journey-detail-actions{bottom:72px!important}}
@media(prefers-reduced-motion:reduce){.jp-launch{transition:none}.jp-typing span{animation:none}}

/* Hover feedback changes colour and border without moving text or hit areas. */
.hotel-card-shell:hover,.hotel-card:hover,.hotel-card:hover .hotel-photo img,
.jp-launch:hover,.jp-quick button:hover,.jp-quick button:active,
.journey-primary:hover,.journey-secondary:hover,.nav-consult:hover{transform:none!important}
.hotel-card-shell,.jp-launch,.jp-quick button{transition-property:background-color,border-color,box-shadow,color,opacity}

/* Weather and consultation use the same floating surface and movable header. */
.weather-widget{z-index:1001!important}
.weather-fab,.jp-launch{min-height:58px!important;border:1px solid rgba(255,255,255,.86)!important;border-radius:999px!important;background:rgba(240,250,248,.95)!important;box-shadow:0 14px 38px rgba(12,65,75,.19)!important;backdrop-filter:blur(22px);color:#173f46!important;touch-action:none;cursor:grab}
.weather-fab{width:218px!important;grid-template-columns:36px minmax(0,1fr) auto!important;grid-template-rows:repeat(2,auto);gap:1px 8px!important;padding:9px 10px!important;text-align:left}
.weather-fab>span{grid-column:1!important;grid-row:1/3!important;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:linear-gradient(145deg,#0c7b84,#39a49a);color:#fff}
.weather-fab>b{grid-column:2!important;grid-row:1!important;width:auto!important;min-width:0!important;font-size:13px!important;font-weight:650!important}
.weather-fab>small{grid-column:2!important;grid-row:2!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#618087!important;font-size:10px!important}
.weather-fab>i{grid-column:3!important;grid-row:1/3!important;align-self:center;padding:7px 10px;border-radius:999px;background:#fff;color:#16727b;font-size:11px}
.weather-popover,.jp-quick-box{width:min(420px,calc(100vw - 24px))!important;max-width:calc(100vw - 24px)!important;border:1px solid rgba(255,255,255,.92)!important;border-radius:26px!important;background:rgba(247,252,250,.97)!important;box-shadow:0 28px 90px rgba(10,57,67,.25)!important;backdrop-filter:blur(28px);transform:none!important}
.weather-popover{position:fixed!important;left:22px;right:auto!important;bottom:92px;max-height:calc(100dvh - 116px);overflow:auto;z-index:1002}
.weather-popover>header,.jp-chat-head{cursor:grab;touch-action:none;user-select:none;background:rgba(247,252,250,.98)!important;color:#173f46!important}
.weather-popover>header:active,.jp-chat-head:active,.weather-fab:active,.jp-launch:active{cursor:grabbing}
.weather-popover>header p,.weather-popover>header h2{color:#173f46!important}
.weather-popover .weather-glass{background:rgba(255,255,255,.72)!important;border-color:#d6e6e2!important;box-shadow:none!important}
.weather-popover .weather-glass{display:grid!important;grid-template-columns:minmax(0,1fr)!important;min-height:0!important}
.weather-popover .weather-now{grid-template-columns:auto minmax(0,1fr)!important;gap:10px!important}
.weather-popover .weather-now>span{width:44px;font-size:36px!important}
.weather-popover .weather-now strong{font-size:42px!important}
.weather-popover .weather-now dl{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important}
.weather-popover .weather-location{border-right:0!important;border-bottom:1px solid #d6e6e2!important}
.weather-popover .weather-location{padding:16px!important;border-color:#d6e6e2!important}
.weather-popover .weather-location label,.weather-popover .weather-location small,.weather-popover .weather-state,.weather-popover footer{color:#58777b!important}
.weather-popover .weather-location select{margin-top:8px;min-height:42px;background:#fff!important;color:#173f46!important;border-color:#c5ddd9!important}
.weather-popover .weather-results{padding:16px!important;color:#173f46!important}
.weather-popover .weather-now p,.weather-popover .weather-now small,.weather-popover .weather-now dt,.weather-popover .weather-forecast small,.weather-popover .weather-forecast p{color:#617e83!important}
.weather-popover .weather-forecast{margin-top:14px;overflow-x:auto}
.weather-popover .weather-forecast article{min-width:75px;padding:12px 6px}
@media(max-width:600px){.weather-popover{left:10px;bottom:78px;max-height:calc(100dvh - 98px)}.weather-fab{width:58px!important;min-width:58px}.weather-fab>b,.weather-fab>small,.weather-fab>i{display:none!important}.weather-fab>span{grid-row:1!important}}

/* Shared image and copy edges; card footers align without clipping long names. */
.hotel-card-shell{min-width:0}.hotel-card-shell .hotel-photo{width:100%;aspect-ratio:4/3;flex:none}
.hotel-card-shell .hotel-photo img{display:block;width:100%;height:100%;object-fit:cover}
.hotel-card-shell .hotel-copy{display:flex;flex-direction:column;height:auto;min-height:224px;flex:1 1 auto!important;padding:20px!important;overflow:visible}
.hotel-card-shell .hotel-copy h3{height:auto;min-height:2.7em!important}
.hotel-card-shell .hotel-copy footer{margin-top:auto!important;padding-top:12px;align-items:center}
.hotel-detail-v2 .editorial-list article{align-items:start!important}
.hotel-detail-v2 .editorial-photo{margin:0}.hotel-detail-v2 .editorial-copy{min-width:0;padding-top:0}
.journey-consult-entry{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px;border:1px solid #cfe2df;border-radius:20px;background:#fff}
.journey-consult-entry h3{margin:0 0 8px}.journey-consult-entry p{margin:0;color:#627e84}.journey-consult-entry button{flex:none;cursor:pointer}
.journey-tools-grid{grid-template-columns:minmax(0,1fr);gap:16px}
.journey-tools-grid>*{min-width:0;max-width:100%}
#compare{width:100%;min-width:0}
.journey-compare-controls{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.journey-slot,.journey-slot label{min-width:0}
.journey-slot label{padding-right:26px}
.journey-slot input,.journey-slot select{box-sizing:border-box}
.journey-comparison{min-width:0;max-width:100%}
.journey-table-wrap{width:100%;max-width:100%;overscroll-behavior-x:contain}
.journey-table-wrap table{table-layout:fixed;min-width:0;width:100%}
.journey-table-wrap th,.journey-table-wrap td{min-width:0!important;white-space:normal;overflow-wrap:anywhere;padding:12px;line-height:1.6}
.journey-table-wrap tr>th:first-child{width:110px}
.journey-table-wrap img{display:block;max-width:100%;height:120px}
.journey-table-wrap:focus-visible{outline:2px solid #65bfdc;outline-offset:3px}
.journey-tools-grid>.journey-consult-entry{padding:16px 22px}
@media(max-width:700px){
 .journey-compare-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px}
 .journey-table-wrap table{min-width:calc(110px + var(--compare-hotel-count,2)*160px)}
 .journey-table-wrap th,.journey-table-wrap td{padding:10px;font-size:13px}
 .journey-table-wrap img{height:100px}
}
@media(max-width:440px){.journey-compare-controls{grid-template-columns:1fr}}
.jp-quick-box{position:fixed;right:24px;bottom:92px;width:420px;height:min(660px,calc(100dvh - 116px));max-height:calc(100dvh - 116px);transform:none;transition:opacity .15s,visibility .15s}
.jp-chat-body{flex:1 1 auto;min-height:0;max-height:none;overscroll-behavior:contain}
.jp-chat-head,.jp-chat-actions,.jp-status,.jp-quick form{flex-shrink:0}
.jp-trip-form{margin:14px 0;border-top:1px solid #d6e6e2;padding-top:12px}.jp-trip-form>summary{cursor:pointer;font-size:13px;color:#216e74}
.jp-trip-form #inquiry{margin:12px 0 0;padding:12px!important;box-shadow:none!important}
.jp-trip-form #inquiry>h3,.jp-trip-form #inquiry>.kicker{display:none}
.jp-trip-form .journey-inquiry-form{display:grid!important;grid-template-columns:1fr!important;gap:10px}
.jp-trip-form .journey-inquiry-form>*{min-width:0;grid-column:1!important}
.jp-trip-form label{display:block}.jp-trip-form input[type=checkbox]{width:auto}
@media(max-width:600px){
 .journey-consult-entry{align-items:flex-start;flex-direction:column}
 .jp-quick-box{left:10px;right:10px;bottom:78px;width:auto;height:min(640px,calc(100dvh - 98px));max-height:calc(100dvh - 98px)}
 .hotel-card-shell .hotel-copy{min-height:210px;padding:16px!important}
}

/* Preserve the original blue page palette; give navigation a quiet editorial treatment. */
.hero .nav.shell{width:min(1220px,calc(100% - 48px));max-width:1220px;height:68px;top:14px;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.hero .nav:after{display:none}
.hero .nav:hover,.hero .nav:has(:focus-visible){background:transparent;backdrop-filter:none}
.hero .nav .brand img{width:108px;max-height:59px}
.hero .navlinks{gap:2px;margin:auto;padding:4px 10px;background:rgba(16,23,31,.14);border:1px solid rgba(255,255,255,.24);border-radius:999px;font-size:13px;font-weight:600;box-shadow:0 8px 24px rgba(0,0,0,.13);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.hero .navlinks a{padding:13px 15px;border-radius:999px;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.45)}
.hero .navlinks a:hover,.hero .navlinks a:focus-visible{background:rgba(255,255,255,.18);color:#fff}
.hero .nav-consult{background:rgba(16,23,31,.14);border:1px solid rgba(255,255,255,.32);border-radius:999px;color:#fff;font-size:13px;font-weight:700;padding:13px 19px;box-shadow:0 8px 24px rgba(0,0,0,.12);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);text-shadow:0 1px 6px rgba(0,0,0,.45)}
.hero .nav-consult:hover{background:rgba(255,255,255,.2);color:#fff}
/* Hero actions share the navigation's neutral transparent surface and geometry. */
.hero .hero-buttons{gap:12px;align-items:center}
.hero .hero-buttons .primary,.hero .hero-buttons .ghost{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;height:48px;padding:0 20px;border:1px solid rgba(255,255,255,.32);border-radius:999px;background:rgba(16,23,31,.14);color:#fff;font-size:13px;font-weight:700;letter-spacing:0;line-height:1;white-space:nowrap;box-shadow:0 8px 24px rgba(0,0,0,.12);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);text-shadow:0 1px 6px rgba(0,0,0,.45);transition:background-color .2s,border-color .2s,box-shadow .2s}
.hero .hero-buttons .primary:hover,.hero .hero-buttons .ghost:hover,.hero .hero-buttons .primary:focus-visible,.hero .hero-buttons .ghost:focus-visible{transform:none;background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.52);color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.12)}
.hero .hero-buttons .primary span{font-size:15px;line-height:1}
@media(min-width:901px){
 .hero .nav .navlinks,.hero .nav .nav-consult{opacity:1;visibility:visible;pointer-events:auto;transform:none}
}
.hotel-detail-v2 .detail-nav{height:68px;margin-top:14px;margin-bottom:14px;padding:0 18px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.62);border-radius:999px;color:#244b61;box-shadow:0 9px 24px rgba(0,0,0,.09);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.hotel-detail-v2 .detail-nav .brand{padding:0;background:transparent;border-radius:0}
.hotel-detail-v2 .detail-nav .brand img{width:105px;max-height:57px;filter:brightness(0) saturate(100%) invert(21%) sepia(30%) saturate(1040%) hue-rotate(165deg)}
.hotel-detail-v2 .detail-nav>div{gap:24px;font-size:13px;font-weight:600;letter-spacing:.02em}
.hotel-detail-v2 .detail-nav>div a:not(.detail-contact-link){color:#244b61}
.hotel-detail-v2 .detail-nav>div a:not(.detail-contact-link):hover{color:#147d9f}
.hotel-detail-v2 .detail-nav .detail-contact-link{padding:11px 17px;background:rgba(255,255,255,.16);border:1px solid rgba(40,76,96,.18);border-radius:999px;color:#193c52;font-size:13px;font-weight:700;letter-spacing:0;box-shadow:none}
.hotel-detail-v2 .detail-nav .detail-contact-link:hover{background:rgba(255,255,255,.6)}
.hotel-detail-v2 .detail-anchor-bar{background:rgba(255,255,255,.48);border-bottom:1px solid rgba(40,76,96,.12);box-shadow:none;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.hotel-detail-v2 .detail-anchor-bar a{font-size:12px;font-weight:600;letter-spacing:.03em;color:#365d70}
.hotel-detail-v2 .detail-anchor-bar a:hover{color:#147d9f}
.hotel-detail-v2 .detail-hero-v2>small{color:rgba(255,255,255,.9);font-size:11px}
.hotel-detail-v2 .hero-tags span{font-size:11px}
.hotel-detail-v2 .best-for small{font-size:12px;color:#527384}
.hotel-detail-v2 .best-for span{font-size:12px}
.hotel-detail-v2 .fact-strip-v2 small{font-size:11px;color:#3d718b}
.hotel-detail-v2 .fact-strip-v2 span{font-size:12px;color:#526f7d}
.hotel-detail-v2 .editorial-copy small,.hotel-detail-v2 .dining-mosaic small{font-size:11px;color:#3d718b}
.kicker:not(.light){color:#50778a;font-size:12px;letter-spacing:.17em}
.kicker.light{color:rgba(255,255,255,.88);font-size:12px}
.manifesto>div:last-child>p,.section-title>p,.editorial-head>p,.detail-intro-copy>p,.hotel-detail-v2 .editorial-copy p,.hotel-detail-v2 .experience-section p{color:#456879}
.manifesto-facts,.hotel-copy p,.hotel-copy small,.hotel-copy .chips,.journey-tools p,.site-footer p,.site-footer small,.feedback-grid footer small,.photo-pending,.archive-no-photo{color:#527385}
.hotel-copy p,.hotel-copy small,.site-footer p,.site-footer small,.feedback-grid footer small{font-size:12px;line-height:1.55}
.hero-foot>p,.hero-foot small{color:rgba(255,255,255,.86);font-size:11px}
@media(max-width:900px){
 .hero .nav.shell{height:64px;top:10px;padding:0 16px;background:rgba(16,23,31,.14);border:1px solid rgba(255,255,255,.24);border-radius:999px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);flex-wrap:nowrap}
 .hero .nav .brand{flex:0 0 auto}
 .hero .nav .brand img{filter:brightness(0) invert(1)}
 .hero .navlinks{position:static;display:flex;flex:1 1 auto;width:auto;max-width:none;min-width:0;flex-direction:row;flex-wrap:nowrap;gap:2px;overflow-x:auto;overflow-y:hidden;margin:0 0 0 12px;padding:4px 0;background:transparent;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;scroll-snap-type:x proximity;scrollbar-width:thin;overscroll-behavior-x:contain;touch-action:pan-x;-webkit-overflow-scrolling:touch}
 .hero .navlinks a{width:auto;flex:0 0 auto;padding:10px 13px;border:0;white-space:nowrap;scroll-snap-align:start}
 .hero .navlinks::-webkit-scrollbar{height:3px}
 .hero .navlinks::-webkit-scrollbar-track{background:transparent}
 .hero .navlinks::-webkit-scrollbar-thumb{border-radius:999px;background:rgba(255,255,255,.42)}
 .hero .nav .navlinks,.hero .nav .navlinks:not(.open){display:flex;opacity:1;visibility:visible;pointer-events:auto;transform:none}
 .hero .nav .menu{display:none}
 .hero .nav .nav-consult{display:none}
}
@media(max-width:560px){
 .hero .hero-buttons{align-items:stretch;gap:10px}
 .hero .hero-buttons .primary,.hero .hero-buttons .ghost{width:min(100%,280px)}
}
@media(max-width:560px){
 .hotel-detail-v2 .detail-nav{height:70px;padding:0 14px;border-radius:999px}
 .hotel-detail-v2 .detail-nav .brand img{width:86px;max-height:49px}
 .hotel-detail-v2 .detail-nav>div{gap:10px}
 .hotel-detail-v2 .detail-nav .detail-contact-link{font-size:12px;padding:10px 12px}
 .hotel-detail-v2 .detail-anchor-bar a{font-size:12px}
}
/* Hotel pages keep links visible directly after the logo on narrow screens. */
@media(max-width:900px){
 .hotel-detail-v2 .detail-nav{height:70px;min-height:70px;flex-wrap:nowrap;gap:10px}
 .hotel-detail-v2 .detail-nav .brand{flex:0 0 auto}
 .hotel-detail-v2 .detail-nav>div{display:flex;flex:1 1 auto;min-width:0;justify-content:flex-start;gap:2px;overflow-x:auto;overflow-y:hidden;padding:4px 0;scroll-snap-type:x proximity;scrollbar-width:thin;overscroll-behavior-x:contain;touch-action:pan-x;-webkit-overflow-scrolling:touch}
 .hotel-detail-v2 .detail-nav>div a{display:inline-flex!important;align-items:center;flex:0 0 auto;padding:10px 13px;white-space:nowrap;scroll-snap-align:start}
 .hotel-detail-v2 .detail-nav>div .detail-contact-link{margin-left:2px}
 .hotel-detail-v2 .detail-nav>div::-webkit-scrollbar{height:3px}
 .hotel-detail-v2 .detail-nav>div::-webkit-scrollbar-thumb{border-radius:999px;background:rgba(40,76,96,.32)}
}

/* Edge-docked launchers leave a named, clickable tab visible. */
.jp-quick .jp-launch,.weather-widget .weather-fab{background:rgba(247,252,250,.97)!important;color:#173f46!important}
.jp-launch,.weather-fab{position:relative;transition:transform .24s ease,box-shadow .24s ease}
.jp-quick[data-edge="left"]:not(.open) .jp-launch:not(:hover):not(:focus-visible),
.weather-widget[data-edge="left"]:not(.open) .weather-fab:not(:hover):not(:focus-visible){transform:translateX(calc(-100% + 44px))}
.jp-quick[data-edge="right"]:not(.open) .jp-launch:not(:hover):not(:focus-visible),
.weather-widget[data-edge="right"]:not(.open) .weather-fab:not(:hover):not(:focus-visible){transform:translateX(calc(100% - 44px))}
.jp-quick[data-edge]:not(.open) .jp-launch:hover,
.weather-widget[data-edge]:not(.open) .weather-fab:hover{transform:none}
.jp-quick[data-edge]:not(.open) .jp-launch::after,
.weather-widget[data-edge]:not(.open) .weather-fab::after{position:absolute;top:0;bottom:0;width:52px;display:grid;place-items:center;border-radius:999px;background:#24545a;color:#fff;font-size:11px;font-weight:700;letter-spacing:0;pointer-events:none;transition:opacity .15s}
.jp-quick[data-edge]:not(.open) .jp-launch::after{content:"咨询"}
.jp-quick[data-edge]:not(.open) .jp-launch::after{background:rgba(247,252,250,.97);color:#173f46;box-shadow:inset 0 0 0 1px rgba(25,95,100,.14)}
.weather-widget[data-edge]:not(.open) .weather-fab::after{content:"天气"}
.weather-widget[data-edge]:not(.open) .weather-fab::after{background:rgba(247,252,250,.97);color:#173f46;box-shadow:inset 0 0 0 1px rgba(25,95,100,.14)}
.jp-quick[data-edge]:not(.open) .jp-launch::after,.weather-widget[data-edge]:not(.open) .weather-fab::after{outline:2px solid rgba(238,251,252,.96);outline-offset:-3px;box-shadow:inset 0 0 0 1px rgba(25,95,100,.16),0 3px 12px rgba(10,57,67,.15)}
.jp-quick[data-edge="left"] .jp-launch::after,.weather-widget[data-edge="left"] .weather-fab::after{right:0}
.jp-quick[data-edge="right"] .jp-launch::after,.weather-widget[data-edge="right"] .weather-fab::after{left:0}
.jp-quick[data-edge]:not(.open) .jp-launch:hover::after,
.jp-quick[data-edge]:not(.open) .jp-launch:focus-visible::after,
.weather-widget[data-edge]:not(.open) .weather-fab:hover::after,
.weather-widget[data-edge]:not(.open) .weather-fab:focus-visible::after{opacity:0}
@media(prefers-reduced-motion:reduce){.jp-quick[data-edge] .jp-launch,.weather-widget[data-edge] .weather-fab{transition:none}}

/* Keep compact navigation and floating controls in the site's body-text family. */
.hero .navlinks,.hero .nav-consult,.hero .hero-buttons .primary,.hero .hero-buttons .ghost,.hotel-detail-v2 .detail-nav>div,.hotel-detail-v2 .detail-nav .detail-contact-link,.weather-widget .weather-fab,.jp-quick .jp-launch{font-family:Arial,"Noto Sans SC",sans-serif;font-weight:500;letter-spacing:0}
.hero .navlinks a,.hero .nav-consult,.hero .hero-buttons .primary,.hero .hero-buttons .ghost,.hotel-detail-v2 .detail-nav>div a,.weather-widget .weather-fab>b,.jp-quick .jp-launch b{font-weight:500}
.jp-quick[data-edge]:not(.open) .jp-launch::after,.weather-widget[data-edge]:not(.open) .weather-fab::after{font-family:Arial,"Noto Sans SC",sans-serif;font-weight:500}
.weather-widget .weather-fab>b{font-family:Arial,"Noto Sans SC",sans-serif;font-weight:500!important}

/* Optional hero video sits in the existing photo layer; photographs remain the fallback. */
.hero-slides>.hero-video,.detail-hero-v2>.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transition:opacity .45s ease}
.hero-slides>.hero-video{z-index:1}
.hero-slides.is-video>.hero-video,.detail-hero-v2.is-video>.hero-video{opacity:1}
.hero:has(.hero-slides.is-video) .hero-dots{display:none!important}
.detail-hero-v2{isolation:isolate}
.detail-hero-v2>.hero-video{z-index:0}
.detail-hero-v2.is-video::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(9,35,55,.4),rgba(9,35,55,.06) 75%);pointer-events:none}
.detail-hero-v2>div{position:relative;z-index:2}
.detail-hero-v2>small{z-index:2}
@media(prefers-reduced-motion:reduce){.hero-slides>.hero-video,.detail-hero-v2>.hero-video{transition:none}}

/* Photo-led hotel detail cards. Deliberately limited to secondary-page sections. */
.hotel-detail-v2 :is(#villas,#rooms).editorial-section{background:#e9efe7;color:#173e3e;padding-top:clamp(56px,6vw,96px);padding-bottom:clamp(58px,7vw,108px)}
.hotel-detail-v2 :is(#villas,#rooms) .editorial-head{align-items:end;margin-bottom:36px;gap:28px}
.hotel-detail-v2 :is(#villas,#rooms) .editorial-head h2{max-width:790px;font-size:clamp(36px,5vw,68px);font-weight:400;line-height:1.15;letter-spacing:.025em;color:#183f3e}
.hotel-detail-v2 :is(#villas,#rooms) .editorial-head>p{max-width:470px;font-size:clamp(14px,1.25vw,18px);line-height:1.75;color:#708d82}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px;margin:30px 0 44px}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-filters{display:flex;flex-wrap:wrap;gap:10px 12px;min-width:0}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-controls [data-room-filter]{min-height:48px;padding:11px 24px;border:1px solid #cbd9ce;border-radius:999px;background:transparent;color:#47766e;font:500 15px/1.2 Arial,"Noto Sans SC",sans-serif;letter-spacing:.02em;cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-controls [data-room-filter]:hover{border-color:#5d8177;background:#f5f8f2}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-controls [data-room-filter].active,.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-controls [data-room-filter][aria-pressed="true"]{background:#204c46;border-color:#204c46;color:#fff}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-controls [data-room-filter]:focus-visible,.hotel-detail-v2 :is(#villas,#rooms) .room-photo-link:focus-visible{outline:3px solid #3f9e91;outline-offset:3px}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-count{margin-left:auto;color:#6c8c80;font-size:14px;white-space:nowrap}
.hotel-detail-v2 :is(#villas,#rooms) .editorial-list.room-showcase-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;column-gap:clamp(20px,3.3vw,48px);row-gap:clamp(44px,5vw,76px)}
.hotel-detail-v2 :is(#villas,#rooms) .editorial-list.room-showcase-grid>article.room-showcase-card,.hotel-detail-v2 :is(#villas,#rooms) .editorial-list.room-showcase-grid>article.room-showcase-card.reverse{display:flex;flex-direction:column;align-items:stretch!important;min-width:0;gap:0!important;margin:0;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-card .editorial-photo.room-showcase-photo{position:relative;order:0;display:block;width:100%;height:auto!important;min-height:0;aspect-ratio:1.42;overflow:hidden;border-radius:2px;background:#d5e1da}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-photo>img,.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-photo>video{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;display:block;object-fit:cover;object-position:center}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-photo>.room-photo-trigger{position:absolute;inset:0;display:block;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;cursor:zoom-in;overflow:hidden}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-photo>.room-photo-trigger>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .55s ease}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-photo>.room-photo-trigger:focus-visible{outline:3px solid #e4ffff;outline-offset:-4px}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-photo>img{transition:transform .55s ease}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-card:hover .room-showcase-photo>img{transform:scale(1.025)}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-card:hover .room-photo-trigger>img{transform:scale(1.025)}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-photo::after{content:"";position:absolute;z-index:1;left:0;right:0;bottom:0;height:30%;background:linear-gradient(transparent,rgba(12,42,38,.42));pointer-events:none}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-photo>.room-showcase-category{position:absolute;z-index:2;top:20px;left:20px;display:inline-flex!important;width:auto;height:auto;max-width:calc(100% - 40px);min-height:33px;padding:7px 15px;border:1px solid rgba(255,255,255,.76);border-radius:999px;background:rgba(32,72,65,.68);color:#fff;font:600 11px/1.3 Arial,"Noto Sans SC",sans-serif;letter-spacing:.12em;white-space:nowrap;backdrop-filter:blur(5px)}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-photo>.room-photo-link{position:absolute;z-index:2;right:19px;bottom:17px;display:inline-flex!important;align-items:center;justify-content:center;gap:12px;width:auto;height:auto;padding:8px 2px;background:transparent;border:0;color:#fff;font:600 14px/1.3 Arial,"Noto Sans SC",sans-serif;letter-spacing:.02em;text-decoration:none;cursor:pointer;text-shadow:0 1px 3px rgba(0,0,0,.4)}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-photo>.room-photo-link:hover{text-decoration:underline;text-underline-offset:5px}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-photo:has(.room-showcase-placeholder){background:linear-gradient(135deg,#dae7df,#edf2ec)}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-photo:has(.room-showcase-placeholder)::after{display:none}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:30px;text-align:center;color:#638378;font-size:14px;line-height:1.7}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-placeholder small{font-size:12px;color:#78978b}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-card .editorial-copy.room-showcase-copy{order:1;max-width:none;min-width:0;padding:23px 2px 0}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-copy small{display:block;font-size:12px;line-height:1.5;letter-spacing:.09em;color:#668f7e}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-copy h3{margin:13px 0 11px;font-size:clamp(24px,2.25vw,35px);font-weight:500;line-height:1.3;color:#173e3e;overflow-wrap:anywhere}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-copy p{max-width:680px;margin:0;font-size:clamp(14px,1.2vw,17px);line-height:1.85;color:#718b7f}
.hotel-detail-v2 :is(#villas,#rooms) .room-description-more{margin:10px 0 0;color:#557a6b}
.hotel-detail-v2 :is(#villas,#rooms) .room-description-more>summary{display:inline-flex;align-items:center;gap:6px;list-style:none;padding:3px 0;color:#276254;font-size:13px;font-weight:600;cursor:pointer}
.hotel-detail-v2 :is(#villas,#rooms) .room-description-more>summary::-webkit-details-marker{display:none}
.hotel-detail-v2 :is(#villas,#rooms) .room-description-more>summary::after{content:"＋";font-size:16px;line-height:1}
.hotel-detail-v2 :is(#villas,#rooms) .room-description-more[open]>summary::after{content:"−"}
.hotel-detail-v2 :is(#villas,#rooms) .room-description-more>summary:focus-visible{outline:2px solid #3f9e91;outline-offset:3px}
.hotel-detail-v2 :is(#villas,#rooms) .room-description-more>p{margin-top:9px;white-space:pre-wrap}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-copy>div{margin-top:12px;color:#6b897d;font-size:13px;line-height:1.6}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-card[hidden]{display:none!important}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-grid>article.room-showcase-card.is-unpictured{padding:20px!important;background:rgba(255,255,255,.48)!important;border:1px solid #d4e1d6!important;border-radius:4px}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-card.is-unpictured .room-showcase-photo{height:auto!important;min-height:0;aspect-ratio:auto!important;margin:0 0 9px;background:none!important;overflow:visible}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-card.is-unpictured .room-showcase-placeholder{position:static;display:block;padding:0;text-align:left;font-size:13px;font-weight:600;color:#648278}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-card.is-unpictured .room-showcase-placeholder small{display:inline;margin-left:8px;font-size:12px;font-weight:400}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-card.is-unpictured .room-showcase-category{display:none!important}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-card.is-unpictured .room-showcase-copy{padding:0}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-sources{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 16px;margin:34px 0 0;padding:18px 0 0;border-top:1px solid #cadbd0;color:#6d8c7e;font-size:12px;line-height:1.6}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-sources>div{display:flex;flex-wrap:wrap;gap:8px 16px;min-width:0}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-sources a{color:#285e54;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-sources a:hover{color:#143f38}
@media(min-width:900px){.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-grid>.room-showcase-card:nth-child(odd){padding-top:20px}}

/* Image-backed dining/facility cards share the large-image rhythm, not text-only cards. */
.hotel-detail-v2 #dining.editorial-section{background:#f1f4ed}
.hotel-detail-v2 .editorial-section .dining-mosaic{column-gap:clamp(20px,3.3vw,48px);row-gap:clamp(44px,5vw,76px)}
.hotel-detail-v2 .editorial-section .dining-mosaic .hotel-media-card{min-width:0}
.hotel-detail-v2 .editorial-section .dining-mosaic .hotel-media-card>div{height:auto!important;min-height:0;aspect-ratio:1.42;border-radius:2px}
.hotel-detail-v2 .editorial-section .dining-mosaic .hotel-media-card>div>img,.hotel-detail-v2 .editorial-section .dining-mosaic .hotel-media-card>div>video{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.hotel-detail-v2 .editorial-section .dining-mosaic .hotel-media-card h3{margin:12px 0;font-size:clamp(23px,2.2vw,33px);font-weight:500;line-height:1.32;color:#173e3e}
.hotel-detail-v2 .editorial-section .dining-mosaic .hotel-media-card p{font-size:clamp(14px,1.2vw,17px);line-height:1.8;color:#718b7f}
.hotel-detail-v2 #experiences.experience-section:has(.experience-grid .hotel-media-card){background:#e9efe7;color:#173e3e}
.hotel-detail-v2 #experiences.experience-section:has(.experience-grid .hotel-media-card)>.shell{grid-template-columns:1fr;gap:32px}
.hotel-detail-v2 #experiences.experience-section:has(.experience-grid .hotel-media-card) header{max-width:820px}
.hotel-detail-v2 #experiences.experience-section:has(.experience-grid .hotel-media-card) .kicker,.hotel-detail-v2 #experiences.experience-section:has(.experience-grid .hotel-media-card) header>p:last-child{color:#658879}
.hotel-detail-v2 #experiences.experience-section:has(.experience-grid .hotel-media-card) .experience-grid{column-gap:clamp(20px,3.3vw,48px);row-gap:clamp(38px,4vw,60px)}
.hotel-detail-v2 #experiences.experience-section:has(.experience-grid .hotel-media-card) .experience-grid article{padding:0;border:0;min-width:0}
.hotel-detail-v2 #experiences.experience-section:has(.experience-grid .hotel-media-card) .experience-grid article>img{display:block;width:100%;height:auto;aspect-ratio:1.42;object-fit:cover;border-radius:2px;margin-bottom:18px}
.hotel-detail-v2 #experiences.experience-section:has(.experience-grid .hotel-media-card) .experience-grid article>span{color:#668f7e;font-size:12px}
.hotel-detail-v2 #experiences.experience-section:has(.experience-grid .hotel-media-card) .experience-grid article>h3{color:#173e3e;font-size:clamp(23px,2.2vw,33px);font-weight:500}
.hotel-detail-v2 #experiences.experience-section:has(.experience-grid .hotel-media-card) .experience-grid article>p{color:#718b7f;font-size:clamp(14px,1.2vw,17px);line-height:1.8}
.hotel-detail-v2 .cms-tab-cards:has(.hotel-media-card){column-gap:clamp(20px,3.3vw,48px);row-gap:clamp(42px,4.6vw,70px)}
.hotel-detail-v2 .cms-tab-cards>article.hotel-media-card{border:0;border-radius:0;background:transparent;box-shadow:none}
.hotel-detail-v2 .cms-tab-cards>article.hotel-media-card>img,.hotel-detail-v2 .cms-tab-cards>article.hotel-media-card>video{aspect-ratio:1.42;object-fit:cover;border-radius:2px}
.hotel-detail-v2 .cms-tab-cards>article.hotel-media-card>div{padding:19px 0 0}
.hotel-detail-v2 .cms-tab-cards>article.hotel-media-card h3{margin:10px 0;font-size:clamp(23px,2.2vw,33px);font-weight:500;line-height:1.32;color:#173e3e}
.hotel-detail-v2 .cms-tab-cards>article.hotel-media-card p{font-size:clamp(14px,1.2vw,17px);line-height:1.8;color:#718b7f}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-empty{margin:32px 0;color:#66877a;font-size:16px}

/* Full-resolution room preview keeps the original image intact and credits its source. */
.room-lightbox{width:min(1360px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);margin:auto;padding:0;border:0;border-radius:12px;background:#ebf1e9;color:#173e3e;box-shadow:0 24px 70px rgba(0,23,24,.36);overflow:auto}
.room-lightbox::backdrop{background:rgba(3,26,27,.84);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.room-lightbox[hidden]{display:none!important}
.room-lightbox [hidden]{display:none!important}
.room-lightbox-panel{position:relative;display:grid;grid-template-columns:minmax(0,1.85fr) minmax(280px,.7fr);min-height:min(660px,82dvh);overflow:hidden}
.room-lightbox-media{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:460px;background:#122c2d;overflow:hidden}
.room-lightbox-media>img,.room-lightbox-media>video{display:block;width:100%;height:100%;max-height:calc(100dvh - 32px);object-fit:contain;object-position:center}
.room-lightbox-media>video{max-width:100%}
.room-lightbox-close,.room-lightbox-prev,.room-lightbox-next{position:absolute;z-index:3;display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid rgba(255,255,255,.68);border-radius:999px;background:rgba(20,52,49,.66);color:#fff;font:500 24px/1 Arial,sans-serif;cursor:pointer;backdrop-filter:blur(5px)}
.room-lightbox-close{top:18px;right:18px;background:rgba(20,52,49,.86)}
.room-lightbox-prev,.room-lightbox-next{top:50%;transform:translateY(-50%)}
.room-lightbox-prev{left:18px}.room-lightbox-next{right:18px}
.room-lightbox :is(.room-lightbox-close,.room-lightbox-prev,.room-lightbox-next):hover{background:#204c46}
.room-lightbox :is(.room-lightbox-prev,.room-lightbox-next):disabled{opacity:.35;cursor:default}
.room-lightbox :is(button,a):focus-visible{outline:3px solid #49c0ad;outline-offset:3px}
.room-lightbox-info{display:flex;flex-direction:column;align-items:flex-start;gap:0;min-width:0;padding:clamp(28px,3vw,46px);padding-top:70px;overflow-y:auto}
.room-lightbox-hotel{display:block;margin:0 0 14px;color:#658779;font-size:12px;letter-spacing:.08em}
.room-lightbox-info h2{margin:0 0 20px;font-size:clamp(27px,2.8vw,43px);font-weight:500;line-height:1.22;overflow-wrap:anywhere}
.room-lightbox-info p{margin:0 0 16px;color:#597c6e;font-size:clamp(14px,1.2vw,17px);line-height:1.8;white-space:pre-line;overflow-wrap:anywhere}
.room-lightbox-counter{display:inline-flex;align-items:center;margin:0 0 25px;padding:7px 12px;border:1px solid #bfd2c6;border-radius:999px;color:#477366;font-size:12px;letter-spacing:.04em}
.room-lightbox-source{display:inline-block;margin-top:auto;color:#235c50;font-size:13px;line-height:1.5;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}
.room-lightbox-hotel-link{display:inline-flex;align-items:center;justify-content:center;min-height:43px;margin-top:22px;padding:10px 19px;border-radius:999px;background:#204c46;color:#fff;font-size:13px;text-decoration:none}
.room-lightbox-hotel-link:hover{background:#123c37}
@media(max-width:850px){
 .room-lightbox-panel{grid-template-columns:1fr;min-height:0}
 .room-lightbox-media{height:min(60dvh,650px);min-height:280px}
 .room-lightbox-media>img,.room-lightbox-media>video{max-height:100%;height:100%}
 .room-lightbox-info{padding:24px;max-height:none}
 .room-lightbox-close{top:12px;right:12px}
}
@media(max-width:480px){
 .room-lightbox{width:calc(100vw - 12px);max-height:calc(100dvh - 12px);border-radius:7px}
 .room-lightbox-media{height:min(52dvh,480px);min-height:240px}
 .room-lightbox-info{padding:20px}
 .room-lightbox-prev,.room-lightbox-next{width:36px;height:36px;font-size:20px}
 .room-lightbox-prev{left:8px}.room-lightbox-next{right:8px}
}
@media(max-width:850px){
 .hotel-detail-v2 :is(#villas,#rooms) .editorial-head{grid-template-columns:1fr;gap:10px}
 .hotel-detail-v2 :is(#villas,#rooms) .room-showcase-controls{margin:24px 0 32px}
 .hotel-detail-v2 :is(#villas,#rooms) .room-showcase-controls [data-room-filter]{min-height:44px;padding:9px 18px}
}
@media(max-width:700px){
 .hotel-detail-v2 :is(#villas,#rooms) .editorial-list.room-showcase-grid{grid-template-columns:1fr;row-gap:42px}
 .hotel-detail-v2 :is(#villas,#rooms) .room-showcase-grid>.room-showcase-card:nth-child(odd){padding-top:0}
 .hotel-detail-v2 :is(#villas,#rooms) .room-showcase-card .editorial-photo.room-showcase-photo{aspect-ratio:1.28}
 .hotel-detail-v2 :is(#villas,#rooms) .room-showcase-count{flex-basis:100%;margin:6px 0 0}
 .hotel-detail-v2 .editorial-section .dining-mosaic{grid-template-columns:1fr;row-gap:42px}
 .hotel-detail-v2 #experiences.experience-section:has(.experience-grid .hotel-media-card) .experience-grid{grid-template-columns:1fr}
}
@media(max-width:480px){
 .hotel-detail-v2 :is(#villas,#rooms) .editorial-head h2{font-size:clamp(32px,9vw,42px)}
 .hotel-detail-v2 :is(#villas,#rooms) .room-showcase-controls{gap:8px}
 .hotel-detail-v2 :is(#villas,#rooms) .room-showcase-controls [data-room-filter]{font-size:13px;padding:9px 14px}
 .hotel-detail-v2 :is(#villas,#rooms) .room-showcase-photo>.room-showcase-category{top:12px;left:12px;padding:6px 11px;font-size:10px}
 .hotel-detail-v2 :is(#villas,#rooms) .room-showcase-photo>.room-photo-link{right:12px;bottom:10px;font-size:12px}
 .hotel-detail-v2 :is(#villas,#rooms) .room-showcase-card .editorial-copy.room-showcase-copy{padding-top:17px}
}

/* Keep the compact hotel navigation in normal page flow, not attached to the viewport. */
.hotel-detail-v2 .detail-nav{position:relative;top:auto;z-index:5;width:fit-content;max-width:calc(100% - 32px);height:58px;min-height:58px;margin:8px auto 10px max(16px,calc((100vw - 1220px)/2));padding:0 12px;justify-content:flex-start;gap:12px;background:rgba(244,250,251,.82);border:1px solid rgba(44,95,113,.16);border-radius:999px;box-shadow:0 5px 18px rgba(24,77,94,.09);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.hotel-detail-v2 .detail-nav .brand img{width:87px;max-height:49px}
.hotel-detail-v2 .detail-nav>div{gap:2px;font-size:12px}
.hotel-detail-v2 .detail-nav>div a{display:inline-flex;align-items:center;flex:0 0 auto;min-height:38px;padding:9px 11px;border-radius:999px;white-space:nowrap}
.hotel-detail-v2 .detail-nav>div a:hover,.hotel-detail-v2 .detail-nav>div a:focus-visible{background:rgba(42,113,139,.1)}
.hotel-detail-v2 .detail-nav .detail-contact-link{padding:9px 12px;background:rgba(255,255,255,.42);border-color:rgba(40,76,96,.14);font-size:12px;box-shadow:none}
.hotel-detail-v2 .detail-anchor-bar{display:none!important}
.hotel-detail-v2 .detail-hero-v2{min-height:clamp(360px,55svh,610px);padding-bottom:32px}
.hotel-detail-v2 .detail-intro{padding-top:38px;padding-bottom:38px;gap:30px}
.hotel-detail-v2 .fact-strip-v2>div{padding:16px 18px}
.hotel-detail-v2 .cinematic-gallery{padding:0!important;margin-top:20px;margin-bottom:20px;gap:14px}
.hotel-detail-v2 .cinematic-gallery figure{aspect-ratio:16/10}
.hotel-detail-v2 .cinematic-gallery:has(>figure:only-child){grid-template-columns:1fr!important;max-width:min(760px,calc(100% - 34px))}
.hotel-detail-v2 .cinematic-gallery:has(>figure:only-child) figure{aspect-ratio:2/1}
.hotel-detail-v2 .editorial-section,.hotel-detail-v2 .experience-section,.hotel-detail-v2 .hotel-cta-v2{padding-top:42px;padding-bottom:42px}
.hotel-detail-v2 .editorial-head{margin-bottom:22px;gap:20px}
.hotel-detail-v2 .editorial-head h2{font-size:clamp(29px,4vw,42px);line-height:1.2}
.hotel-detail-v2 .editorial-list{gap:20px}
.hotel-detail-v2 .editorial-list article:not(:has(.photo-pending)){gap:22px}
.hotel-detail-v2 .editorial-photo{aspect-ratio:16/10}
.hotel-detail-v2 .dining-mosaic{gap:16px}
.hotel-detail-v2 .dining-mosaic article>div{aspect-ratio:16/10}
.hotel-detail-v2 .experience-section>.shell,.hotel-detail-v2 .decision-section{gap:26px}
.hotel-detail-v2 .decision-section{padding-top:42px;padding-bottom:42px}
.hotel-detail-v2 .journey-detail-actions{position:static!important;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px;margin:18px 0 0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.hotel-detail-v2 .journey-detail-actions a{padding:10px 14px;border:1px solid rgba(40,96,118,.18);border-radius:999px;background:rgba(255,255,255,.65);color:#24556a;font-size:12px}
@media(max-width:600px){
 .hotel-detail-v2 .detail-nav{width:calc(100% - 24px);max-width:none;height:58px;min-height:58px;margin:8px 12px 10px;padding:0 10px;gap:7px}
 .hotel-detail-v2 .detail-nav .brand img{width:76px;max-height:43px}
 .hotel-detail-v2 .detail-nav>div a{min-height:36px;padding:8px 10px}
 .hotel-detail-v2 .detail-hero-v2{min-height:390px}
 .hotel-detail-v2 .detail-intro,.hotel-detail-v2 .editorial-section,.hotel-detail-v2 .experience-section,.hotel-detail-v2 .decision-section,.hotel-detail-v2 .hotel-cta-v2{padding-top:28px;padding-bottom:28px}
 .hotel-detail-v2 .cinematic-gallery{margin-top:14px;margin-bottom:14px}
 .hotel-detail-v2 .editorial-head{margin-bottom:18px}
 .hotel-detail-v2 .editorial-list{gap:18px}
}

/* Keep the existing dark photo overlay visible instead of screening it to white. */
.hotel-detail-v2 .hotel-cta-v2{
 background-color:transparent;
 background-blend-mode:normal;
 color:#fff;
}
.hotel-detail-v2 .hotel-cta-v2 .kicker.light{color:rgba(255,255,255,.94)}
.hotel-detail-v2 .hotel-cta-v2 h2{color:#fff}
.hotel-detail-v2 .hotel-cta-v2>div>p:not(.kicker){color:rgba(255,255,255,.88)}
.hotel-detail-v2 .hotel-cta-v2 a:first-child{background:#70b9d3;border-color:#70b9d3;color:#143c49}
.hotel-detail-v2 .hotel-cta-v2 a:not(:first-child){background:rgba(9,45,56,.6);border-color:rgba(255,255,255,.68);color:#fff}

/* Text-only experience cards should use their content height, even when the title is tall. */
.hotel-detail-v2 #experiences.experience-section:not(:has(.hotel-media-card)) .experience-grid{
 align-self:start;
 align-content:start;
 gap:12px;
}
.hotel-detail-v2 #experiences.experience-section:not(:has(.hotel-media-card)) .experience-grid article{
 min-height:0;
 padding:18px 20px;
 border:1px solid rgba(86,149,167,.2)!important;
}
.hotel-detail-v2 #experiences.experience-section:not(:has(.hotel-media-card)) .experience-grid h3{margin:8px 0 5px}
.hotel-detail-v2 #experiences.experience-section header>p:last-child{color:#426b79;font-size:clamp(13px,1.15vw,16px);line-height:1.75}
.hotel-detail-v2 #experiences.experience-section:has(.experience-grid>article:last-child:nth-child(-n+2)):not(:has(.hotel-media-card)) header h2{
 font-size:clamp(38px,4.1vw,56px);
 line-height:1.18;
}
@media(max-width:850px){
 .hotel-detail-v2 #experiences.experience-section:not(:has(.hotel-media-card)) .experience-grid{width:100%}
}

/* The room invitation stays immediately beneath the heading in both markup variants. */
.hotel-detail-v2 :is(#villas,#rooms) .editorial-head:has(.room-heading-subtitle){grid-template-columns:1fr;gap:0}
.hotel-detail-v2 :is(#villas,#rooms) .editorial-head .room-heading-subtitle{
 max-width:790px;
 margin:14px 0 0;
 color:#648579;
 font:400 clamp(16px,1.45vw,21px)/1.6 Arial,"Noto Sans SC",sans-serif;
 letter-spacing:.035em;
}
@media(max-width:600px){
 .hotel-detail-v2 :is(#villas,#rooms) .editorial-head .room-heading-subtitle{margin-top:9px;font-size:16px}
}

/* Keep a direct, predictable return path visible at the top of every hotel detail page. */
.hotel-detail-v2 .detail-nav .detail-return-link{
 display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
 min-height:38px;padding:0 13px;border:1px solid rgba(40,76,96,.2);border-radius:999px;
 color:#244b61;font:500 12px/1 Arial,"Noto Sans SC",sans-serif;text-decoration:none;white-space:nowrap;
 background:rgba(255,255,255,.26);transition:background-color .2s,border-color .2s;
}
.hotel-detail-v2 .detail-nav .detail-return-link:hover,.hotel-detail-v2 .detail-nav .detail-return-link:focus-visible{
 background:rgba(255,255,255,.78);border-color:rgba(40,76,96,.38);outline:none
}
@media(max-width:700px){
 .hotel-detail-v2 .detail-nav .detail-return-link{min-height:34px;padding:0 9px;font-size:11px}
}
/* Hotel detail pages (Avani layout): facility cards, English names */
.hotel-detail-v2 .experience-features{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 22px;margin-top:8px}
.hotel-detail-v2 .experience-features article{min-width:0}
.hotel-detail-v2 .experience-features article>div{aspect-ratio:16/10;overflow:hidden;border-radius:14px;background:rgba(255,255,255,.5)}
.hotel-detail-v2 .experience-features article>div:has(.photo-pending){display:none}
.hotel-detail-v2 .experience-features img{width:100%;height:100%;display:block;object-fit:cover}
.hotel-detail-v2 .experience-features h3{font-size:19px;margin:14px 0 8px;color:inherit}
.hotel-detail-v2 .experience-features p{font:12px/1.8 Georgia,"Noto Serif SC",serif;color:#456879;margin:0;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.hotel-detail-v2 .room-english{font:12px Georgia,serif;letter-spacing:.04em;color:#7a9298;margin:-4px 0 10px}
.hotel-detail-v2 .dining-mosaic h3 i{font:italic 14px Georgia,serif;color:#7a9298;margin-left:6px}
.hotel-detail-v2 .dining-mosaic article>small{display:block;margin:-4px 0 8px;font-size:11px;color:#3d718b}
.hotel-detail-v2 .best-for div{display:flex;flex-wrap:wrap;gap:8px}
.hotel-detail-v2 .best-for div span{padding:6px 12px;border:1px solid var(--line);border-radius:99px;font-size:12px;color:#456879}
@media(max-width:900px){.hotel-detail-v2 .experience-features{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.hotel-detail-v2 .experience-features{grid-template-columns:1fr}}

.hotel-detail-v2 .cinematic-gallery:has(figure:only-child){grid-template-columns:1fr;grid-template-rows:auto}
.hotel-detail-v2 .cinematic-gallery figure:only-child{aspect-ratio:16/8}
/* Homepage: hotel price sort (relative order only, prices not displayed) */
.filters .hotel-sort{margin-left:auto;display:inline-flex;align-items:center;gap:8px;font-size:12px;color:#456879}
.filters .hotel-sort select{font:inherit;padding:8px 30px 8px 14px;border:1px solid var(--line);border-radius:99px;background:rgba(255,255,255,.75);color:#153b3e;cursor:pointer}
@media(max-width:700px){.filters:has(.hotel-sort){flex-wrap:wrap;overflow:visible}.filters .hotel-sort{margin-left:0;width:100%}.filters .hotel-sort select{flex:1}}

/* ---- 统一版式：缺图占位（与安凡尼菲尔斯岛页面同尺寸） ---- */
.hotel-detail-v2 .media-fill{position:relative;overflow:hidden;background:linear-gradient(135deg,#dae7df,#edf2ec)}
.hotel-detail-v2 .media-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px;text-align:center;color:#5f7f74;font-size:14px;line-height:1.6;background:linear-gradient(135deg,#dae7df,#edf2ec)}
.hotel-detail-v2 .media-placeholder::before{content:'';width:34px;height:26px;border:1.5px solid currentColor;border-radius:5px;opacity:.55;margin-bottom:4px;background:radial-gradient(circle at 70% 32%,currentColor 0 3px,transparent 3.5px),linear-gradient(135deg,transparent 55%,currentColor 56% 60%,transparent 61%)}
.hotel-detail-v2 .media-placeholder small{font-size:12px;color:#7f9a90;letter-spacing:.08em}
.hotel-detail-v2 .media-fill>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hotel-detail-v2 .cinematic-gallery:has(.media-fill){display:grid!important}
.hotel-detail-v2 .cinematic-gallery figure.media-fill figcaption{z-index:1}
.hotel-detail-v2 .dining-mosaic article>div.media-fill,.hotel-detail-v2 .experience-features article>div.media-fill{display:block!important;aspect-ratio:4/3;height:auto!important;padding:0!important}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-card.is-fill-pending .room-showcase-placeholder{position:absolute;inset:0;display:flex;padding:30px;text-align:center;font-size:14px;color:#5f7f74;background:linear-gradient(135deg,#dae7df,#edf2ec)}
.hotel-detail-v2 :is(#villas,#rooms) .room-showcase-card.is-fill-pending .room-showcase-placeholder small{display:block;margin:0;font-size:12px}
.detail-hero-v2.is-fill .fill-note{opacity:.75}

/* 岛屿酒店档案：搜索框与收起按钮 */
#hotels .filters{flex-wrap:wrap;row-gap:10px}
#hotels .hotel-search{display:flex;align-items:center;gap:8px;flex:1 1 260px;max-width:360px;margin-right:auto;padding:0 14px;height:44px;border:1px solid rgba(18,73,84,.18);border-radius:999px;background:rgba(255,255,255,.85)}
#hotels .hotel-search span{color:#4d7c86;font-size:18px;line-height:1}
#hotels .hotel-search input{flex:1 1 auto;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:14px;color:#123f48;height:100%}
#hotels .hotel-search:focus-within{border-color:#2b8a8a;box-shadow:0 0 0 3px rgba(43,138,138,.12)}
#hotels .hotel-search-count{font-size:12px;color:#4d7c86;white-space:nowrap}
#hotels .hotel-search-empty{margin:28px 0;padding:28px;text-align:center;border:1px dashed rgba(18,73,84,.2);border-radius:18px;color:#4d7c86}
#hotels .hotel-stack-collapse:not([hidden]){display:flex;margin:12px auto 0;padding:10px 22px;border-radius:999px;border:1px solid rgba(18,73,84,.2);background:#fff;color:#164e57;font-weight:600;cursor:pointer}
@media(max-width:700px){#hotels .hotel-search{max-width:none;flex-basis:100%}}
#hotels .hotel-cards-toggle{height:44px;padding:0 18px;border-radius:999px;border:1px solid rgba(18,73,84,.2);background:#fff;color:#164e57;font:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}
#hotels .hotel-cards-toggle[hidden]{display:none}
#hotels .archive-grid.is-collapsed{display:none}
