/* =====================================================
   PROPERTY DETAIL
===================================================== */

#property-detail {

    max-width: 1300px;
    margin: 50px auto;
    padding: 0 20px;

}

/* =====================================================
   HEADER
===================================================== */

.property-header {

    display: flex;
    justify-content: space-between;
    align-items: flex-start;

    gap: 30px;

    margin-bottom: 40px;

    padding-bottom: 25px;

    border-bottom: 1px solid #ddd;

}

.property-code {

    display: inline-block;

    font-size: 14px;

    color: #777;

    margin-bottom: 10px;

}

.property-header h1 {

    font-size: 38px;

    color: #222;

    margin-bottom: 10px;

}

.location {

    color: #666;

    font-size: 18px;

}

.property-price {

    background: #b00000;

    color: white;

    padding: 20px 30px;

    font-size: 34px;

    font-weight: bold;

    white-space: nowrap;

}


/* =====================================================
   GALLERY
===================================================== */

.gallery {

    margin-bottom: 50px;

}

.gallery-main {
    overflow-x: scroll;
    scroll-snap-type: x mandatory;
    height: 300px;
    display: flex;
    gap: 1.5vw;
}

.gallery-image {
    cursor: pointer;
}

.main-image {

    margin-bottom: 15px;

}

.main-image img {

    width: 100%;

    height: 650px;

    object-fit: cover;

    border: 1px solid #ddd;

}

.thumbnail-gallery {

    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 15px;

}

.thumbnail-gallery img {

    width: 100%;

    height: 140px;

    object-fit: cover;

    border: 1px solid #ddd;

    cursor: pointer;

    transition: .25s;

}

.thumbnail-gallery img:hover {

    opacity: .75;

}

/* Popup Styling */
.img-popup {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(0, 0, 0, .5);
    display: flex;
    justify-content: center;
    align-items: center;
    display: none;
}

.img-popup img {
    max-width: 900px;
    width: 100%;
    opacity: 0;
    transform: translateY(-100px);
    -webkit-transform: translateY(-100px);
    -moz-transform: translateY(-100px);
    -ms-transform: translateY(-100px);
    -o-transform: translateY(-100px);
}

.close-btn {
    width: 35px;
    height: 30px;
    display: flex;
    justify-content: center;
    flex-direction: column;
    position: absolute;
    top: 20px;
    right: 20px;
    cursor: pointer;
}

.close-btn .bar {
    height: 4px;
    background: #333;
}

.close-btn .bar:nth-child(1) {
    transform: rotate(45deg);
}

.close-btn .bar:nth-child(2) {
    transform: translateY(-4px) rotate(-45deg);
}

.opened {
    display: flex;
}

.opened img {
    animation: animatepopup 1s ease-in-out .8s;
    -webkit-animation: animatepopup .3s ease-in-out forwards;
}

@keyframes animatepopup {
    to {
        opacity: 1;
        transform: translateY(0);
        -webkit-transform: translateY(0);
        -moz-transform: translateY(0);
        -ms-transform: translateY(0);
        -o-transform: translateY(0);
    }
}


/* =====================================================
   PROPERTY DATA
===================================================== */

.property-data {

    margin-bottom: 50px;

}

.features {

    display: flex;
    gap: 10px;
    margin: 0.5rem 0;

    /*grid-template-columns: repeat(4, 1fr);

    /*display: flex;

    flex-direction: row;
    flex-wrap: wrap;
    flex-grow: 4;
    flex-flow: row;
    justify-content: space-between;
    align-items: center;
    align-content: center;
    gap: 20px;
    */
}

.feature {

    border: 1px solid #ddd;

    padding: 20px;

    text-align: center;

    background: #fafafa;

    width: 100px;

    border-radius: 1rem;

}

.feature strong {

    display: block;

    color: #b00000;

    margin-bottom: 10px;

}

.feature span {

    font-size: 18px;

    color: #333;

}


/* =====================================================
   DESCRIPTION
===================================================== */

.description {

    margin-bottom: 50px;

}

.description h2 {

    color: #b00000;

    margin-bottom: 20px;

    font-size: 30px;

}

.description p {

    line-height: 1.8;

    color: #444;

    text-align: justify;

}


/* =====================================================
   CONTACT BOX
===================================================== */

.contact-box {

    border: 1px solid #ddd;

    background: #fafafa;

    padding: 35px;

    margin-bottom: 60px;

}

.contact-box h2 {

    color: #b00000;

    margin-bottom: 15px;

}

.contact-box p {

    margin-bottom: 25px;

    color: #555;

}

.contact-box a {

    display: inline-block;

    background: #25D366;

    color: white;

    padding: 15px 30px;

    text-decoration: none;

    font-weight: bold;

    border-radius: 4px;

    transition: .25s;

}

.contact-box a:hover {

    background: #1da851;

}


/* =====================================================
   RELATED PROPERTIES
===================================================== */

#related-properties {

    max-width: 1300px;

    margin: 80px auto;

    padding: 0 20px;

}

#related-properties h2 {

    text-align: center;

    color: #b00000;

    margin-bottom: 40px;

    font-size: 32px;

}

.properties-grid {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 30px;

}

.property-card {

    border: 1px solid #ddd;

    background: white;

    transition: .25s;

}

.property-card:hover {

    box-shadow: 0 8px 25px rgba(0, 0, 0, .15);

}

.property-card img {

    width: 100%;

    height: 220px;

    object-fit: cover;

}

.property-card h3 {

    padding: 20px 20px 10px;

    font-size: 22px;

}

.property-card p {

    padding: 0 20px;

    color: #b00000;

    font-weight: bold;

    font-size: 22px;

}

.property-card a {

    display: inline-block;

    margin: 20px;

    padding: 12px 24px;

    background: #b00000;

    color: white;

    text-decoration: none;

    font-weight: bold;

}

.property-card a:hover {

    background: #900000;

}

/* ==========================================
   MAPA
========================================== */

#mapa {

    max-width: 1300px;

    margin: 70px auto;

}

#mapa h2 {

    /*text-align: center;*/

    color: #b00000;

    margin-bottom: 10px;

    font-size: 30px;

}

#mapa p {

    /*text-align: center;*/

    color: #666;

    margin-bottom: 30px;

}

.map-container {

    overflow: hidden;

    border: 1px solid #ddd;

    box-shadow: 0 5px 15px rgba(0, 0, 0, .08);

    display: block;

    width: 100%;

    height: 450px;

}

gmp-map {
    height: 100%;
}


/* =====================================================
   RESPONSIVE
===================================================== */

@media screen and (max-width: 500px) {

    #property-detail {
        margin: auto;
    }

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

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

    .property-header {
        flex-direction: column;
    }

    .property-header h1 {
        font-size: 30px;
    }

    .property-price {

        font-size: 28px;

    }

    .main-image img {

        height: 300px;

    }

    .thumbnail-gallery img {
        height: 100px;
    }

}