
.room-detail-app{background:var(--paper,#fbf8f0);min-height:70vh}.room-gallery-shell{position:relative;width:100%;height:min(72vh,760px);min-height:420px;overflow:hidden;background:#102c22}.room-gallery-track{height:100%;display:flex;transition:transform .55s cubic-bezier(.22,.61,.36,1);touch-action:pan-y}.room-slide{min-width:100%;height:100%;margin:0;position:relative}.room-slide:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.18));pointer-events:none}.room-slide img{display:block;width:100%;height:100%;object-fit:cover}.room-gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border:1px solid rgba(255,255,255,.55);background:rgba(8,31,24,.36);backdrop-filter:blur(8px);color:#fff;border-radius:50%;font-size:38px;line-height:1;z-index:4;cursor:pointer}.room-gallery-prev{left:28px}.room-gallery-next{right:28px}.room-gallery-dots{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);display:flex;gap:8px;z-index:4}.room-dot{width:8px;height:8px;border:0;border-radius:50%;padding:0;background:rgba(255,255,255,.5);cursor:pointer}.room-dot.is-active{width:28px;border-radius:99px;background:#d7bd8d}.room-gallery-count{position:absolute;right:28px;bottom:25px;color:#fff;font-size:11px;letter-spacing:.12em;background:rgba(8,31,24,.42);padding:9px 12px;backdrop-filter:blur(8px);z-index:4}.room-gallery-empty{height:100%;display:flex;align-items:center;justify-content:center;color:#d7bd8d;font:italic 42px Georgia,serif}.room-detail-content{padding:64px 28px 90px}.room-detail-intro{max-width:900px}.room-detail-intro h1{font:500 clamp(44px,7vw,84px)/.98 var(--serif);color:var(--green);margin:12px 0 24px;letter-spacing:-.025em}.room-description{max-width:780px;color:var(--muted);font-size:17px;line-height:1.8}.room-description p{margin:0 0 16px}.room-facts{margin:42px 0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.room-facts>div{padding:22px 18px;border-right:1px solid var(--line)}.room-facts>div:last-child{border-right:0}.room-facts small{display:block;font-size:9px;font-weight:800;letter-spacing:.12em;color:#8a918c;margin-bottom:7px}.room-facts strong{display:block;font:500 18px/1.25 var(--serif);color:var(--green)}.room-facts em{display:block;font-style:normal;color:#8b7a5e;font-size:12px;margin-top:3px}.room-amenities{max-width:900px;padding:12px 0 36px}.room-amenities p:last-child{font-size:15px;line-height:1.8;color:var(--muted)}.room-booking-cta{margin-top:28px;background:var(--green-deep);color:#fff;padding:34px;display:flex;align-items:center;justify-content:space-between;gap:30px}.room-booking-cta h2{font:500 clamp(28px,4vw,42px) var(--serif);margin:7px 0}.room-booking-cta p:last-child{color:rgba(255,255,255,.72);margin:0}.room-book-now{flex:0 0 auto;min-width:190px}.room-detail-app .eyebrow{color:#9b845a}.room-detail-app .room-booking-cta .eyebrow{color:#d7bd8d}@media(max-width:900px){.room-gallery-shell{height:58vh;min-height:360px}.room-gallery-nav{width:44px;height:44px;font-size:32px}.room-gallery-prev{left:14px}.room-gallery-next{right:14px}.room-gallery-count{right:14px;bottom:16px}.room-gallery-dots{bottom:20px}.room-detail-content{padding:44px 20px 65px}.room-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.room-facts>div{border-bottom:1px solid var(--line)}.room-facts>div:nth-child(2n){border-right:0}.room-facts>div:last-child{grid-column:1/-1}.room-booking-cta{flex-direction:column;align-items:flex-start;padding:28px 22px}.room-book-now{width:100%}}@media(max-width:560px){.room-gallery-shell{height:52vh;min-height:320px}.room-slide img{object-position:center}.room-detail-intro h1{font-size:46px}.room-description{font-size:15px}.room-facts{margin:30px 0;grid-template-columns:1fr 1fr}.room-facts>div{padding:18px 12px}.room-facts strong{font-size:16px}.room-booking-cta h2{font-size:31px}}

/* Autoplay gallery: preserve horizontal slide track during automatic transitions. */
.room-gallery-track{will-change:transform;}
.room-gallery-shell{overscroll-behavior:contain;}
