.gallery-top,
.price-header {
    justify-content: space-between
}

.highlight-item i,
.host-info p,
.property-meta-links,
.property-meta-links a,
.property-page-title {
    color: var(--airbnb-dark)
}

.calendar-grid,
.month-header,
.no-charge-text,
.offer-item i,
.report-box,
h3.reviews-title {
    text-align: center
}

:root {
    --airbnb-red: #ff385c;
    --airbnb-dark: #222222;
    --airbnb-gray: #717171;
    --airbnb-light-gray: #dddddd;
    --airbnb-bg: #ffffff;
    --airbnb-shadow: 0 6px 16px rgba(0, 0, 0, 0.12)
}

body {
    background-color: var(--airbnb-bg)
}

.property-title-section {
    padding: 30px 0 20px
}

.gallery-top {
    display: flex;
    align-items: flex-end
}

.btn-share,
.btn-show-more {
    font-weight: 600;
    align-items: center;
    cursor: pointer
}

.property-page-title {
    font-size: 26px;
    font-weight: 600;
    margin-bottom: 8px
}

.property-meta-links {
    font-size: 14px;
    display: flex;
    gap: 15px;
    margin: 10px 0
}

.price-row.total,
.property-meta-links span {
    font-weight: 600
}

.map-info-card span i,
.property-meta-links span i {
    color: var(--airbnb-red)
}

.property-meta-links a {
    text-decoration: underline
}

.btn-share {
    background: 0 0;
    border: none;
    font-size: 14px;
    display: flex;
    gap: 8px;
    padding: 11px 42px;
    border-radius: 999px;
    transition: background .2s;
    background: var(--accent-color);
    color: var(--airbnb-bg);
    text-decoration: none
}

.btn-show-more,
.read-more {
    text-decoration: underline
}

.btn-share:hover {
    background: var(--accent-color)
}

.gallery-section {
    margin-bottom: 40px
}

.property-gallery-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    grid-template-rows: 250px 250px;
    gap: 8px;
    height: 500px;
    border-radius: 12px;
    overflow: hidden;
    position: relative
}

.gallery-item-large {
    grid-column: 1/2;
    grid-row: 1/3
}

.gallery-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: filter .3s
}

.gallery-img:hover {
    filter: brightness(.9)
}

.btn-show-all {
    position: absolute;
    bottom: 24px;
    right: 24px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .1)
}

.property-page-layout {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 80px;
    padding-top: 20px
}

.host-info {
    margin-bottom: 30px
}

.host-info h2 {
    font-size: 22px;
    font-weight: 600;
    margin-bottom: 4px
}

.host-info p {
    font-size: 16px
}

.section-divider {
    height: 1px;
    background-color: var(--airbnb-light-gray);
    margin: 32px 0
}

.property-highlights {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.highlight-item {
    display: flex;
    gap: 16px;
    align-items: flex-start
}

.highlight-item i {
    font-size: 24px;
    margin-top: 4px
}

.h-text strong {
    display: block;
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 2px
}



.h-text p {
    color: var(--airbnb-gray);
    font-size: 14px
}

.property-description h3 {
    font-size: 22px;
    font-weight: 600;
    margin-bottom: 16px
}

.property-description p {
    font-size: 16px;
    line-height: 24px;
    color: var(--airbnb-dark)
}

.btn-show-more {
    background: 0 0;
    border: none;
    font-size: 16px;
    margin-top: 16px;
    padding: 0;
    display: flex;
    gap: 4px
}

.sleep-section h3 {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 24px;
    color: var(--dark)
}

h3.reviews-title {
    font-size: 24px;
    font-weight: 700
}

.sleep-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px
}

.sleep-card img {
    width: 100%;
    height: 186px;
    object-fit: cover;
    border-radius: 8px;
    margin-bottom: 16px
}

.sleep-card strong {
    display: block;
    font-size: 16px;
    margin-bottom: 4px
}

.price-header span:last-child,
.sleep-card p {
    font-size: 14px
}

.sleep-card p {
    color: var(--airbnb-gray)
}

.offers-section h3 {
    font-size: 22px;
    font-weight: 600;
    margin-bottom: 24px
}

.offers-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-bottom: 32px
}

.offer-item {
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: 16px;
    color: var(--airbnb-dark)
}

.offer-item i {
    font-size: 20px;
    width: 24px
}

.btn-outline-dark {
    background: #fff;
    border: 1px solid var(--airbnb-dark);
    padding: 13px 23px;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: background .2s
}

