/* mieszkania.css */

.m-container{
    max-width:1400px;
    margin:auto;
    width:100%;
}

/* HERO */

.m-hero{
    min-height:100vh;

    position:relative;

    background:
    url('/static/website/images/hero2.jpg');

    background-size:cover;
    background-position:center;

    display:flex;
    align-items:center;

    padding:180px 40px 120px;
}

.m-hero-overlay{
    position:absolute;
    inset:0;

    background:
    linear-gradient(
    rgba(15,23,42,.55),
    rgba(15,23,42,.82));
}

.m-hero .m-container{
    position:relative;
    z-index:2;
}

.m-badge{
    display:inline-block;

    padding:12px 20px;

    border-radius:999px;

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

    border:1px solid rgba(255,255,255,.14);

    backdrop-filter:blur(20px);

    color:white;

    letter-spacing:2px;
    font-size:13px;
    font-weight:700;
}

.m-hero h1{
    margin:32px 0;

    max-width:900px;

    font-size:clamp(42px, 7vw, 68px);
    line-height:.95;

    color:white;

    font-family:'Manrope',sans-serif;
}

.m-hero p{
    max-width:700px;

    color:rgba(255,255,255,.76);

    font-size:20px;
    line-height:1.9;
}

/* FEATURED */

.featured-apartment{
    padding:120px 40px;
}

.featured-grid{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:50px;
    align-items:center;
}

.featured-image{
    position:relative;

    height:780px;

    overflow:hidden;

    border-radius:40px;
}

.featured-image img{
    width:100%;
    height:100%;

    object-fit:cover;
}

.featured-image-overlay{
    position:absolute;
    inset:0;

    background:
    linear-gradient(
    to top,
    rgba(15,23,42,.72),
    transparent);
}

.featured-floating{
    position:absolute;

    left:40px;
    bottom:40px;
}

.featured-floating span{
    color:rgba(255,255,255,.7);

    letter-spacing:2px;
    font-size:13px;
}

.featured-floating h3{
    margin-top:14px;

    font-size:58px;

    color:white;

    font-family:'Manrope',sans-serif;
}

.featured-content{
    padding:70px;

    border-radius:40px;

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

    border:1px solid rgba(255,255,255,.7);

    backdrop-filter:blur(24px);

    box-shadow:0 20px 60px rgba(15,23,42,.06);
}

.content-badge{
    color:var(--gold);

    letter-spacing:2px;
    font-size:13px;
    font-weight:700;
}

.featured-content h2{
    margin:24px 0;

    font-size:68px;
    line-height:1;

    color:var(--navy);

    font-family:'Manrope',sans-serif;
}

.featured-content p{
    color:#64748b;

    font-size:18px;
    line-height:1.9;
}

.featured-details{
    display:flex;
    gap:50px;

    margin:45px 0;
}

.featured-details span{
    color:#64748b;
    font-size:14px;
}

.featured-details h4{
    margin-top:10px;

    font-size:28px;

    color:var(--navy);
}

.featured-price{
    margin-bottom:40px;
}

.featured-price span{
    color:#64748b;
}

.featured-price h3{
    margin-top:12px;

    font-size:54px;

    color:var(--navy);
}

.featured-buttons{
    display:flex;
    gap:18px;
}

.btn-dark{
    background:var(--navy);
    color:white;
}

.glass-btn{
    padding:18px 30px;

    border-radius:18px;

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

    border:1px solid rgba(255,255,255,.9);

    color:var(--navy);

    font-weight:600;
}

/* FLOORPLAN */

.floorplan-section{
    padding:0 40px 120px;
}

.floorplan-card{
    display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:60px;

    align-items:center;

    padding:80px;

    border-radius:40px;

    background:white;

    box-shadow:0 20px 60px rgba(15,23,42,.06);
}

.floorplan-left span{
    color:var(--gold);

    letter-spacing:2px;
    font-size:13px;
    font-weight:700;
}

.floorplan-left h2{
    margin:24px 0;

    font-size:64px;
    line-height:1.05;

    color:var(--navy);

    font-family:'Manrope',sans-serif;
}

.floorplan-left p{
    color:#64748b;

    font-size:18px;
    line-height:1.9;
}

.floorplan-right img{
    width:100%;
}

/* GALLERY */

.gallery-section{
    padding:0 0 120px;

    overflow:hidden;
}

.gallery-track{
    display:flex;
    gap:30px;

    padding:0 40px;

    overflow-x:auto;
}

.gallery-item{
    min-width:700px;

    border-radius:36px;

    overflow:hidden;
}

.gallery-item img{
    width:100%;
    height:520px;

    object-fit:cover;
}

/* LOCATION */

.location-strip{
    padding:0 40px 120px;
}

.location-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);

    gap:30px;
}

.location-grid div{
    padding:40px;

    border-radius:30px;

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

    border:1px solid rgba(255,255,255,.7);

    backdrop-filter:blur(24px);

    text-align:center;
}

.location-grid h3{
    font-size:48px;

    color:var(--gold);

    margin-bottom:12px;
}

.location-grid span{
    color:#64748b;
}

/* CTA */

