/* Grand Penthouse Terrace Suite Landing Page Styles */

/* Prevent horizontal scrolling */
html {
    overflow-x: hidden;
}

body {
    overflow-x: hidden;
    /* padding-top: 80px; */
}

/* Wrapper for content sections */
.wrapper {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 40px;
}

/* Skip link for accessibility */
.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: #394554;
    color: #fff;
    padding: 8px;
    text-decoration: none;
    z-index: 100;
}

.skip-link:focus {
    top: 0;
}

/* Screen reader only class */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/*Hider default header*/
.header {
    display: none;
}

/* header_suiter styles */
.header_suiter {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background: transparent;
    z-index: 1;
    padding: 60px 10px;
}

.header_suiter .wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    max-width: 1920px;
    margin: 0 auto;
}

.header_suiter .logo {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.header_suiter .logo img {
    max-width: 150px;
    height: auto;
    display: block;
}

/* Menu toggle (hamburger) */
.menu-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(81, 88, 103, 0.8);
    border: none;
    padding: 0 12px;
    height: 30px;
    cursor: pointer;
    z-index: 1001;
    min-width: 44px;
    min-height: 44px;
    border-radius: 2px;
    position: absolute;
    right: 0;
    transition: background 0.3s ease;
}

.menu-toggle:hover {
    background: rgba(81, 88, 103, 1);
}

.menu-toggle-text {
    font: 400 12.36px/30px 'Inter', sans-serif;
    color: #FFFFFF;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.menu-toggle-icon {
    display: block;
    width: 21px;
    height: 30px;
    position: relative;
}

.menu-toggle-icon svg {
    width: 100%;
    height: 100%;
    fill: #FFFFFF;
}

/* Hero Section */
.hero-section {
    position: relative;
    width: 100%;
    height: 1080px;
    overflow: hidden;
}

.hero-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.hero-video video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    font-family: 'object-fit: cover;';
}

.hero-video img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    font-family: 'object-fit: cover;';
}

.hero-content {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    text-align: center;
}

.hero-content h1 {
    font: 64px/85px 'Canela';
    color: #fff;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    max-width: 865px;
    margin: 0 auto;
    padding: 112px 0;
}

/* Suite intro section */
.suite-intro {
    padding: 2rem 0;
    text-align: left;
}

.suite-intro h1 {
    font: 2.5rem'Canela';
    max-width: 865px;
    margin: 0 auto;
    padding: 0px 40px 24px;
}


.intro-content {
    max-width: 865px;
    margin: 0 auto;
    padding: 0 40px;
}

.suite-intro h2 {
    font: 300 24px/30px 'GTWalsheimPro';
    color: #394554;
    padding-bottom: 30px;
    margin: 0;
}

.suite-intro .description p {
    font: 300 20px/30px 'GTWalsheimPro';
    color: #394554;
    padding-bottom: 25px;
    margin: 0;
}

.suite-intro .description h3 {
    font-family: 'GTWalsheimPro';
    color: #000;
    font-size: 1.125rem;
    line-height: 1.875rem;
    /* 166.667% */
    padding-bottom: 20px;
    margin: 0;

}

.suite-intro .description p:last-child {
    padding-bottom: 0;
}

/* Image sections */
.image-section {
    padding: 0;
}

.image-section .wrapper {
    max-width: 1080px;
    padding: 0 40px;
}

/* Image carousel */
.image-carousel {
    position: relative;
    width: 100%;
    border-radius: 2px;
    overflow: hidden;
}

.carousel-track {
    position: relative;
    width: 100%;
    height: 607px;
}

.carousel-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 0.6s ease;
    pointer-events: none;
}

.carousel-slide.active {
    opacity: 1;
    pointer-events: auto;
}

.carousel-slide picture {
    display: block;
    width: 100%;
    height: 100%;
}

