

/* ==========================================================
   SONARAE
   Base Styles
========================================================== */


/* ==========================================================
   VARIABLES
========================================================== */

:root{

    /* Colores */

    --color-fondonegroroto: rgb(26,26,26);

    --color-sensaciongris: rgba(255,255,255,.45);

    --color-pulsogrisclaro: rgba(255,255,255,.85);

    --color-ambienterosa: rgba(184,168,173,.9);

    --color-misterioazul: rgba(228,237,244,.9);

    --color-limbomalva: rgba(238,235,243,.9);

    --card-size:280px;




    /* Layout */

    --page-width:1000px;

    --page-padding:20px;

    --radius:12px;

}



/* ==========================================================
   RESET
========================================================== */

*{

    margin:0;

    padding:0;

    box-sizing:border-box;

}



html{

    scroll-behavior:smooth;

}



body{

    background:var(--color-pulsogrisclaro);

    color:var(--color-fondonegroroto);

    font-family:"Basteleur", serif;

}



img{

    display:block;

    max-width:100%;

}



a{

    color:inherit;

    text-decoration:none;

}



/* ==========================================================
   FONTS
========================================================== */

@font-face{

    font-family:"Basteleur";

    src:url("../assets/fonts/Basteleur-Moonlight.woff2") format("woff2");

    font-weight:100;

    font-style:normal;

}

@font-face{

    font-family:"Abordage-Regular";

    src:url("../assets/fonts/Abordage-Regular.woff2") format("woff2");

    font-weight:400;

    font-style:normal;

}



/* ==========================================================
   TYPOGRAPHY
========================================================== */

h1{

    font-size:clamp(2.4rem,6vw,3.8rem);

    font-weight:400;

    text-align:center;

    margin:24px 0;

}



h2{

    font-size:clamp(1.8rem,4vw,2rem);

    font-weight:100;

    margin-bottom:20px;

}



h3{

    font-size:clamp(1.1rem,2vw,1.4rem);

    font-weight:100;

}



h5{

    font-size:.9rem;

    font-weight:100;

    text-align:center;

    margin:10px 0;

}



h6{

    font-size:clamp(2rem,5vw,2.5rem);

    font-weight:200;

    text-align:center;

    margin:16px 0;

}



p{


    font-family:"Abordage-Regular";


    font-size:clamp(1.05rem, 1vw + 0.6rem, 1.2rem);

    line-height:1.5;

    margin:12px 0;



}



/* ==========================================================
   LAYOUT
========================================================== */

main{

     width:100%;

    display:flex;

    flex-direction:column;

    align-items:center;

    gap:40px;

    padding-top:30px;

}


section{

    width:min(var(--page-width), calc(100% - 40px));

}



/* ==========================================================
   SECCIONES
========================================================== */

#inicio{

    width:100%;

    margin-bottom:40px;

}



#precios{

    position:relative;
    isolation:isolate;
    margin-top:20px;

    padding-inline:24px;

}

#precios::before{
    content:"";
    position:absolute;
    inset:-10%;
    z-index:-1;
    background:url("../assets/images/Artboard2.png") center / contain no-repeat;
    opacity:.3;
    pointer-events:none;
}



#contacto{

    margin-top:20px;

}

.contacto-precios{
    text-align:center;
}

.contacto-precios .botones-contacto{
    justify-content:center;
}






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

header{

    width:100%;

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:0 20px;

}

.logo{

    display:block;

    width:350px;

    height:auto;

}

nav{

    margin-left:auto;

}

nav ul{

    display:flex;

    flex-wrap:wrap;

    gap:10px;

    list-style:none;

}

nav li{

    list-style:none;

}

nav a{

    display:block;

    padding:8px 12px;

    border-radius:10px;

    background:var(--color-pulsogrisclaro);

    transition:.25s;

}

nav a:hover{

    background:var(--color-sensaciongris);

}



/* ==========================================================
   LANGUAGE
========================================================== */

.lang-switcher{

    display:flex;

    align-items:center;

    gap:4px;

    margin-left:8px;

    font-size:.65rem;

    text-transform:uppercase;

}

.lang-link{

    opacity:.75;

}

.lang-link.active,

.lang-link:hover{

    opacity:1;

}

.lang-separator{

    opacity:.5;

}



/* ==========================================================
   HERO
========================================================== */

.viewport{

    width:100%;

    height:100vh;

    overflow:hidden;

    position:relative;

    margin:10px 0 70px;

}

.lmg{

    position:absolute;

    inset:0;

    width:100%;

    height:100%;

    object-fit:cover;

}



/* ==========================================================
   BLOG
========================================================== */

.blog-intro{

    width:min(var(--page-width),calc(100% - 40px));

    margin-bottom:24px;

    text-align:center;

}

.blog-intro h2{

    margin-bottom:8px;

}

.blog-intro p{

    font-style:italic;

}



/* ==========================================================
   FOOTER
========================================================== */

.site-footer{

    width:min(var(--page-width),calc(100% - 40px));

    margin:40px auto 24px;

}

