/* Room detail page — final layout, scoped to .room-detail-final */

.room-detail-hero-final{padding:32px 0 0;background:#fff}
.room-detail-hero-final>.container{display:grid;gap:12px}
.room-detail-heading-final{max-width:900px;margin-bottom:8px}
.room-detail-heading-final .eyebrow{margin-bottom:8px}
.room-detail-heading-final h1{margin:0;font-size:clamp(48px,5vw,68px);line-height:.96}
.room-detail-heading-final p{max-width:760px;margin:12px 0 0;color:var(--muted);font-size:17px;line-height:1.55}
.room-detail-final{padding-top:14px;background:#fff}
.room-detail-final>.container{display:grid;gap:14px}

.room-gallery-final{display:grid;grid-template-columns:minmax(0,924px) minmax(340px,1fr);gap:12px;align-items:stretch;min-width:0}
.room-gallery-final:not(.has-thumbs){grid-template-columns:minmax(0,924px);justify-content:center}
.room-gallery-primary{position:relative;width:100%;height:520px;min-width:0;margin:0;overflow:hidden;border-radius:18px;background:#f3f1ec}
.room-gallery-final:not(.has-thumbs) .room-gallery-primary{max-width:924px}
.room-gallery-primary>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;background:#f3f1ec;transition:opacity .16s}
.room-gallery-primary figcaption{position:absolute;left:14px;bottom:12px;padding:6px 10px;border-radius:999px;background:rgba(15,48,39,.78);color:#fff;font-size:10px;backdrop-filter:blur(6px)}
.gallery-counter{position:absolute;left:14px;bottom:48px;padding:6px 9px;border-radius:999px;background:rgba(18,37,32,.76);color:#fff;font-size:10px;font-weight:700}
.gallery-main-arrow{position:absolute;top:50%;z-index:2;display:grid;place-items:center;width:38px;height:38px;margin-top:-19px;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:var(--green-dark);font-size:25px;line-height:1;cursor:pointer;box-shadow:0 4px 14px rgba(20,40,35,.13)}
.gallery-main-prev{left:12px}.gallery-main-next{right:12px}

.room-gallery-side{height:520px;min-width:0;min-height:0;overflow:hidden;display:grid;grid-template-rows:40px minmax(0,1fr) 40px;gap:7px}
.thumb-scroll-button{border:1px solid var(--green-dark);border-radius:11px;background:var(--green-dark);color:#fff;cursor:pointer;font-size:21px;font-weight:800;line-height:1;box-shadow:0 5px 16px rgba(21,58,49,.16);transition:background .15s,border-color .15s,transform .15s,box-shadow .15s}.thumb-scroll-button:hover{background:var(--green);border-color:var(--green);box-shadow:0 7px 20px rgba(21,58,49,.22)}.thumb-scroll-button:active{transform:translateY(1px)}
.room-thumbs-scroll{height:100%;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding-right:4px;scrollbar-width:thin;scrollbar-color:#aab7b2 #eef1ef}
.room-thumbs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.room-thumbs-grid button{position:relative;width:100%;aspect-ratio:16/9;padding:0;border:2px solid transparent;border-radius:11px;overflow:hidden;background:#f2f1ed;cursor:pointer;opacity:.78}
.room-thumbs-grid button:hover,.room-thumbs-grid button.is-active{opacity:1}
.room-thumbs-grid button.is-active{border-color:var(--green)}
.room-thumbs-grid img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}

.room-facts-final{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));border-radius:14px;background:#f8f4ec;border:1px solid rgba(40,85,72,.07);overflow:hidden}
.room-facts-final>div{display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:9px 14px;border-right:1px solid rgba(40,85,72,.07)}
.room-facts-final>div:last-child{border-right:0}
.room-facts-final span{font-size:20px;color:var(--green)}
.room-facts-final strong{font-size:14px;font-weight:650}

.room-panel{border:1px solid rgba(40,85,72,.11);border-radius:16px;background:#fff;box-shadow:0 8px 28px rgba(30,52,45,.035)}
.panel-kicker{display:block;font-family:Georgia,"Times New Roman",serif;font-size:24px;line-height:1.15;color:var(--green-dark)}
.panel-heading-row{display:flex;align-items:center;justify-content:space-between;gap:20px}

.room-about-row{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:10px}
.room-about-panel,.room-sleeping-panel-final{padding:22px}
.room-about-panel .room-description{margin-top:12px}
.room-about-panel .room-description p{font-size:15px;line-height:1.65}
.room-sleeping-panel-final .sleeping-place-list{margin-top:14px}
.room-sleeping-panel-final .sleeping-place-item{padding:10px 12px;border-radius:11px}
.room-sleeping-panel-final .sleeping-place-item strong{font-size:14px}.room-sleeping-panel-final .sleeping-place-item small{font-size:12px}

.room-amenities-final{padding:20px 22px}
.room-amenities-final .panel-heading-row{margin-bottom:10px}
.amenity-flex-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:26px;row-gap:0}
.amenity-tile{display:flex;min-height:48px;align-items:center;justify-content:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid rgba(40,85,72,.09);background:transparent;text-align:left;font-size:13px;line-height:1.35}
.amenity-tile .amenity-icon{display:grid;place-items:center;width:30px;height:30px;min-width:30px;padding:0;border-radius:9px;background:#f8f4ec;font-size:12px}

.room-location-rules{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:10px;align-items:stretch}
.room-location-final,.room-rules-final{padding:18px}
.location-heading{display:flex;align-items:center;gap:20px;margin-bottom:12px}
.location-heading strong{font-size:14px;font-weight:500;color:var(--muted)}
.room-map-large{height:430px;min-height:430px;border-radius:12px}
.room-map-large iframe{width:100%;height:100%;min-height:430px;border:0}
.room-rules-final .rules-list{margin-top:12px}
.room-rules-final .rules-list>div{padding:12px 0;font-size:14px}
.deposit-inline{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;margin-top:12px;padding:12px;border-radius:11px;background:#f8f4ec;border:1px solid rgba(40,85,72,.06)}
.deposit-inline-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#fff;color:var(--green);font-size:17px}
.deposit-inline>div{display:flex;flex-direction:column;gap:2px}
.deposit-inline>div strong{font-size:13px}.deposit-inline>div small{font-size:11px;color:var(--muted);line-height:1.4}
.deposit-inline>b{font-size:15px;white-space:nowrap;color:var(--green-dark)}

.room-booking-row{display:grid;grid-template-columns:minmax(0,1.48fr) minmax(330px,.72fr);gap:10px;align-items:start}
.room-calendar-final{padding:20px;min-width:0}
.compact-calendar-head{margin-bottom:12px}
.room-calendar-final .calendar-section-head{align-items:center}
.room-calendar-final .public-calendars{gap:10px}
.room-calendar-final .public-calendar{padding:12px;border-radius:12px;box-shadow:none}
.room-calendar-final .public-calendar h3{font-size:21px;margin-bottom:11px}
.room-calendar-final .calendar-weekdays span{font-size:11px;padding:6px 2px}
.room-calendar-final .calendar-day{min-height:60px;padding:6px}
.room-calendar-final .calendar-day b{font-size:13px}
.room-calendar-final .calendar-day small{font-size:10px;margin-top:6px;line-height:1.25}
.room-calendar-final .calendar-legend{margin-top:13px;font-size:11px}

.room-booking-final{padding:18px;border-radius:16px;background:#fff}
.room-booking-final .panel-kicker{margin-bottom:3px}
.room-booking-final .booking-form-note{margin:4px 0 14px;font-size:13px;line-height:1.45}
.room-booking-final .field{margin-bottom:9px}
.room-booking-final .field label{font-size:11px}
.room-booking-final .field input,.room-booking-final .field select,.room-booking-final .field textarea{min-height:42px;font-size:14px}
.room-booking-final textarea{min-height:66px}
.room-booking-final .btn{margin-top:4px}
.booking-hold-caption{display:block;margin-top:10px;text-align:center;font-size:11px;line-height:1.4;color:var(--muted)}

.similar-rooms-section{padding:14px}
.similar-rooms-section .panel-heading-row{margin-bottom:10px}
.similar-room-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.similar-room-card{display:block;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#fff}
.similar-room-card>img{width:100%;aspect-ratio:16/7;object-fit:cover;display:block}
.similar-room-body{position:relative;padding:9px 10px}
.similar-room-body>strong{display:block;margin-bottom:7px;font-family:Georgia,"Times New Roman",serif;font-size:17px;color:var(--ink)}
.similar-room-body>div{display:flex;gap:10px;color:var(--muted);font-size:11px}
.similar-room-body>b{position:absolute;right:10px;bottom:9px;color:var(--green-dark);font-size:13px}

@media(max-width:1180px){
  .room-gallery-final{grid-template-columns:minmax(0,1fr) minmax(300px,36%)}
  .room-gallery-primary,.room-gallery-side{height:auto}
  .room-gallery-primary{aspect-ratio:16/9}
  .room-gallery-side{aspect-ratio:auto}
}
@media(max-width:1050px){
  .room-location-rules{grid-template-columns:1.25fr .75fr}
  .room-booking-row{grid-template-columns:1fr}
}
@media(max-width:920px){
  .room-gallery-final,.room-gallery-final.has-thumbs,.room-gallery-final:not(.has-thumbs){grid-template-columns:1fr}
  .room-gallery-primary{width:100%;height:auto;max-width:none;aspect-ratio:16/9}
  .room-gallery-side{height:auto;margin-top:0;display:block}
  .thumb-scroll-button{display:none}
  .room-thumbs-scroll{overflow-x:auto;overflow-y:hidden;padding:0 0 4px}
  .room-thumbs-grid{display:flex;gap:7px}
  .room-thumbs-grid button{flex:0 0 120px}
  .room-about-row,.room-location-rules{grid-template-columns:1fr}
  .room-map-large,.room-map-large iframe{height:360px;min-height:360px}
  .amenity-flex-grid{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:22px}
  .similar-room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .room-detail-final{padding-top:8px}
  .room-gallery-primary{border-radius:13px}
  .gallery-main-arrow{width:34px;height:34px}
  .room-facts-final{grid-template-columns:repeat(2,1fr)}
  .room-facts-final>div{border-bottom:1px solid rgba(40,85,72,.07)}
  .room-facts-final>div:nth-child(even){border-right:0}
  .room-about-panel,.room-sleeping-panel-final,.room-location-final,.room-rules-final,.room-calendar-final,.room-booking-final{padding:15px}
  .panel-kicker{font-size:22px}
  .amenity-flex-grid{grid-template-columns:1fr}
  .amenity-tile{min-height:46px;font-size:13px}
  .location-heading{align-items:flex-start;flex-direction:column;gap:5px}
  .room-map-large,.room-map-large iframe{height:300px;min-height:300px}
  .room-calendar-final .public-calendars{grid-template-columns:1fr}
  .similar-room-grid{grid-template-columns:1fr}
  .similar-room-card{display:grid;grid-template-columns:42% 58%}
  .similar-room-card>img{height:100%;aspect-ratio:auto}
}

@media(max-width:700px){
  .room-detail-hero-final{padding-top:24px}
  .room-detail-heading-final{margin-bottom:4px}
  .room-detail-heading-final h1{font-size:44px}
  .room-detail-heading-final p{font-size:15px}
}
