/* Compact room cards: approved mobile layout. Desktop retains existing styles. */
.room-gallery-label,.room-summary-short { display:none; }
@media(max-width:640px){
 .rooms-compact .room-gallery { gap:24px 12px; align-items:stretch; }
 .rooms-compact .room-gallery article { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:auto auto auto 1fr auto auto auto; align-content:start; }
 .rooms-compact .room-photo { grid-row:1; }
 .rooms-compact .room-photo img { width:100%; aspect-ratio:4/3; object-fit:cover; }
 .rooms-compact .room-gallery h3 { grid-row:3; margin:12px 0 5px; font-size:22px; line-height:1.16; font-weight:400; min-block-size:2.32em; hyphens:none; word-break:normal; overflow-wrap:normal; }
 .rooms-compact .room-meta { grid-row:4; margin:0 0 8px; font-size:13px; line-height:1.5; }
 .rooms-compact .room-price { grid-row:5; margin:0 0 8px; font-size:13px; line-height:1.5; }
 .rooms-compact .room-price strong { font-size:20px; }
 .rooms-compact .room-amenities { grid-row:6; margin:0; align-self:start; }
 .rooms-compact .room-amenities summary { padding:11px 0; min-height:44px; font-size:13px; line-height:22px; }
 .rooms-compact .room-summary-original { display:none; }
 .rooms-compact .room-summary-short { display:inline; }
 .rooms-compact .room-amenities ul { padding-left:17px; margin:10px 0; font-size:13px; gap:7px; }
 .rooms-compact .room-amenities .room-description { font-size:13px; line-height:1.6; margin:10px 0 14px; }
 .rooms-compact .room-gallery article > a:last-child { grid-row:7; min-height:44px; padding:10px 0 0; display:flex; align-items:center; font-size:13px; line-height:1.5; }
 .rooms-compact .room-thumbnails { display:none; }
 .rooms-compact .room-photo::after { display:none; }
 .rooms-compact .room-gallery-label { display:flex; align-items:center; min-height:44px; font-size:12px; line-height:1.35; color:var(--green); }
 .rooms-compact .room-gallery :is(a,summary):focus-visible { outline:2px solid var(--green); outline-offset:3px; }
}
@media(min-width:360px) and (max-width:640px){
 .rooms-compact .room-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Reuse Contact's panel surface, dimensions and immediate opening. */
.room-sheet.quick-contact-options {position:fixed;inset:auto max(20px,env(safe-area-inset-right)) calc(max(20px,env(safe-area-inset-bottom)) + 60px) auto;margin:0;max-width:calc(100vw - 40px);overflow:hidden;color:var(--green)}
.room-sheet:not([open]) {display:none}
.room-sheet[open] {display:flex;flex-direction:column}
.room-sheet::backdrop {background:transparent}
body.room-amenities-open .quick-contact {visibility:hidden}
.room-sheet-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px 12px;border-bottom:1px solid var(--line);flex-shrink:0}
.room-sheet-heading h2 {font-family:var(--serif);font-size:26px;margin:0;text-wrap:wrap}
.room-sheet-heading button {flex:0 0 44px;width:44px;height:44px;border:0;background:transparent;color:inherit;font:30px/1 var(--serif);cursor:pointer}
.room-sheet-content {padding:20px 24px calc(24px + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;min-height:0;-webkit-overflow-scrolling:touch}
.room-sheet-content h3 {font-family:var(--serif);font-size:22px;margin:0 0 16px}
.room-sheet-copy {font-size:15px;line-height:1.65}
.room-sheet-copy ul {margin:0 0 20px;padding-left:20px}
.room-sheet-copy li {margin:7px 0}
.room-sheet-copy .room-description {margin:0;font-size:15px;line-height:1.65}
.room-sheet :focus-visible {outline:2px solid var(--green);outline-offset:-3px}
@media(max-width:640px){#viewer-image {touch-action:pan-y pinch-zoom}}

@media(max-width:640px){
 #photo-viewer.room-viewer-mobile {box-sizing:border-box;width:100%;max-width:100%;height:100svh;height:100dvh;max-height:100dvh;inset:0;margin:0;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));overflow:hidden;overscroll-behavior:contain;}
 #photo-viewer.room-viewer-mobile[open] {display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:8px;}
 #photo-viewer.room-viewer-mobile figure {display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0;margin:0;gap:8px;overflow:hidden;}
 #photo-viewer.room-viewer-mobile #viewer-image {width:100%;height:100%;min-height:0;max-width:100%;max-height:100%;object-fit:contain;touch-action:pan-y pinch-zoom;}
 #photo-viewer.room-viewer-mobile #viewer-caption {min-height:0;padding:4px 0;font-size:14px;line-height:1.4;overflow-wrap:anywhere;}
 #photo-viewer.room-viewer-mobile .viewer-close {margin:0 0 0 auto;}
 #photo-viewer.room-viewer-mobile .viewer-controls {gap:20px;min-height:44px;}
}

/* Approved four-icon room hierarchy. */
.amenity-icon{width:18px;height:18px;flex:0 0 18px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;color:var(--green)}
.icon-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.room-highlight-icons{list-style:none;padding:0;margin:0 0 10px;display:flex;gap:10px;align-items:center;min-height:18px;color:var(--green)}
.room-highlight-icons>li{display:flex;align-items:center;gap:6px;margin:0;padding:0;font-size:13px;line-height:18px}
.amenity-short{display:none}
.room-icons-ready .room-amenities ul,.room-icons-ready .room-sheet-copy ul{list-style:none;padding-left:0}
.amenity-with-icon{display:flex;align-items:flex-start;gap:10px}
.amenity-with-icon .amenity-icon{margin-top:3px}

@media(min-width:641px){
 .room-icons-ready .amenity-short{display:inline}
 .room-icons-ready .room-highlight-icons{gap:12px 20px;flex-wrap:wrap}
}
@media(max-width:640px){
 .room-icons-ready .rooms-compact .room-gallery article{grid-template-rows:auto auto auto auto 1fr auto auto}
 .room-icons-ready .rooms-compact .room-meta{display:none}
 .room-icons-ready .rooms-compact .room-price{grid-row:4;margin:0 0 12px}
 .room-icons-ready .room-highlight-icons{grid-row:5;align-self:start;justify-content:space-between;padding:0 5px;gap:10px;margin:0 0 14px;width:100%;box-sizing:border-box}
 .room-icons-ready .rooms-compact .room-amenities{grid-row:6}
 .room-icons-ready .rooms-compact .room-gallery article>a:last-child{grid-row:7}
}
@media(max-width:640px){
 .room-icons-ready .rooms-compact .room-gallery h3{min-block-size:0}
}
