    /* Custom focus ring color to match the theme */
    .focus\:ring-custom:focus {
        --tw-ring-color: var(--theme-primary);
    }
    
    .gallery {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
        gap: 20px;
    }
    .gallery img {
        width: 100%;
        height: auto;
        cursor: pointer;
    }
    
    .modal {
        display: none;
        position: fixed;
        z-index: 1000;
        inset: 0;
        width: 100vw;
        height: 100vh;
        height: 100dvh;
        overflow: hidden;
        background: rgba(6, 8, 15, 0.94);
        backdrop-filter: blur(14px);
        align-items: stretch;
        justify-content: center;
    }

    body.modal-open {
        overflow: hidden;
    }
    
    .modal-content {
        position: relative;
        margin: 0;
        padding: clamp(0.75rem, 2vw, 1.25rem);
        background: linear-gradient(180deg, #090b12 0%, #050507 100%);
        height: 100%;
        width: 100%;
        max-width: none;
        text-align: center;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 1rem;
        overflow: hidden;
    }

    .modal-toolbar {
        position: absolute;
        top: clamp(0.75rem, 2vw, 1.25rem);
        right: clamp(0.75rem, 2vw, 1.25rem);
        z-index: 3;
        display: flex;
        gap: 0.5rem;
    }

    .modal-icon-button {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 2.75rem;
        height: 2.75rem;
        border: 1px solid rgba(255, 255, 255, 0.18);
        border-radius: 9999px;
        background: rgba(255, 255, 255, 0.12);
        color: #fff;
        cursor: pointer;
        transition: background-color 0.2s ease, transform 0.2s ease;
    }

    .modal-icon-button svg {
        width: 1.25rem;
        height: 1.25rem;
    }

    .modal-icon-button:hover {
        background: rgba(255, 255, 255, 0.22);
        transform: translateY(-1px);
    }
    
    .carousel-image {
        width: 100%;
        height: min(78vh, calc(100dvh - 8.5rem));
        max-height: calc(100dvh - 8.5rem);
        object-fit: contain;
        background-color: #020203;
        border-radius: 0.75rem;
        user-select: none;
        -webkit-user-drag: none;
        touch-action: pan-y;
    }
    
    .carousel-controls {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: min(100%, 64rem);
        gap: 0.75rem;
        padding: 0.75rem;
        border: 1px solid rgba(255, 255, 255, 0.12);
        border-radius: 1rem;
        background: rgba(255, 255, 255, 0.08);
    }
    
    .carousel-button {
        flex: 0 0 auto;
        background-color: rgba(255, 255, 255, 0.14);
        color: #fff;
        border: 1px solid rgba(255, 255, 255, 0.16);
        padding: 0.75rem;
        border-radius: 9999px;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.5rem;
        transition: background-color 0.3s ease, transform 0.2s ease;
        box-shadow: var(--theme-shadow-medium);
    }
    
    .carousel-button:hover {
        background-color: rgba(255, 255, 255, 0.24);
        transform: scale(1.05);
    }
    
    .carousel-button:active {
        transform: scale(0.95);
    }
    
    .mini-image-carousel-container {
        flex-grow: 1; /* Allows the container to take available space */
        overflow-x: auto; /* Enable horizontal scrolling */
        white-space: nowrap; /* Prevent wrapping of mini-images */
        padding: 0.5rem 0; /* Add some padding for better aesthetics */
        -webkit-overflow-scrolling: touch; /* Smooth scrolling on iOS */
        scrollbar-width: none; /* Hide scrollbar for Firefox */
        -ms-overflow-style: none;  /* Hide scrollbar for IE and Edge */
    }
    
    /* Hide scrollbar for Chrome, Safari and Opera */
    .mini-image-carousel-container::-webkit-scrollbar {
        display: none;
    }
    
    .mini-image-carousel {
        display: flex;
        gap: 0.5rem; /* Space between mini-images */
        align-items: center;
    }
    
    .mini-image-wrapper {
        flex-shrink: 0; /* Prevent mini-images from shrinking */
        width: 4rem; /* Fixed width for mini-images */
        height: 4rem; /* Fixed height for mini-images */
        overflow: hidden;
        border-radius: 0.5rem;
        border: 2px solid transparent; /* Default border */
        transition: border-color 0.3s ease, transform 0.2s ease;
        cursor: pointer;
    }
    
    .mini-image-wrapper.active {
        border-color: var(--theme-secondary-strong);
        transform: scale(1.05);
    }
    
    .mini-carousel-image {
        width: 100%;
        height: 100%;
        object-fit: cover; /* Cover the wrapper area */
        border-radius: 0.5rem;
    }
    
    .description-content h2 {
        font-size: 1.5rem;
        font-weight: 700;
        margin-top: 1.5rem;
        margin-bottom: 0.5rem;
    }

    .description-content h3 {
        font-size: 1.25rem;
        font-weight: 600;
        margin-top: 1.25rem;
        margin-bottom: 0.5rem;
    }

    .description-content ul {
        list-style-type: disc;
        padding-left: 1.5rem;
        margin-bottom: 1rem;
    }

    .description-content li {
        margin-bottom: 0.25rem;
    }

    .description-content hr {
        border: 0;
        border-top: 1px solid #e5e7eb;
        margin: 2rem 0;
    }
    
    .description-container {
        margin-bottom: 1.5rem;
        }
        
    .description-content {
        overflow: hidden;
        line-height: 1.6;
        max-height: 8em; /* ≈ 3 lines */
        transition: max-height 0.3s ease;
    }
    
    .description-content.expanded {
        max-height: none;
    }
    
    .toggle-btn {
        background: none;
        border: none;
        color: var(--theme-primary);
        cursor: pointer;
        font-size: 0.95rem;
        margin-top: 8px;
        padding: 0;
        text-decoration: underline;
    }
    
    .toggle-btn:hover {
        color: var(--theme-link-hover);
    }
    

    .main-container{
        display:flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        width:100%;
        height:100%;
        padding-bottom: 3rem;
    }

    .title-container{
       display: flex;
        flex-direction: column;
        justify-content:flex-end;
        width: 100%;
        padding:1rem 0.2rem; 
    }

    .title{
        font-size: 2rem;
        font-weight:bold;
    }

    .sub-title{
        font-size: 1.5rem;
        font-weight:900;
    }

    .address-container{
        display: flex; 
        margin-top:0.2rem; 
        flex-direction:row;
    }

    .location-img{
        height:20px; 
        width:20px; 
        margin-right:0.2rem 
    }

    .below-title{
        display:flex;
        flex-direction: column; 
        align-items: center; 
        justify-content: center;
        border-radius: 0.125rem;
    }

    .left-picture{
        display:flex;
        height:550px;
        width:100%;
        flex-direction: row;
    }

    .room-img-container{
        width:73%;
        padding:0.5rem 0rem 0.5rem 0rem;
    }

    .room-img{
        width:100%;
        height:100%;
        border-radius: 10px;
    }

    .right-sidebar{
        display:flex;
        flex-direction: column;
        width:27%;
        height:100%;
        margin: 0.3rem;
        padding-bottom: 0.5rem;
    }

    .map-container{
        display:flex;
        flex:3;
        align-items:center;
        justify-content:center;
        height:100%;
        width:100%;
        margin:0.25rem;
        border-radius: 1.5%;
        border: solid var(--theme-border-strong) 1px;
    }

    .book-form{
        display:flex; flex-direction:column; width:100%; height:100%; align-items:center; justify-content:center; padding: 0rem 1rem;       
    }

    .time-input{
        display: flex; border: solid var(--theme-input-border) 1px; padding: 0.2rem; border-radius: 0.125rem; margin: 0.25rem; width: 85%;        
    }

    .time-container{
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
    }


    .btn-submit{
        display:flex;
        width:100%;
        align-items:center;
        justify-content:center;
        padding:0.5rem 2rem;
        background-color:var(--theme-primary);
        color:var(--theme-surface);
        margin-top: 0.75rem;
    }
    .btn-submit:hover{
        opacity: 0.7;
    }

    .calendar-img{
        height: 25px;
        width: 25px;
    }

    .reviews{
        display:flex;
        flex:4;
        align-items:center;
        justify-content:center;
        height:100%;
        width:100%;
        margin:0.25rem;
        border-radius: 1.5%;
        background-color: var(--theme-primary-soft);
    }

    .map{
        display:flex;
        flex:3;
        align-items:center;
        justify-content:center;
        height:100%;
        width:100%;
        margin:0.25rem;
        border-radius: 1.5%;
        background-color: var(--theme-tertiary-soft);
    }

    .content-container{

    }

    h2{
        font-size:1.3rem;
        font-weight:bold;
        padding-top:1rem;
        padding-bottom:0.5rem;
    }

    h3{
        font-size:1rem;
        font-weight:900;
        padding-top:1rem;
        padding-bottom:0.5rem;
    }

    .pargraph{
        
    }

    .facilities{
        display: flex;
        width: 100%;
        padding: 1rem 0rem;
        flex-direction: column;
    }

    .facilitiesDisplay{
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 10px;
        margin: 0.7rem 0rem;
    }

    .facility{
        display: flex; padding:1rem; align-items:center; justify-content:center; color: #444; border: solid var(--theme-input-border) 1px; border-radius: 0.5rem;
    }

    .grid-container{
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .grid-container > div:nth-child(n+7) {
        display: none;
    }
    
    .grid-container-rental{
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    .grid-container-rental > div:nth-child(n+9) {
        display: none;
    }
    
    .description-container {
        margin-bottom: 1.5rem;
        }
        
    .description-content {
        overflow: hidden;
        line-height: 1.6;
        max-height: 8em; /* ≈ 3 lines */
        transition: max-height 0.3s ease;
    }
    
    .description-content.expanded {
        max-height: none;
    }
    
    .toggle-btn {
            background: none;
            border: none;
            color: var(--theme-primary);
            cursor: pointer;
            font-size: 0.95rem;
            margin-top: 8px;
            padding: 0;
            text-decoration: underline;
    }
        
    .toggle-btn:hover {
        color: var(--theme-link-hover);
    }   

    /* Responsive adjustments */
    @media (max-width: 768px) {
        
        .modal-content {
            width: 100%;
        }
        .carousel-controls {
            width: 100%;
            border-radius: 0.75rem;
        }
        .mini-image-wrapper {
            width: 3.5rem;
            height: 3.5rem;
        }
        
        .gallery{
            max-height:200px;
        }
        
        .grid-container{
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
        }
        .grid-container > div:nth-child(n+7) {
            display: none;
        }   
        
        .grid-container-rental{
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
        }
        .grid-container-rental > div:nth-child(n+9) {
            display: none;
        }
    }

    @media (max-width: 480px) {
        
        .mini-image-wrapper {
            width: 3rem;
            height: 3rem;
        }
        .carousel-button {
            padding: 0.5rem;
            font-size: 1.2rem;
        }
        
        .gallery{
            max-height:130px;
        }
        
        .grid-container{
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }
        .grid-container > div:nth-child(n+5) {
            display: none;
        }
    }
