.spinner { width:50px; height:50px; border:5px solid #f3f3f3; border-top:5px solid #3498db; border-radius:50%; animation:spin 1s linear infinite; }
@keyframes spin { 0% { transform:rotate(0deg); } 100% { transform:rotate(360deg); } }

.hotel-layout-premium { background:#fff; margin-bottom:40px; padding:15px; border-radius:12px; box-shadow:0 2px 10px rgba(0,0,0,0.1); align-items:center; justify-content:center; }

.hotel-layout { display:grid; grid-template-columns:1fr 320px; gap:30px; margin-bottom:50px; }

.booking-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:1fr 1fr; gap:10px; height:450px; border-radius:16px; overflow:hidden; position:relative; cursor:pointer; }
.hero-image { grid-area:1 / 1 / 3 / 2; }
.hero-image img, .thumb-item img { width:100%; height:100%; object-fit:cover; transition:0.3s; }
.hero-image img:hover, .thumb-item img:hover { filter:brightness(0.8); }

.photo-badge { position:absolute; bottom:15px; right:15px; background:rgba(0,0,0,0.7); color:#fff; padding:8px 15px; border-radius:8px; font-size:13px; backdrop-filter:blur(5px); pointer-events:none; }

.amenities-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:12px; margin-top:20px; }
.amenity-box { display:flex; align-items:center; gap:10px; padding:6px; background:#f8f9fa; border-radius:12px; border:1px solid #eee; font-size:14px; color:#444; }
.amenity-box i { color:#003580; font-size:16px; }

.side-col { position:sticky; top:100px; height:fit-content; }

.rating-box-new { background:#fff; padding:20px; border-radius:16px; border:1px solid #eee; box-shadow:0 4px 15px rgba(0,0,0,0.05); display:flex; align-items:center; gap:15px; cursor:pointer; transition:0.2s; }
.rating-box-new:hover { border-color:#003580; }

.rating-score { background:#003580; color:#fff; padding:10px 15px; border-radius:10px; font-size:20px; font-weight:800; }
.rec-green { color:#2ecc71; font-weight:700; font-size:16px; }

.map-btn { margin-top:20px; width:100%; padding:15px; border:none; background:#f1f1f1 url('https://www.google.com/maps/vt/pb=!1m4!1m3!1i15!2i1!3i1!2m3!1e0!2sm!3i407105169!3m8!2sen!3sus!5e1105!12m4!1e68!2m2!1sset!2sRoadmap!4e0!5m1!1e0!23i4111425') center; background-size:cover; border-radius:16px; text-align:center; font-weight:bold; cursor:pointer; color:#000; text-shadow:0 0 5px #fff; }

.modal { position:fixed; inset:0; background:rgba(0,0,0,0.9); display:none; align-items:center; justify-content:center; z-index:99999; }
.modal-inner { position:relative; width:90%; max-width:1100px; text-align:center; }
.gallery-img { max-width:100%; max-height:85vh; border-radius:8px; box-shadow:0 0 30px rgba(0,0,0,0.5); }

.nav-btn { position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,0.2); border:none; color:#fff; width:50px; height:50px; border-radius:50%; font-size:24px; cursor:pointer; }
.nav-left { left:-60px; }
.nav-right { right:-60px; }

.modal-close { position:fixed; top:25px; right:25px; color:#fff; font-size:35px; font-weight:bold; cursor:pointer; z-index:100000; width:45px; height:45px; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,0.3); border-radius:50%; transition:0.3s; }
.modal-close:hover { background:rgba(255,255,255,0.2); transform:scale(1.1); }

#detailsModal { display:none; position:fixed; z-index:10000; left:0; top:0; width:100%; height:100%; background:rgba(0,0,0,0.85); overflow-y:auto; }
.modal-content { background:#fff; width:90%; max-width:850px; margin:40px auto; border-radius:15px; padding-bottom:30px; position:relative; }
.close-modal { position:sticky; top:0; right:0; float:right; padding:10px 20px; font-size:30px; cursor:pointer; z-index:11; }
.details-link { text-decoration:none; color:#003580; font-size:13px; font-weight:600; }

.reviews-wrapper .review-item-more { display:block!important; overflow:hidden!important; max-height:0!important; opacity:0!important; padding:0 15px!important; margin:0!important; border:none!important; transition:max-height 0.5s ease-in-out, opacity 0.4s ease, padding 0.4s ease!important; background-color:#f8f9fa!important; border-left:3px solid #003580!important; border-radius:0 5px 5px 0!important; }
.reviews-wrapper .review-item-more.is-open { max-height:1500px!important; opacity:1!important; padding:15px!important; margin-top:10px!important; margin-bottom:10px!important; }

.showMoreOfReviewItem { border:1px solid #003580!important; color:#003580!important; background:transparent!important; border-radius:20px!important; padding:5px 15px!important; font-weight:600!important; transition:all 0.3s ease!important; margin-bottom:20px; }
.showMoreOfReviewItem:hover { background:#003580!important; color:#fff!important; margin-bottom:20px; }

@media(max-width:992px){
.hotel-layout { grid-template-columns:1fr; }
.side-col { position:static; }
.nav-left { left:10px; }
.nav-right { right:10px; }
.modal-close { top:15px; right:15px; font-size:28px; }
}
@media (max-width: 768px) {
    .hotel-overview-text {
        padding: 20px !important;
        margin: 15px 0 !important;
        font-size: 1rem !important;
    }
    .hotel-overview-text h2 {
        font-size: 1.3rem !important;
    }
}
