/* Luxenest React parity — stays, property detail and booking flow.
   Source of truth: supplied React 0042D Stays.js, Property.js and booking components. */

.lx-react-stays-page,
.lx-react-property-page,
.public-booking-page,
.public-checkout-page,
.public-pending-page {
    background:
        radial-gradient(circle at 12% 0%, rgba(240,217,154,.20), transparent 26rem),
        #f7f2e8;
    color: #0b1b34;
}

.lx-react-shell { width: min(1280px, calc(100% - 40px)); margin-inline: auto; }

/* ---------- shared React controls ---------- */
.lx-react-premium-badge,
.lx-react-location-badge,
.lx-react-section-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(199,161,91,.20), rgba(240,217,154,.34));
    color: #0b1b34;
    box-shadow: 0 8px 24px rgba(11,27,52,.07);
    padding: 8px 14px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .17em;
    line-height: 1.1;
    text-transform: uppercase;
}
.lx-react-premium-dot { width: 6px; height: 6px; border-radius: 50%; background: #c7a15b; box-shadow: 0 0 0 5px rgba(199,161,91,.10); }

.lx-react-btn {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 999px;
    padding: 12px 22px;
    border: 0;
    font: 650 13px/1.2 'Manrope', sans-serif;
    letter-spacing: .01em;
    text-decoration: none;
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease, border-color .18s ease;
}
.lx-react-btn:hover:not(:disabled) { transform: translateY(-1px); }
.lx-react-btn:disabled { opacity: .48; cursor: not-allowed; transform: none; box-shadow: none; }
.lx-react-btn-gold { color: #0b1b34; background: linear-gradient(135deg,#c7a15b,#dcc486); box-shadow: 0 12px 28px rgba(173,127,46,.23); }
.lx-react-btn-gold:hover:not(:disabled) { background: linear-gradient(135deg,#d4b56f,#f0d99a); box-shadow: 0 16px 34px rgba(173,127,46,.29); }
.lx-react-btn-outline { color: #0b1b34; border: 1px solid rgba(11,27,52,.68); background: rgba(255,255,255,.36); }
.lx-react-btn-outline:hover:not(:disabled) { color: #f7f2e8; background: #0b1b34; box-shadow: 0 12px 28px rgba(11,27,52,.16); }
.lx-react-btn-whatsapp { color: #fff; background: #25c766; box-shadow: 0 10px 24px rgba(37,199,102,.22); }
.lx-react-btn-whatsapp:hover:not(:disabled) { background: #1fb35a; }
.lx-react-btn-block { width: 100%; }

/* ---------- stays ---------- */
.lx-react-stays { padding: 56px 0 112px; }
.lx-react-stays-intro { padding-top: 0; }
.lx-react-intro-copy { max-width: 760px; }
.lx-react-intro-copy h1 {
    margin: 18px 0 0;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(42px, 4.15vw, 58px);
    font-weight:400;
    line-height: 1.04;
    letter-spacing: -.035em;
    color: #0b1b34;
}
.lx-react-intro-copy p { max-width: 700px; margin: 26px 0 0; color: rgba(11,27,52,.74); font-size: 15px; line-height: 1.75; }
.lx-react-stays-body { margin-top: 54px; }
.lx-react-filter-card {
    padding: 26px;
    border: 1px solid rgba(222,210,191,.72);
    border-radius: 22px;
    background: rgba(255,253,248,.97);
    box-shadow: 0 18px 48px rgba(11,27,52,.075);
}
.lx-react-filter-toolbar { min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.lx-react-filter-toggle { display: none; align-items: center; gap: 8px; border: 0; background: transparent; color: #0b1b34; font-weight: 650; }
.lx-react-filter-toggle b { min-width: 24px; height: 22px; display: inline-grid; place-items: center; padding: 0 6px; border-radius: 999px; background: rgba(199,161,91,.14); font-size: 10px; }
.lx-react-filter-reset {
    margin-left: auto;
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 15px;
    border: 1px solid #c7a15b;
    border-radius: 999px;
    background: rgba(199,161,91,.05);
    color: #0b1b34;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
    text-decoration: none;
}
.lx-react-filter-reset.is-disabled { pointer-events: none; opacity: .42; border-color: #ded2bf; }
.lx-react-filter-panel { margin-top: 18px; }
.lx-react-filter-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; }
.lx-react-filter-grid label > span,
.lx-react-amenities-filter legend,
.lx-react-form-field > span {
    display: block;
    margin-bottom: 8px;
    color: #0b1b34;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .13em;
    line-height: 1.25;
    text-transform: uppercase;
}
.lx-react-filter-grid select,
.lx-react-form-field input,
.lx-react-form-field select,
.lx-react-form-field textarea {
    width: 100%;
    min-height: 54px;
    border: 1px solid rgba(199,161,91,.34);
    border-radius: 15px;
    background: rgba(255,255,255,.94);
    color: #0b1b34;
    padding: 12px 15px;
    outline: 0;
    font-size: 14px;
    transition: border-color .17s ease, box-shadow .17s ease, background-color .17s ease;
}
.lx-react-filter-grid select,
.lx-react-form-field select { appearance: none; padding-right: 40px; background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%230B1B34' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; }
.lx-react-filter-grid select:focus,
.lx-react-form-field input:focus,
.lx-react-form-field select:focus,
.lx-react-form-field textarea:focus { border-color:#ad7f2e; background:#fff; box-shadow:0 0 0 4px rgba(199,161,91,.15); }
.lx-react-amenities-filter { margin: 24px 0 0; padding: 0; border: 0; }
.lx-react-amenity-chips { display:flex; flex-wrap:wrap; gap:8px; }
.lx-react-amenity-chip { position: relative; cursor: pointer; }
.lx-react-amenity-chip input { position:absolute; opacity:0; pointer-events:none; }
.lx-react-amenity-chip span { min-height:32px; display:inline-flex; align-items:center; gap:6px; padding:6px 13px; border:1px solid #ded2bf; border-radius:999px; background:#fff; color:#0b1b34; font-size:11px; font-weight:550; box-shadow:0 5px 14px rgba(11,27,52,.035); transition:.18s ease; }
.lx-react-amenity-chip:hover span { border-color:#c7a15b; color:#ad7f2e; }
.lx-react-amenity-chip.is-selected span,
.lx-react-amenity-chip input:checked + span { border-color:#c7a15b; background:#c7a15b; color:#0b1b34; }
.lx-react-filter-empty { margin:0; color:rgba(11,27,52,.58); font-size:12px; }
.lx-react-filter-fallback { position:absolute; left:-9999px; }
.lx-react-results-count { margin: 32px 0 18px; color: rgba(11,27,52,.72); font-size:13px; }
.lx-react-results-count strong { color:#0b1b34; font-weight:700; }
.lx-react-stay-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.lx-react-stay-card { min-width:0; overflow:hidden; border:1px solid rgba(222,210,191,.68); border-radius:22px; background:rgba(255,253,248,.98); box-shadow:0 18px 48px rgba(11,27,52,.075); transition:transform .22s ease, box-shadow .22s ease; }
.lx-react-stay-card:hover { transform:translateY(-2px); box-shadow:0 22px 56px rgba(11,27,52,.105); }
.lx-react-stay-media-wrap { position:relative; }
.lx-react-stay-media { display:block; height:208px; overflow:hidden; background:#efe4d1; }
.lx-react-stay-media img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.lx-react-stay-card:hover .lx-react-stay-media img { transform:scale(1.025); }
.lx-react-image-fallback,.lx-react-gallery-placeholder { width:100%; height:100%; display:grid; place-items:center; background:linear-gradient(135deg,#0b1b34,#17304f); color:#f0d99a; font-family:'Playfair Display',serif; font-size:64px; }
.lx-react-country-chip { position:absolute; top:12px; left:12px; display:inline-flex; align-items:center; min-height:30px; padding:5px 12px; border-radius:999px; background:rgba(255,255,255,.95); color:#0b1b34; box-shadow:0 6px 16px rgba(11,27,52,.05); font-size:11px; }
.lx-react-stay-card-body { padding:20px; }
.lx-react-stay-card h2 { margin:0; font:400 23px/1.12 'Playfair Display',serif; }
.lx-react-stay-card h2 a { color:#0b1b34; text-decoration:none; }
.lx-react-stay-location { margin:6px 0 0; display:flex; align-items:center; gap:5px; color:rgba(11,27,52,.72); font-size:12px; }
.lx-react-stay-facts { margin-top:14px; display:flex; flex-wrap:wrap; gap:16px; color:#0b1b34; font-size:12px; }
.lx-react-stay-facts span { display:inline-flex; align-items:center; gap:5px; }
.lx-react-chip-row { margin-top:13px; display:flex; flex-wrap:wrap; gap:6px; }
.lx-react-chip-row span { padding:5px 10px; border-radius:999px; background:rgba(199,161,91,.11); color:#0b1b34; font-size:10.5px; box-shadow:0 5px 14px rgba(11,27,52,.04); }
.lx-react-stay-price { min-height:28px; margin-top:15px; color:rgba(11,27,52,.65); font-size:12px; }
.lx-react-stay-price strong { color:#0b1b34; font:400 22px/1 'Playfair Display',serif; }
.lx-react-stay-actions { margin-top:18px; display:flex; gap:9px; }
.lx-react-stay-actions .lx-react-btn { flex:1; min-width:0; min-height:42px; padding:9px 13px; font-size:11.5px; }
.lx-react-pagination { margin-top:38px; }
.lx-react-empty-card { padding:50px 24px; border:1px solid #ded2bf; border-radius:22px; background:#fffdf8; text-align:center; }
.lx-react-empty-card h2 { margin:0; font:400 34px/1.1 'Playfair Display',serif; }
.lx-react-empty-card p { color:rgba(11,27,52,.65); }

/* ---------- property gallery/header ---------- */
.lx-react-property { padding: 36px 0 100px; }
.lx-react-property-heading { padding-bottom:24px; }
.lx-react-property-back { display:inline-flex; align-items:center; gap:5px; margin-bottom:18px; color:rgba(11,27,52,.68); font-size:12px; text-decoration:none; }
.lx-react-property-back:hover { color:#0b1b34; }
.lx-react-location-badge { padding:8px 13px; }
.lx-react-property-heading h1 { max-width:1050px; margin:14px 0 0; color:#0b1b34; font:400 clamp(40px,4.2vw,62px)/1.04 'Playfair Display',serif; letter-spacing:-.035em; }
.lx-react-property-gallery { padding-top:0; }
.lx-react-gallery-mosaic { display:grid; grid-template-columns:minmax(0,2fr) minmax(250px,1fr); gap:12px; align-items:stretch; }
.lx-react-gallery-hero,.lx-react-gallery-thumb,.lx-react-gallery-see-all { position:relative; overflow:hidden; border:0; padding:0; cursor:zoom-in; background:#efe4d1; }
.lx-react-gallery-hero { min-height:520px; border-radius:20px; }
.lx-react-gallery-hero img,.lx-react-gallery-thumb img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .55s ease; }
.lx-react-gallery-hero:hover img,.lx-react-gallery-thumb:hover img { transform:scale(1.025); }
.lx-react-gallery-view { position:absolute; right:14px; bottom:14px; display:inline-flex; align-items:center; gap:6px; padding:7px 11px; border-radius:999px; background:rgba(0,0,0,.56); color:#fff; font-size:10px; backdrop-filter:blur(5px); }
.lx-react-gallery-rail { display:grid; grid-template-rows:repeat(4,minmax(0,1fr)); gap:12px; min-height:520px; }
.lx-react-gallery-rail:has(.lx-react-gallery-see-all) { grid-template-rows:repeat(5,minmax(0,1fr)); }
.lx-react-gallery-thumb { min-height:0; border-radius:14px; }
.lx-react-gallery-see-all { min-height:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; border:1px dashed rgba(199,161,91,.55); border-radius:14px; background:rgba(255,255,255,.56); color:#0b1b34; cursor:pointer; }
.lx-react-gallery-see-all strong { color:#c7a15b; font:400 25px/1 'Playfair Display',serif; }
.lx-react-gallery-see-all span { font-size:9px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.lx-react-gallery-placeholder { height:460px; border-radius:20px; }

/* ---------- property content ---------- */
.lx-react-property-main { padding-top:60px; display:grid; grid-template-columns:minmax(0,8fr) minmax(320px,4fr); gap:42px; align-items:start; }
.lx-react-property-content { min-width:0; }
.lx-react-property-section { padding-bottom:54px; margin-bottom:54px; border-bottom:1px solid rgba(222,210,191,.78); }
.lx-react-property-section:last-child { margin-bottom:0; }
.lx-react-property-facts { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:22px; }
.lx-react-property-facts span { display:inline-flex; align-items:center; gap:6px; padding:7px 12px; border-radius:999px; background:rgba(199,161,91,.11); color:#0b1b34; font-size:11.5px; box-shadow:0 6px 16px rgba(11,27,52,.04); }
.lx-react-property-facts-secondary { margin-top:22px; margin-bottom:0; }
.lx-react-property-section h2,.lx-react-property-section h3 { margin:14px 0 0; color:#0b1b34; font-family:'Playfair Display',serif; font-weight:400; letter-spacing:-.02em; }
.lx-react-property-section h2 { font-size:clamp(30px,3vw,40px); line-height:1.12; }
.lx-react-property-section h3 { font-size:30px; line-height:1.15; }
.lx-react-property-description { margin:20px 0 0; color:rgba(11,27,52,.74); font-size:14px; line-height:1.85; white-space:pre-line; }
.lx-react-amenity-grid { margin-top:28px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.lx-react-amenity-item { min-height:52px; display:flex; align-items:center; gap:11px; padding:12px 13px; border-radius:13px; background:#fff; color:#0b1b34; box-shadow:0 8px 20px rgba(11,27,52,.06); font-size:12px; }
.lx-react-amenity-item svg { flex:0 0 auto; color:#c7a15b; }
.lx-react-house-rules { list-style:none; padding:0; margin:24px 0 0; display:grid; gap:12px; }
.lx-react-house-rules li { display:flex; align-items:flex-start; gap:10px; color:rgba(11,27,52,.78); font-size:13px; line-height:1.55; }
.lx-react-house-rules svg { flex:0 0 auto; color:#c7a15b; }
.lx-react-location-heading { display:flex; align-items:center; gap:9px; }
.lx-react-location-heading svg { color:#c7a15b; }
.lx-react-privacy-note { margin-top:15px; display:flex; align-items:flex-start; gap:8px; padding:13px 15px; border:1px solid rgba(199,161,91,.16); border-radius:15px; background:rgba(199,161,91,.10); color:#6f756f; font-size:11.5px; line-height:1.55; }
.lx-react-privacy-note svg { flex:0 0 auto; margin-top:2px; color:#ad7f2e; }
.lx-react-map { margin-top:22px; aspect-ratio:2/1; overflow:hidden; border-radius:18px; box-shadow:0 12px 30px rgba(11,27,52,.09); }
.lx-react-map iframe { width:100%; height:100%; border:0; }
.lx-react-review-list { margin-top:24px; display:grid; gap:14px; }
.lx-react-review-card { padding:20px; border-radius:18px; background:#fff; box-shadow:0 10px 28px rgba(11,27,52,.07); }
.lx-react-review-stars { display:flex; gap:2px; }
.lx-react-review-stars span { color:rgba(11,27,52,.18); font-size:14px; }
.lx-react-review-stars span.is-filled { color:#c7a15b; }
.lx-react-review-card h4 { margin:8px 0 0; font:400 19px/1.2 'Playfair Display',serif; }
.lx-react-review-meta { margin-top:5px; color:rgba(11,27,52,.58); font-size:10.5px; }
.lx-react-review-card > p { margin:12px 0 0; color:rgba(11,27,52,.8); font-size:12.5px; line-height:1.7; }
.lx-react-review-reply { margin-top:14px; padding:13px; border-radius:12px; background:rgba(199,161,91,.10); }
.lx-react-review-reply > span { color:#ad7f2e; font-size:9px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.lx-react-review-reply p { margin:5px 0 0; font-size:12px; }

/* ---------- React-style property booking card ---------- */
.lx-react-booking-column { align-self:start; }
.lx-react-booking-panel { padding:24px; border:1px solid rgba(222,210,191,.70); border-radius:22px; background:rgba(255,253,248,.98); color:#0b1b34; box-shadow:0 18px 48px rgba(11,27,52,.075); }
.lx-react-booking-panel h3 { margin:10px 0 0; font:400 28px/1.15 'Playfair Display',serif; }
.lx-react-booking-guide { margin:8px 0 0; color:#6f756f; font-size:11.5px; line-height:1.55; }
.lx-react-booking-panel form { margin-top:18px; display:grid; gap:12px; }
.lx-react-date-trigger { min-height:82px; display:grid; grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr) auto; align-items:stretch; overflow:hidden; border:1px solid rgba(199,161,91,.42); border-radius:18px; background:linear-gradient(135deg,#fffefb 0%,#f7efe1 100%); box-shadow:0 12px 32px rgba(11,27,52,.075); }
.lx-react-date-trigger label { min-width:0; display:flex; flex-direction:column; justify-content:center; padding:13px 14px; }
.lx-react-date-trigger label > span { color:rgba(11,27,52,.68); font-size:9px; font-weight:750; letter-spacing:.15em; text-transform:uppercase; }
.lx-react-date-trigger input { min-width:0; width:100%; margin-top:6px; padding:0; border:0; background:transparent; color:#0b1b34; font:600 14px/1.2 'Playfair Display',serif; outline:0; }
.lx-react-date-trigger i { width:1px; margin:13px 0; background:rgba(199,161,91,.34); }
.lx-react-date-icon { display:flex; align-items:center; justify-content:center; padding:0 12px; color:#ad7f2e; }
.lx-react-field-guide,.lx-react-form-field small { display:block; margin:6px 0 0; color:#6f756f; font-size:10.5px; line-height:1.48; }
.lx-react-form-field { display:block; }
.lx-react-form-field textarea { min-height:90px; resize:vertical; }
.lx-react-form-field > span em { font-style:normal; font-weight:500; letter-spacing:0; text-transform:none; opacity:.55; }
.lx-react-phone-row { display:grid; grid-template-columns:140px minmax(0,1fr); gap:10px; }
.lx-react-booking-alert { padding:10px 12px; border:1px solid #a7e1ce; border-radius:11px; background:#ecfbf5; color:#167a5a; font-size:11.5px; line-height:1.45; }
.lx-react-booking-alert.is-error { border-color:#f0b7b2; background:#fff2f1; color:#b42318; }
.lx-react-booking-alert strong { display:block; margin-bottom:4px; }
.lx-react-booking-alert ul { margin:4px 0 0 16px; padding:0; }
.lx-react-price-breakdown { padding:14px; border-radius:16px; background:rgba(239,228,209,.55); box-shadow:0 10px 28px rgba(11,27,52,.07); }
.lx-react-price-heading { display:flex; align-items:center; gap:7px; font-size:12px; font-weight:700; }
.lx-react-price-heading svg { color:#c7a15b; }
.lx-react-price-rows { margin-top:10px; display:grid; gap:7px; font-size:10.5px; }
.lx-react-price-rows > div { display:flex; justify-content:space-between; gap:12px; }
.lx-react-price-total { margin-top:12px; display:flex; align-items:center; justify-content:space-between; padding:9px 11px; border-radius:11px; background:rgba(199,161,91,.14); font-size:12px; font-weight:700; }
.lx-react-price-breakdown > p { margin:7px 0 0; color:#6f756f; font-size:10px; }
.lx-react-guest-fields { display:grid; gap:12px; }
.lx-react-guest-fields[hidden],.lx-react-price-breakdown[hidden],.lx-react-booking-alert[hidden] { display:none!important; }
.lx-react-terms { display:flex; align-items:flex-start; gap:9px; color:#0b1b34; font-size:10.5px; line-height:1.5; }
.lx-react-terms input { margin-top:2px; accent-color:#c7a15b; }
.lx-react-terms-secondary { color:#6f756f; }

/* ---------- full-screen gallery ---------- */
.lx-react-lightbox[hidden] { display:none!important; }
.lx-react-lightbox { position:fixed; inset:0; z-index:9999; display:grid; place-items:center; }
.lx-react-lightbox-backdrop { position:absolute; inset:0; border:0; background:rgba(2,7,15,.94); }
.lx-react-lightbox-dialog { position:relative; z-index:2; width:min(1180px,96vw); height:min(880px,94vh); display:grid; grid-template-rows:auto 1fr auto; color:#fff; }
.lx-react-lightbox-topbar { display:flex; align-items:center; justify-content:space-between; min-height:54px; padding:0 4px; font-size:12px; }
.lx-react-lightbox-topbar button,.lx-react-lightbox-nav { border:0; color:#fff; background:rgba(255,255,255,.11); cursor:pointer; }
.lx-react-lightbox-topbar button { width:40px; height:40px; display:grid; place-items:center; border-radius:50%; }
.lx-react-lightbox-stage { position:relative; min-height:0; display:grid; place-items:center; }
.lx-react-lightbox-stage img { max-width:100%; max-height:100%; object-fit:contain; border-radius:12px; }
.lx-react-lightbox-nav { position:absolute; top:50%; transform:translateY(-50%); width:44px; height:44px; display:grid; place-items:center; border-radius:50%; }
.lx-react-lightbox-nav.is-prev { left:8px; }.lx-react-lightbox-nav.is-next { right:8px; }
.lx-react-lightbox-thumbs { padding:14px 0 4px; display:flex; gap:8px; overflow-x:auto; }
.lx-react-lightbox-thumbs button { flex:0 0 auto; width:82px; height:58px; overflow:hidden; padding:0; border:0; border-radius:8px; opacity:.62; cursor:pointer; background:#111; }
.lx-react-lightbox-thumbs button.is-active { opacity:1; box-shadow:0 0 0 2px #c7a15b; }
.lx-react-lightbox-thumbs img { width:100%; height:100%; object-fit:cover; }
body.is-gallery-open { overflow:hidden; }

/* ---------- direct-payment transition / confirmation ---------- */
.lx-react-payment-section { padding:70px 0 110px; }
.lx-react-payment-wrap { width:min(820px,calc(100% - 40px)); margin:auto; }
.lx-react-payment-card { padding:38px; border:1px solid rgba(222,210,191,.72); border-radius:26px; background:#fffdf8; box-shadow:0 24px 60px rgba(11,27,52,.09); text-align:center; }
.lx-react-payment-icon { width:58px; height:58px; display:grid; place-items:center; margin:auto; border-radius:50%; background:rgba(199,161,91,.18); color:#ad7f2e; }
.lx-react-payment-card h1 { margin:15px 0 0; font:400 clamp(38px,4vw,50px)/1.05 'Playfair Display',serif; }
.lx-react-payment-card > p { max-width:630px; margin:12px auto 0; color:rgba(11,27,52,.68); font-size:13px; line-height:1.7; }
.lx-react-payment-summary { margin-top:25px; overflow:hidden; border:1px solid #ded2bf; border-radius:17px; text-align:left; }
.lx-react-payment-summary > div { display:flex; justify-content:space-between; gap:16px; padding:13px 15px; border-top:1px solid #ded2bf; font-size:11.5px; }
.lx-react-payment-summary > div:first-child { border-top:0; }
.lx-react-payment-summary span { color:rgba(11,27,52,.55); }
.lx-react-payment-box { margin-top:20px; padding:17px; border-radius:16px; background:rgba(199,161,91,.10); text-align:left; }
.lx-react-payment-box span { color:#ad7f2e; font-size:9px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.lx-react-payment-box strong { display:block; margin-top:5px; font:400 21px/1.2 'Playfair Display',serif; }
.lx-react-payment-box p { margin:7px 0 0; color:rgba(11,27,52,.65); font-size:11px; line-height:1.55; }
.lx-react-payment-actions { margin-top:18px; display:flex; justify-content:center; flex-wrap:wrap; gap:10px; }
.lx-react-payment-status { margin-top:10px; color:#6f756f; font-size:10.5px; line-height:1.5; }

/* ---------- responsive ---------- */
@media (max-width: 1024px) {
    .lx-react-stay-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .lx-react-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .lx-react-property-main { grid-template-columns:1fr; }
    .lx-react-booking-column { max-width:680px; }
    .lx-react-amenity-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 760px) {
    .lx-react-shell { width:min(100% - 28px,1280px); }
    .lx-react-stays { padding-top:36px; }
    .lx-react-intro-copy h1 { font-size:40px; }
    .lx-react-stays-body { margin-top:38px; }
    .lx-react-filter-card { padding:18px; }
    .lx-react-filter-toggle { display:inline-flex; }
    .lx-react-filter-panel { display:none; }
    .lx-react-filter-card.is-open .lx-react-filter-panel { display:block; }
    .lx-react-filter-grid { grid-template-columns:1fr; gap:13px; }
    .lx-react-stay-grid { grid-template-columns:1fr; }
    .lx-react-stay-media { height:230px; }
    .lx-react-gallery-mosaic { grid-template-columns:1fr; }
    .lx-react-gallery-hero { min-height:380px; }
    .lx-react-gallery-rail,.lx-react-gallery-rail:has(.lx-react-gallery-see-all) { min-height:0; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(2,118px); }
    .lx-react-gallery-see-all { min-height:118px; }
    .lx-react-property { padding-top:25px; }
    .lx-react-property-heading h1 { font-size:42px; }
    .lx-react-property-main { padding-top:42px; gap:32px; }
    .lx-react-property-section { padding-bottom:42px; margin-bottom:42px; }
    .lx-react-amenity-grid { grid-template-columns:1fr; }
    .lx-react-map { aspect-ratio:1.45/1; }
    .lx-react-booking-panel { padding:20px; }
    .lx-react-date-trigger { grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr); }
    .lx-react-date-icon { display:none; }
    .lx-react-phone-row { grid-template-columns:120px minmax(0,1fr); }
    .lx-react-payment-card { padding:28px 20px; }
}

@media (max-width: 480px) {
    .lx-react-intro-copy h1,.lx-react-property-heading h1 { font-size:36px; }
    .lx-react-filter-toolbar { align-items:flex-start; }
    .lx-react-filter-reset { padding-inline:11px; font-size:9px; }
    .lx-react-stay-actions { flex-direction:column; }
    .lx-react-gallery-hero { min-height:310px; }
    .lx-react-gallery-rail,.lx-react-gallery-rail:has(.lx-react-gallery-see-all) { grid-template-rows:repeat(2,92px); gap:8px; }
    .lx-react-gallery-see-all { min-height:92px; }
    .lx-react-property-facts { gap:7px; }
    .lx-react-property-facts span { font-size:10.5px; }
    .lx-react-phone-row { grid-template-columns:1fr; }
    .lx-react-date-trigger label { padding:11px; }
    .lx-react-date-trigger input { font-size:12px; }
}

/* ---------- booking interaction states ---------- */
.lx-react-booking-alert.is-warning { border-color:#e8ca8d; background:#fff8e8; color:#815f19; }
.lx-react-form-field input.is-locked,
.lx-react-date-trigger input.is-locked { cursor:not-allowed; opacity:.72; }
.lx-react-price-rows strong { font-weight:650; }
.lx-react-price-rows strong.is-discount { color:#167a5a; }
.lx-react-payment-box .lx-react-btn { margin-top:15px; }
.lx-react-payment-box.is-success { background:#ecfbf5; box-shadow:inset 0 0 0 1px rgba(22,122,90,.15); }
.lx-react-payment-box.is-success span { color:#167a5a; }
.lx-react-payment-box.is-warning { background:#fff8e8; box-shadow:inset 0 0 0 1px rgba(173,127,46,.18); }
.lx-react-payment-box.is-muted { background:rgba(239,228,209,.48); }
.lx-react-payment-status.is-error { color:#b42318; }
.lx-react-payment-status.is-success { color:#167a5a; }

/* ---------- premium date-range picker, matched to React ---------- */
.booking-date-picker { position:relative; }
.booking-date-trigger {
    width:100%; min-height:82px; display:grid;
    grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr) auto;
    align-items:stretch; overflow:hidden; border:1px solid rgba(199,161,91,.42);
    border-radius:18px; background:linear-gradient(135deg,#fffefb 0%,#f7efe1 100%);
    color:#0b1b34; text-align:left; box-shadow:0 12px 32px rgba(11,27,52,.075);
    transition:border-color 180ms ease,box-shadow 180ms ease,transform 180ms ease;
}
.booking-date-trigger:hover:not(:disabled),.booking-date-trigger:focus-visible { outline:0; border-color:#ad7f2e; box-shadow:0 16px 38px rgba(11,27,52,.11),0 0 0 4px rgba(199,161,91,.12); transform:translateY(-1px); }
.booking-date-trigger.is-locked { opacity:.72; cursor:not-allowed; }
.booking-date-field { min-width:0; display:flex; flex-direction:column; justify-content:center; padding:.95rem 1rem; }
.booking-date-label { color:rgba(11,27,52,.68); font-size:.64rem; font-weight:750; letter-spacing:.15em; text-transform:uppercase; }
.booking-date-value,.booking-date-placeholder { margin-top:.3rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.booking-date-value { font:600 1.02rem/1.2 'Playfair Display',Georgia,serif; }
.booking-date-placeholder { color:rgba(11,27,52,.42); font-size:.8rem; }
.booking-date-separator { width:1px; margin:.9rem 0; background:rgba(199,161,91,.34); }
.booking-date-icon { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.16rem; padding:0 .85rem; color:#ad7f2e; }
.booking-calendar-popover {
    position:absolute; z-index:50; top:calc(100% + 12px); right:0;
    width:min(760px,calc(100vw - 28px)); overflow:hidden;
    border:1px solid rgba(199,161,91,.24); border-radius:24px; background:#fffdf8;
    color:#0b1b34; box-shadow:0 28px 78px rgba(11,27,52,.24);
}
.booking-calendar-popover[hidden] { display:none!important; }
.booking-calendar-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1.15rem 1.25rem .95rem; background:linear-gradient(135deg,rgba(199,161,91,.19),rgba(240,217,154,.38)); }
.booking-calendar-eyebrow { color:#0b1b34; font-size:.61rem; font-weight:750; letter-spacing:.17em; text-transform:uppercase; }
.booking-calendar-title { margin-top:.18rem; font:600 1.14rem/1.2 'Playfair Display',Georgia,serif; }
.booking-calendar-minimum { display:inline-flex; align-items:center; gap:.35rem; flex-shrink:0; border-radius:999px; background:rgba(255,255,255,.74); padding:.48rem .7rem; color:rgba(11,27,52,.72); font-size:.68rem; font-weight:650; }
.luxenest-calendar { padding:1rem 1.1rem .75rem; }
.luxenest-calendar-months { display:flex; gap:1.35rem; }
.luxenest-calendar-month { min-width:0; flex:1; }
.luxenest-calendar-caption { position:relative; display:flex; align-items:center; justify-content:center; min-height:40px; margin-bottom:.55rem; }
.luxenest-calendar-caption-label { font:600 1.05rem/1.2 'Playfair Display',Georgia,serif; }
.luxenest-calendar-nav { position:absolute; inset:0; display:flex; align-items:center; justify-content:space-between; pointer-events:none; }
.luxenest-calendar-nav-button { pointer-events:auto; width:35px; height:35px; display:inline-flex; align-items:center; justify-content:center; border:0; border-radius:999px; background:rgba(199,161,91,.14); color:#0b1b34; font-size:24px; line-height:1; cursor:pointer; transition:transform 150ms ease,background-color 150ms ease; }
.luxenest-calendar-nav-button:hover { transform:scale(1.04); background:rgba(199,161,91,.28); }
.luxenest-calendar-table { width:100%; }
.luxenest-calendar-head-row,.luxenest-calendar-row { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.luxenest-calendar-head-cell { padding:.38rem 0; text-align:center; color:rgba(11,27,52,.46); font-size:.62rem; font-weight:750; text-transform:uppercase; }
.luxenest-calendar-cell { position:relative; display:flex; align-items:center; justify-content:center; min-height:39px; padding:0; }
.luxenest-calendar-day { width:37px; height:37px; display:inline-flex; align-items:center; justify-content:center; border:0; border-radius:999px; background:transparent; color:#0b1b34; font-size:.8rem; cursor:pointer; transition:transform 140ms ease,background-color 140ms ease,color 140ms ease; }
.luxenest-calendar-day:hover:not(.luxenest-calendar-day-disabled) { transform:translateY(-1px); background:rgba(199,161,91,.17); }
.luxenest-calendar-day-selected,.luxenest-calendar-range-start,.luxenest-calendar-range-end { background:#0b1b34!important; color:#f7f2e8!important; }
.luxenest-calendar-range-middle { border-radius:9px; background:rgba(199,161,91,.25)!important; color:#0b1b34!important; }
.luxenest-calendar-day-today { box-shadow:inset 0 0 0 1.5px #ad7f2e; font-weight:750; }
.luxenest-calendar-day-disabled { color:rgba(11,27,52,.22)!important; cursor:not-allowed; }
.luxenest-calendar-day-outside { color:rgba(11,27,52,.28); }
.booking-calendar-footer { min-height:54px; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.78rem 1.15rem .95rem; background:rgba(247,242,232,.82); }
.booking-calendar-footer .lx-react-field-guide { margin:0; }
.booking-calendar-footer-actions { display:flex; align-items:center; gap:8px; }
.booking-calendar-night-count { border-radius:999px; background:#0b1b34; color:#f7f2e8; padding:.43rem .72rem; font-size:.68rem; font-weight:700; }
.booking-calendar-clear { display:inline-flex; align-items:center; gap:.35rem; border:0; border-radius:999px; padding:.43rem .65rem; background:rgba(199,161,91,.13); color:#0b1b34; font-size:.68rem; font-weight:650; cursor:pointer; }
@media (max-width:899px) {
    .booking-calendar-popover { width:min(390px,calc(100vw - 24px)); right:auto; left:0; }
    .luxenest-calendar-months { display:block; }
}
@media (max-width:640px) {
    .booking-date-trigger { grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr); min-height:76px; }
    .booking-date-icon { display:none; }
    .booking-date-field { padding:.8rem .72rem; }
    .booking-calendar-heading { flex-direction:column; }
    .booking-calendar-footer { align-items:flex-start; flex-direction:column; }
}
.lx-react-booking-confirmed { padding:20px; border:1px solid #a7e1ce; border-radius:18px; background:#ecfbf5; color:#145f49; }
.lx-react-booking-confirmed-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:#167a5a; color:#fff; font-size:20px; font-weight:800; }
.lx-react-booking-confirmed-title { margin-top:12px; color:#145f49; font:400 27px/1.15 'Playfair Display',Georgia,serif; }
.lx-react-booking-confirmed p { margin:8px 0 0; font-size:11.5px; line-height:1.55; }
.lx-react-booking-confirmed-stay { font-weight:650; }
.lx-react-booking-confirmed-guide { opacity:.78; }
.lx-react-booking-confirmed .lx-react-btn { margin-top:15px; }

@media(min-width:768px){.lx-react-shell{padding-inline:40px}}
.booking-calendar-popover.is-viewport-positioned {
    position: fixed;
    right: auto;
    z-index: 180;
}

/* Final Stays responsive parity with React Stays.js Tailwind breakpoints. */
.lx-react-stays { padding-top:56px; padding-bottom:96px; }
.lx-react-stays-body { margin-top:56px; }
.lx-react-intro-copy { max-width:672px; }
.lx-react-intro-copy h1 {
    margin-top:16px;
    font-size:48px;
    line-height:1.2;
    letter-spacing:-.025em;
}
.lx-react-intro-copy p { margin-top:24px; }
.lx-react-filter-card { padding:24px; }
@media (min-width:768px) and (max-width:1023px) {
    .lx-react-filter-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
    .lx-react-stay-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width:1024px) {
    .lx-react-stay-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:767px) {
    .lx-react-stays { padding-top:56px; padding-bottom:128px; }
    .lx-react-intro-copy h1 { font-size:36px; line-height:1.2; }
    .lx-react-stays-body { margin-top:56px; }
    .lx-react-filter-toggle { display:inline-flex; }
    .lx-react-filter-panel { display:none; }
    .lx-react-filter-card.is-open .lx-react-filter-panel { display:block; }
}
@media (min-width:640px) and (max-width:767px) {
    .lx-react-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
    .lx-react-stay-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:639px) {
    .lx-react-filter-grid { grid-template-columns:1fr; gap:16px; }
    .lx-react-stay-grid { grid-template-columns:1fr; }
}

/* ==========================================================================
   LUXENEST — EXPLORE STAYS
   FINAL REACT 0042D PARITY OVERRIDE

   Source:
   React frontend/src/pages/Stays.js

   Keep this block at the VERY END of stays-booking-react.css.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. PAGE / CONTAINER
   React:
   max-w-7xl mx-auto px-5 md:px-10 pt-14 pb-32 md:pb-24
   -------------------------------------------------------------------------- */

.lx-react-stays-page .lx-react-stays {
    padding-top: 56px;
    padding-bottom: 128px;
}

.lx-react-stays-page .lx-react-shell {
    width: 100%;
    max-width: 1280px;
    margin-inline: auto;
    padding-inline: 20px;
}


/* --------------------------------------------------------------------------
   2. INTRO / HERO
   React:
   max-w-2xl
   text-4xl md:text-5xl
   mt-4
   -------------------------------------------------------------------------- */

.lx-react-stays-page .lx-react-stays-intro {
    padding-top: 0;
}

.lx-react-stays-page .lx-react-intro-copy {
    max-width: 672px;
}

.lx-react-stays-page .lx-react-intro-copy h1 {
    max-width: 672px;
    margin: 16px 0 0;
    font-family: "Playfair Display", Georgia, serif;
    font-size: 36px;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: -0.025em;
    color: #0b1b34;
}

.lx-react-stays-page .lx-react-intro-copy p {
    max-width: 672px;
    margin: 24px 0 0;
    color: rgba(11, 27, 52, 0.75);
    font-family: "Manrope", sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.625;
}


/* --------------------------------------------------------------------------
   3. EXPLORE STAYS BADGE
   IMPORTANT:
   Shared Laravel badge became much larger than React on desktop.
   This returns THIS PAGE ONLY to the React visual scale.
   -------------------------------------------------------------------------- */

.lx-react-stays-page .lxr-premium-badge {
    min-height: 40px;
    padding: 4px 14px 4px 5px;
    gap: 9px;

    border: 1px solid rgba(194, 151, 77, 0.48);
    border-radius: 999px;

    background:
        radial-gradient(
            circle at 22% 16%,
            rgba(255,255,255,.75),
            transparent 36%
        ),
        linear-gradient(
            110deg,
            #fffaf0 0%,
            #f7e8c2 55%,
            #efd288 100%
        );

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.75),
        0 6px 18px rgba(20,31,46,.07);

    overflow: hidden;
}

.lx-react-stays-page .lxr-premium-badge-icon {
    width: 29px;
    height: 29px;
    flex: 0 0 29px;

    border-radius: 50%;
    color: #fffaf0;

    background:
        radial-gradient(
            circle at 35% 22%,
            #f6dc92 0%,
            #d3a13f 42%,
            #a56e12 100%
        );

    border: 1px solid rgba(126,79,7,.38);

    box-shadow:
        inset 0 1px 1px rgba(255,255,255,.55),
        0 3px 9px rgba(89,58,12,.15);
}

.lx-react-stays-page .lxr-premium-badge-divider {
    width: 1px;
    height: 19px;
    flex: 0 0 1px;
}

.lx-react-stays-page .lxr-premium-badge > span:last-child {
    font-family: "Manrope", sans-serif;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .17em;
    text-transform: uppercase;
}


/* --------------------------------------------------------------------------
   4. SPACE BEFORE FILTERS
   React:
   mt-14 mobile
   md:mt-16 desktop
   -------------------------------------------------------------------------- */

.lx-react-stays-page .lx-react-stays-body {
    margin-top: 56px;
}


/* --------------------------------------------------------------------------
   5. FILTER CARD
   React lx-card + Stays.js internal spacing
   -------------------------------------------------------------------------- */

.lx-react-stays-page .lx-react-filter-card {
    padding: 24px;

    border: 1px solid rgba(222, 210, 191, 0.72);
    border-radius: 22px;

    background: rgba(255, 253, 248, 0.98);

    box-shadow:
        0 18px 48px rgba(11, 27, 52, 0.075);
}


/* Toolbar */

.lx-react-stays-page .lx-react-filter-toolbar {
    min-height: 38px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.lx-react-stays-page .lx-react-filter-reset {
    min-height: 34px;
    margin-left: auto;
    padding: 7px 14px;

    display: inline-flex;
    align-items: center;
    gap: 6px;

    border: 1px solid #c7a15b;
    border-radius: 999px;

    background: rgba(199, 161, 91, 0.05);

    color: #0b1b34;

    font-family: "Manrope", sans-serif;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .1em;
    text-transform: uppercase;
    text-decoration: none;
}

.lx-react-stays-page .lx-react-filter-reset.is-disabled {
    opacity: .4;
    pointer-events: none;
    border-color: #ded2bf;
}


/* Filter fields */

.lx-react-stays-page .lx-react-filter-panel {
    margin-top: 20px;
}

.lx-react-stays-page .lx-react-filter-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

.lx-react-stays-page .lx-react-filter-grid label > span,
.lx-react-stays-page .lx-react-amenities-filter legend {
    display: block;
    margin-bottom: 8px;

    color: #0b1b34;

    font-family: "Manrope", sans-serif;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.lx-react-stays-page .lx-react-filter-grid select {
    width: 100%;
    min-height: 54px;

    padding: 12px 40px 12px 15px;

    border: 1px solid rgba(199,161,91,.34);
    border-radius: 15px;

    background-color: rgba(255,255,255,.94);

    color: #0b1b34;

    font-family: "Manrope", sans-serif;
    font-size: 14px;
    font-weight: 400;
}

.lx-react-stays-page .lx-react-filter-grid select:focus {
    outline: 0;
    border-color: #ad7f2e;

    background-color: #fff;

    box-shadow:
        0 0 0 4px rgba(199,161,91,.15);
}


/* --------------------------------------------------------------------------
   6. AMENITIES FILTER
   React:
   mt-6
   flex flex-wrap gap-2
   px-3.5 py-1.5 text-xs
   -------------------------------------------------------------------------- */

.lx-react-stays-page .lx-react-amenities-filter {
    margin-top: 24px;
}

.lx-react-stays-page .lx-react-amenity-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.lx-react-stays-page .lx-react-amenity-chip span {
    min-height: 30px;

    display: inline-flex;
    align-items: center;
    gap: 6px;

    padding: 6px 14px;

    border: 1px solid #ded2bf;
    border-radius: 999px;

    background: #fff;

    color: #0b1b34;

    font-family: "Manrope", sans-serif;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.2;

    box-shadow: none;
}

.lx-react-stays-page .lx-react-amenity-chip:hover span {
    border-color: #c7a15b;
    color: #ad7f2e;
}

.lx-react-stays-page .lx-react-amenity-chip input:checked + span,
.lx-react-stays-page .lx-react-amenity-chip.is-selected span {
    border-color: #c7a15b;
    background: #c7a15b;
    color: #0b1b34;
}


/* --------------------------------------------------------------------------
   7. RESULTS COUNT
   React:
   mt-8 text-sm
   -------------------------------------------------------------------------- */

.lx-react-stays-page .lx-react-results-count {
    margin: 32px 0 0;

    color: rgba(11,27,52,.75);

    font-family: "Manrope", sans-serif;
    font-size: 14px;
    line-height: 1.5;
}

.lx-react-stays-page .lx-react-results-count strong {
    color: #0b1b34;
    font-weight: 600;
}


/* --------------------------------------------------------------------------
   8. PROPERTY GRID
   React:
   mt-5
   sm:grid-cols-2
   lg:grid-cols-3
   gap-6
   -------------------------------------------------------------------------- */

.lx-react-stays-page .lx-react-stay-grid {
    margin-top: 20px;

    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}


/* --------------------------------------------------------------------------
   9. PROPERTY CARD
   Matches actual Stays.js proportions:
   image h-52 = 208px
   p-5 = 20px
   -------------------------------------------------------------------------- */

.lx-react-stays-page .lx-react-stay-card {
    min-width: 0;
    overflow: hidden;

    border: 1px solid rgba(222,210,191,.72);
    border-radius: 22px;

    background: #fffdf8;

    box-shadow:
        0 18px 48px rgba(11,27,52,.075);

    transition:
        transform .2s ease,
        box-shadow .2s ease;
}

.lx-react-stays-page .lx-react-stay-card:hover {
    transform: translateY(-2px);

    box-shadow:
        0 22px 56px rgba(11,27,52,.105);
}


/* Card image */

.lx-react-stays-page .lx-react-stay-media {
    display: block;
    height: 208px;
    overflow: hidden;

    background: #efe4d1;
}

.lx-react-stays-page .lx-react-stay-media img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;
}

.lx-react-stays-page .lx-react-country-chip {
    top: 12px;
    left: 12px;

    min-height: 28px;

    padding: 5px 11px;

    border-radius: 999px;

    background: rgba(255,255,255,.95);

    color: #0b1b34;

    font-family: "Manrope", sans-serif;
    font-size: 11px;
    font-weight: 500;

    box-shadow:
        0 6px 16px rgba(11,27,52,.05);
}


/* Card body */

.lx-react-stays-page .lx-react-stay-card-body {
    padding: 20px;
}

.lx-react-stays-page .lx-react-stay-card h2 {
    margin: 0;

    color: #0b1b34;

    font-family: "Playfair Display", Georgia, serif;
    font-size: 20px;
    font-weight: 400;
    line-height: 1.25;
}

.lx-react-stays-page .lx-react-stay-card h2 a {
    color: inherit;
    text-decoration: none;
}


/* Location */

.lx-react-stays-page .lx-react-stay-location {
    margin: 4px 0 0;

    display: flex;
    align-items: center;
    gap: 5px;

    color: rgba(11,27,52,.75);

    font-family: "Manrope", sans-serif;
    font-size: 14px;
    line-height: 1.4;
}


/* Bedrooms / guests */

.lx-react-stays-page .lx-react-stay-facts {
    margin-top: 12px;

    display: flex;
    flex-wrap: wrap;
    gap: 16px;

    color: #0b1b34;

    font-family: "Manrope", sans-serif;
    font-size: 14px;
}

.lx-react-stays-page .lx-react-stay-facts span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}


/* First 3 amenities */

.lx-react-stays-page .lx-react-chip-row {
    margin-top: 12px;

    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.lx-react-stays-page .lx-react-chip-row span {
    min-height: 27px;

    display: inline-flex;
    align-items: center;

    padding: 5px 10px;

    border-radius: 999px;

    background: rgba(199,161,91,.11);

    color: #0b1b34;

    font-family: "Manrope", sans-serif;
    font-size: 11px;
    line-height: 1.2;

    box-shadow: none;
}


/* --------------------------------------------------------------------------
   10. PRICING
   React functionality:
   pricing enabled + rate > 0 -> ₹X / night
   otherwise -> Price available on request
   -------------------------------------------------------------------------- */

.lx-react-stays-page .lx-react-stay-price {
    min-height: 28px;

    margin-top: 16px;

    color: rgba(11,27,52,.60);

    font-family: "Manrope", sans-serif;
    font-size: 14px;
    line-height: 1.4;
}

.lx-react-stays-page .lx-react-stay-price strong {
    color: #0b1b34;

    font-family: "Playfair Display", Georgia, serif;
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
}


/* --------------------------------------------------------------------------
   11. PROPERTY CARD BUTTONS
   React:
   mt-5 flex gap-2
   flex-1
   -------------------------------------------------------------------------- */

.lx-react-stays-page .lx-react-stay-actions {
    margin-top: 20px;

    display: flex;
    gap: 8px;
}

.lx-react-stays-page .lx-react-stay-actions .lx-react-btn {
    flex: 1 1 0;

    min-width: 0;
    min-height: 42px;

    padding: 8px 16px;

    font-family: "Manrope", sans-serif;
    font-size: 14px;
    font-weight: 600;
}


/* --------------------------------------------------------------------------
   12. TABLET
   React:
   sm:grid-cols-2
   md:px-10
   -------------------------------------------------------------------------- */

@media (min-width: 640px) {

    .lx-react-stays-page .lx-react-stay-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}


/* --------------------------------------------------------------------------
   13. DESKTOP
   React md:
   px-10
   text-5xl = 48px
   mt-16 filters
   -------------------------------------------------------------------------- */

@media (min-width: 768px) {

    .lx-react-stays-page .lx-react-shell {
        padding-inline: 40px;
    }

    .lx-react-stays-page .lx-react-stays {
        padding-bottom: 96px;
    }

    .lx-react-stays-page .lx-react-intro-copy h1 {
        font-size: 48px;
        line-height: 1.2;
    }

    .lx-react-stays-page .lx-react-stays-body {
        margin-top: 64px;
    }

    .lx-react-stays-page .lx-react-filter-toggle {
        display: none;
    }

    .lx-react-stays-page .lx-react-filter-panel {
        display: block;
    }

}


/* --------------------------------------------------------------------------
   14. LARGE DESKTOP
   React lg:grid-cols-3
   -------------------------------------------------------------------------- */

@media (min-width: 1024px) {

    .lx-react-stays-page .lx-react-stay-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

}


/* --------------------------------------------------------------------------
   15. MOBILE FILTER BEHAVIOUR
   React hides filter body below md until toggle is used.
   -------------------------------------------------------------------------- */

@media (max-width: 767px) {

    .lx-react-stays-page .lx-react-filter-toggle {
        display: inline-flex;
    }

    .lx-react-stays-page .lx-react-filter-panel {
        display: none;
    }

    .lx-react-stays-page .lx-react-filter-card.is-open .lx-react-filter-panel {
        display: block;
    }

    .lx-react-stays-page .lx-react-filter-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

}


/* React sm breakpoint */

@media (min-width: 640px) and (max-width: 767px) {

    .lx-react-stays-page .lx-react-filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}


/* --------------------------------------------------------------------------
   16. VERY SMALL MOBILE
   -------------------------------------------------------------------------- */

@media (max-width: 639px) {

    .lx-react-stays-page .lx-react-filter-card {
        padding: 18px;
    }

    .lx-react-stays-page .lx-react-stay-actions {
        flex-direction: column;
    }

    .lx-react-stays-page .lx-react-stay-actions .lx-react-btn {
        width: 100%;
    }

}


/* --------------------------------------------------------------------------
   17. FOOTER — REMOVE IVORY STRIP AFTER FOOTER
   Keeps final spacing INSIDE the navy footer rather than collapsing outside.
   -------------------------------------------------------------------------- */

.lx-react-stays-page .lxr-footer {
    display: flow-root;

    margin-bottom: 0;

    padding-bottom: 1px;

    overflow: hidden;
}

.lx-react-stays-page .lxr-footer-grid {
    padding-top: 64px;
    padding-bottom: 64px;
}

.lx-react-stays-page .lxr-footer-credit {
    margin-top: 0;
    margin-bottom: 32px;
}


/* Mobile Footer.js spacing */

@media (max-width: 767px) {

    .lx-react-stays-page .lxr-footer-credit {
        margin-bottom: 112px;
    }

}
