.listing-main{max-width:1120px;margin:24px auto 0;padding:0 40px;}.listing-title-section{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px;}.listing-title{font-size:26px;font-weight:600;margin-bottom:0;max-width:70%;line-height:1.2;}.title-actions{display:flex;gap:8px;}.btn-action{background:none;border:none;font-weight:600;font-size:14px;text-decoration:underline;display:inline-flex;align-items:center;gap:8px;padding:8px;border-radius:8px;transition:background 0.2s;}.btn-action:hover{background:#f7f7f7;}.listing-gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:160px 160px;gap:8px;border-radius:12px;overflow:hidden;margin-bottom:48px;position:relative;}.gallery-main{grid-column:1;grid-row:1 / 3;}.gallery-main img,.gallery-side img{width:100%;height:100%;object-fit:cover;cursor:pointer;border-radius:0 !important;transition:filter 0.3s ease;min-height:0;min-width:0;}.gallery-main img:hover,.gallery-side img:hover{filter:brightness(0.9);}.gallery-side{grid-column:2 / 4;grid-row:1 / 3;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:8px;}.btn-show-all-photos{position:absolute;bottom:24px;right:24px;background:white;border:1px solid #222;padding:6px 16px;border-radius:8px;font-weight:600;font-size:14px;display:flex;align-items:center;gap:8px;box-shadow:0 1px 2px rgba(0,0,0,0.1);transition:all 0.2s ease;z-index:2;cursor:pointer;}.btn-show-all-photos:hover{background:#f7f7f7;}.hover-bg:hover{background:#f7f7f7;}.profile-menu:hover{box-shadow:0 2px 4px rgba(0,0,0,0.18);}.title-actions .btn-action{padding:8px;border-radius:8px;transition:background 0.2s;}.title-actions .btn-action:hover{background:#f7f7f7;}.listing-content-split{display:flex;justify-content:space-between;gap:8%;}.listing-left{width:58%;}.listing-right{width:33%;position:relative;}.listing-subtitle-area h2{font-size:22px;font-weight:600;margin-bottom:4px;}.specs-list{display:flex;list-style:none;gap:4px;padding:0;color:var(--text-dark);font-size:16px;margin-bottom:24px;}.specs-list li:not(:last-child)::after{content:"·";margin-left:4px;}.guest-fav-badge{display:flex;align-items:center;justify-content:space-between;border:1px solid #ddd;border-radius:12px;padding:24px;margin-bottom:24px;}.gf-left{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;}.gf-text{font-size:14px;font-weight:600;text-align:center;line-height:1.4;padding:0 16px;}.gf-stats{display:flex;align-items:center;}.gf-stat-box{text-align:center;}.gf-val{font-size:22px;font-weight:800;line-height:1;margin-bottom:4px;}.gf-stars{font-size:10px;}.gf-label{font-size:12px;font-weight:600;}.host-header{display:flex;align-items:center;gap:16px;}.host-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;}.listing-divider{height:1px;background:#dddddd;margin:32px 0;}.features-list{display:flex;flex-direction:column;gap:24px;}.feature-item{display:flex;gap:16px;}.feature-icon{font-size:24px;color:var(--text-dark);}.feature-title{font-size:16px;font-weight:600;margin-bottom:4px;}.feature-desc{font-size:14px;color:var(--text-medium);}.listing-description p{font-size:16px;color:var(--text-dark);line-height:1.6;margin-bottom:16px;}.btn-link{background:none;border:none;padding:0;font-size:16px;font-weight:600;text-decoration:underline;display:flex;align-items:center;gap:4px;}.sleep-section h2{font-size:22px;font-weight:600;margin-bottom:24px;}.sleep-card{border:1px solid #ddd;border-radius:12px;padding:24px;width:250px;}.sleep-card img{width:100%;height:auto;border-radius:8px;margin-bottom:16px;}.amenities-section h2{font-size:22px;font-weight:600;margin-bottom:24px;}.amenities-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 0;}.amenity-item{font-size:16px;display:flex;align-items:center;gap:16px;}.amenity-item i{font-size:24px;width:24px;color:var(--text-dark);}.btn-outline-dark{background:white;border:1px solid black;padding:12px 24px;border-radius:8px;font-weight:600;font-size:16px;transition:0.2s;}.btn-outline-dark:hover{background:#f7f7f7;}.calendar-section{scroll-margin-top: 80px;}
.calendar-section h2{font-size:22px;font-weight:600;margin-bottom:4px;}.calendar-placeholder{display:flex;gap:48px;}.cal-month{flex:1;}.cal-header{text-align:center;font-weight:600;margin-bottom:16px;}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;gap:2px;}.cal-grid span{padding:10px 0;font-size:14px;font-weight:500;}.cal-grid span:not(.empty):not(.selected-start):not(.selected):not(.selected-end):not(:nth-child(-n+7)):hover{background:#f7f7f7;border-radius:50%;cursor:pointer;}.cal-grid span:nth-child(-n+7){font-size:12px;color:#717171;}.selected-start{background:var(--text-dark);color:white;border-top-left-radius:50%;border-bottom-left-radius:50%;}.selected{background:#f7f7f7;}.selected-end{background:var(--text-dark);color:white;border-top-right-radius:50%;border-bottom-right-radius:50%;}.sticky-wrapper{position:sticky;top:100px;margin-top:24px;}.booking-widget{position:relative;border:1px solid rgb(221,221,221);border-radius:12px;padding:12px;box-shadow:rgb(0 0 0 / 12%) 0px 6px 16px;background:white;}.widget-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;}.widget-header .price{font-size:20px;}.widget-header .price span{font-size:16px;font-weight:400;color:var(--text-dark);}.booking-form{display:flex;flex-direction:column;}.dates-guests{border:1px solid #b0b0b0;border-radius:8px;margin-bottom:10px;overflow:hidden;}.dates{display:flex;border-bottom:1px solid #b0b0b0;}.check-in,.check-out{flex:1;padding:6px;cursor:pointer;}.check-in{border-right:1px solid #b0b0b0;}.dates-guests label{font-size:9px;font-weight:800;color:var(--text-dark);margin-bottom:1px;display:block;}.dates-guests div{font-size:13px;}.guests{padding:6px;cursor:pointer;}.btn-reserve{background:var(--brand);color:white;border:none;padding:8px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:0.2s;margin-bottom:6px;}.btn-reserve:hover{background:#e00b3f;}.charge-text{text-align:center;font-size:12px;color:var(--text-dark);margin-bottom:8px;}.price-row{display:flex;justify-content:space-between;margin-bottom:6px;font-size:14px;}.underline-link{text-decoration:underline;color:var(--text-dark);}.price-total{display:flex;justify-content:space-between;font-weight:600;font-size:14px;}.rating-icons-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:48px;}.rating-icon-col{display:flex;flex-direction:column;align-items:flex-start;gap:8px;}.rating-icon-title{font-size:14px;font-weight:500;}.rating-icon-val{font-size:18px;font-weight:600;}.rating-icon-col i{font-size:32px;color:var(--text-dark);}.rating-divider{width:1px;height:60px;background:#ddd;}.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}.review-card{display:flex;flex-direction:column;background:#fff;border:1px solid #f0f0f0;border-radius:16px;padding:24px;box-shadow:0 2px 12px rgba(0,0,0,0.06);transition:transform 0.2s ease,box-shadow 0.2s ease;position:relative;overflow:hidden;}.review-card:hover{transform:translateY(-4px);box-shadow:0 8px 32px rgba(0,0,0,0.1);}.reviewer-info{display:flex;flex-direction:column;gap:2px;margin-bottom:14px;}.reviewer-name{font-size:15px;font-weight:700;color:#222;line-height:1.2;}.review-date{font-size:13px;color:#aaa;}.review-stars{display:flex;align-items:center;gap:2px;margin-bottom:10px;}.review-stars .star-filled{color:#ff385c;font-size:14px;}.review-stars .star-empty{color:#ddd;font-size:14px;}.review-text{font-size:15px;line-height:1.65;color:#444;white-space:pre-wrap;margin:0;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;}.review-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;}.review-action-btn{font-size:13px;font-weight:600;padding:6px 14px;border-radius:20px;border:1.5px solid #ddd;background:transparent;cursor:pointer;transition:all 0.2s;color:#555;}.review-action-btn:hover{border-color:#ff385c;color:#ff385c;background:#fff5f7;}.review-action-btn.danger:hover{border-color:#e03131;color:#e03131;background:#fff5f5;}.review-action-btn.primary{border-color:#ff385c;color:#ff385c;}.review-action-btn.primary:hover{background:#ff385c;color:#fff;}.host-reply-box{margin-top:16px;border-top:1px solid #f0f0f0;padding-top:14px;background:#f8faff;border-radius:0 0 12px 12px;margin-left:-24px;margin-right:-24px;margin-bottom:-24px;padding-left:24px;padding-right:24px;padding-bottom:16px;}.host-reply-header{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#333;margin-bottom:6px;}.host-reply-text{font-size:14px;color:#555;line-height:1.6;margin:0;}@media (max-width:992px){.listing-content-split{flex-direction:column;}.listing-left{width:100%;}.listing-right{width:100%;margin-top:32px;}.booking-widget{position:relative;top:0;}.rating-icons-row{flex-wrap:wrap;gap:24px;}.rating-divider{display:none;}}@media (max-width:768px){.listing-gallery{grid-template-columns:1fr;grid-template-rows:auto;}.gallery-side{display:none;}#reviews{overflow:hidden;}.reviews-grid{display:flex!important;flex-direction:row!important;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;gap:16px;padding-bottom:10px;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;}.reviews-grid .review-card{flex:0 0 82%;min-width:0;scroll-snap-align:start;box-shadow:0 2px 16px rgba(0,0,0,0.08);}.reviews-grid::-webkit-scrollbar{height:3px;}.reviews-grid::-webkit-scrollbar-track{background:transparent;}.reviews-grid::-webkit-scrollbar-thumb{background:#ff385c66;border-radius:4px;}.calendar-placeholder{flex-direction:column;}.things-to-know > div{flex-direction:column;gap:24px;}.meet-host-section .host-card-large{flex-direction:column;align-items:flex-start;gap:32px;}.meet-host-section .hc-right{width:100%;}}.listing-sticky-header{position:fixed;top:0;left:0;right:0;background:white;border-bottom:1px solid #ebebeb;z-index:1000;transform:translateY(-100%);transition:transform 0.25s cubic-bezier(0.2,0,0,1);box-shadow:0 2px 4px rgba(0,0,0,0.04);}.listing-sticky-header.visible{transform:translateY(0);}.sticky-header-container{max-width:1120px;margin:0 auto;padding:16px 40px;display:flex;justify-content:space-between;align-items:center;}.sticky-nav{display:flex;gap:24px;}.sticky-nav a{color:var(--text-dark);font-weight:600;font-size:14px;text-decoration:none;transition:color 0.2s;}.sticky-nav a:hover{color:var(--text-medium);text-decoration:underline;}.sticky-reserve{display:flex;align-items:center;gap:24px;}.sticky-price-info{display:flex;flex-direction:column;align-items:flex-end;}.sp-price-row{font-size:16px;font-weight:600;}.sp-old-price{text-decoration:line-through;color:var(--text-medium);margin-right:4px;}.sp-night{font-size:14px;font-weight:400;color:var(--text-dark);}.sp-rating{font-size:12px;font-weight:600;display:flex;align-items:center;gap:4px;margin-top:2px;}.btn-reserve-small{background:var(--brand);color:white;border:none;padding:12px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background 0.2s;}.btn-reserve-small:hover{background:#e00b3f;}@media (max-width:767px){.sticky-nav{display:none;}.listing-sticky-header{top:auto;bottom:0;border-bottom:none;border-top:1px solid #ebebeb;transform:translateY(100%);box-shadow:0 -4px 12px rgba(0,0,0,0.08);padding-bottom:env(safe-area-inset-bottom,16px);}.listing-sticky-header.visible{transform:translateY(0);}.sticky-header-container{padding:16px 24px;justify-content:space-between;align-items:center;width:100%;}.sticky-reserve{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;}.sp-price-row{flex-direction:column;align-items:flex-start;gap:0;}#sticky-new-price{font-size:16px;}.btn-reserve-small{padding:12px 24px;font-size:16px;flex-shrink:0;}}.listing-page-header{height:80px !important;padding-bottom:0 !important;border-bottom:1px solid #ebebeb !important;}.listing-page-header .nav-links{display:none !important;}.listing-page-header .compact-search{opacity:1 !important;pointer-events:auto !important;transform:translate(-50%,-50%) scale(1) translateY(0) !important;}.price-includes-banner{background:white;border:1px solid rgb(221,221,221);border-radius:12px;padding:12px 16px;margin-bottom:12px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:500;color:var(--text-dark);box-shadow:0 4px 12px rgba(0,0,0,0.05);}.price-includes-banner span{font-size:18px;color:#e00b3f;}.footer-col a{display:block;color:#222222 !important;text-decoration:none !important;margin-bottom:12px;font-size:14px;}.footer-col a:hover{text-decoration:underline !important;}.footer-col h4{font-weight:600;margin-bottom:16px;font-size:14px;color:#222222;}@media (max-width:767px){.listing-page-header{display:none !important;}.listing-gallery{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;height:100%;border-radius:0;gap:0;}.listing-gallery::-webkit-scrollbar{display:none;}.gallery-main,.gallery-side{display:contents;}.listing-gallery img{flex:0 0 100%;width:100%;height:100%;object-fit:cover;scroll-snap-align:start;border-radius:0 !important;}.mobile-gallery-header{position:absolute;top:24px;left:16px;right:16px;display:flex;justify-content:flex-end;align-items:center;z-index:10;}.glass-actions{display:flex;gap:12px;}.glass-btn{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,0.9);backdrop-filter:blur(8px);border:1px solid rgba(0,0,0,0.05);display:flex;align-items:center;justify-content:center;font-size:16px;color:#222;box-shadow:0 2px 8px rgba(0,0,0,0.1);cursor:pointer;transition:transform 0.2s;}.glass-btn:active{transform:scale(0.92);}.mobile-gallery-counter{position:absolute;bottom:36px;right:16px;background:rgba(0,0,0,0.65);color:#fff;font-size:13px;font-weight:500;padding:4px 10px;border-radius:12px;z-index:10;backdrop-filter:blur(4px);}.listing-main{padding:0;margin-top:0;display:flex;flex-direction:column;}.listing-main > *{order:4;}.mobile-gallery-wrapper{order:1;position:relative;width:100%;height:60vh;}.listing-title-section{order:2;display:block !important;position:relative;background:#fff;border-radius:24px 24px 0 0;margin-top:-24px;z-index:11;padding:24px 24px 0 24px !important;margin-bottom:0 !important;box-shadow:0 -4px 16px rgba(0,0,0,0.06);}.listing-title{max-width:100%;}.title-actions{display:none !important;}.listing-content-split{order:3;position:relative;background:#fff;border-radius:0;margin-top:0;z-index:11;padding:8px 24px 24px 24px;box-shadow:none;}}.host-card-large{background:#f7f7f7;border-radius:24px;padding:32px;display:flex;justify-content:space-between;align-items:flex-start;gap:32px;}.hc-left{display:flex;flex-direction:column;align-items:center;flex:0 0 auto;}.hc-right{flex:1;}#prop-host-superhost-text{font-weight:600;font-size:16px;margin-bottom:8px;}#prop-host-bio{font-size:14px;margin-bottom:16px;color:var(--text-dark);line-height:1.6;}@media (max-width:767px){.meet-host-section h2{text-align:center;}.meet-host-section .host-card-large{flex-direction:column;align-items:center;padding:24px 20px;text-align:center;gap:20px;}.hc-left{width:100%;align-items:center;}.meet-host-section .hc-right{width:100%;padding-left:0;display:flex;flex-direction:column;align-items:center;text-align:center;}.things-to-know .row{gap:0 !important;}.things-to-know .col-12{padding-top:24px;padding-bottom:24px;border-bottom:1px solid #ebebeb;}.things-to-know .col-12:first-child{padding-top:0;}.things-to-know .col-12:last-child{border-bottom:none;padding-bottom:0;}}@media (max-width:767px){body{padding-bottom:100px;}}@media (max-width:767px){.things-to-know .row{margin-left:0;margin-right:0;}.things-to-know .col-12{padding-left:0;padding-right:0;}}.things-to-know .info-section{padding:0;}.things-to-know .section-title{font-size:20px;font-weight:700;letter-spacing:-0.25px;margin-bottom:18px;}.things-to-know .rules-list{display:flex;flex-direction:column;}.things-to-know .rule-item{display:flex;align-items:center;gap:15px;min-height:54px;padding:8px 0;color:#333;}.things-to-know .rule-icon{width:40px;height:40px;flex:0 0 40px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#f7f7f7;font-size:19px;color:#444;}.things-to-know .rule-content{display:flex;flex-direction:column;gap:2px;}.things-to-know .rule-label{font-size:15px;color:var(--text-medium);}.things-to-know .rule-value{font-size:16px;font-weight:500;color:var(--text-dark);}.things-to-know .safety-box{display:flex;gap:14px;align-items:flex-start;padding:16px;background:#fafafa;border:1px solid #eeeeee;border-radius:14px;}.things-to-know .safety-icon{width:40px;height:40px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#ffffff;border:1px solid #e5e5e5;font-size:18px;}.things-to-know .safety-content h3{font-size:15px;font-weight:600;margin-bottom:4px;margin-top:0;}.things-to-know .safety-content p,.things-to-know .safety-content div{font-size:14px !important;color:var(--text-medium) !important;line-height:1.5;margin-bottom:0;}.things-to-know .cancellation-content{font-size:15px;color:#444;line-height:1.65;}.things-to-know .show-more{margin-top:13px;display:inline-flex;align-items:center;gap:7px;border:none;background:transparent;font-size:15px;font-weight:700;color:#222;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px;}.things-to-know .show-more .arrow{width:8px;height:8px;border-right:1.8px solid #222;border-bottom:1.8px solid #222;transform:rotate(45deg);transition:transform 0.2s ease;}@media (max-width:767px){.things-to-know .info-section{padding:25px 0 27px;border-top:none;}.things-to-know .col-12{border-bottom:1px solid var(--palette-border-primary-inverse,#ebebeb);padding-top:24px;padding-bottom:24px;}.things-to-know .col-12:last-child{border-bottom:none;}}/* Removed rogue minified flatpickr overrides */@media (max-width:767px){}.things-to-know .show-more i{font-size:14px;margin-left:4px;font-weight:bold;}
/* ============================================================
   PREMIUM GALLERY SKELETON & DESKTOP GRID OPTIMIZATIONS
   ============================================================ */
@keyframes gvGalleryShimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

.gallery-item {
  position: relative;
  background-color: #f1f3f5;
  background-image: linear-gradient(
    90deg,
    #f1f3f5 0%,
    #ffffff 50%,
    #f1f3f5 100%
  );
  background-size: 200% 100%;
  animation: gvGalleryShimmer 1.8s infinite ease-in-out;
  overflow: hidden;
  cursor: pointer;
}

.gallery-item.loaded {
  animation: none !important;
  background-image: none !important;
  background-color: #1a1a1a !important;
}

.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.35s cubic-bezier(0.2, 0, 0, 1), transform 0.4s ease;
  display: block;
}

