
.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}}


/* 4.0.5 — delegate room data to the PMS; refine the guest-facing room experience */
.room-single-page{background:var(--paper,#fbf8f0);min-height:70vh;overflow:hidden}
.room-single-inner{width:min(1240px,calc(100% - 48px));margin:0 auto;padding:20px 0 88px}
.room-catalog-back{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 0 16px;margin:0 0 18px;border-bottom:1px solid rgba(23,60,46,.12)}
.room-catalog-back a{display:inline-flex;align-items:center;gap:9px;color:var(--green,#173c2e);font-size:12px;font-weight:900;letter-spacing:.06em;text-decoration:none}
.room-catalog-back a span{font-size:20px;color:#a48a59}
.room-catalog-current{font-size:9px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:#978566}
.room-single-inner .trr-single{margin:0}
.room-single-inner .trr-gallery{height:clamp(300px,42vw,520px);min-height:0;margin:0 0 36px;border:1px solid rgba(23,60,46,.08);border-radius:16px;box-shadow:0 18px 46px rgba(15,38,29,.10)}
.room-single-inner .trr-gallery-track,.room-single-inner .trr-gallery-slide{height:100%;min-height:0}
.room-single-inner .trr-gallery-slide img{display:block;width:100%;height:100%;min-height:0;max-height:none;object-fit:cover;object-position:center}
.room-single-inner .trr-gallery-prev,.room-single-inner .trr-gallery-next{width:46px;height:46px;border:1px solid rgba(255,255,255,.65);background:rgba(18,61,47,.72);backdrop-filter:blur(10px);box-shadow:0 6px 20px rgba(0,0,0,.12)}
.room-single-inner .trr-gallery-dots{bottom:16px}
.room-single-inner .trr-single-copy{max-width:1000px;margin:0 auto}
.room-single-inner .trr-kicker{margin:0 0 12px;color:#9a8055;font-size:10px;line-height:1.5;font-weight:900;letter-spacing:.2em;text-transform:uppercase}
.room-single-inner .trr-single-copy h1{max-width:900px;margin:0 0 18px;color:var(--green,#173c2e);font:500 clamp(38px,5.2vw,66px)/1.04 var(--serif,Georgia,serif);letter-spacing:-.035em;overflow-wrap:normal;word-break:normal}
.room-single-inner .trr-room-description{max-width:800px;margin:0 0 26px;color:#657068;font-size:16px;line-height:1.8}
.room-single-inner .trr-single-info{display:flex;align-items:center;gap:20px;margin:26px 0;padding:22px 24px;border:1px solid rgba(23,60,46,.08);border-radius:14px;background:#f2eee5}
.room-single-inner .trr-specs{gap:8px}
.room-single-inner .trr-specs span{padding:9px 12px;border:1px solid #e7e0d3;border-radius:999px;background:#fff;color:#526056;font-size:12px}
.room-single-inner .trr-price strong{font-family:var(--serif,Georgia,serif);font-weight:500;color:var(--green,#173c2e)}
.room-single-inner .trr-amenities{margin:26px 0;padding:26px 28px;border:1px solid rgba(23,60,46,.08);border-radius:14px;background:#fff}
.room-single-inner .trr-amenities h3{margin:0 0 16px;color:var(--green,#173c2e);font:500 27px/1.2 var(--serif,Georgia,serif)}
.room-single-inner .trr-amenity-list span{border:1px solid #e8e2d7;border-radius:999px;background:#faf8f2;color:#56645a}
.room-single-inner .trr-room-booking{margin:34px 0 0;padding:28px;border:1px solid rgba(23,60,46,.10);border-radius:16px;background:#fff;box-shadow:0 18px 50px rgba(13,39,30,.06)}
.room-single-inner .trr-room-booking h2{margin:0 0 8px;color:var(--green,#173c2e);font:500 clamp(28px,4vw,40px)/1.1 var(--serif,Georgia,serif)}
.room-single-inner .trr-room-booking>p{margin:0 0 18px;color:#68736b}
.room-single-inner .trr-wa-room{display:inline-flex;margin-top:18px;padding:13px 20px;border:1px solid #c7a35a;background:var(--green,#173c2e);color:#fff!important;text-decoration:none!important;border-radius:999px;font-weight:800}
/* The inline room-specific WhatsApp action replaces the global overlay on detail pages. */
body.single-trr_room .trb-whatsapp-float{display:none!important}

/* Rooms & Suites: catalogue supplied by [taita_rooms] in the PMS plugin. */
.rooms-catalog-section{padding-top:76px}
.rooms-catalog-heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin:0 0 24px}
.rooms-catalog-heading>div{max-width:720px}
.rooms-catalog-heading h2{margin:0 0 12px;color:var(--green,#173c2e);font:500 clamp(34px,4vw,48px)/1.08 var(--serif,Georgia,serif)}
.rooms-catalog-heading p:not(.eyebrow){margin:0;color:#657068;font-size:15px;line-height:1.75}
.rooms-catalog-book{flex:0 0 auto;color:var(--green,#173c2e);border-bottom:1px solid #bda777;padding-bottom:8px}
.rooms-catalog-section .trr-rooms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:30px 0 0}
.rooms-catalog-section .trr-card{min-width:0;border:1px solid rgba(23,60,46,.09);border-radius:14px;box-shadow:0 14px 40px rgba(20,40,30,.07)}
.rooms-catalog-section .trr-card-media{aspect-ratio:16/10}
.rooms-catalog-section .trr-card-body{padding:22px}
.rooms-catalog-section .trr-card h3{font:500 27px/1.12 var(--serif,Georgia,serif)}
.rooms-catalog-section .trr-card p{font-size:13px;line-height:1.7}
.rooms-catalog-section .trr-card-bottom{align-items:center;flex-wrap:wrap}
.rooms-catalog-section .trr-card-actions{display:flex;gap:8px;flex-wrap:wrap}
.rooms-catalog-section .trr-card-actions a{border-radius:999px}
.rooms-catalog-section .trr-book{padding:10px 14px;background:var(--green,#173c2e);color:#fff!important}
.rooms-catalog-section .trr-wa-mini{padding:9px 12px;border-color:#d9c69e;color:var(--green,#173c2e)!important}
@media(max-width:900px){
 .rooms-catalog-section .trr-rooms{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
 .room-single-inner .trr-gallery{height:clamp(300px,54vw,430px)}
}
@media(max-width:700px){
 .room-single-inner{width:calc(100% - 32px);padding:12px 0 70px}
 .room-catalog-back{padding-bottom:13px;margin-bottom:14px}
 .room-catalog-current{display:none}
 .room-single-inner .trr-gallery{height:clamp(260px,58vw,380px);margin-bottom:26px;border-radius:12px}
 .room-single-inner .trr-gallery-prev,.room-single-inner .trr-gallery-next{width:40px;height:40px}
 .room-single-inner .trr-single-copy h1{font-size:clamp(36px,7vw,48px);line-height:1.06;margin-bottom:15px}
 .room-single-inner .trr-room-description{font-size:15px;line-height:1.75}
 .room-single-inner .trr-single-info{align-items:flex-start;padding:18px;margin:20px 0;gap:14px}
 .room-single-inner .trr-price{width:100%;margin-left:0}
 .room-single-inner .trr-amenities{padding:22px 18px}
 .room-single-inner .trr-room-booking{padding:20px 16px;margin-top:26px}
 .rooms-catalog-heading{display:block;margin-bottom:18px}
 .rooms-catalog-book{display:inline-flex;margin-top:18px}
}
@media(max-width:600px){.rooms-catalog-section .trr-rooms{grid-template-columns:1fr;gap:18px}.rooms-catalog-section .trr-card-body{padding:20px}}


/* Taita Rocks Premium 4.0.9 — responsive room-gallery integration repair.
   The PMS slider track was inheriting the legacy .trr-gallery three-column grid.
   Make the gallery a block viewport and let the track own the horizontal scroll. */
.room-single-page .room-single-inner .trr-gallery.trr-gallery-premium{
  display:block!important;
  position:relative!important;
  width:auto;
  max-width:100%;
  min-width:0;
  height:clamp(300px,40vw,560px)!important;
  min-height:0!important;
  margin:0 0 clamp(24px,3vw,38px)!important;
  padding:0!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
  isolation:isolate;
  background:#e9e4d8;
  border:1px solid rgba(23,60,46,.08);
  border-radius:14px;
}
.room-single-page .room-single-inner .trr-gallery.trr-gallery-premium .trr-gallery-track{
  position:absolute!important;
  inset:0!important;
  display:flex!important;
  flex-flow:row nowrap!important;
  align-items:stretch!important;
  gap:0!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scroll-padding-inline:0;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
  touch-action:pan-y;
}
.room-single-page .room-single-inner .trr-gallery.trr-gallery-premium .trr-gallery-track::-webkit-scrollbar{display:none;width:0;height:0}
.room-single-page .room-single-inner .trr-gallery.trr-gallery-premium .trr-gallery-slide{
  position:relative!important;
  display:block!important;
  flex:0 0 100%!important;
  width:100%!important;
  min-width:100%!important;
  max-width:100%!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
  scroll-snap-align:start;
  scroll-snap-stop:always;
}
.room-single-page .room-single-inner .trr-gallery.trr-gallery-premium .trr-gallery-slide img{
  position:relative;
  display:block!important;
  width:100%!important;
  min-width:100%!important;
  max-width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  object-fit:cover!important;
  object-position:center;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.room-single-page .room-single-inner .trr-gallery.trr-gallery-premium .trr-gallery-prev,
.room-single-page .room-single-inner .trr-gallery.trr-gallery-premium .trr-gallery-next{
  z-index:5;
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  min-width:46px;
  min-height:46px;
  padding:0;
  line-height:1;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.room-single-page .room-single-inner .trr-gallery.trr-gallery-premium .trr-gallery-dots{
  z-index:5;
  max-width:calc(100% - 112px);
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
}
.room-single-page .room-single-inner .trr-gallery.trr-gallery-premium .trr-gallery-count{z-index:5}
@media(max-width:900px){
  .room-single-page .room-single-inner .trr-gallery.trr-gallery-premium{height:clamp(300px,53vw,460px)!important}
}
@media(max-width:700px){
  .room-single-page .room-single-inner .trr-gallery.trr-gallery-premium{
    width:calc(100% + 32px);
    max-width:none;
    height:clamp(240px,68vw,390px)!important;
    margin:0 -16px 23px!important;
    border-right:0;
    border-left:0;
    border-radius:0;
    box-shadow:none;
  }
  .room-single-page .room-single-inner .trr-gallery.trr-gallery-premium .trr-gallery-prev,
  .room-single-page .room-single-inner .trr-gallery.trr-gallery-premium .trr-gallery-next{
    width:40px;
    height:40px;
    min-width:40px;
    min-height:40px;
  }
  .room-single-page .room-single-inner .trr-gallery.trr-gallery-premium .trr-gallery-prev{left:10px}
  .room-single-page .room-single-inner .trr-gallery.trr-gallery-premium .trr-gallery-next{right:10px}
  .room-single-page .room-single-inner .trr-gallery.trr-gallery-premium .trr-gallery-count{right:12px!important;bottom:12px!important}
  .room-single-page .room-single-inner .trr-gallery.trr-gallery-premium .trr-gallery-dots{bottom:12px}
}
@media(prefers-reduced-motion:reduce){
  .room-single-page .room-single-inner .trr-gallery.trr-gallery-premium .trr-gallery-track{scroll-behavior:auto!important}
}