.btn-outline-dark:hover {
    background: #f7f7f7
}

.booking-card {
    position: sticky;
    top: 100px;
    padding: 24px;
    border: 1px solid var(--airbnb-light-gray);
    border-radius: 12px;
    box-shadow: var(--airbnb-shadow);
    background: #fff
}

.price-header {
    display: flex;
    align-items: center;
    margin-bottom: 24px
}

.price-header strong {
    font-size: 22px
}

.booking-form {
    border: 1px solid var(--airbnb-light-gray);
    border-radius: 8px;
    margin-bottom: 16px
}

.date-picker-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-bottom: 1px solid var(--airbnb-light-gray)
}

.dp-item,
.guest-picker {
    padding: 10px 12px
}

.dp-item:first-child {
    border-right: 1px solid var(--airbnb-light-gray)
}

.dp-item label,
.guest-picker label {
    display: block;
    font-size: 10px;
    font-weight: 800;
    margin-bottom: 2px
}

.dp-item input,
.guest-picker select {
    width: 100%;
    border: none;
    font-size: 14px;
    color: var(--airbnb-gray);
    outline: 0
}

.btn-primary-airbnb {
    width: 100%;
    padding: 14px;
    background: var(--airbnb-red);
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    margin-top: 16px
}

.no-charge-text {
    font-size: 14px;
    color: var(--airbnb-gray);
    margin: 16px 0 24px
}

.price-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
    font-size: 16px;
    color: var(--airbnb-dark)
}

.day-name,
.map-info-card p,
.r-stars span,
.report-box a,
.u-info p {
    color: var(--airbnb-gray)
}

.report-box {
    margin-top: 24px
}

.report-box a {
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px
}

@media (max-width:992px) {
    .property-page-layout {
        grid-template-columns: 1fr;
        gap: 40px
    }

    .property-side-col {
        order: -1
    }

    .property-gallery-grid {
        grid-template-columns: 1fr 1fr;
        height: auto
    }

    .gallery-item-large {
        grid-row: 1/3
    }
}

.availability-section,
.reviews-section {
    padding-bottom: 40px
}

.calendar-wrapper {
    display: flex;
    gap: 40px;
    margin-top: 24px;
    overflow-x: auto;
    padding: 10px 0
}

.calendar-month {
    flex: 1;
    min-width: 300px
}

.month-header {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 15px
}

.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    font-size: 14px
}

.day-name {
    font-weight: 600;
    margin-bottom: 10px
}

.calendar-grid div:not(.day-name) {
    padding: 10px 0;
    position: relative;
    cursor: pointer
}

.calendar-grid div.selected {
    background: #f7f7f7;
    color: var(--airbnb-dark)
}

.calendar-grid div.selected.end,
.calendar-grid div.selected.start {
    background: var(--airbnb-dark);
    color: #fff;
    border-radius: 50%
}

.calendar-grid div.selected:not(.start):not(.end) {
    background: #f0f0f0
}

.overall-rating-header {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 24px
}

.r-left {
    display: flex;
    align-items: anchor-center;
    gap: 11px
}

.platform-ratings {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    font-size: 17px;
    padding: 15px;
    background: #f8f8f8;
    border-radius: 10px
}

.platform-ratings span i {
    color: var(--accent-color);
    margin-right: 5px
}

.rating-box {
    display: flex;
    justify-content: space-between;
    align-items: center
}

.map-info-card h4,
.r-left h4 {
    font-size: 16px;
    margin-bottom: 5px
}

.r-score {
    font-size: 32px;
    font-weight: 700
}

.r-stars {
    color: var(--airbnb-red);
    font-size: 14px
}

.r-stars span {
    margin-left: 5px
}

.btn-write-review {
    width: auto;
    padding: 10px 25px;
    margin-top: 0
}

.reviews-carousel {
    display: flex;
    gap: 20px;
    margin-top: 30px;
    overflow-x: auto;
    padding-bottom: 20px;
    scroll-snap-type: x mandatory
}

.review-card {
    flex: 0 0 350px;
    border: 1px solid var(--airbnb-light-gray);
    border-radius: 12px;
    padding: 20px;
    scroll-snap-align: start
}

.u-info {
    display: flex;
    gap: 12px;
    margin-bottom: 12px
}

.u-avatar {
    width: 40px;
    height: 40px;
    background: #4a5568;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-weight: 600
}

.u-info strong {
    display: block;
    font-size: 15px
}