.m-cta{
    padding:0 40px 120px;
}

.m-cta-card{
    text-align:center;

    padding:100px 60px;

    border-radius:40px;

    background:
    linear-gradient(
    135deg,
    rgba(15,23,42,.98),
    rgba(30,41,59,.94));

    color:white;
}

.m-cta-card span{
    color:var(--gold);

    letter-spacing:2px;
    font-size:13px;
    font-weight:700;
}

.m-cta-card h2{
    margin:24px 0;

    font-size:64px;

    font-family:'Manrope',sans-serif;
}

.m-cta-card p{
    max-width:700px;

    margin:auto auto 40px;

    color:rgba(255,255,255,.74);

    line-height:1.9;
}

/* MOBILE */

@media(max-width:1100px){

    .featured-grid,
    .floorplan-card,
    .location-grid{
        grid-template-columns:1fr;
    }

    .featured-image{
        height:520px;
    }

}

@media(max-width:900px){

    .m-hero,
    .featured-apartment,
    .floorplan-section,
    .location-strip,
    .m-cta{
        padding-left:20px;
        padding-right:20px;
    }

    .m-hero{
        padding-top:160px;
    }

    .m-hero h1{
        font-size:52px;
    }

    .featured-content,
    .floorplan-card{
        padding:40px 30px;
    }

    .featured-content h2,
    .floorplan-left h2,
    .m-cta-card h2{
        font-size:40px;
    }

    .featured-floating h3{
        font-size:34px;
    }

    .featured-details,
    .featured-buttons{
        flex-direction:column;
    }

    .gallery-item{
        min-width:90%;
    }

    .gallery-item img{
        height:360px;
    }

    .m-cta-card{
        padding:70px 30px;
    }

}

/* INTERACTIVE MAP */
.modal-status{
    display:inline-flex;

    padding:14px 20px;

    border-radius:999px;

    background:#f1f5f9;

    color:#0f172a;

    font-weight:700;
}

.modal-status.available{
    background:#dcfce7;
    color:#166534;
}

.modal-status.reserved{
    background:#fff7ed;
    color:#92400e;
}

.modal-buttons{
    display:flex;
    gap:18px;

    margin-top:40px;
}

.modal-btn{
    flex:1;

    padding:20px;

    border:none;

    border-radius:20px;

    cursor:pointer;

    font-weight:700;

    transition:.3s;
}

.dark-btn{
    background:var(--navy);
    color:white;
}

.glass-btn{
    background:#f8fafc;
    color:var(--navy);
}

.dark-btn:hover,
.glass-btn:hover{
    transform:translateY(-4px);
}

/* INTERACTIVE MAP */

.interactive-map-section{
    padding:140px 40px;
}

.map-top{
    text-align:center;
    margin-bottom:80px;
}

.map-badge{
    color:var(--gold);

    font-size:13px;
    font-weight:700;
    letter-spacing:2px;
}

.map-top h2{
    margin:22px 0;

    font-size:clamp(32px, 7vw, 68px);

    color:var(--navy);

    font-family:'Manrope',sans-serif;
}

.map-top p{
    color:#64748b;

    font-size:18px;
}

.map-layout{
    max-width:1500px;
    margin:auto;

    display:grid;
    grid-template-columns:320px 1fr;
    gap:40px;

    align-items:start;
}

.glass-card-small{
    background:rgba(255,255,255,.55);

    border:1px solid rgba(255,255,255,.7);

    backdrop-filter:blur(24px);

    box-shadow:0 20px 60px rgba(15,23,42,.06);

    border-radius:36px;
}

.map-sidebar{
    padding:40px;

    position:sticky;
    top:140px;
}

.sidebar-label{
    color:var(--gold);

    font-size:13px;
    letter-spacing:2px;
    font-weight:700;
}

.floor-selector{
    display:flex;
    gap:12px;

    margin:28px 0 40px;
}

.floor-btn{
    width:52px;
    height:52px;

    border:none;

    border-radius:18px;

    background:white;

    cursor:pointer;

    font-weight:700;

    transition:.3s;
}

.floor-btn.active,
.floor-btn:hover{
    background:var(--gold);
    color:white;
}

.sidebar-info h3{
    font-size:34px;

    line-height:1.15;

    margin-bottom:24px;

    color:var(--navy);

    font-family:'Manrope',sans-serif;
}

.sidebar-info p{
    color:#64748b;

    line-height:1.9;
}

.map-wrapper{
    position:relative;

    padding:40px;

    min-height:900px;

    display:flex;
    align-items:center;
    justify-content:center;
}

.building-map{
    width:100%;
    height:auto;

    object-fit:contain;

    display:block;
}

.apartment-hotspot{
    position:absolute;

    padding:18px 26px;

    border:1px solid black;

    border-radius:20px;

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

    backdrop-filter:blur(20px);

    box-shadow:0 15px 40px rgba(15,23,42,.08);

    color:var(--navy);

    font-weight:700;

    cursor:pointer;

    transition:.35s;
}

.apartment-hotspot:hover{
    transform:translateY(-6px) scale(1.03);

    background:var(--gold);

    color:white;
}

