/*==================================================
    VARIABLES
==================================================*/

:root{

    --primary:#C32026;

    --primary-dark:#9D1C22;

    --secondary:#5F5F5F;

    --background:#F8F8F8;

    --white:#FFFFFF;

    --text:#444444;

    --border:#E6E6E6;

    --shadow:
        0 12px 35px rgba(0,0,0,.08);

    --radius:10px;

}


/*==================================================
    RESET
==================================================*/

*{

    margin:0;

    padding:0;

    box-sizing:border-box;

}


html{

    scroll-behavior:smooth;

}


body{

    font-family:
        'Montserrat',
        sans-serif;

    background:
        var(--background);

    color:
        var(--text);

    overflow-x:hidden;

}


img{

    display:block;

    width:100%;

}


a{

    text-decoration:none;

    color:inherit;

}


ul{

    list-style:none;

}


/*==================================================
    CONTAINER
==================================================*/

.container{

    width:90%;

    max-width:1280px;

    margin:auto;

}


/*==================================================
    SECTIONS
==================================================*/

section{

    padding:
        110px 0;

}


.section-header{

    text-align:center;

    max-width:800px;

    margin:
        0 auto 70px;

}


.section-header span{

    color:
        var(--primary);

    font-size:
        .9rem;

    letter-spacing:
        4px;

    font-weight:
        700;

}


.section-header h2{

    margin-top:
        20px;

    font-size:
        3rem;

    color:
        #222;

    line-height:
        1.2;

}


.section-header p{

    margin-top:
        25px;

    line-height:
        1.9;

}


/*==================================================
    HERO
==================================================*/

.hero{

    min-height:
        100vh;

    display:
        flex;

    align-items:
        center;

    background:
        linear-gradient(
            135deg,
            #FAFAFA,
            #F3F3F3
        );

    position:
        relative;

    overflow:
        hidden;

}


.hero::before{

    content:"";

    position:absolute;

    width:
        650px;

    height:
        650px;

    background:
        rgba(195,32,38,.05);

    border-radius:
        50%;

    right:
        -250px;

    top:
        -200px;

}


.hero .container{

    display:
        grid;

    grid-template-columns:
        1.2fr .8fr;

    gap:
        80px;

    align-items:
        center;

    position:
        relative;

    z-index:
        2;

}


.hero-content span{

    color:
        var(--primary);

    font-weight:
        700;

    letter-spacing:
        4px;

    font-size:
        .9rem;

}


.hero-content h1{

    font-size:
        4.5rem;

    margin:
        25px 0;

    color:
        #222;

    line-height:
        1.1;

}


.hero-content p{

    line-height:
        2;

    margin-bottom:
        40px;

    max-width:
        600px;

}


.hero-buttons{

    display:
        flex;

    gap:
        20px;

    flex-wrap:
        wrap;

}


.hero-image{

    display:
        block;

}


.hero-image img{

    width:
        100%;

    max-width:
        520px;

    border-radius:
        var(--radius);

    box-shadow:
        var(--shadow);

}


/*==================================================
    BUTTONS
==================================================*/

.btn{

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    padding:
        18px 36px;

    background:
        var(--primary);

    color:
        white;

    border-radius:
        var(--radius);

    transition:
        .35s;

    font-weight:
        600;

    border:
        none;

    cursor:
        pointer;

    font-family:
        inherit;

}


.btn:hover{

    background:
        var(--primary-dark);

    transform:
        translateY(-3px);

}


.btn-outline{

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    padding:
        18px 36px;

    border:
        2px solid var(--primary);

    color:
        var(--primary);

    border-radius:
        var(--radius);

    transition:
        .35s;

    font-weight:
        600;

}


.btn-outline:hover{

    background:
        var(--primary);

    color:
        white;

}


/*==================================================
    ABOUT
==================================================*/

.about{

    background:
        white;

}


.about-content{

    display:
        grid;

    grid-template-columns:
        1.3fr .7fr;

    gap:
        70px;

    align-items:
        center;

}


.about-text{

    display:
        flex;

    flex-direction:
        column;

    gap:
        25px;

}


.about-text p{

    line-height:
        2;

    color:
        #444;

}


.about-image img{

    border-radius:
        var(--radius);

    box-shadow:
        var(--shadow);

}


/*==================================================
    BENEFITS
==================================================*/

.benefits{

    background:
        #F8F8F8;

}


.benefits-grid{

    display:
        grid;

    grid-template-columns:
        repeat(4,1fr);

    gap:
        30px;

}


.benefit-card{

    background:
        white;

    padding:
        40px 30px;

    border-radius:
        var(--radius);

    text-align:
        center;

    transition:
        .35s;

    box-shadow:
        var(--shadow);

}


