/* 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-breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-bottom:10px;color:var(--muted);font-size:12px;line-height:1.4}
.room-breadcrumbs a{color:var(--green-dark);font-weight:650}
.room-breadcrumbs a:hover{text-decoration:underline}
.room-breadcrumbs>span[aria-hidden="true"]{opacity:.45}
.room-breadcrumbs>span[aria-current="page"]{color:var(--muted)}
.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:18px;line-height:1.58}
.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:38px minmax(0,1fr) 38px;gap:7px}
.thumb-scroll-button{display:grid;place-items:center;padding:0;border:1px solid rgba(40,85,72,.22);border-radius:11px;background:#f8f4ec;color:var(--green-dark);cursor:pointer;box-shadow:0 3px 10px rgba(21,58,49,.07);transition:background .16s,border-color .16s,color .16s,transform .16s,box-shadow .16s}.thumb-scroll-button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.thumb-scroll-button:hover{background:var(--green-dark);border-color:var(--green-dark);color:#fff;box-shadow:0 5px 14px rgba(21,58,49,.15)}.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:15px;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:28px;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:17px;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:16px}.room-sleeping-panel-final .sleeping-place-item small{font-size:13px}

.room-amenities-final{padding:24px 26px}
.room-amenities-final .panel-heading-row{margin-bottom:22px}
.amenity-group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 34px;align-items:start}
.amenity-group{min-width:0}
.amenity-group-head{display:flex;align-items:center;gap:12px;margin-bottom:13px}
.amenity-group-icon{display:grid;place-items:center;width:42px;height:42px;min-width:42px;border-radius:13px;background:#f8f4ec;color:var(--green-dark)}
.amenity-group-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.amenity-group-head h3{margin:0;font-family:Inter,system-ui,sans-serif;font-size:18px;line-height:1.25;font-weight:700;color:var(--ink)}
.amenity-group-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.amenity-group-list li{position:relative;padding-left:14px;font-size:16px;line-height:1.45;color:var(--ink)}
.amenity-group-list li:before{content:"";position:absolute;left:0;top:.68em;width:4px;height:4px;border-radius:50%;background:var(--green);opacity:.7}

.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:16px;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:13px 0;font-size:16px}
.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:15px}.deposit-inline>div small{font-size:13px;color:var(--muted);line-height:1.45}
.deposit-inline>b{font-size:17px;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:22px;min-width:0;transition:opacity .15s}
.room-calendar-final[aria-busy="true"]{opacity:.58}
.compact-calendar-head{margin-bottom:14px}
.room-calendar-final .calendar-section-head{align-items:center}
.calendar-helper{margin:6px 0 0;color:var(--muted);font-size:13px}
.room-calendar-final .calendar-nav{gap:9px}
.room-calendar-final .calendar-nav a{display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid rgba(40,85,72,.20);border-radius:50%;background:#f8f4ec;color:var(--green-dark);box-shadow:0 2px 8px rgba(21,58,49,.06);transition:background .16s,border-color .16s,color .16s,transform .16s}.room-calendar-final .calendar-nav a:hover{background:var(--green-dark);border-color:var(--green-dark);color:#fff}.room-calendar-final .calendar-nav a:active{transform:translateY(1px)}.room-calendar-final .calendar-nav svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.room-calendar-final .public-calendars{grid-template-columns:1fr;gap:10px}
.room-calendar-final .public-calendar{padding:14px;border-radius:14px;box-shadow:none}
.room-calendar-final .public-calendar h3{font-size:25px;margin-bottom:13px}
.room-calendar-final .calendar-weekdays span{font-size:13px;padding:7px 2px}
.room-calendar-final .calendar-day{min-height:70px;padding:8px}
.room-calendar-final .calendar-day b{font-size:15px}
.room-calendar-final .calendar-day small{font-size:13px;margin-top:7px;line-height:1.25}
.room-calendar-final .calendar-day.calendar-date-selectable{position:relative;cursor:pointer;transition:background .14s,box-shadow .14s,color .14s}
.room-calendar-final .calendar-day.calendar-date-selectable:hover{box-shadow:inset 0 0 0 2px rgba(40,85,72,.28)}
.room-calendar-final .calendar-day.calendar-date-selectable:focus-visible{outline:2px solid var(--green-dark);outline-offset:-2px}
.room-calendar-final .calendar-day.is-range{background:#e6efe9}
.room-calendar-final .calendar-day.is-range small{color:var(--green-dark);font-weight:700}
.room-calendar-final .calendar-day.is-range-start,.room-calendar-final .calendar-day.is-range-end{background:var(--green-dark);color:#fff;box-shadow:inset 0 0 0 1px var(--green-dark)}
.room-calendar-final .calendar-day.is-range-start b,.room-calendar-final .calendar-day.is-range-end b,.room-calendar-final .calendar-day.is-range-start small,.room-calendar-final .calendar-day.is-range-end small{color:#fff}
.room-calendar-final.is-selecting-checkout .calendar-day.calendar-date-selectable{cursor:pointer}
.room-calendar-final .calendar-helper.is-error{color:#9a514c;font-weight:650}
.room-calendar-final .calendar-legend{margin-top:14px;font-size:13px}

.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:5px 0 15px;font-size:15px;line-height:1.5}
.room-booking-final .booking-total{margin:14px 0 8px;padding:13px 14px;border-radius:11px;background:#f3f7f4;color:var(--green-dark);font-size:16px;font-weight:750;line-height:1.45}
.room-booking-final .field{margin-bottom:9px}
.room-booking-final .field label{font-size:13px}
.room-booking-final .field input,.room-booking-final .field select,.room-booking-final .field textarea{min-height:44px;font-size:16px}
.room-booking-final textarea{min-height:66px}
.room-booking-final .btn{margin-top:4px}.room-booking-final .btn-primary{min-height:48px;border:1px solid var(--green-dark);background:var(--green-dark);color:#fff;font-size:14px;box-shadow:0 7px 18px rgba(21,58,49,.16)}.room-booking-final .btn-primary:hover{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 9px 22px rgba(21,58,49,.20)}

.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:13px}
.similar-room-body>b{position:absolute;right:10px;bottom:9px;color:var(--green-dark);font-size:14px}

@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-group-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 30px}
  .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:24px}
  .amenity-group-grid{grid-template-columns:1fr;gap:24px}
  .amenity-group-head h3{font-size:18px}
  .amenity-group-list li{font-size:16px}
  .room-calendar-final .calendar-day{min-height:60px;padding:6px}
  .room-calendar-final .calendar-day b{font-size:14px}
  .room-calendar-final .calendar-day small{font-size:12px}
  .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:17px}
}