/* MODAL */

.apartment-modal{
    overflow-y: auto;
    position:fixed;
    inset:0;

    z-index:999999;

    opacity:0;
    visibility:hidden;

    transition:.35s;
}

.apartment-modal.active{
    opacity:1;
    visibility:visible;
}

.modal-overlay{
    min-height:200vh;
    position:absolute;
    inset:0;

    background:rgba(15,23,42,.65);

    backdrop-filter:blur(12px);
}

.modal-content{
    position:relative;

    max-width:1400px;

    margin:50px auto;

    background:white;

    border-radius:40px;

    overflow:hidden;

    z-index:2;
}

.modal-close{
    position:absolute;

    top:30px;
    right:30px;

    width:52px;
    height:52px;

    border:none;

    border-radius:18px;

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

    cursor:pointer;

    font-size:20px;

    z-index:5;
}

.modal-grid{
    display:grid;
    grid-template-columns:1fr .9fr;
}

.modal-image img{
    width:100%;
    height:100%;

    object-fit:cover;
}

.modal-info{
    padding:70px;
}

.modal-badge{
    color:var(--gold);

    font-size:13px;
    letter-spacing:2px;
    font-weight:700;
}

.modal-info h2{
    margin:24px 0 40px;

    font-size:82px;

    color:var(--navy);

    line-height:.95;

    font-family:'Manrope',sans-serif;
}

.modal-specs{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}

.modal-details{
    margin: 24px 0 40px;

    padding:24px;

    border-radius:24px;

    background:#f8fafc;
}

.modal-details span{
    color:#64748b;
    font-size:14px;
}

.modal-details h4{
    margin-top:10px;

    font-weight: 500;

    text-align: justify;

    font-size:16px;

    color:var(--navy);
}

.modal-item{
    padding:24px;

    border-radius:24px;

    background:#f8fafc;
}

.modal-item span{
    color:#64748b;
    font-size:14px;
}

.modal-item h4{
    margin-top:10px;

    font-size:24px;

    color:var(--navy);
}

.modal-price-box{
    margin:40px 0;

    padding:34px;

    border-radius:30px;

    background:
    linear-gradient(
    135deg,
    rgba(15,23,42,.98),
    rgba(30,41,59,.94));

    color:white;
}

.modal-price-box span{
    color:rgba(255,255,255,.62);
}

.modal-price-box h3{
    margin-top:12px;

    font-size:52px;
}



/* MOBILE APARTMENTS */

.mobile-apartments{
    display:none;
}

@media(max-width:900px){

    .mobile-apartments{
        display:block;
        margin-top:40px;
    }

    .mobile-floor-buttons{
        display:flex;
        gap:12px;
        margin-bottom:24px;
    }

    .mobile-floor-btn{
        flex:1;

        height:54px;

        border:none;
        border-radius:18px;

        background:white;

        font-weight:700;

        cursor:pointer;
    }

    .mobile-floor-btn.active{
        background:var(--gold);
        color:white;
    }

    .mobile-apartments-list{
        display:flex;
        flex-direction:column;
        gap:18px;
    }

    .mobile-apartment-card{
        padding:22px;

        border-radius:24px;

        background:white;

        box-shadow:0 10px 30px rgba(15,23,42,.08);
    }

    .mobile-apartment-card h3{
        font-size:26px;
        color:var(--navy);
        margin-bottom:12px;
    }

    .mobile-apartment-card p{
        color:#64748b;
        margin-bottom:8px;
    }

    .mobile-apartment-card .modal-status{
        display:inline-flex;
        margin-bottom:14px;
    }

    .mobile-apartment-card button{
        width:100%;

        margin-top:18px;

        border:none;

        height:54px;

        border-radius:18px;

        background:var(--navy);

        color:white;

        font-weight:700;

        cursor:pointer;
    }

}

/* DESKTOP / MOBILE SWITCH */

.mobile-map-section{
    display:none;
}

@media(max-width:900px){

    .desktop-map-section{
        display:none;
    }

    .mobile-map-section{
        display:block;
        padding:40px 20px 100px;
    }

}

.mobile-apartment-image{
    width:100%;
    height:220px;

    object-fit:cover;

    border-radius:18px;

    margin-bottom:18px;
}

/* RESPONSIVE MODAL */

@media(max-width:1300px){

    .apartment-modal{
        overflow-y:auto;
        padding:20px;
    }

    .modal-content{
        width:100%;
        max-width:1000px;

        margin:40px auto;
    }

    .modal-grid{
        grid-template-columns:1fr;
    }

    .modal-image img{
        width:100%;
        height:420px;

        object-fit:cover;
    }

    .modal-info{
        padding:40px;
    }

    .modal-info h2{
        font-size:54px;
    }

}

@media(max-width:700px){

    .modal-image img{
        height:260px;
    }

    .modal-info{
        padding:28px 22px;
    }

    .modal-info h2{
        font-size:40px;
    }

    .modal-specs{
        grid-template-columns:1fr;
    }

    .modal-price-box h3{
        font-size:34px;
    }

    .modal-buttons{
        flex-direction:column;
    }

}