.gallery-item.loaded img {
  opacity: 1 !important;
}

.gallery-item:hover img {
  transform: scale(1.025);
  filter: brightness(0.96);
}

/* Desktop Gallery (>= 768px) */
@media (min-width: 768px) {
  .mobile-gallery-wrapper {
    height: auto !important;
    position: static !important;
  }
  .listing-gallery {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-rows: 420px !important;
    height: 420px !important;
    max-height: 420px !important;
    gap: 8px !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    margin-bottom: 36px !important;
    position: relative !important;
    background: #f1f3f5;
  }
  .gallery-main {
    grid-column: 1 !important;
    grid-row: 1 !important;
    height: 100% !important;
    width: 100% !important;
    overflow: hidden !important;
    border-top-left-radius: 16px;
    border-bottom-left-radius: 16px;
  }
  .gallery-side {
    grid-column: 2 !important;
    grid-row: 1 !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-rows: 206px 206px !important;
    gap: 8px !important;
    height: 100% !important;
    width: 100% !important;
    overflow: hidden !important;
  }
  .gallery-side-item {
    height: 206px !important;
    width: 100% !important;
    overflow: hidden !important;
  }
  .gallery-side-item:nth-child(2) {
    border-top-right-radius: 16px;
  }
  .gallery-side-item:nth-child(4) {
    border-bottom-right-radius: 16px;
  }
  .btn-show-all-photos {
    position: absolute;
    bottom: 20px;
    right: 20px;
    background: #ffffff;
    color: #222222;
    border: 1px solid #222222;
    border-radius: 8px;
    padding: 7px 15px;
    font-size: 14px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
    transition: all 0.2s cubic-bezier(0.2, 0, 0, 1);
    z-index: 5;
  }
  .btn-show-all-photos:hover {
    background: #f7f7f7;
    transform: scale(1.02);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
  }
}