.site-footer p{

    text-align:center;

    opacity:.7;

    font-size:.75rem;

}

/* ==========================================================
   TEACHER PROFILE
========================================================== */

.equipo h2{
    margin-bottom:24px;
}

.profesor{
    display:flex;
    flex-direction:column;
    gap:20px;
}

.profesor-cabecera{
    display:flex;
    align-items:center;
    gap:24px;
}

.profesor-foto{
    flex:0 0 138px;
    width:138px;
    aspect-ratio:1;
    object-fit:cover;
    object-position:center 35%;
    border-radius:50%;
    filter:grayscale(100%);
}

.profesor-texto{
    flex:1;
    min-width:0;
}

.profesor-texto p{
    font-size:1rem;
    line-height:1.4;
    margin:8px 0;
}

.lista-asignaturas{
    font-size:1rem;
    line-height:1.4;
}

.profesor-cabecera header{
    display:block;
    width:auto;
    padding:0;
    margin:0;
}

.profesor-cabecera header h3{
    margin-bottom:8px;
}

.profesor-cabecera .titulo,
.profesor-cabecera .subtitulo{
    font-size:1rem;
    margin:4px 0;
}

.profesor-cabecera .subtitulo{
    font-style:italic;
}


/* ==========================================================
   JOURNAL
========================================================== */

.works-container{

    display:grid;

     grid-template-columns:repeat(2,var(--card-size));

    grid-auto-flow:row;

    justify-content:center;

    gap:32px;

    padding:20px 0;

}


.workbox{

    position:relative;

    overflow:hidden;

    border-radius:var(--radius);

    aspect-ratio:1/1;

}



.workbox a{

    display:block;

    width:100%;

    height:100%;

}



.workbox img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:transform .35s ease;

}



.workbox:hover img{

    transform:scale(1.03);

}



/* ---------- COVER ---------- */

.cover{

    position:absolute;

    inset:0;

    display:flex;

    justify-content:center;

    align-items:center;

    background:rgba(26,26,26,.75);

    opacity:0;

    transition:opacity .3s ease;

}



.workbox:hover .cover{

    opacity:1;

}



/* ---------- TITLE ---------- */

.workbox h3{

    margin:0;

    padding:20px;

    text-align:center;

    color:var(--color-pulsogrisclaro);

    font-size:clamp(1rem, 1vw, 1.15rem);
    
    font-style: italic;

    line-height:1.3;

}

/* ==========================================================
   BUTTONS
========================================================== */

.btn{

    display:inline-block;

    padding:10px 16px;

    border:none;

    border-radius:var(--radius);

    color:var(--color-fondonegroroto);

    box-shadow:0 1px 3px rgba(0,0,0,.10);

    transition:.25s ease;

}

.btn:hover{

    transform:translateY(-2px);

    box-shadow:0 6px 12px rgba(0,0,0,.12);

}

.gris{

    background:var(--color-pulsogrisclaro);

}

.azul{

    background:var(--color-misterioazul);

}

.malva{

    background:var(--color-limbomalva);

}



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

.botones-contacto{

    display:flex;

    flex-wrap:wrap;

    gap:12px;

    margin:20px 0 60px;

}



.formulario-contacto form{

    display:flex;

    flex-direction:column;

    gap:16px;

    margin:20px 10px;

}



.formulario-contacto input,

.formulario-contacto textarea{

    width:100%;

    padding:12px;

    border:1px solid var(--color-pulsogrisclaro);

    border-radius:8px;

    font:inherit;

}



.formulario-contacto textarea{

    resize:vertical;

    min-height:180px;

}



.formulario-contacto button{

    cursor:pointer;

}



/* ==========================================================
   IMAGE PREVIEW
========================================================== */

.ampliada{

    position:fixed;

    inset:50% auto auto 50%;

    transform:translate(-50%,-50%);

    max-width:90vw;

    max-height:90vh;

    width:auto;

    height:auto;

    z-index:1000;

}



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

@media (max-width:768px){

    header{

        flex-direction:column;

        gap:24px;

        padding:20px;

    }

    .logo{

        width:260px;

    }

    nav{

        margin:0;

    }

    nav ul{

        flex-direction:column;

        align-items:center;

    }

    nav a{

        width:100%;

        text-align:center;

    }

    .viewport{

        height:auto;
        aspect-ratio:16 / 9;

    }

    .viewport .lmg{
        object-fit:contain;
    }

    .works-container{

        grid-template-columns:1fr;

        justify-items:center;

    }

    .workbox{

        width:min(280px,100%);

    }

    .botones-contacto{

        flex-direction:column;

        align-items:stretch;

    }

    .profesor-cabecera{
        gap:16px;
    }

    .profesor-foto{
        flex-basis:auto;
        width:100px;
        flex:0 0 100px;
    }

    h2{
        text-align:center;
    }

}



@media (min-width:769px) and (max-width:1023px){

    .logo{

        width:320px;

    }

    .viewport{

        height:70vh;

    }

}
