/* ===== RESET ===== */
*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    font-family:'Poppins',sans-serif;
    background:white;
    color:#111;
}

/* ===== VERIFICACIÓN ===== */
#mathGate{
    position:fixed;
    inset:0;
    background:white;
    display:flex;
    justify-content:center;
    align-items:center;
    z-index:9999;
}

#mathBox{
    border:2px solid #0d47a1;
    padding:40px;
    border-radius:16px;
    text-align:center;
    box-shadow:0 10px 30px rgba(0,0,0,0.08);
}

#mathBox input{
    margin-top:15px;
    padding:8px;
    border:2px solid #0d47a1;
    border-radius:6px;
    width:100px;
    text-align:center;
}

#mathBox button{
    margin-top:15px;
    padding:8px 20px;
    border:none;
    background:#0d47a1;
    color:white;
    border-radius:6px;
    cursor:pointer;
}

/* ===== HEADER PROFESIONAL RESPONSIVE ===== */
.cv-header{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:40px;
    padding:40px 8%;
    border-bottom:3px solid #0d47a1;
}

.cv-photo img{
    width:150px;
    border-radius:10px;
}

.cv-info{
    max-width:650px;
}

.cv-info h1{
    font-size:2rem;
    font-weight:700;
    color:#0d47a1;
}

.cv-info h2{
    font-size:1rem;
    margin-top:6px;
    font-weight:500;
}

.cv-contact{
    margin-top:14px;
    font-size:14px;
    color:#444;
    line-height:1.7;
}

/* ===== RESPONSIVE HEADER ===== */
@media(max-width:768px){

    .cv-header{
        flex-direction:column;
        text-align:center;
        padding:30px 20px;
    }

    .cv-photo img{
        width:110px;
    }

    .cv-info h1{
        font-size:1.5rem;
    }

    .cv-info h2{
        font-size:0.9rem;
    }

}

/* ===== PÁRRAFO EXPLICATIVO ===== */
.cv-description{
    max-width:850px;
    margin:40px 15px 10px 15px;
    text-align:center;
    font-size:15px;
    color:#444;
    line-height:1.8;
    padding:0 20px;
}

/* ===== SECCIÓN ===== */
.section{
    padding:50px 8%;
}

.section h2{
    border-left:6px solid #0d47a1;
    padding-left:12px;
    margin-bottom:40px;
    color: #0d47a1;
}

/* ===== MASONRY PERFECTO ===== */
.masonry{
    column-count:3;
    column-gap:30px;
}

@media(max-width:1000px){
    .masonry{
        column-count:2;
    }
}

@media(max-width:700px){
    .masonry{
        column-count:1;
    }

    .cv-header{
        padding:40px 20px;
    }

    .cv-info h1{
        font-size:1.5rem;
    }

    .cv-description{
        font-size:14px;
    }
}

/* ===== TARJETAS ===== */
.card{
    position:relative;
    margin-bottom:30px;
    break-inside:avoid;
    background:white;
    padding:15px;
    border-radius:14px;
    border:1px solid #e5e5e5;
    box-shadow:0 8px 25px rgba(0,0,0,0.06);
    transition:0.4s;
}

.card:hover{
    transform:translateY(-6px);
    box-shadow:0 15px 40px rgba(13,71,161,0.25);
}

.card img{
    width:100%;
    height:auto;
    display:block;
    transition:0.4s ease;
}

.card:hover img{
    transform:scale(1.05);
}

/* ===== NUMERO ===== */
.badge{
    position:absolute;
    top:10px;
    right:10px;
    background:#0d47a1;
    color:white;
    padding:6px 10px;
    font-size:13px;
    border-radius:50px;
    font-weight:bold;
}

/* ===== FOOTER ===== */
footer{
    text-align:center;
    padding:50px 20px;
    border-top:2px solid #0d47a1;
    margin-top:60px;
    background:#fafafa;
}

footer p{
    margin-bottom:10px;
    color:#444;
}

footer strong{
    color:#0d47a1;
}