/* Mobile Gallery (< 768px) */
@media (max-width: 767px) {
  .listing-gallery {
    display: flex !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
    height: 100% !important;
    border-radius: 0 !important;
    gap: 0 !important;
    margin-bottom: 0 !important;
  }
  .listing-gallery::-webkit-scrollbar {
    display: none !important;
  }
  .gallery-main,
  .gallery-side {
    display: contents !important;
  }
  .listing-gallery .gallery-item {
    flex: 0 0 100% !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 100% !important;
    scroll-snap-align: start !important;
    border-radius: 0 !important;
  }
  .listing-gallery .gallery-item img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 0 !important;
  }
  .btn-show-all-photos {
    display: none !important;
  }
}

/* Lightbox Modal */
.gv-lightbox-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(15, 15, 15, 0.96);
  backdrop-filter: blur(8px);
  z-index: 99999;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}
.gv-lightbox-modal.active {
  opacity: 1;
  visibility: visible;
}
.gv-lightbox-header {
  padding: 16px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #fff;
  z-index: 2;
}
.gv-lightbox-counter {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.5px;
}
.gv-lightbox-close {
  background: rgba(255, 255, 255, 0.15);
  border: none;
  color: #fff;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}
.gv-lightbox-close:hover {
  background: rgba(255, 255, 255, 0.3);
  transform: scale(1.08);
}
.gv-lightbox-body {
  position: relative;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 60px;
  overflow: hidden;
}
.gv-lightbox-img-wrapper {
  max-width: 90vw;
  max-height: 82vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.gv-lightbox-img {
  max-width: 100%;
  max-height: 82vh;
  object-fit: contain;
  border-radius: 8px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
  transition: transform 0.25s ease;
}
.gv-lightbox-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #fff;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
  z-index: 3;
}
.gv-lightbox-btn:hover {
  background: rgba(255, 255, 255, 0.35);
  transform: translateY(-50%) scale(1.1);
}
.gv-lightbox-prev {
  left: 20px;
}
.gv-lightbox-next {
  right: 20px;
}

/* ============================================================
   UNIVERSAL BOX SIZING & BASE RESETS
   ============================================================ */
*, *::before, *::after {
  box-sizing: border-box;
}

.specs-list {
  flex-wrap: wrap !important;
}

/* Airbnb-Style Interactive Map Frame */
.map-section {
  position: relative;
  margin-bottom: 24px;
}
#property-map-container {
  width: 100% !important;
  max-width: 100% !important;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
  background: #f8fafc;
  position: relative;
  box-sizing: border-box;
}
#property-map-iframe {
  width: 100% !important;
  max-width: 100% !important;
  height: 380px;
  border: 0;
  display: block;
}