.u-info p {
    font-size: 12px
}

.u-stars {
    color: var(--airbnb-red);
    font-size: 12px;
    margin-bottom: 10px
}

.read-more,
.u-comment {
    color: var(--airbnb-dark)
}

.u-comment {
    font-size: 14px;
    line-height: 1.5
}

.read-more {
    display: inline-block;
    margin-top: 8px;
    font-weight: 600;
    font-size: 14px
}

.map-section-full {
    padding-bottom: 60px
}

.map-title-airbnb {
    margin-bottom: 24px;
    font-size: 24px
}

.map-container-airbnb {
    position: relative;
    height: 400px;
    border-radius: 15px;
    overflow: hidden
}

.map-info-card {
    position: absolute;
    top: 20px;
    left: 20px;
    background: #fff;
    padding: 20px;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, .15);
    z-index: 10;
    width: 250px
}

.map-info-card p {
    font-size: 14px;
    margin-bottom: 10px
}

.map-frame-airbnb {
    width: 100%;
    height: 100%;
    border: 0
}

@media (max-width:768px) {
    .sleep-grid {
        grid-template-columns: 1fr
    }

    .gallery-top,
    .rating-box {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px
    }

    .property-page-title {
        font-size: 22px
    }

    .calendar-wrapper {
        flex-direction: column
    }

    .review-card {
        flex: 0 0 calc(100% - 40px)
    }
}
/* --- Styles migrated from internal blade style tags --- */

.property-hero-new {
    height: 450px;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #fff;
    position: relative;
    width: 100%;
}
.property-hero-new::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.4);
}
.hero-content-new {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
}
.hero-content-new h1 {
    font-size: 42px;
    margin-bottom: 5px;
    text-shadow: 2px 2px 8px rgba(0,0,0,0.6);
    font-weight: 700;
}
.hero-breadcrumb {
    font-size: 18px;
    font-weight: 500;
    text-shadow: 1px 1px 4px rgba(0,0,0,0.6);
    display: block;
    margin-top: 5px;
}
.hero-breadcrumb a {
    color: inherit;
    text-decoration: none;
}
.btn-share-orange {
    background: #f16b2a;
    color: #fff !important;
    padding: 10px 25px;
    border-radius: 10px;
    text-decoration: none;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: background 0.2s;
}
.btn-share-orange:hover {
    background: #e15b1a;
}
.desc.collapsible {
    max-height: 80px;
    overflow: hidden;
    position: relative;
    transition: max-height 0.3s ease-in-out;
}
.desc.expanded {
    max-height: none;
}
.btn-show-more {
    background: none;
    border: none;
    color: #000;
    font-weight: 700;
    text-decoration: underline;
    padding: 0;
    margin-top: 15px;
    cursor: pointer;
    font-size: 16px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.btn-show-more:hover {
    color: #333;
}
.btn-reserve-orange {
    background: #f16b2a !important;
    border: none !important;
    color: #fff !important;
    border-radius: 12px !important;
    transition: transform 0.2s ease;
}
.btn-reserve-orange:hover {
    transform: scale(1.02);
    background: #e15b1a !important;
}
#gaurav-new-data-area {
    background: #f9f9f9;
    padding: 15px;
    border-radius: 12px;
    border: 1px solid #eee;
}
.price-item-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 8px;
    font-size: 14px;
    color: #444;
}
.price-item-row.total-row {
    border-top: 1px solid #ebebeb;
    padding-top: 20px;
    margin-top: 15px;
    font-weight: 800;
    font-size: 18px;
    color: #222;
}
.no-charge-text {
    font-size: 14px;
    color: #717171;
    margin-top: 10px;
}
#gaurav-error-show-parent {
    color: #ef4444;
    font-size: 13px;
    font-weight: 500;
    background: #fff1f2;
    padding: 10px;
    border-radius: 8px;
    border: 1px solid #fee2e2;
}

/* Hotel Datepicker alignment fix */
.datepicker {
    left: 50% !important;
    transform: translateX(-50%) !important;
    margin-top: 10px;
    z-index: 9999 !important;
}
.datepicker--opened {
    display: block !important;
}

/* Calendar Arrow Styling */
.datepicker__month-button {
    background: #fff !important;
    border: 1px solid #ddd !important;
    border-radius: 50% !important;
    width: 32px !important;
    height: 32px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    transition: all 0.2s !important;
    position: absolute !important;
    top: 5px !important;
    z-index: 1000000 !important;
    text-indent: -9999px !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}
