/* MP RentalPlace Single – Modern default styling */
.myplatz-rental-place {
    --gap: 1.15rem;
    --radius: var(--myplatz-radius, 12px);
    --surface: var(--myplatz-surface, #FFFFFF);
    --shadow: 0 2px 6px rgba(0, 0, 0, .05), 0 4px 18px -4px rgba(0, 0, 0, .08);
    /* Fallback typography tokens (Elementor Secondary) */
    --mp-typo-secondary-weight: 500;
}

.myplatz-rental-place__main {
    display: flex;
    flex-direction: column;
    gap: var(--gap);
    background: var(--surface);
    padding: clamp(1rem, 1.6vw, 1.75rem);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}

/* Body scroll lock when modal open */
body.myplatz-modal-open {
    overflow: hidden;
    touch-action: none;
}

/* Modal specific overrides */
.myplatz-rental-place.is-modal-view .myplatz-rental-place__bottom.has-lists.has-gallery {
    display: flex;
    flex-direction: column;
    gap: 1.75rem;
}

.myplatz-rental-place.is-modal-view .myplatz-rental-place__info-lists {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1rem;
}

.myplatz-rental-place.is-modal-view .myplatz-rental-place__gallery {
    order: 2;
}

.myplatz-rental-place.is-modal-view .myplatz-rental-place__bottom-left,
.myplatz-rental-place.is-modal-view .myplatz-rental-place__bottom-right {
    width: 100%;
}

.myplatz-rental-place__header-block {
    display: flex;
    flex-direction: column;
    gap: .85rem;
}

.myplatz-rental-place__title {
    margin: 0;
    /* Remove hard font-size so Elementor typography can fully control */
    line-height: 1.15;
    letter-spacing: -.02em;
    color: var(--color-headline, var(--myplatz-headline, #151515));
}

/* Main media now constrained via aspect-ratio below (override legacy rule) */
.myplatz-rental-place__media,
.myplatz-rental-place__media img {
    all: unset;
}

.myplatz-rental-place__description {
    line-height: 1.55;
    color: var(--color-body, var(--myplatz-body, #555));
    white-space: pre-line;
}

/* Properties */
.myplatz-rental-place__properties {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem .75rem;
}

.myplatz-rental-place__prop {
    background: color-mix(in srgb, var(--color-primary, var(--myplatz-primary, #10B1B6)) 9%, transparent);
    color: var(--color-headline, #151515);
    padding: .45rem .7rem;
    /* font-size / weight removed for Elementor control */
    border-radius: .55rem;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    font-size: .8em;
    /* default base size; Elementor can override */
    font-weight: var(--mp-typo-secondary-weight);
    font-family: 'Montserrat', var(--e-global-typography-secondary-font-family, Arial), sans-serif;
}


/* Description indent (slight) */
.myplatz-rental-place__description {
    padding-left: 2%;
}

/* (Removed old price-name block) */

/* Extras */
.myplatz-rental-place__extras {
    border-top: 1px solid rgba(0, 0, 0, .06);
    padding-top: .85rem;
}

.myplatz-rental-place__extras-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: .55rem .65rem;
}

.myplatz-rental-place__extra {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: color-mix(in srgb, var(--color-secondary, var(--myplatz-secondary, #43555F)) 8%, transparent);
    padding: .45rem .65rem;
    border-radius: .55rem;
    /* font-size removed for Elementor */
    line-height: 1;
    font-size: .8em;
    /* default base size */
    font-weight: var(--mp-typo-secondary-weight);
    font-family: 'Montserrat', var(--e-global-typography-secondary-font-family, Arial), sans-serif;
}

.myplatz-rental-place__extra-icon img,
.myplatz-rental-place__extra-icon svg {
    width: 1rem;
    height: 1rem;
    display: block;
}

.myplatz-rental-place__extra-icon--emoji {
    font-size: 1rem;
    line-height: 1;
}

/* Info lists */
.myplatz-rental-place__info-lists {
    border-top: 1px solid rgba(0, 0, 0, .06);
    padding-top: .9rem;
    display: grid;
    gap: 1rem;
}

@media (min-width:680px) {
    .myplatz-rental-place__info-lists {
        grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    }
}

/* Correct media implementation */
.myplatz-rental-place__media {
    position: relative;
    width: 100%;
    aspect-ratio: 16/7;
    overflow: hidden;
    border-radius: calc(var(--radius) - 4px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, .08);
}

.myplatz-rental-place__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
}

.myplatz-rental-place__info-list {
    background: color-mix(in srgb, var(--color-light, var(--myplatz-light, #F8FCFC)) 86%, #FFFFFF 14%);
    border: 1px solid rgba(0, 0, 0, .05);
    border-radius: .75rem;
    padding: .75rem .85rem .9rem;
    display: flex;
    flex-direction: column;
    gap: .55rem;
    position: relative;
    overflow: hidden;
}

.myplatz-rental-place__info-list-header {
    display: flex;
    align-items: center;
    gap: .5rem;
    /* Typography controlled via Elementor */
    color: var(--color-headline, #151515);
}

.myplatz-rental-place__info-list-items,
.myplatz-rental-place__info-items {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .4rem;
}

.myplatz-rental-place__info-item {
    line-height: 1.4;
    position: relative;
    padding-left: 1rem;
}

.myplatz-rental-place__info-item:before {
    content: '';
    position: absolute;
    left: .3rem;
    top: .55em;
    /* align relative to text line-height for better vertical centering */
    width: .4em;
    height: .4em;
    border-radius: 50%;
    background: var(--color-primary, var(--myplatz-primary, #10B1B6));
}

/* Gallery */
.myplatz-rental-place__gallery {
    border-top: 1px solid rgba(0, 0, 0, .06);
    padding-top: 1rem;
}

.myplatz-rental-place__gallery-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .6rem;
    grid-template-columns: repeat(auto-fill, minmax(120px, 200px));
    justify-content: center;
}

.myplatz-rental-place__gallery-thumb {
    background: none;
    border: 0;
    padding: 0;
    margin: 0;
    cursor: pointer;
    display: block;
    border-radius: .55rem;
    overflow: hidden;
    position: relative;
}

.myplatz-rental-place__gallery-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .35s ease, filter .35s ease;
}

/* Force square preview independent of intrinsic image dimensions */
.myplatz-rental-place__gallery-thumb {
    aspect-ratio: 1 / 1;
    max-width: 200px;
    max-height: 200px;
}

.myplatz-rental-place__gallery-item {
    position: relative;
}

.myplatz-rental-place__gallery-thumb:focus-visible {
    outline: 2px solid var(--color-primary, var(--myplatz-primary, #10B1B6));
    outline-offset: 2px;
}

.myplatz-rental-place__gallery-thumb:before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, .35));
    opacity: 0;
    transition: opacity .35s ease;
}

.myplatz-rental-place__gallery-thumb:hover img {
    transform: scale(1.04);
    filter: brightness(.92);
}

.myplatz-rental-place__gallery-thumb:hover:before {
    opacity: 1;
}

/* Lightbox */
.myplatz-lightbox {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    opacity: 0;
    pointer-events: none;
    transition: opacity .22s ease;
}

.myplatz-lightbox.is-open {
    opacity: 1;
    pointer-events: auto;
}

.myplatz-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.70);
    backdrop-filter: saturate(120%) blur(2px);
}

.myplatz-lightbox__content {
    position: relative;
    max-width: min(90vw, 1000px);
    width: 100%;
    padding: 2.5rem 2.2rem 2.2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

.myplatz-lightbox__figure {
    margin: 0;
    width: 100%;
    max-height: 72vh;
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.myplatz-lightbox__image {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: .65rem;
    box-shadow: 0 14px 30px -8px rgba(0, 0, 0, .4);
    background: #fff;
}

.myplatz-lightbox__caption {
    text-align: center;
    font-size: .7rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #fff;
    opacity: .85;
}

.myplatz-lightbox__close {
    position: absolute;
    top: .75rem;
    right: .75rem;
    background: rgba(0, 0, 0, .55);
    color: #fff;
    border: 0;
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    line-height: 1;
    transition: background .25s ease;
}

.myplatz-lightbox__close:hover,
.myplatz-lightbox__nav:hover {
    background: rgba(0, 0, 0, .7);
}

.myplatz-lightbox__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0, 0, 0, .55);
    color: #fff;
    border: 0;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    line-height: 1;
    transition: background .25s ease;
}

.myplatz-lightbox__nav--prev {
    left: .75rem;
}

.myplatz-lightbox__nav--next {
    right: .75rem;
}

/* Empty state */
.myplatz-rental-place__empty {
    background: repeating-linear-gradient(45deg, #f4f7f8, #f4f7f8 10px, #f0f3f4 10px, #f0f3f4 20px);
    padding: 1.25rem 1.5rem;
    font-size: .85rem;
    border-radius: .75rem;
    color: #4a585f;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .04);
}

@media (min-width:820px) {
    .myplatz-rental-place__main {
        flex-direction: column;
    }
}

/* Bottom composite layout responsive logic
   - Single column default
   - When both info-lists and gallery present & container wide enough -> two columns
*/
.myplatz-rental-place__bottom {
    display: grid;
    gap: 1.4rem;
}

.myplatz-rental-place__bottom.has-lists.has-gallery {
    grid-template-columns: 1fr;
}

/* Element-width driven states (added via JS) */
/* cols-2: only enables two-column info-lists; outer grid stays single column until cols-wide */
.myplatz-rental-place__bottom.has-lists.has-gallery.cols-wide {
    grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
}

.myplatz-rental-place__bottom-right {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}

/* Info-lists columns (toggle by parent width classes) */
.myplatz-rental-place__info-lists {
    grid-template-columns: 1fr;
}

.myplatz-rental-place__bottom.cols-2 .myplatz-rental-place__info-lists,
.myplatz-rental-place__bottom.cols-wide .myplatz-rental-place__info-lists {
    grid-template-columns: repeat(2, 1fr);
}

/* Gallery 2 per row only when wider layout active */
.myplatz-rental-place__bottom.cols-wide .myplatz-rental-place__gallery-list {
    grid-template-columns: repeat(2, 1fr);
}

/* Booking button block (full width above prices) */
.myplatz-rental-place__booking {
    margin-top: 1rem;
}

.myplatz-rental-place__booking-btn {
    display: inline-flex;
    width: 100%;
    justify-content: center;
    align-items: center;
    padding: .75rem 1.15rem;
    border-radius: .85rem;
    background: var(--color-primary, #10B1B6);
    color: #fff;
    text-decoration: none;
    font-weight: 600;
    line-height: 1.1;
    box-shadow: 0 3px 10px -4px rgba(0, 0, 0, .3);
    transition: background .25s ease, box-shadow .25s ease;
}

.myplatz-rental-place__booking-btn:hover,
.myplatz-rental-place__booking-btn:focus-visible {
    background: color-mix(in srgb, var(--color-primary, #10B1B6) 85%, #0b8488);
    box-shadow: 0 4px 14px -4px rgba(0, 0, 0, .35);
}


/* Removed obsolete variant classes (bottom--*) now using has-lists / has-gallery only */


/* Gallery heading */
.myplatz-rental-place__gallery-heading {
    margin: 0 0 .5rem;
    /* Typography via Elementor */
    color: var(--color-headline, #151515);
}

/* =============================== */
/* Consolidated Price Section 🧾   */
/* =============================== */
/* Layout container */
.myplatz-rental-place__prices {
    margin-top: 1.25rem;
    padding-top: .9rem;
    border-top: 1px solid rgba(0, 0, 0, .08);
    display: flex;
    flex-direction: column;
    gap: .9rem;
}

.myplatz-rental-place__price-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 1.1rem 1.4rem;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: flex-end;
    width: 100%;
}

.myplatz-rental-place__price-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    /* vertical center alignment */
    justify-content: flex-end;
    gap: .75rem;
    flex-wrap: wrap;
    min-width: 240px;
    flex: 1 1 auto;
}

/* Single price line: ensure full width so right alignment sticks */
.myplatz-rental-place__price-list.single-price .myplatz-rental-place__price-item {
    flex: 0 0 100%;
}

/* Badge core */
.myplatz-rental-place__price-badge {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .85rem 1.25rem .9rem;
    border-radius: 1rem;
    background: linear-gradient(135deg, var(--color-primary, var(--myplatz-primary, #10B1B6)) 0%, color-mix(in srgb, var(--color-primary, var(--myplatz-primary, #10B1B6)) 40%, #55f1f7) 100%);
    color: #fff;
    box-shadow: 0 4px 14px -4px rgba(0, 0, 0, .25), 0 2px 6px -1px rgba(0, 0, 0, .14);
    text-shadow: 0 1px 2px rgba(0, 0, 0, .35);
    transition: box-shadow .45s ease, background .6s ease;
    cursor: default;
    white-space: nowrap;
}

/* Active seasonal highlight (already default above) */
.myplatz-rental-place__price-badge.is-active {
    isolation: isolate;
}

/* Muted (inactive season) – smaller + pale */
.myplatz-rental-place__price-badge.is-muted {
    background: linear-gradient(135deg, color-mix(in srgb, var(--color-primary, #10B1B6) 4%, #ffffff) 0%, color-mix(in srgb, var(--color-primary, #10B1B6) 2%, #f7fafb) 100%);
    color: #748186;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);
    text-shadow: none;
    padding: .62rem .9rem .66rem;
    opacity: .92;
}

/* Hover elevate only active (desktop intention) */
/* Hover animation removed */

/* Legend */
.myplatz-rental-place__price-legend {
    display: flex;
    flex-basis: 100%;
    justify-content: flex-end;
    gap: .55rem;
    /* Typography via Elementor */
    color: color-mix(in srgb, var(--color-body, #6E7A84) 78%, #0b1618 22%);
    align-items: center;
    line-height: 1.15;
    margin-top: .1rem;
}

.myplatz-rental-place__season-separator {
    opacity: .45;
}

.myplatz-rental-place__season-label {
    position: relative;
}

/* Emphasize active season label with primary tint */
.myplatz-rental-place__season-label.is-active {
    color: var(--color-primary, var(--myplatz-primary, #10B1B6));
}

.myplatz-rental-place__season-label.is-muted {
    opacity: .70;
}

/* Reduced motion preference */
@media (prefers-reduced-motion: reduce) {
    .myplatz-rental-place__price-badge {
        transition: none;
    }
}