.benefit-card:hover{

    transform:
        translateY(-8px);

}


.benefit-icon{

    width:
        70px;

    height:
        70px;

    margin:
        auto auto 25px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        50%;

    background:
        rgba(195,32,38,.08);

    color:
        var(--primary);

    font-size:
        1.8rem;

}


.benefit-card h3{

    margin-bottom:
        15px;

    color:
        #222;

}


.benefit-card p{

    line-height:
        1.8;

}


/*==================================================
    GALLERY
==================================================*/

.gallery{

    background:
        white;

}


.gallery-grid{

    display:
        grid;

    grid-template-columns:
        repeat(3,1fr);

    gap:
        25px;

}


.gallery-item{

    overflow:
        hidden;

    border-radius:
        var(--radius);

    box-shadow:
        var(--shadow);

    cursor:
        pointer;

}


.gallery-item img{

    width:
        100%;

    height:
        280px;

    object-fit:
        cover;

    transition:
        .4s;

}


.gallery-item:hover img{

    transform:
        scale(1.08);

}


/*==================================================
    DEPARTAMENTOS
==================================================*/

.spaces{

    background:
        #F8F8F8;

    padding:
        100px 0;

}


.spaces .section-header{

    margin-bottom:
        55px;

}


.spaces .section-header p{

    max-width:
        600px;

    margin:
        15px auto 0;

    color:
        #666;

    font-size:
        14px;

    line-height:
        1.7;

}


/*==================================================
    GRID DE DEPARTAMENTOS
==================================================*/

.spaces-grid{

    display:
        grid;

    grid-template-columns:
        minmax(280px, 560px);

    justify-content:
        center;

    gap:
        30px;

}


/*==================================================
    TARJETA DE DEPARTAMENTO
==================================================*/

.space-card{

    position:
        relative;

    display:
        flex;

    flex-direction:
        column;

    background:
        #FFFFFF;

    border:
        1px solid #E5E5E5;

    padding:
        35px;

    border-radius:
        var(--radius);

    box-shadow:
        var(--shadow);

    transition:
        transform .3s ease,
        box-shadow .3s ease,
        border-color .3s ease;

}


.space-card:hover{

    transform:
        translateY(-5px);

    box-shadow:
        0 15px 35px rgba(0,0,0,.10);

    border-color:
        #C32026;

}


/*==================================================
    ICONO
==================================================*/

.space-icon{

    width:
        55px;

    height:
        55px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    margin-bottom:
        22px;

    border:
        1px solid #C32026;

    color:
        #C32026;

    font-size:
        20px;

}


/*==================================================
    ESTADO
==================================================*/

.space-status{

    display:
        inline-flex;

    align-items:
        center;

    gap:
        8px;

    align-self:
        flex-start;

    margin-bottom:
        12px;

    color:
        #C32026;

    font-size:
        10px;

    font-weight:
        700;

    letter-spacing:
        1.5px;

    text-transform:
        uppercase;

}


.space-status span{

    width:
        7px;

    height:
        7px;

    border-radius:
        50%;

    background:
        #C32026;

}


/*==================================================
    NOMBRE
==================================================*/

.space-card h3{

    margin:
        0 0 12px;

    color:
        #333333;

    font-size:
        25px;

    font-weight:
        600;

    line-height:
        1.2;

}


/*==================================================
    PRECIO
==================================================*/

.space-price{

    margin-bottom:
        25px;

    color:
        #C32026;

    font-size:
        24px;

    font-weight:
        700;

    line-height:
        1.2;

}


/*==================================================
    DETALLES
==================================================*/

.space-details{

    display:
        grid;

    grid-template-columns:
        repeat(2,1fr);

    gap:
        12px;

    padding:
        20px 0;

    margin-bottom:
        25px;

    border-top:
        1px solid #E5E5E5;

    border-bottom:
        1px solid #E5E5E5;

}


.space-details span{

    display:
        flex;

    align-items:
        center;

    gap:
        8px;

    color:
        #555555;

    font-size:
        11px;

    line-height:
        1.4;

}


.space-details i{

    color:
        #C32026;

    font-size:
        14px;

    width:
        17px;

    text-align:
        center;

}


/*==================================================
    BOTÓN DE DEPARTAMENTO
==================================================*/

.space-card .btn{

    margin-top:
        auto;

    width:
        100%;

    text-align:
        center;

}


/*==================================================
    CONTACTO
==================================================*/

.contact{

    background:
        linear-gradient(
            135deg,
            #ffffff,
            #f5f5f5
        );

}


.contact-content{

    max-width:
        850px;

    margin:
        auto;

    text-align:
        center;

}