.carousel-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    font-family: 'object-fit: cover;';
    display: block;
    transform-origin: 50% 65%;
    transition: transform 14s ease-in-out, filter 10s ease-in-out;
    filter: brightness(100%);
    transform: scale(1);
}

/* Apply zoom effect only to active carousel slide when section is visible */
.image-section.visible .carousel-slide.active img {
    filter: brightness(100%);
    transform: scale(1.5);
}

/* Reset zoom for inactive slides */
.carousel-slide:not(.active) img {
    transform: scale(1);
    transition: transform 0s;
}

/* Image title overlay */
.image-title {
    position: absolute;
    top: 24px;
    left: 24px;
    background: rgba(57, 69, 84, 0.8);
    color: #fff;
    font: 400 24px/24px 'Canela';
    padding: 12px 18px;
    border-radius: 1px;
    z-index: 2;
}

/* Carousel counter/navigation */
.carousel-counter {
    position: absolute;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    align-items: center;
    z-index: 2;
}

.carousel-counter.hidden {
    display: none;
}

.carousel-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    border: none;
    padding: 18px;
    /* Larger touch target */
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
}

.carousel-dot::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    transition: all 0.3s ease;
}

.carousel-dot:hover::before {
    background: rgba(255, 255, 255, 0.8);
    width: 10px;
    height: 10px;
}

.carousel-dot.active::before {
    background: #fff;
    width: 10px;
    height: 10px;
}

/* Text sections */
.text-section {
    padding: 2rem 0;
    text-align: left;
}

.text-content {
    max-width: 865px;
    margin: 0 auto;
    padding: 0 40px;
}

.text-content p {
    font: 300 20px/30px 'GTWalsheimPro';
    color: #394554;
    padding-bottom: 25px;
    margin: 0;
}

.text-content h3 {
    font-family: 'GTWalsheimPro';
    color: #000;
    font-size: 1.325rem;
    line-height: 1.175rem;
    /* 166.667% */
    padding-bottom: 10px;
    margin: 0;
}

.text-content p:last-child {
    padding-bottom: 0;
}

/* USP Section */
.usp-section {
    padding: 80px 0;
    background: #F7F6F6;
}

.usp-section .wrapper {
    padding: 0 40px;
}

.usp-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 51px;
    max-width: 1080px;
    margin: 0 auto;
}

.usp-card {
    text-align: center;
    background: transparent;
}

.usp-image {
    width: 100%;
    height: 335px;
    overflow: hidden;
    margin-bottom: 20px;
    border-radius: 2px;
}

.usp-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    font-family: 'object-fit: cover;';
    display: block;
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.usp-card:hover .usp-image img {
    transform: scale(1.05);
}

.usp-title {
    font: 400 2rem 'GTWalsheimPro';
    color: #394554;
    padding-bottom: 16px;
    margin: 0;
}

.usp-description {
    font: 300 1.2rem 'GTWalsheimPro';
    color: #394554;
    margin: 0;
}

/* Facilities section */
.facilities-section {
    padding: 80px 0;
    text-align: center;

}

.facilities-section .wrapper {
    max-width: 865px;
    margin: 0 auto;
    padding: 40px 40px;
    background: #394554;
    border-radius: 2px;
}

.facilities-section h2 {
    font: 40px/48px 'Canela';
    color: #fff;
    letter-spacing: 1px;
    padding-bottom: 30px;
    margin: 0;
    text-align: left;
}

.facilities-list {
    max-width: 865px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
    columns: 1;
    column-gap: 40px;
    text-align: left;
}

.facilities-list li {
    font: 300 1.125rem 'GTWalsheimPro';
    color: #fff;
    padding-bottom: 12px;
    padding-left: 20px;
    break-inside: avoid;
    position: relative;
    line-height: 1.875rem;
}

.facilities-list li:before {
    content: '';
    width: 4px;
    height: 4px;
    position: absolute;
    left: 0;
    top: 10px;
    border-radius: 50%;
    background: #fff;
}

/* Floor plan section */
.floorplan-section {
    padding: 80px 0;
    background: #FFFFFF;
}