.datepicker__month-button:before {
    display: none !important;
}
.datepicker__month-button:after {
    content: "" !important;
    display: block !important;
    font-family: "Font Awesome 5 Free" !important;
    font-weight: 900 !important;
    text-indent: 0 !important;
    width: auto !important;
    height: auto !important;
    background: none !important;
    color: #222 !important;
    font-size: 14px !important;
}
.datepicker__month-button--prev {
    left: 20px !important;
}
.datepicker__month-button--next {
    right: 20px !important;
}
.datepicker__month-button--prev:after {
    content: "\f060" !important;
}
.datepicker__month-button--next:after {
    content: "\f061" !important;
}
.datepicker__month-button:hover {
    background: #f16b2a !important;
    border-color: #f16b2a !important;
    color: #fff !important;
}
.datepicker__month-button:hover:after {
    color: #fff !important;
}

.adult-popup {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    width: 280px;
    background: white;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.15);
    padding: 20px;
    z-index: 1000;
}
.adult-box {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}
.adult-btn {
    display: flex;
    gap: 15px;
    align-items: center;
}
.button1 {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1px solid #ddd;
    background: white;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-weight: 700;
}
.button1:hover {
    border-color: #000;
}

/* --- Classes for removing inline style attributes --- */

.modal-header-side .modal-title {
    flex: 1;
    text-align: center;
    margin-right: 40px;
    font-weight: 700;
}
.amenity-list-item i, .offer-item i {
    font-size: 18px;
    margin-right: 10px;
    width: 24px;
    text-align: center;
}
.amenity-list-item img, .offer-item img {
    width: 24px;
    margin-right: 15px;
}
.property-meta-links a.review-link {
    color: inherit;
    text-decoration: underline;
}
.property-meta-links span.address-span {
    color: inherit;
}
.booking-card {
    background: #fff;
    border: 1px solid #ebebeb;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 6px 16px rgba(0,0,0,0.12);
}

.booking-card h3 {
    font-size: 22px;
    margin-bottom: 24px;
    font-weight: 700;
}

.avail-row {
    display: flex;
    border: 1px solid #b0b0b0;
    border-radius: 8px;
    margin-bottom: 12px;
    position: relative;
}

.avail-field {
    flex: 1;
    padding: 10px 12px;
}

.avail-field:first-child {
    border-right: 1px solid #b0b0b0;
    border-radius: 8px 0 0 8px;
}

.avail-field:last-child {
    border-radius: 0 8px 8px 0;
}

.avail-field label {
    display: block;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    color: #222;
    margin-bottom: 2px;
}

.input-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
}

.input-wrap i {
    color: #717171;
    font-size: 14px;
}

.input-wrap input {
    border: none;
    padding: 0;
    width: 100%;
    font-size: 14px;
    color: #222;
    background: transparent;
    cursor: pointer;
}

.input-wrap input:focus {
    outline: none;
}

#demo17 {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    z-index: 2;
}

.guest-picker {
    border: 1px solid #b0b0b0;
    border-radius: 8px;
    padding: 10px 12px;
    margin-bottom: 16px;
    position: relative;
    cursor: pointer;
}

.guest-label {
    display: block;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    color: #222;
    margin-bottom: 2px;
}

#show-target-data {
    border: none !important;
    padding: 0 !important;
    background: transparent !important;
    font-size: 14px;
    color: #222 !important;
    width: 100%;
    box-shadow: none !important;
    cursor: pointer;
    height: auto !important;
    min-height: auto !important;
}

.btn-reserve-orange {
    background: #f16b2a !important;
    border: none !important;
    color: #fff !important;
    border-radius: 8px !important;
    height: 48px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    margin-top: 10px;
    cursor: pointer;
    transition: transform 0.2s;
    width: 100%;
}

.btn-reserve-orange:hover {
    background: #e15b1a !important;
    transform: scale(1.01);
}

.btn-clear-all {
    font-size: 14px;
    color: #717171 !important;
    text-decoration: underline !important;
    background: none;
    border: none;
    cursor: pointer;
}

.reviews-section-nopad {
    padding-top: 0;
}
.map-section-padded {
    padding-bottom: 60px;
}
.map-container-styled {
    border-radius: 12px;
    overflow: hidden;
    margin-top: 20px;
}
.map-iframe {
    border: 0;
}