.contact-content span{

    color:
        var(--primary);

    font-weight:
        700;

    letter-spacing:
        4px;

}


.contact-content h2{

    margin:
        25px 0;

    font-size:
        3rem;

    color:
        #222;

    line-height:
        1.2;

}


.contact-content p{

    line-height:
        2;

    margin-bottom:
        45px;

}


/*==================================================
    MODAL
==================================================*/

.modal{

    position:
        fixed;

    inset:
        0;

    background:
        rgba(0,0,0,.65);

    display:
        flex;

    justify-content:
        center;

    align-items:
        center;

    opacity:
        0;

    visibility:
        hidden;

    transition:
        .35s;

    z-index:
        9999;

    padding:
        20px;

}


.modal.active{

    opacity:
        1;

    visibility:
        visible;

}


.modal-content{

    width:
        90%;

    max-width:
        700px;

    max-height:
        90vh;

    overflow-y:
        auto;

    background:
        white;

    border-radius:
        var(--radius);

    padding:
        45px;

    position:
        relative;

    box-shadow:
        0 30px 60px rgba(0,0,0,.25);

}


.close-modal{

    position:
        absolute;

    top:
        18px;

    right:
        22px;

    font-size:
        2rem;

    cursor:
        pointer;

    color:
        #888;

    z-index:
        2;

}


.close-modal:hover{

    color:
        #222;

}


/*==================================================
    ENCABEZADO DEL MODAL
==================================================*/

.modal-header{

    margin-bottom:
        30px;

}


.modal-eyebrow{

    display:
        block;

    margin-bottom:
        12px;

    color:
        var(--primary);

    font-size:
        .75rem;

    font-weight:
        700;

    letter-spacing:
        3px;

}


.modal-content h2{

    margin-bottom:
        12px;

    color:
        #222;

    font-size:
        2rem;

    line-height:
        1.25;

}


.modal-header p{

    color:
        #666;

    line-height:
        1.7;

}


/*==================================================
    RESUMEN DEL PROYECTO
==================================================*/

.project-summary{

    display:
        grid;

    grid-template-columns:
        repeat(3,1fr);

    gap:
        12px;

    margin-bottom:
        30px;

}


.summary-item{

    display:
        flex;

    align-items:
        center;

    gap:
        12px;

    padding:
        15px;

    background:
        #F8F8F8;

    border:
        1px solid #EAEAEA;

    border-radius:
        8px;

}


.summary-icon{

    width:
        38px;

    height:
        38px;

    flex-shrink:
        0;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        50%;

    background:
        rgba(195,32,38,.08);

    color:
        var(--primary);

}


.summary-item span{

    display:
        block;

    margin-bottom:
        4px;

    color:
        #888;

    font-size:
        8px;

    font-weight:
        700;

    letter-spacing:
        1.2px;

}


.summary-item strong{

    display:
        block;

    color:
        #333;

    font-size:
        11px;

    line-height:
        1.3;

}


/*==================================================
    FORMULARIO
==================================================*/

.contact-form{

    display:
        flex;

    flex-direction:
        column;

    gap:
        18px;

}


.form-group{

    display:
        flex;

    flex-direction:
        column;

    gap:
        8px;

}


.form-group label{

    color:
        #333;

    font-size:
        13px;

    font-weight:
        600;

}


.form-group label span{

    color:
        var(--primary);

}


.contact-form input,
.contact-form select,
.contact-form textarea{

    width:
        100%;

    padding:
        16px;

    border:
        1px solid var(--border);

    border-radius:
        var(--radius);

    background:
        var(--white);

    color:
        #333;

    font-size:
        .95rem;

    font-family:
        inherit;

    transition:
        .3s;

}


.contact-form input::placeholder,
.contact-form textarea::placeholder{

    color:
        #999;

}


.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus{

    outline:
        none;

    border-color:
        var(--primary);

    box-shadow:
        0 0 0 3px rgba(195,32,38,.08);

}


.contact-form textarea{

    resize:
        vertical;

    min-height:
        120px;

}


/*==================================================
    INFORMACIÓN DE CRÉDITO
==================================================*/

#creditFields{

    display:
        none;

    flex-direction:
        column;

    gap:
        18px;

    padding:
        20px;

    background:
        #F8F8F8;

    border:
        1px solid #EAEAEA;

    border-radius:
        var(--radius);

}


#creditFields.active{

    display:
        flex;

}


.credit-header{

    display:
        flex;

    align-items:
        center;

    gap:
        10px;

    color:
        var(--primary);

    font-size:
        11px;

    font-weight:
        700;

    letter-spacing:
        1.5px;

}