.floorplan-section .wrapper {
    max-width: 1080px;
    margin: 0 auto;
    padding: 0 40px;
}

.floorplan-section img {
    width: 100%;
    max-width: 865px;
    height: auto;
    margin: 0 auto;
    display: block;
}

/* Booking section */
.booking-section {
    padding: 80px 0;
    text-align: center;
}

.booking-section .wrapper {
    max-width: 865px;
    margin: 0 auto;
    padding: 40px 40px;
    background-color: #F7F6F6;
}

.booking-section h2 {
    font: 40px/48px 'Canela';
    color: #848484;
    letter-spacing: 1px;
    padding-bottom: 20px;
    margin: 0;
}

.booking-section p {
    font: 300 20px/30px 'GTWalsheimPro';
    color: #000;
    max-width: 625px;
    margin: 0 auto 30px;
}

.booking-section a:not(.button) {
    color: #394554;
    text-decoration: underline;
    transition: color 0.3s ease;
}

.booking-section a:not(.button):hover {
    color: #B59F68;
}

.booking-section .button {
    min-width: 316px;
    height: 50px;
    font-size: 18px;
    padding: 12px;
    display: inline-block;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: #394554;
}

.booking-section .button:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
}

/* Mobile menu overlay */
.mobile-menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 30%;
    height: 100vh;
    background: #fff;
    z-index: 10000;
    overflow-y: auto;
    transform: translateX(-100%);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    opacity: 0;
    visibility: hidden;
}

.mobile-menu-overlay.active,
.mobile-menu-overlay[aria-hidden="false"] {
    transform: translateX(0);
    opacity: 1;
    visibility: visible;
}

.mobile-menu-content {
    padding: 64px 40px;
    text-align: left;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    /* gap: 64px; */
}