.gaurav-error-msg {
    color: #ef4444;
    font-size: 13px;
    font-weight: 500;
    background: #fff1f2;
    padding: 10px;
    border-radius: 8px;
    border: 1px solid #fee2e2;
    margin: 0;
}

.reviews-section-padded {
    padding: 40px 0;
}
.price-row-main {
    font-size: 24px;
    font-weight: 700;
}
.per-night-text {
    color: #717171;
}
.form-label-fancy {
    font-size: 10px;
    font-weight: 800;
    margin-bottom: 4px;
    display: block;
}
.border-left-sep {
    border-left: 1px solid #ddd;
}
.mt-15 {
    margin-top: 15px;
}
.mt-20 {
    margin-top: 20px;
}
.mb-20 {
    margin-bottom: 20px;
}
.h-50 {
    height: 50px;
}

.summer-house-hero {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    min-height: 450px !important;
}

.summer-house-hero .auto-container {
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
}

.summer-house-hero h1 {
    width: 100% !important;
    text-align: center !important;
}

.summer-house-hero .checklist {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
}

/* --- Modern Layout & Gallery System --- */

.gallery-grid-modern {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    grid-template-rows: 250px 250px;
    gap: 12px;
    border-radius: 12px;
    overflow: hidden;
    position: relative;
    margin-bottom: 30px;
}
.grid-item-modern img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: filter 0.3s;
}
.grid-item-modern img:hover {
    filter: brightness(0.9);
}
.grid-item-main {
    grid-column: 1 / 2;
    grid-row: 1 / 3;
}
.property-page-layout {
    display: flex;
    gap: 40px;
    align-items: flex-start;
}
.property-main-col {
    flex: 2;
    min-width: 0;
}
.property-side-col {
    flex: 1;
    min-width: 350px;
    position: sticky;
    top: 100px;
}
.btn-gallery-show-all {
    position: absolute;
    bottom: 20px;
    right: 20px;
    background: #fff;
    border: 1px solid #222;
    border-radius: 8px;
    padding: 8px 16px;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}
.highlights-list-modern {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.highlight-row-modern {
    display: flex;
    gap: 15px;
    align-items: flex-start;
}
.highlight-row-modern i {
    font-size: 24px;
    margin-top: 5px;
}
.h-details h5 {
    margin: 0;
    font-weight: 500;
}
.h-details p {
    color: #717171;
    margin: 0;
}
.reviews-grid-modern {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 30px;
}
.review-card-modern {
    border: 1px solid #ddd;
    padding: 20px;
    border-radius: 12px;
}
.reviewer-avatar-circle {
    width: 40px;
    height: 40px;
    background: #222;
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}
.reviewer-header {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-bottom: 10px;
}

@media (max-width: 991px) {
    .property-page-layout {
        flex-direction: column;
    }
    .property-side-col {
        min-width: 100%;
        position: static;
        margin-top: 40px;
    }
    .gallery-grid-modern {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
        height: auto;
    }
    .grid-item-main {
        grid-column: 1 / span 2;
    }
    .reviews-grid-modern {
        grid-template-columns: 1fr;
    }
}

/* --- Modern Reviews Section --- */

.reviews-title-centered {
    text-align: center;
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 40px;
    width: 100%;
}
.overall-rating-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
}
.overall-rating-left h4 {
    margin: 0 0 5px 0;
    font-size: 16px;
    font-weight: 700;
}
.rating-details {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 24px;
    font-weight: 800;
}
.rating-stars-red {
    display: flex;
    gap: 3px;
    font-size: 14px;
}
.rating-count-text {
    font-size: 14px;
    color: #717171;
    font-weight: 400;
}
.btn-write-review {
    background: #FF385C;
    color: #fff;
    border: none;
    padding: 12px 24px;
    border-radius: 8px;
    font-weight: 700;
    transition: background 0.2s;
}
.btn-write-review:hover {
    background: #E31C5F;
}
.reviewer-info-meta {
    display: flex;
    flex-direction: column;
}
.reviewer-info-meta strong {
    font-size: 16px;
}
.reviewer-info-meta span {
    font-size: 13px;
    color: #717171;
}
.card-stars {
    color: #FF385C;
    font-size: 12px;
    margin: 15px 0 10px;
}
.review-text-content {
    font-size: 14px;
    line-height: 1.6;
    color: #222;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 15px;
}
.read-more-link {
    background: none;
    border: none;
    padding: 0;
    font-weight: 700;
    text-decoration: underline;
    font-size: 14px;
    cursor: pointer;
}
.show-all-reviews-wrapper {
    display: flex;
    justify-content: center;
    margin-top: 40px;
}
.btn-show-all-reviews {
    background: #fff;
    border: 1px solid #222;
    padding: 12px 30px;
    border-radius: 8px;
    font-weight: 700;
    transition: background 0.2s;
}
.btn-show-all-reviews:hover {
    background: #f7f7f7;
}