/* ============================================================
   DESKTOP AIRBNB LAYOUT & ZERO-CLS STICKY ENGINE (>= 769px)
   ============================================================ */
@media (min-width: 769px) {
  html, body {
    overflow-x: visible !important;
    max-width: 100% !important;
    width: 100% !important;
    position: static !important;
  }

  #siteHeader {
    position: sticky !important;
    top: 0 !important;
    z-index: 2000 !important;
  }

  .listing-sticky-header {
    z-index: 2500 !important;
  }

  .listing-main {
    max-width: 1120px !important;
    margin: 24px auto 0 !important;
    padding: 0 40px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    overflow: visible !important;
  }

  .listing-title-section {
    max-width: 1120px !important;
    width: 100% !important;
    overflow: visible !important;
  }

  .listing-content-split {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    gap: 8% !important;
    max-width: 1120px !important;
    width: 100% !important;
    overflow: visible !important;
  }

  .listing-left {
    width: 58% !important;
    max-width: 58% !important;
    flex: 0 0 58% !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }

  .listing-right {
    width: 34% !important;
    max-width: 34% !important;
    flex: 0 0 34% !important;
    position: relative !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }

  .sticky-wrapper {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 100px !important;
    margin-top: 24px !important;
    z-index: 50 !important;
  }

  .booking-widget {
    position: relative !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }
}