.menu-close {
    position: absolute;
    top: 30px;
    right: 60px;
    background: none;
    border: none;
    font: 400 24px/96px 'Inter', sans-serif;
    cursor: pointer;
    padding: 0;
    color: #000;
    transition: opacity 0.3s ease;
    min-width: 44px;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.menu-close:hover {
    opacity: 0.7;
}

.mobile-search {padding:3px 40px 0px 0;display:flex; justify-content: space-between; width: 90%;}
.mobile-search ul {display:flex;flex-wrap:wrap;}
.mobile-search ul li {font-size:13px;padding:0 10px 5px 0;}
.mobile-search ul li a {text-decoration:none;}
.mobile-search ul li a.active {text-decoration:underline;color:#B59F68;}
.mobile-search .search {font-size:0;line-height:0;text-decoration:none;margin:0 0 5px 10px;display:inline-block;width:25px;height:25px;background:url(https://images.communicatorcloud.com/cloud/imagecontainer/26313494-86c7-4098-a2e0-67fc88b0e1b4.png) center center/22px auto no-repeat;}

.mobile-menu-nav {
    flex: 1;
    display: flex;
    padding: 52px 10px 30px 10px;
    /* align-items:; */
    /* justify-content: center; */
}

.mobile-menu-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    /* gap: 40px; */
}

.mobile-menu-nav li {
    padding: 0;
    border: none;
}

.mobile-menu-nav a {
    font-size:16px;line-height:41px;font-weight:300;text-transform:uppercase;padding-bottom:10px; color:#000;
}

.mobile-menu-nav a:hover,
.mobile-menu-nav a:focus {
    opacity: 0.7;
}

.mobile-menu-nav a[aria-current="page"] {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
    font-size: 36px;
    line-height: 54px;
}

.mobile-menu-nav .button {
    margin-top: 10px;
    display: inline-block;
}

.mobile-menu-content nav ul li {font-size:16px;font-weight:300;text-transform:uppercase}
.mobile-menu-content nav ul li a:not(.button) {display:inline-block;padding:0;text-decoration:none;border-bottom:1px solid transparent;}
.mobile-menu-content nav ul li a.active {font-weight:400;border-bottom-color:#B59F68;}
.mobile-menu-content nav ul li a.button {margin:0;}
.mobile-menu-content nav > ul > li > ul {display:none;justify-content:flex-start;align-items:stretch;position:absolute;top:100%;left:0;width:100%;background:#f7f6f6;z-index:10;padding:30px 0;text-align:left;}
.mobile-menu-content nav > ul > li:hover > ul {/*display:flex;*/display:none;}
.mobile-menu-content nav > ul > li > ul:before, .mobile-menu-content nav > ul > li > ul:after {content:'';position:absolute;top:0;left:100%;width:100%;height:100%;background:#f7f6f6;display:block;}
.mobile-menu-content nav > ul > li > ul:before {left:auto;right:100%;}
.mobile-menu-content nav > ul > li > ul > li {flex:1 0 22%;padding:40px 2% 0 3%;box-sizing:border-box;position:relative;}
.mobile-menu-content nav > ul > li > ul > li:first-child {flex-basis:15%;padding-left:20px;}
.mobile-menu-content nav > ul > li > ul > li:last-child {flex-basis:15%;}
.mobile-menu-content nav > ul > li > ul > li:after {content:'';display:block;width:1px;height:100%;max-height:240px;background:#999898;position:absolute;top:0;right:0;}
.mobile-menu-content nav > ul > li > ul > li:last-child:after {display:none;}
.mobile-menu-content nav > ul > li > ul li {font-size:20px;line-height:35px;text-transform:none;padding-bottom:0;}
.mobile-menu-content nav > ul > li > ul > li h6 {font-size:29px;padding-bottom:10px;}
.mobile-menu-content nav > ul > li > ul > li ul {display:block;}
.mobile-menu-content nav > ul > li > ul > li ul li a:not(.button) {padding:0;text-transform:none;}
.mobile-menu-content nav > ul > li > ul > li ul li:last-child {font-weight:400;}
.mobile-menu-content nav .button-bordered{border: none; text-align: left;}
.mobile-menu-content nav .button{border:none; background: none; padding:0;text-align: left;}

/* Fade-in animation */
.fade-in {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Focus styles for accessibility */
a:focus,
button:focus {
    /* outline: 2px solid #B59F68; */
    outline-offset: 2px;
}

/* Enhanced focus for keyboard navigation */
.keyboard-nav a:focus,
.keyboard-nav button:focus {
    /* outline: 3px solid #B59F68; */
    outline-offset: 3px;
}

/* Smooth transitions */
a,
button,
.button {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

img {
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}


/* Tablet styles */
@media only screen and (min-width: 768px) and (max-width: 1023px) {
    .wrapper {
        padding: 0 32px;
    }

    .hero-section {
        height: 700px;
    }

    .hero-content h1 {
        font-size: 48px;
        line-height: 60px;
    }

    .suite-intro,
    .text-section {
        padding: 80px 0;
    }

    .intro-content,
    .text-content {
        padding: 0 32px;
    }

    .image-section img {
        height: 500px;
    }

    .usp-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 40px;
    }

    .usp-card:last-child {
        grid-column: 1 / -1;
        max-width: 400px;
        margin: 0 auto;
    }

    .facilities-list {
        columns: 2;
        column-gap: 32px;
    }

    .facilities-section h2,
    .booking-section h2 {
        font-size: 32px;
        line-height: 40px;
    }
}

/* Mobile styles */
@media only screen and (max-width: 767px) {

    /* Wrapper */
    .wrapper {
        padding: 0 24px;
    }

    /* header_suiter */
    .header_suiter {
        padding: 48px 10px;
    }

    .header_suiter .wrapper {
        padding: 0;
    }

    .header_suiter .logo img {
        max-width: 120px;
    }

    .menu-toggle {
        height: 40px;
        padding: 0 10px;
        min-width: 40px;
        min-height: 40px;
    }

    .menu-toggle-text {
        font-size: 11px;
    }

    .menu-toggle-icon {
        width: 18px;
        height: 24px;
    }

    /* Mobile menu */
    .mobile-menu-content {
        padding: 48px 24px;
        gap: 48px;
    }
    .mobile-menu-overlay {
    width: 100%;
 
}

    .mobile-menu-logo {
        height: auto;
        flex-wrap: wrap;
        padding-top: 48px;
    }

    .mobile-menu-logo img {
        max-height: 60px;
    }

    .menu-close {
        top: 24px;
        right: 24px;
        font-size: 18px;
        line-height: 44px;
    }

    .mobile-menu-nav {
        flex: none;
    }

    .mobile-menu-nav a {
        font-size: 24px;
        line-height: 36px;
    }

    .mobile-menu-nav a[aria-current="page"] {
        font-size: 28px;
        line-height: 42px;
    }

    .mobile-menu-nav ul {
        gap: 7px;
    }

    /* Hero section */
    .hero-section {
        height: 293px;
    }

    .hero-content h1 {
        font-size: 32px;
        line-height: 42px;
        padding: 0 24px;
    }

    /* Suite intro */
    .suite-intro {
        padding: 60px 0;
    }

    .suite-intro h1 {

        padding: 0 24px 24px;
    }

    .intro-content {
        padding: 0 24px;
    }

    .suite-intro h2 {
        font-size: 18px;
        line-height: 26px;
        padding-bottom: 20px;
    }

    .suite-intro .description p {
        font-size: 16px;
        line-height: 24px;
        padding-bottom: 20px;
    }

    .suite-intro .description h3 {
        font-size: 17px;
        line-height: 23px;
    }

    /* Image sections */
    .image-section {
        padding: 24px 0;
    }

    .image-section .wrapper {
        max-width: 100%;
        padding: 0;
    }

    .image-carousel {
        border-radius: 0;
    }


    .carousel-track {
        height: 293px;
    }

    .image-title {
        top: 16px;
        left: 16px;
        font-size: 18px;
        line-height: 18px;
        padding: 9px 13.5px;
    }

    .carousel-counter {
        bottom: 16px;
        gap: 6px;
    }

    .carousel-dot {
        padding: 15px;
        /* Touch-friendly on mobile */
    }

    .carousel-dot::before {
        width: 6px;
        height: 6px;
    }

    .carousel-dot.active::before {
        width: 8px;
        height: 8px;
    }

    /* Text sections */
    .text-section {
        padding: 60px 0;
    }

    .text-content {
        padding: 0 24px;
    }

    .text-content p {
        font-size: 16px;
        line-height: 24px;
        padding-bottom: 20px;
    }

    .text-content h3 {
        font-size: 17px;
        line-height: 23px;
    }

    /* USP Section - horizontal scroll */
    .usp-section {
        padding: 40px 0;
    }

    .usp-section .wrapper {
        padding: 0px 20px;
    }

    .usp-grid {
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        gap: 20px;
        padding: 0 24px;
        scrollbar-width: none;
        /* Firefox */
        -ms-overflow-style: none;
        /* IE/Edge */
        max-width: 100%;
    }

    .usp-grid::-webkit-scrollbar {
        display: none;
        /* Chrome/Safari */
    }

    .usp-card {
        flex: 0 0 244.5px;
        scroll-snap-align: start;
    }

    .usp-card:hover .usp-image img {
        transform: none;
        /* Disable hover effect on mobile */
    }

    .usp-image {
        height: 251.25px;
    }

    .usp-title {
        font-size: 16px;
        line-height: 24px;
    }

    .usp-description {
        font-size: 14px;
        line-height: 20px;
    }

    /* Facilities */
    .facilities-section {
        padding: 60px 0;
    }

    .facilities-section .wrapper {
        padding: 24px 24px;
    }

    .facilities-section h2 {
        font-size: 24px;
        line-height: 32px;
        padding-bottom: 20px;
    }

    .facilities-list {
        columns: 1;
    }

    .facilities-list li {
        font-size: 18px;
        line-height: 30px;
    }

    /* Floor plan */
    .floorplan-section {
        padding: 60px 0;
    }

    .floorplan-section .wrapper {
        padding: 0 24px;
    }

    .floorplan-section img {
        height: auto;
    }

    /* Booking */
    .booking-section {
        padding: 60px 0;
    }

    .booking-section .wrapper {
        padding: 24px 24px;
    }

    .booking-section h2 {
        font-size: 24px;
        line-height: 32px;
        padding: 16px 0px;
    }

    .booking-section p {
        font-size: 16px;
        line-height: 24px;
        margin-bottom: 24px;
    }

    .booking-section .button {
        min-width: 250px;
        height: 48px;
        /* Increased from 42px for better touch target */
        font-size: 16px;
        padding: 12px 24px;
    }

    .booking-section .button:hover {
        transform: none;
        /* Disable hover effect on mobile */
    }


}

/* Floor Plan Button */
.floorplan-button-container {
    text-align: center;
    padding-bottom: 30px;
}

.button-floorplan {
    background: #394554;
    color: #fff;
    border: none;
    padding: 15px 30px;
    font: 400 18px/24px 'GTWalsheimPro';
    cursor: pointer;
    border-radius: 2px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    min-width: 280px;
}

.button-floorplan:hover {
    background: #515867;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* Floor Plan Modal */
.floorplan-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(0, 0, 0, 0.85);
    z-index: 10001;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    overflow-y: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.floorplan-modal-overlay.active,
.floorplan-modal-overlay[aria-hidden="false"] {
    opacity: 1;
    visibility: visible;
}

.floorplan-modal-content {
    background: #fff;
    border-radius: 2px;
    max-width: 1200px;
    width: 100%;
    position: relative;
    padding: 60px 40px 40px;
    transform: scale(0.9);
    transition: transform 0.3s ease;
}

.floorplan-modal-overlay.active .floorplan-modal-content {
    transform: scale(1);
}

.floorplan-modal-close {
    position: absolute;
    top: 20px;
    right: 20px;
    background: none;
    border: none;
    font-size: 40px;
    line-height: 1;
    color: #394554;
    cursor: pointer;
    padding: 5px 15px;
    transition: color 0.3s ease;
    min-width: 44px;
    min-height: 44px;
}

.floorplan-modal-close:hover {
    color: #000;
}

.floorplan-modal-title {
    font: 400 32px/40px 'Canela';
    color: #394554;
    text-align: center;
    margin: 0 0 40px 0;
}

.floorplan-grid {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    /* gap: 40px; */
}

.floorplan-item {
    text-align: center;
}

.floorplan-label {
    font: 400 20px/28px 'GTWalsheimPro';
    color: #394554;
    margin: 0 0 20px 0;
}

.floorplan-item img {
    width: 100%;
    height: auto;
    border-radius: 2px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* Mobile styles for floor plan modal */
@media only screen and (max-width: 767px) {
    .floorplan-button-container {
        padding-bottom: 20px;
    }

    .button-floorplan {
        font-size: 16px;
        padding: 12px 24px;
        min-width: 240px;
    }

    .floorplan-modal-overlay {
        padding: 10px;
    }

    .floorplan-modal-content {
        padding: 50px 20px 30px;
    }

    .floorplan-modal-title {
        font-size: 24px;
        line-height: 32px;
        margin-bottom: 30px;
    }

    .floorplan-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .floorplan-label {
        font-size: 18px;
        margin-bottom: 15px;
    }
}

/* Tablet styles for floor plan modal */
@media only screen and (min-width: 768px) and (max-width: 1023px) {
    .floorplan-modal-content {
        max-width: 900px;
        padding: 50px 30px 35px;
    }

    .floorplan-grid {
        gap: 30px;
    }
}