
/* =========================================================
   V16 — Content-fit buttons and new room-type photo sets
   ========================================================= */

/* All text CTA buttons size to their own content. */
.btn,
.header-book,
.booking-search,
.booking-collapse,
.guest-done,
.popover-foot button,
.gallery-filters button,
.room-book-button{
  width:max-content!important;
  min-width:0!important;
  max-width:100%!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
  white-space:normal!important;
  text-align:center!important;
  line-height:1.25!important;
}

.btn{
  padding:12px 22px!important;
}

.hero-actions .btn{
  flex:0 0 auto!important;
}

.btn.centre{
  width:max-content!important;
  margin-inline:auto!important;
}

.header-book{
  padding-inline:18px!important;
}

.booking-search{
  justify-self:center!important;
  padding-inline:22px!important;
}

.booking-collapse{
  padding-inline:12px!important;
}

.guest-done{
  margin-inline:auto!important;
  padding-inline:20px!important;
}

.channel{
  width:100%;
}

/* Home room cards: display all five requested room types cleanly. */
.room-card-grid{
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr))!important;
  align-items:stretch;
}

.room-card{
  min-height:470px!important;
}

.room-card img{
  aspect-ratio:16/10!important;
}

.room-card>div{
  min-height:210px;
}

.room-card p{
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
}

/* Room type selector. */
.room-type-intro{
  padding:72px 0 58px;
  background:#f7f7fb;
}

.room-type-intro h2{
  margin-bottom:25px;
}

.room-type-nav{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  border-top:1px solid rgba(77,67,133,.14);
  border-bottom:1px solid rgba(77,67,133,.14);
}

.room-type-nav a{
  display:flex;
  min-height:86px;
  align-items:center;
  gap:12px;
  padding:16px;
  color:#292a59;
  border-left:1px solid rgba(77,67,133,.14);
  text-decoration:none;
  font-size:.78rem;
  font-weight:800;
  line-height:1.35;
  transition:background .2s ease,color .2s ease;
}

.room-type-nav a:first-child{
  border-left:0;
}

.room-type-nav a:hover,
.room-type-nav a:focus-visible{
  color:#fff;
  background:linear-gradient(135deg,#36a8df,#6962d8 58%,#934cb8);
}

.room-type-nav span{
  color:#7258ca;
  font-size:.64rem;
  letter-spacing:.08em;
}

.room-type-nav a:hover span,
.room-type-nav a:focus-visible span{
  color:#fff;
}

/* New room detail photographs preserve the supplied composition. */
.room-detail-v16{
  min-height:0!important;
  scroll-margin-top:110px;
}

.room-detail-v16 .room-visual{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:54px clamp(20px,4vw,64px)!important;
  background:
    radial-gradient(circle at 15% 10%,rgba(65,174,224,.08),transparent 36%),
    radial-gradient(circle at 90% 90%,rgba(149,67,183,.08),transparent 40%),
    #f5f6fa!important;
}

.room-detail-v16 .room-main{
  width:100%;
  aspect-ratio:16/9!important;
  object-fit:contain!important;
  object-position:center!important;
  background:#e9eaf1;
  border-radius:16px!important;
  box-shadow:0 18px 42px rgba(41,42,89,.10);
}

.room-thumbs-v16{
  display:flex!important;
  gap:7px!important;
  margin-top:10px!important;
  padding:3px 0 5px;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scrollbar-width:thin;
}

.room-thumbs-v16 img{
  flex:0 0 86px;
  width:86px;
  height:60px;
  aspect-ratio:auto!important;
  object-fit:cover!important;
  border:2px solid transparent;
  border-radius:8px!important;
  opacity:.78;
  transition:opacity .18s ease,border-color .18s ease,transform .18s ease;
}

.room-thumbs-v16 img:hover,
.room-thumbs-v16 img:focus,
.room-thumbs-v16 img.active{
  opacity:1;
  border-color:#6a60d7;
  transform:translateY(-2px);
}

.room-detail-v16 .room-copy{
  padding:68px clamp(28px,5vw,76px)!important;
}

.room-lead{
  color:#5f57bb!important;
  font-weight:800;
}

.room-policy{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:24px 0;
}

.room-policy section{
  padding:17px 18px;
  border:1px solid rgba(82,75,159,.14);
  border-radius:14px;
  background:linear-gradient(145deg,rgba(242,244,255,.78),rgba(247,239,255,.70));
}

.room-policy h3{
  margin:0 0 7px;
  font-family:inherit;
  font-size:.82rem;
}

.room-policy p{
  margin:0;
  color:#656987;
  font-size:.76rem;
  line-height:1.65;
}

.room-book-button{
  margin-top:6px;
}

@media(max-width:1100px){
  .room-type-nav{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .room-type-nav a:nth-child(4){
    border-left:0;
    border-top:1px solid rgba(77,67,133,.14);
  }

  .room-type-nav a:nth-child(5){
    border-top:1px solid rgba(77,67,133,.14);
  }
}

@media(max-width:640px){
  .btn,
  .header-book,
  .booking-search,
  .booking-collapse,
  .guest-done,
  .popover-foot button,
  .gallery-filters button,
  .room-book-button{
    width:max-content!important;
    max-width:100%!important;
  }

  .booking-search{
    grid-column:1/-1!important;
    justify-self:center!important;
  }

  .hero-actions{
    align-items:flex-start;
  }

  .room-type-nav{
    grid-template-columns:1fr;
  }

  .room-type-nav a,
  .room-type-nav a:nth-child(n){
    min-height:60px;
    border-top:1px solid rgba(77,67,133,.14);
    border-left:0;
  }

  .room-type-nav a:first-child{
    border-top:0;
  }

  .room-detail-v16 .room-visual{
    padding:28px 12px!important;
  }

  .room-detail-v16 .room-copy{
    padding:42px 18px!important;
  }

  .room-policy{
    grid-template-columns:1fr;
  }

  .room-thumbs-v16 img{
    flex-basis:74px;
    width:74px;
    height:52px;
  }
}