/* ============================================================
   BULLETPROOF MOBILE RESPONSIVENESS & ZERO-HORIZONTAL-SCROLL (<= 768px)
   ============================================================ */
@media (max-width: 768px) {
  html, body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
    width: 100% !important;
    position: relative;
    box-sizing: border-box;
  }

  .listing-main,
  .listing-title-section,
  .listing-content-split,
  .listing-left,
  .listing-right,
  .map-section,
  .reviews-section,
  .meet-host-section,
  .things-to-know,
  .booking-widget,
  footer {
    max-width: 100% !important;
    overflow-x: hidden;
    box-sizing: border-box;
  }

  #property-map-iframe {
    height: 260px !important;
  }
  
  .listing-content-split {
    padding: 8px 16px 24px 16px !important;
    flex-direction: column !important;
  }

  .listing-left,
  .listing-right {
    width: 100% !important;
    max-width: 100% !important;
  }
  
  .location-actions {
    width: 100% !important;
    display: flex !important;
    gap: 8px !important;
  }
  
  .location-actions a,
  .location-actions button {
    flex: 1 1 auto !important;
    justify-content: center !important;
    text-align: center !important;
    padding: 10px 14px !important;
    font-size: 13px !important;
  }

  footer .container-fluid {
    padding: 28px 16px !important;
  }
}