.rating-stars-red i {
    font-size: 16px;
    margin-right: 2px;
}
.overall-rating-row {
    padding: 0 10px;
}

/* --- Side Panel Modal Styling --- */

.modal-side-panel {
    position: fixed;
    margin: 0;
    width: 600px;
    height: 100%;
    right: 0;
    top: 0;
    transform: translateX(100%);
    transition: transform 0.3s ease-out;
}
.modal.show .modal-side-panel {
    transform: translateX(0);
}
.modal-content-side {
    height: 100%;
    border: none;
    border-radius: 0;
    display: flex;
    flex-direction: column;
}
.modal-header-side {
    display: flex;
    align-items: center;
    padding: 24px;
    border-bottom: 
    1px solid #ebebeb;
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 10;
}
.modal-side-close {
    background: none;
    border: none;
    font-size: 18px;
    cursor: pointer;
    padding: 8px;
    margin-right: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: background 0.2s;
}
.modal-side-close:hover {
    background: #f7f7f7;
}
.modal-header-side .modal-title {
    font-size: 16px;
    font-weight: 800;
    flex: 1;
    text-align: center;
    margin: 0;
    padding-right: 40px; /* Offset to center title better */
}
.modal-body-side {
    flex: 1;
    overflow-y: auto;
    padding: 24px;
}

/* --- Review Modal Specifics --- */
.review-modal-card {
    background: #FFF8F6;
    border: 1px solid #FF385C;
    border-radius: 12px;
    padding: 30px;
    text-align: center;
    margin-bottom: 30px;
}
.review-modal-card h2 {
    font-size: 48px;
    font-weight: 800;
    margin-bottom: 5px;
}
.modal-stars {
    color: #222;
    font-size: 18px;
    margin-bottom: 10px;
    display: flex;
    justify-content: center;
    gap: 4px;
}
.avg-text-meta {
    font-size: 14px;
    color: #717171;
}
.review-modal-list-item {
    padding-bottom: 30px;
    margin-bottom: 30px;
    border-bottom: 1px solid #ebebeb;
}
.rem-reviewer-header {
    display: flex;
    gap: 15px;
    align-items: center;
    margin-bottom: 15px;
}
.rem-avatar {
    width: 48px;
    height: 48px;
    background: #222;
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}
.rem-info strong {
    display: block;
    font-size: 16px;
}
.rem-info span {
    font-size: 14px;
    color: #717171;
}
.rem-text {
    font-size: 16px;
    line-height: 1.6;
}

/* --- Amenity Modal Specifics --- */
.amenity-group-block {
    margin-bottom: 30px;
}
.amenity-group-block h5 {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 20px;
}
.amenity-list-side {
    list-style: none;
    padding: 0;
    margin: 0;
}
.amenity-list-item {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 15px 0;
    border-bottom: 1px solid #f7f7f7;
    font-size: 16px;
}
.amenity-list-item img {
    width: 32px;
    height: 32px;
    object-fit: contain;
}
.amenity-list-item i {
    font-size: 20px;
    width: 32px;
    text-align: center;
}

/* Responsive Side Panel */
@media (max-width: 767px) {
    .modal-side-panel {
        width: 100%;
    }
}

