*{
    box-sizing:border-box;
}

body{
    margin:0;
    font-family:
        Arial,
        Helvetica,
        sans-serif;
    background:#f4f7fb;
    color:#172033;
}

.header{
    min-height:70px;
    padding:15px 5%;
    background:#ffffff;
    border-bottom:1px solid #e5e9f0;

    display:flex;
    align-items:center;
    gap:30px;
    flex-wrap:wrap;
}

.logo{
    font-size:28px;
    font-weight:900;
    color:#1677ff;
    letter-spacing:2px;
}

.logo span{
    color:#1b2738;
    font-size:14px;
    letter-spacing:1px;
    margin-left:6px;
}

nav{
    display:flex;
    gap:18px;
    flex:1;
    flex-wrap:wrap;
}

nav a{
    color:#27364a;
    text-decoration:none;
    font-weight:600;
}

nav a:hover{
    color:#1677ff;
}

.btn,
button,
.heroBtn{
    border:0;
    border-radius:10px;
    padding:11px 18px;
    text-decoration:none;
    cursor:pointer;
    background:#edf3fb;
    color:#17304e;
    font-weight:700;
}

.principal{
    background:#1677ff !important;
    color:white !important;
}

.hero{
    min-height:430px;
    padding:70px 10%;
    background:
        linear-gradient(
            120deg,
            #071a38,
            #1677ff
        );
    color:white;

    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:50px;
}

.hero h1{
    font-size:60px;
    line-height:1;
    margin:0 0 25px;
}

.hero p{
    font-size:20px;
    max-width:600px;
    opacity:.9;
}

.heroBtn{
    display:inline-block;
    margin-top:20px;
    background:white;
    color:#1677ff;
}

.disco{
    width:240px;
    height:240px;
    border-radius:50%;
    background:
        radial-gradient(
            circle,
            #222 0 8%,
            #111 9% 25%,
            #333 26% 28%,
            #111 29% 45%,
            #333 46% 48%,
            #111 49%
        );

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

    font-size:65px;

    box-shadow:
        0 30px 80px
        rgba(0,0,0,.4);
}

.contenedor{
    max-width:1200px;
    margin:auto;
    padding:50px 20px;
}

.contenedor h1,
.contenedor h2{
    margin-bottom:30px;
}

.grid{
    display:grid;
    grid-template-columns:
        repeat(auto-fit,minmax(260px,1fr));
    gap:24px;
}

.card{
    background:#fff;
    border-radius:18px;
    overflow:hidden;

    box-shadow:
        0 8px 30px
        rgba(20,40,70,.08);
}

.portada{
    height:220px;
    background:#eaf1fa;
}

.portada img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.nota{
    width:100%;
    height:100%;

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

    font-size:80px;
}

.cardBody{
    padding:20px;
}

.card h3{
    margin:0 0 8px;
}

.card p{
    color:#64748b;
}

.card audio{
    width:100%;
    margin-top:15px;
}

.acciones{
    margin-top:15px;

    display:flex;
    align-items:center;
    gap:15px;
}

.acciones button{
    padding:8px 12px;
}

.formPage{
    min-height:calc(100vh - 70px);

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

    padding:40px 20px;
}

.formBox{
    width:100%;
    max-width:520px;

    background:#fff;
    padding:35px;

    border-radius:18px;

    box-shadow:
        0 10px 40px
        rgba(20,40,70,.10);
}

.formBox h1{
    margin-top:0;
}

form{
    display:flex;
    flex-direction:column;
    gap:15px;
}

input,
textarea,
select{
    width:100%;
    border:1px solid #d7dfeb;
    border-radius:10px;

    padding:13px 14px;

    font:inherit;
    outline:none;
}

input:focus,
textarea:focus{
    border-color:#1677ff;
}

textarea{
    min-height:120px;
    resize:vertical;
}

label{
    font-weight:700;
}

#mensaje{
    margin-top:18px;
    font-weight:700;
}

.buscador{
    display:flex;
    gap:10px;
    margin-bottom:40px;
}

.buscador input{
    flex:1;
}

.perfil{
    background:white;
    padding:45px;
    border-radius:20px;
    text-align:center;
    max-width:800px;
    margin:auto;
}

.avatar{
    width:110px;
    height:110px;

    margin:auto;

    border-radius:50%;

    background:#1677ff;
    color:white;

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

    font-size:45px;
    font-weight:bold;
}

.stats{
    display:flex;
    justify-content:center;
    gap:50px;
    margin-top:30px;
}

.stats div{
    display:flex;
    flex-direction:column;
    gap:5px;
}

.stats strong{
    font-size:25px;
}

footer{
    padding:40px 20px;
    text-align:center;
    background:#071a38;
    color:white;
}

@media(max-width:700px){

    .header{
        padding:15px 20px;
    }

    .hero{
        padding:50px 25px;
        flex-direction:column;
        text-align:center;
    }

    .hero h1{
        font-size:45px;
    }

    .disco{
        width:180px;
        height:180px;
    }

    .buscador{
        flex-direction:column;
    }

    .stats{
        gap:20px;
    }

}