@media (max-width: 480px) {
  .location-actions {
    flex-direction: column !important;
    gap: 8px !important;
  }
  .location-actions a,
  .location-actions button {
    width: 100% !important;
  }
}




/* ==========================================================================
   UNIFIED BOOKING CONTAINER & SEAMLESS ROOM/BED SELECTOR (AIRBNB 2026)
   ========================================================================== */
.booking-widget {
  border-radius: 16px !important;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08) !important;
  border: 1px solid #e2e8f0 !important;
}

.dates-guests {
  border: 1px solid #b0b0b0 !important;
  border-radius: 12px !important;
  margin-bottom: 14px !important;
  overflow: hidden !important;
  background: #ffffff !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04) !important;
}

.dates {
  border-bottom: 1px solid #b0b0b0 !important;
  background: #ffffff !important;
}

.check-in, .check-out {
  padding: 8px 12px !important;
}

.check-in {
  border-right: 1px solid #b0b0b0 !important;
}

.category-row-widget {
  padding: 8px 12px !important;
  border-bottom: 1px solid #b0b0b0 !important;
  background: #ffffff !important;
}

#room-category-tabs {
  display: inline-flex !important;
  background: #f1f5f9 !important;
  padding: 2.5px !important;
  border-radius: 8px !important;
  border: 1px solid #e2e8f0 !important;
  gap: 2px !important;
}

.btn-category-tab {
  padding: 3.5px 10px !important;
  border-radius: 6px !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  border: none !important;
  background: transparent !important;
  color: #64748b !important;
  transition: all 0.2s ease !important;
}