.modal.fade .modal-side-panel {
    transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* --- Homepage Hero Availability Card --- */

.availability-card {
    background: #fff;
    padding: 40px;
    border-radius: 24px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.15);
    max-width: 500px;
    margin-left: auto;
}
.availability-card h3 {
    font-size: 24px;
    font-weight: 800;
    margin-bottom: 30px;
    color: #222;
}
.avail-row {
    display: flex;
    gap: 15px;
    margin-bottom: 20px;
}
.avail-field {
    flex: 1;
}
.avail-field label {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: #717171;
    margin-bottom: 8px;
}
.input-wrap {
    position: relative;
    border: 1px solid #ddd;
    border-radius: 12px;
    padding: 12px 15px;
    display: flex;
    align-items: center;
    gap: 10px;
    background: #fff;
    transition: border-color 0.2s;
}
.input-wrap:focus-within {
    border-color: #12dacd;
}
.input-wrap i {
    color: #12dacd;
    font-size: 16px;
}
.input-wrap input {
    border: none;
    outline: none;
    width: 100%;
    font-size: 14px;
    color: #222;
}
.input-wrap select {
    border: none;
    outline: none;
    width: 100%;
    background: none;
    font-size: 14px;
    color: #222;
    cursor: pointer;
}
.btn-check-avail {
    width: 100%;
    background: #12dacd;
    color: #fff;
    border: none;
    padding: 16px;
    border-radius: 12px;
    font-size: 18px;
    font-weight: 700;
    cursor: pointer;
    margin-top: 10px;
    transition: transform 0.2s, background 0.2s;
}
.btn-check-avail:hover {
    background: #0fb8ad;
    transform: translateY(-2px);
}
.discount-banner {
    display: flex;
    align-items: center;
    gap: 15px;
    background: #fffde7;
    padding: 15px;
    border-radius: 12px;
    margin-top: 25px;
}
.disc-icon {
    width: 40px;
    height: 40px;
    background: #fff176;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 18px;
    color: #222;
}
.discount-banner strong {
    display: block;
    font-size: 14px;
    color: #222;
}
.discount-banner p {
    margin: 0;
    font-size: 12px;
    color: #717171;
}

/* --- Property Detail Dynamic Section Fixes --- */

.stats-row {
    display: flex;
    gap: 15px;
    margin: 30px 0;
}
.stat {
    flex: 1;
    background: #fff;
    padding: 15px;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    text-align: center;
    border: 1px solid #f0f0f0;
}
.stat i {
    display: block;
    font-size: 24px;
    color: #FF385C;
    margin-bottom: 8px;
}
.stat strong {
    display: block;
    font-size: 20px;
    font-weight: 800;
}
.stat span {
    font-size: 13px;
    color: #717171;
}

.features-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-top: 20px;
}
.feat {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
    font-weight: 500;
}
.feat img, .feat i {
    width: 32px;
    height: 32px;
    background: #FFD700;
    padding: 7px;
    border-radius: 50%;
    color: #222;
    object-fit: contain;
}