.credit-grid{

    display:
        grid;

    grid-template-columns:
        repeat(2,1fr);

    gap:
        15px;

}


/*==================================================
    OTRO CRÉDITO
==================================================*/

.other-credit-group{

    display:
        none;

}


.other-credit-group.active{

    display:
        flex;

}


/*==================================================
    CHECKBOX
==================================================*/

.form-check{

    display:
        flex;

    align-items:
        flex-start;

    gap:
        10px;

    color:
        #666;

    font-size:
        12px;

    line-height:
        1.6;

    cursor:
        pointer;

}


.form-check input{

    width:
        17px;

    height:
        17px;

    flex-shrink:
        0;

    margin-top:
        2px;

    accent-color:
        var(--primary);

}


.form-check b{

    color:
        var(--primary);

}


/*==================================================
    BOTÓN DEL FORMULARIO
==================================================*/

.contact-form .btn{

    width:
        100%;

    margin-top:
        5px;

}


.contact-form .btn:disabled{

    opacity:
        .65;

    cursor:
        not-allowed;

    transform:
        none;

}


/*==================================================
    PRIVACIDAD
==================================================*/

.form-privacy{

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        7px;

    color:
        #888;

    font-size:
        10px;

    text-align:
        center;

    line-height:
        1.5;

}


.form-privacy i{

    color:
        var(--primary);

}


/*==================================================
    FOOTER
==================================================*/

footer{

    background:
        #202020;

    color:
        white;

    padding:
        60px 0;

    text-align:
        center;

}


footer p{

    color:
        #BDBDBD;

    line-height:
        1.8;

}


/*==================================================
    UTILIDADES
==================================================*/

::selection{

    background:
        var(--primary);

    color:
        white;

}


img{

    user-select:
        none;

}


.btn,
.btn-outline,
.benefit-card,
.space-card,
.gallery-item img{

    transition:
        .35s;

}


/*==================================================
    RESPONSIVE
==================================================*/

@media (max-width:1100px){

    .hero .container{

        gap:
            45px;

    }


    .hero-content h1{

        font-size:
            3.8rem;

    }


    .benefits-grid{

        grid-template-columns:
            repeat(2,1fr);

    }

}


@media (max-width:900px){

    section{

        padding:
            85px 0;

    }


    .hero{

        min-height:
            auto;

        padding:
            120px 0 90px;

    }


    .hero .container{

        grid-template-columns:
            1fr;

        text-align:
            center;

    }


    .hero-content{

        display:
            flex;

        flex-direction:
            column;

        align-items:
            center;

    }


    .hero-content p{

        max-width:
            700px;

    }


    .hero-image{

        display:
            block;

    }


    .hero-image img{

        margin:
            auto;

    }


    .about-content{

        grid-template-columns:
            1fr;

        gap:
            45px;

    }


    .about-image{

        max-width:
            700px;

        margin:
            auto;

    }


    .gallery-grid{

        grid-template-columns:
            repeat(2,1fr);

    }


    .project-summary{

        grid-template-columns:
            1fr;

    }


    .spaces-grid{

        grid-template-columns:
            minmax(280px,560px);

    }

}


@media (max-width:600px){

    section{

        padding:
            75px 0;

    }


    .container{

        width:
            92%;

    }


    .section-header{

        margin-bottom:
            45px;

    }


    .section-header h2{

        font-size:
            2.2rem;

    }


    .hero{

        padding:
            100px 0 70px;

    }


    .hero-content h1{

        font-size:
            3rem;

    }


    .hero-content p{

        font-size:
            .9rem;

    }


    .hero-buttons{

        flex-direction:
            column;

        width:
            100%;

    }


    .hero-buttons .btn,
    .hero-buttons .btn-outline{

        width:
            100%;

    }


    .benefits-grid{

        grid-template-columns:
            1fr;

    }


    .gallery-grid{

        grid-template-columns:
            1fr;

    }


    .gallery-item img{

        height:
            250px;

    }


    .spaces{

        padding:
            75px 0;

    }


    .spaces-grid{

        grid-template-columns:
            1fr;

    }


    .space-card{

        padding:
            28px 22px;

    }


    .space-card h3{

        font-size:
            22px;

    }


    .space-price{

        font-size:
            21px;

    }


    .space-details{

        grid-template-columns:
            1fr;

    }


    .modal{

        padding:
            10px;

    }


    .modal-content{

        width:
            100%;

        max-height:
            94vh;

        padding:
            35px 22px;

    }


    .modal-content h2{

        font-size:
            1.55rem;

    }


    .credit-grid{

        grid-template-columns:
            1fr;

    }


    .summary-item{

        padding:
            12px;

    }

}