.btn-category-tab.active {
  background: #ffffff !important;
  color: #ff385c !important;
  font-weight: 700 !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08) !important;
}

.btn-category-tab:hover:not(.active) {
  color: #1e293b !important;
}

#room-type-container {
  border-top: none !important;
  background: #ffffff !important;
  padding: 9px 12px 11px !important;
  cursor: pointer !important;
  transition: background 0.15s ease !important;
}

#room-type-container:hover {
  background: #fafafa !important;
}

#selected-rooms-summary-card {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

#btn-open-bed-modal {
  width: 100% !important;
  margin-top: 10px !important;
  padding: 8.5px 12px !important;
  border-radius: 8px !important;
  border: 1px solid #e2e8f0 !important;
  background: #f8fafc !important;
  color: #1e293b !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02) !important;
}

#btn-open-bed-modal:hover {
  background: #f1f5f9 !important;
  border-color: #cbd5e1 !important;
  color: #0f172a !important;
  text-decoration: none !important;
}


/* ============================================================
   BULLETPROOF AIRBNB-GRADE FLATPICKR CALENDAR (7-COL LOCKED GRID)
   ============================================================ */

/* Base container */
.flatpickr-calendar {
    box-shadow: none !important;
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    width: 100% !important;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif !important;
}

.flatpickr-innerContainer {
    display: flex !important;
    justify-content: center !important;
    width: 100% !important;
    overflow: visible !important;
    box-sizing: border-box !important;
}

.flatpickr-rContainer {
    width: 100% !important;
    max-width: 360px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
}

/* Header & Month Navigation */
.flatpickr-months {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 0 4px !important;
    margin-bottom: 16px !important;
    position: relative !important;
    width: 100% !important;
    max-width: 360px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.flatpickr-months .flatpickr-prev-month, 
.flatpickr-months .flatpickr-next-month,
.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month.flatpickr-next-month {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 36px !important;
    width: 36px !important;
    min-width: 36px !important;
    border-radius: 50% !important;
    border: 1px solid #e2e8f0 !important;
    background: #ffffff !important;
    color: #222222 !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    padding: 0 !important;
    margin: 0 !important;
    z-index: 3 !important;
    flex: 0 0 36px !important;
}

.flatpickr-months .flatpickr-month {
    background: transparent !important;
    color: #222222 !important;
    fill: #222222 !important;
    height: 40px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    flex: 1 1 auto !important;
    position: relative !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    min-width: 0 !important;
}

.flatpickr-current-month {
    position: static !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    width: auto !important;
    max-width: max-content !important;
    gap: 6px !important;
    padding: 0 !important;
    margin: 0 auto !important;
    height: auto !important;
    line-height: 1.2 !important;
    transform: none !important;
    -webkit-transform: none !important;
    overflow: visible !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
}

/* SUPPORT BOTH span.cur-month AND select.flatpickr-monthDropdown-months EQUALLY SO MONTH NEVER DISAPPEARS */
.flatpickr-current-month span.cur-month,
.flatpickr-current-month select.flatpickr-monthDropdown-months,
.flatpickr-current-month .flatpickr-monthDropdown-months {
    display: inline-block !important;
    font-size: 16.5px !important;
    font-weight: 700 !important;
    color: #222222 !important;
    padding: 0 !important;
    margin: 0 !important;
    white-space: nowrap !important;
    line-height: 1.2 !important;
    background: transparent !important;
    border: none !important;
    outline: none !important;
    cursor: default !important;
    overflow: visible !important;
    text-align: right !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    width: auto !important;
}

.flatpickr-current-month .numInputWrapper {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 44px !important;
    max-width: 44px !important;
    min-width: 44px !important;
    padding: 0 !important;
    margin: 0 !important;
}

.flatpickr-current-month .numInputWrapper span {
    display: none !important;
}

.flatpickr-current-month input.cur-year {
    display: inline-block !important;
    font-size: 16.5px !important;
    font-weight: 700 !important;
    color: #222222 !important;
    width: 44px !important;
    max-width: 44px !important;
    min-width: 44px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    background: transparent !important;
    pointer-events: none !important;
    line-height: 1.2 !important;
    text-align: left !important;
    -webkit-appearance: textfield !important;
    -moz-appearance: textfield !important;
    appearance: textfield !important;
}

.flatpickr-current-month input.cur-year::-webkit-outer-spin-button,
.flatpickr-current-month input.cur-year::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}

.flatpickr-months .flatpickr-prev-month:hover, 
.flatpickr-months .flatpickr-next-month:hover {
    background: #f8fafc !important;
    border-color: #222222 !important;
}

.flatpickr-months .flatpickr-prev-month svg, 
.flatpickr-months .flatpickr-next-month svg {
    width: 13px !important;
    height: 13px !important;
    fill: #222222 !important;
}

