/* R31: guest-first editorial room presentation. No overlay over imagery. */
.r21-guest-rooms,.r21-guest-facts{
 background:#fff;border-color:#e2e9ed;
 box-shadow:0 9px 35px rgba(12,47,66,.035);
}
.r21-guest-rooms h2,.r21-guest-facts h2{color:#143b51;letter-spacing:-.35px}
.r21-room-card{
 grid-template-columns:minmax(0,40%) minmax(0,60%);
 gap:clamp(16px,2.4vw,28px);
 padding:25px 0;border-top:1px solid #e4ebef;align-items:start;
}
.r21-room-card>.r21-room-desc{padding:4px 6px 5px 0}
.r21-room-desc h3{font-size:clamp(23px,2.1vw,28px);letter-spacing:-.4px;color:#123b54}
.r21-room-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;align-content:start}
.r21-room-gallery .r21-gallery-photo:first-child{grid-column:1/-1}
.r21-room-gallery .r21-gallery-photo{min-height:0;box-shadow:0 2px 11px #1b3c5012}
.r21-room-gallery .r21-gallery-photo img{
 width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:4/3;
 object-fit:cover;display:block;
}
.r21-room-gallery .r21-gallery-photo:first-child img{aspect-ratio:16/10}
.r21-gallery-photo:hover{outline:2px solid #0f857e;outline-offset:2px}
.r21-gallery-photo:focus-visible{outline:3px solid #0f857e;outline-offset:2px}
.r21-photo-caption{
 position:static;display:block;background:#f4f8fa;color:#345262;
 padding:6px 8px;font-size:12px;font-weight:600;line-height:1.4;
 white-space:normal;overflow-wrap:anywhere;text-align:left;
}
.r21-property-gallery .r21-gallery-photo{min-height:0}
.r21-property-gallery .r21-gallery-photo img{min-height:0}
.r21-lightbox{max-height:94dvh;max-width:min(93vw,1120px)}
.r21-lightbox img{max-height:calc(90dvh - 135px);object-fit:contain}
.r21-lightbox p{padding:8px 0 0;text-align:center;color:#315668;max-width:85ch;margin:auto}
.r31-room-ux{display:grid;gap:13px}
.r31-room-facts{padding:16px;border:1px solid #d9e9e8;background:#f4faf9;border-radius:14px}
.r31-section-title{color:#193f51;font-weight:750;font-size:16px;line-height:1.35;margin:0 0 11px;letter-spacing:-.1px}
.r31-facts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.r31-fact{display:flex;align-items:flex-start;gap:9px;min-width:0}
.r31-fact-icon{display:inline-flex;align-items:center;justify-content:center;
 width:32px;min-width:32px;height:32px;border-radius:10px;background:#e2f3f0;color:#13766e}
.r31-fact-copy{display:grid;gap:2px;min-width:0}
.r31-fact-label{font-size:12px;color:#58747e;line-height:1.2}
.r31-fact-copy strong{color:#203e51;font-size:14px;font-weight:700;line-height:1.3;overflow-wrap:anywhere}
.r31-amenities-section{padding:11px 0 0;border-top:1px solid #e7eeef}
.r31-amenities-list,.r31-hotel-confirmed{list-style:none;margin:0;padding:0;display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 11px}
.r31-amenity{display:flex;align-items:flex-start;gap:8px;font-size:13.5px;line-height:1.4;color:#315164;min-width:0;overflow-wrap:anywhere}
.r31-amenity .r31-fact-icon{width:25px;min-width:25px;height:25px;border-radius:7px}
.r31-amenity .r31-fact-icon svg{width:17px;height:17px}
.r31-room-rate{padding:14px 17px;background:#edf6ff;border-left:3px solid #1970bd;border-radius:11px;display:grid;gap:4px}
.r31-rate-caption{font-size:12.5px;color:#48687f}
.r31-rate-price{font-size:clamp(24px,2.3vw,30px);font-weight:800;color:#173b5f;font-variant-numeric:tabular-nums}
.r31-rate-note{font-size:12.5px;line-height:1.5;margin:0;color:#526b7a}
.r31-price-unknown,.r31-data-warning{padding:10px 14px;margin:0;background:#fff5e7;
 border-radius:9px;color:#74501b;font-size:13px;line-height:1.6}
.r31-hotel-note{font-size:13.5px;color:#566d78;line-height:1.6}
.r31-hotel-confirmed{margin-top:12px;grid-template-columns:repeat(auto-fit,minmax(215px,1fr))}
.r31-owner-private-panel{max-width:100%;margin:15px 0 0;border:1px solid #b8d9d4;
 padding:15px;box-shadow:none;grid-template-columns:minmax(0,1fr) minmax(140px,.6fr)}
.r31-owner-private-panel h3{font-size:22px;margin:5px 0}
.r31-owner-private-panel img{height:140px}
.r31-owner-private-panel .r25-home-owner-button,
.r31-owner-private-panel .r25-home-owner-secondary{font-size:13px;margin:4px 6px 4px 0;padding:9px 12px}
.r31-owner-links{display:flex;flex-wrap:wrap;align-items:center}
.r31-owner-links button.r25-home-owner-secondary{font-family:inherit;border:1px solid #bac9d1;border-radius:8px;background:#edf1f3;color:#65737d;cursor:not-allowed;opacity:.72}
.r31-owner-unpublished{font-size:12px!important;letter-spacing:0!important;color:#6a6b5d!important}
@media(max-width:850px){
 .r21-room-card{grid-template-columns:1fr}
 .r21-room-card>.r21-room-desc{padding:0}
 .r21-room-gallery{max-width:none}
 .r21-room-gallery .r21-gallery-photo:first-child img{aspect-ratio:16/9}
}
@media(max-width:520px){
 .r21-guest-rooms,.r21-guest-facts{padding:12px}
 .r21-room-card{padding:17px 0;gap:15px}
 .r21-room-gallery .r21-gallery-photo:first-child img{aspect-ratio:16/10}
 .r31-room-facts{padding:12px}
 .r31-facts-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .r31-fact{gap:6px}
 .r31-fact-icon{width:28px;min-width:28px;height:28px}
 .r31-fact-copy strong{font-size:12.5px}
 .r31-amenities-list{grid-template-columns:1fr}
 .r31-owner-private-panel{grid-template-columns:1fr}
}