/* --- House Info Banner --- */
.house-info-bar {
    background: #fff;
    border-radius: 20px;
    padding: 30px 40px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 10px 30px rgba(0,0,0,0.05);
    margin: 60px 0;
    border: 1px solid #f7f7f7;
}
.house-info-left h4 {
    font-size: 24px;
    font-weight: 800;
    margin: 0 0 5px 0;
}
.house-info-left p {
    margin: 0;
    color: #717171;
    font-size: 14px;
}
.btn-book-stay {
    background: linear-gradient(90deg, #FF385C 0%, #E31C5F 100%);
    color: #fff;
    padding: 14px 35px;
    border-radius: 12px;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.2s;
}
.btn-book-stay:hover {
    transform: scale(1.05);
    color: #fff;
}

.stat .fa-users { color: #f16b2a; }
.stat .fa-bed { color: #12dacd; }
.stat .fa-bath { color: #ffb400; }
.stat .fa-expand-arrows-alt { color: #ff5a5f; }

.stat i {
    background: #f7f7f7;
    width: 44px;
    height: 44px;
    line-height: 44px;
    border-radius: 50%;
    margin: 0 auto 10px;
}

.bedroom-label { font-weight: 700; }
.bedroom-label.master-bedroom { color: #ff5a5f; }
.bedroom-label.guest-bedroom { color: #12dacd; }
.bedroom-label.living-room { color: #ffb400; }

.bedding-box i {
    width: 32px;
}

.stat strong {
    color: #222;
    font-size: 22px;
    margin-bottom: 2px;
}
.stat span {
    color: #717171;
    font-weight: 500;
}

.feat-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: #FFD700;
    border-radius: 50%;
    flex-shrink: 0;
}
.feat-icon i {
    font-size: 18px;
    color: #222;
    background: none !important;
    padding: 0 !important;
    width: auto !important;
    height: auto !important;
}
.feat-icon img {
    width: 24px;
    height: 24px;
    object-fit: contain;
    background: none !important;
    padding: 0 !important;
}

/* --- Spacing & Color Adjustments --- */
.house-info-bar {
    margin: 40px 0 20px 0 !important; /* Reduced bottom margin */
}

.banner-box {
    margin-top: 0 !important; /* Ensure info box is close */
}

.btn-book-stay {
    background: linear-gradient(90deg, #f16b2a 0%, #ee6422 100%) !important; /* Match brand orange */
}

.stat i {
    color: #f16b2a !important; /* Ensure icons match if needed */
}

.banner-box {
    margin-top: 10px !important;
    padding: 30px 40px !important;
}
.house-info-bar {
    margin-bottom: 20px !important;
}

/* --- Matching Widths & Internal Spacing --- */
.house-info-bar, .important-info {
    width: 100% !important;
    max-width: 1200px !important; /* Match width with banner */
    margin-left: auto !important;
    margin-right: auto !important;
}

/* --- Restoration of Flex Layout for Banner --- */
.house-info-bar {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    text-align: left !important;
}

.house-text {
    flex: 1 !important;
    margin-right: 20px !important;
}

.btn-book-stay {
    margin-top: 0 !important; /* Reset any top margins that might have pushed it down */
    white-space: nowrap !important;
}

/* --- Forced Alignment to match Staging (Reference) --- */
.house-info-bar {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    flex-wrap: nowrap !important; /* Prevent wrapping */
    max-width: 1200px !important; /* Increase width to match reference */
    padding: 30px 40px !important;
}

.house-text {
    text-align: left !important;
    max-width: 70% !important; /* Give space for button */
}

.btn-book-stay {
    margin: 0 !important; /* Remove any margins pushing it down */
    align-self: center !important;
}

/* --- Grid Approach for guaranteed positioning --- */
.house-info-bar {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 1200px !important;
    margin: 20px auto !important;
}

.house-text {
    width: auto !important;
}

.btn-book-stay {
    grid-column: 2 !important;
    margin-left: 20px !important;
}

/* --- Matching Widths & Internal Spacing --- */
.house-info-bar, .important-info {
    width: 100% !important;
    max-width: 1200px !important; /* Uniform width */
    margin-left: auto !important;
    margin-right: auto !important;
}

.important-info {
    padding: 40px 60px !important; /* Make it more spacious internally */
    margin-top: 15px !important; /* Balanced gap between them */
}

.house-info-bar {
    padding: 30px 50px !important;
}

/* --- Strict Width Sync for Info Blocks --- */
.important-info, .house-info-bar {
    width: 100% !important; /* Wider width like reference */
    max-width: 1200px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

.important-info {
    padding: 30px 40px !important;
    margin-top: 20px !important;
    border-radius: 20px !important;
}

.house-info-bar {
    padding: 25px 40px !important;
    border-radius: 20px !important;
}

/* Ensure no full-width overrides */
section .important-info, div .important-info {
    width: 100% !important;
}

 / *   - - -   H o m e p a g e   G a l l e r y   T r a n s i t i o n s   - - -   * / 
 . g a l l e r y - i t e m . h i d d e n   { 
         d i s p l a y :   n o n e ; 
 } 
 . g a l l e r y - i t e m . v i s i b l e   { 
         d i s p l a y :   b l o c k ; 
         a n i m a t i o n :   g a l l e r y F a d e I n   0 . 5 s   e a s e - f o r w a r d s ; 
 } 
 @ k e y f r a m e s   g a l l e r y F a d e I n   { 
         f r o m   {   o p a c i t y :   0 ;   t r a n s f o r m :   t r a n s l a t e Y ( 1 0 p x ) ;   } 
         t o   {   o p a c i t y :   1 ;   t r a n s f o r m :   t r a n s l a t e Y ( 0 ) ;   } 
 } 
 
 
 
 . b t n - c h e c k - a v a i l a b i l i t y   { 
         d i s p l a y :   i n l i n e - b l o c k ; 
         b a c k g r o u n d :   # f 1 6 b 2 a ; 
         c o l o r :   # f f f   ! i m p o r t a n t ; 
         p a d d i n g :   1 2 p x   2 5 p x ; 
         b o r d e r - r a d i u s :   1 2 p x ; 
         f o n t - w e i g h t :   7 0 0 ; 
         t e x t - d e c o r a t i o n :   n o n e ; 
         m a r g i n - t o p :   1 5 p x ; 
         t r a n s i t i o n :   t r a n s f o r m   0 . 2 s ,   b a c k g r o u n d   0 . 2 s ; 
 } 
 . b t n - c h e c k - a v a i l a b i l i t y : h o v e r   { 
         b a c k g r o u n d :   # e 1 5 b 1 a ; 
         t r a n s f o r m :   t r a n s l a t e Y ( - 2 p x ) ; 
 } 
 
 
 