/* Maintain symmetrical spacing when previous month is disabled */
.flatpickr-months .flatpickr-prev-month.flatpickr-disabled, 
.flatpickr-months .flatpickr-next-month.flatpickr-disabled {
    visibility: hidden !important;
    pointer-events: none !important;
    opacity: 0 !important;
}

/* Weekday Row: LOCKED TO 7 EQUAL COLUMNS */
.flatpickr-weekdays {
    width: 100% !important;
    background: transparent !important;
    padding: 0 !important;
    margin-bottom: 6px !important;
    border: none !important;
    display: flex !important;
}

.flatpickr-weekdaycontainer {
    display: grid !important;
    grid-template-columns: repeat(7, 1fr) !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

span.flatpickr-weekday {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    color: #717171 !important;
    font-weight: 600 !important;
    font-size: 12px !important;
    text-transform: capitalize !important;
    margin: 0 !important;
    padding: 4px 0 !important;
}

/* Day Container: LOCKED TO 7 EQUAL COLUMNS */
.flatpickr-days {
    width: 100% !important;
    display: flex !important;
    border: none !important;
}

.dayContainer {
    display: grid !important;
    grid-template-columns: repeat(7, 1fr) !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    outline: none !important;
    transform: none !important;
    gap: 2px 0 !important;
}

/* Day Cells */
.flatpickr-day {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 44px !important;
    line-height: 44px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    border: 1.5px solid transparent !important;
    border-radius: 50% !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #222222 !important;
    cursor: pointer !important;
    position: relative !important;
    background: transparent !important;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease !important;
}

/* Hover effect on available days */
.flatpickr-day:hover:not(.flatpickr-disabled):not(.selected):not(.startRange):not(.endRange) {
    background: #f1f5f9 !important;
    border-color: #cbd5e1 !important;
    color: #0f172a !important;
}

/* Today indicator */
.flatpickr-day.today:not(.selected):not(.startRange):not(.endRange):not(.inRange) {
    border-color: #222222 !important;
    font-weight: 700 !important;
}

/* Outside month days (prev & next month) - hide cleanly while preserving 7-col grid slots */
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay {
    visibility: hidden !important;
    pointer-events: none !important;
}

/* Past / Disabled days */
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover {
    color: #cbd5e1 !important;
    background: transparent !important;
    border-color: transparent !important;
    cursor: not-allowed !important;
    text-decoration: line-through !important;
    pointer-events: none !important;
    font-weight: 400 !important;
}

/* Selected Range Endpoints */
.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
    background: #222222 !important;
    border-color: #222222 !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    z-index: 2 !important;
}

.flatpickr-day.startRange {
    border-radius: 50% 0 0 50% !important;
}

.flatpickr-day.endRange {
    border-radius: 0 50% 50% 0 !important;
}

.flatpickr-day.startRange.endRange {
    border-radius: 50% !important;
}

/* In-Between Range Days (Seamless continuous band) */
.flatpickr-day.inRange {
    background: #f1f5f9 !important;
    border-color: #f1f5f9 !important;
    color: #0f172a !important;
    border-radius: 0 !important;
    box-shadow: -5px 0 0 #f1f5f9, 5px 0 0 #f1f5f9 !important;
}

/* ============================================================
   DESKTOP DUAL MONTH (>= 768px): SIDE-BY-SIDE PERFECT LAYOUT
   ============================================================ */
@media (min-width: 768px) {
    .calendar-placeholder {
        max-width: 680px !important;
    }
    .flatpickr-calendar {
        max-width: 680px !important;
        width: 680px !important;
    }
    .flatpickr-innerContainer {
        display: flex !important;
        justify-content: center !important;
        width: 100% !important;
    }
    .flatpickr-rContainer {
        max-width: 680px !important;
        width: 100% !important;
        margin: 0 !important;
    }
    .flatpickr-months {
        max-width: 680px !important;
        width: 100% !important;
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    .flatpickr-months .flatpickr-month {
        flex: 1 1 0 !important;
        max-width: 320px !important;
        width: 320px !important;
    }
    .flatpickr-weekdays {
        display: flex !important;
        justify-content: space-between !important;
        gap: 40px !important;
        width: 100% !important;
    }
    .flatpickr-weekdaycontainer {
        flex: 1 1 0 !important;
        max-width: 320px !important;
        width: 320px !important;
        display: grid !important;
        grid-template-columns: repeat(7, 1fr) !important;
    }
    .flatpickr-days {
        display: flex !important;
        justify-content: space-between !important;
        gap: 40px !important;
        width: 100% !important;
    }
    .dayContainer {
        flex: 1 1 0 !important;
        max-width: 320px !important;
        width: 320px !important;
        min-width: 320px !important;
        display: grid !important;
        grid-template-columns: repeat(7, 1fr) !important;
    }
}
