/* =========================
RESET
========================= */
*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    font-family:"Inter", sans-serif;
    color:#111;
    background:#fff;
    line-height:1.6;
}

/* =========================
WRAP
========================= */
#wrap{
    max-width:1100px;
    margin:0 auto;
}

/* =========================
HEADER
========================= */
#site-header{
    padding:22px 60px 18px;
    border-bottom:1px solid rgba(0,0,0,.08);
}

.header-grid{
    display:grid;
    grid-template-columns:1fr 2fr 1fr;
    align-items:center;
}

/* BRAND */
.brand a{
    text-decoration:none;
    color:#111;
}

.brand-title{
    display:block;
    font-family:"Playfair Display", serif;
    font-size:20px;
}

.brand-sub{
    display:block;
    font-size:11px;
    letter-spacing:1px;
}

/* NAV */
.nav ul{
    display:flex;
    justify-content:center;
    gap:28px;
    list-style:none;
}

.nav a{
    text-decoration:none;
    font-size:12px;
    letter-spacing:.08em;
    color:#111;
    position:relative;
}

.nav a::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-4px;
    width:0;
    height:1px;
    background:#111;
    transition:.3s;
}

.nav a:hover::after{
    width:100%;
}

/* SEARCH */
.search{
    text-align:right;
}

.search form{
    position:relative;
    display:inline-block;
}

.search input[type="text"]{
    border:none;
    border-bottom:1px solid #111;
    background:transparent;
    padding:6px 18px 6px 6px;
    width:150px;
    font-size:12px;
    outline:none;
}

.search-icon{
    position:absolute;
    right:0;
    top:50%;
    transform:translateY(-50%);
    font-size:12px;
    opacity:.7;
}

/* =========================
HERO
========================= */
.hero{
    padding:90px 20px 70px;
    text-align:center;
}

.hero-inner{
    max-width:620px;
    margin:0 auto;
}

.hero h1{
    font-family:"Playfair Display", serif;
    font-size:40px;
    font-weight:400;
    margin-bottom:22px;
}

.hero-line{
    font-size:15px;
    line-height:1.75;
    opacity:.7;
    margin-bottom:22px;
}

/* FLECHA */
.scroll-indicator{
    font-size:16px;
    opacity:.35;
    margin-bottom:18px;
}

/* BOTÓN */
.hero-cta{
    margin-bottom:18px;
}

.button{
    border-bottom:1px solid #111;
    text-decoration:none;
    font-size:13px;
    color:#111;
    padding-bottom:2px;
}

/* =========================
STATEMENT
========================= */
.statement{
    padding:80px 20px 100px;
    text-align:center;
    position:relative;
}

.statement::before{
    content:"";
    display:block;
    width:100%;
    height:1px;
    margin:0 auto 50px;
    background:linear-gradient(to right, transparent, rgba(0,0,0,.25), transparent);
}

.statement p{
    max-width:520px;
    margin:0 auto;
    font-family:"Playfair Display", serif;
    font-size:18px;
    line-height:1.8;
    opacity:.8;
}

/* =========================
LOGOS
========================= */
.logos-section{
    padding:70px 20px 110px;
    text-align:center;
    position:relative;
}

/* transición visual hacia el archivo */
.logos-section::after{
    content:"";
    display:block;
    width:100%;
    height:1px;
    margin:60px auto 0;
    background:linear-gradient(to right, transparent, rgba(0,0,0,.22), transparent);
}

.logos-label{
    font-size:10px;
    letter-spacing:.14em;
    margin-bottom:24px;
    color:#666;
}

.logos{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:48px;
}

.logos img{
    height:34px;
    width:auto;
    opacity:.75;
    transition:opacity .3s ease, transform .3s ease;
}

/* ajuste ministerio (visual, no geométrico) */
.logo-ministerio{
    transform:scale(1.6);
    transform-origin:center;
    margin:0 10px;
}

/* hover editorial sutil */
.logo-link img{
    opacity:.8;
}

.logo-link:hover img{
    opacity:1;
    transform:translateY(-1px);
}

.logos img:hover{
    opacity:1;
}

/* =========================
FOOTER
========================= */
footer{
    border-top:1px solid rgba(0,0,0,.08);
    padding:40px 20px;
    text-align:center;
    font-size:11px;
    letter-spacing:.08em;
    opacity:.6;
}

/* =========================
SIMPLE PAGES
========================= */
.simple-page-container{
    max-width:760px;
    margin:0 auto;
    padding:100px 20px 120px;
}

.simple-page-container h1{
    font-family:"Playfair Display", serif;
    font-size:42px;
    font-weight:400;
    margin-bottom:30px;
}

.simple-page-container p{
    font-size:15px;
    line-height:1.9;
    opacity:.75;
    margin-bottom:20px;
}

.simple-page-container p:first-of-type{
    margin-bottom:50px;
}

/* =========================
INVESTIGACIÓN
========================= */
.investigacion-ejes{
    margin-top:40px;
}

.investigacion-ejes .eje{
    display:block;
    padding:26px 0;
    border-top:1px solid rgba(0,0,0,.08);
    text-decoration:none;
    color:#111;
    transition:.25s ease;
}

.investigacion-ejes .eje:last-child{
    border-bottom:1px solid rgba(0,0,0,.08);
}

.investigacion-ejes strong{
    display:block;
    font-family:"Playfair Display", serif;
    font-size:20px;
    margin-bottom:6px;
}

.investigacion-ejes span{
    font-size:14px;
    opacity:.6;
}

.investigacion-ejes .eje:hover{
    transform:translateX(3px);
}

/* =========================
MATERIALES
========================= */
.inv-materiales{
    margin-top:50px;
}

.inv-materiales h2{
    font-size:11px;
    letter-spacing:.12em;
    text-transform:uppercase;
    opacity:.5;
    margin:50px 0 10px;
}

.material{
    display:block;
    padding:18px 0;
    border-top:1px solid rgba(0,0,0,.08);
    text-decoration:none;
    color:#111;
    transition:.25s ease;
}

.material:last-child{
    border-bottom:1px solid rgba(0,0,0,.08);
}

.material strong{
    display:block;
    font-family:"Playfair Display", serif;
    font-size:18px;
    margin-bottom:4px;
}

.material span{
    font-size:13px;
    opacity:.6;
}

.material:hover{
    transform:translateX(3px);
}

/* =========================
BACK
========================= */
.inv-back{
    display:inline-block;
    margin-bottom:30px;
    font-size:12px;
    text-decoration:none;
    color:#111;
    opacity:.5;
    transition:.25s ease;
}

.inv-back:hover{
    opacity:.9;
    transform:translateX(-2px);
}

/* =========================
ARCHIVO GRID
========================= */
.archivo-container{
    max-width:1000px;
    margin:80px auto 120px;
    padding:0 20px;
}

.archivo-container h1{
    font-family:"Playfair Display", serif;
    font-size:42px;
    font-weight:400;
    margin-bottom:20px;
}

.archivo-intro{
    max-width:520px;
    font-size:14px;
    line-height:1.8;
    opacity:.7;
    margin-bottom:50px;
}

.archivo-featured{
    margin-bottom:70px;
}

.archivo-subtitle{
    font-size:11px;
    letter-spacing:.14em;
    text-transform:uppercase;
    opacity:.45;
    margin-bottom:20px;
}

.archivo-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:26px;
}

.archivo-item{
    text-decoration:none;
    color:#111;
    transition:.25s ease;
}

.archivo-thumb img{
    width:100%;
    display:block;
    margin-bottom:10px;
}

.archivo-meta strong{
    display:block;
    font-size:13px;
}

.archivo-meta span{
    font-size:11px;
    opacity:.5;
}

.archivo-item:hover{
    transform:translateY(-2px);
}

/* =========================
ITEM
========================= */
.item-container{
    max-width:900px;
    margin:80px auto 120px;
    padding:0 20px;
}

.item-content{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:40px;
}

.item-image img{
    width:100%;
}

/* =========================
RESPONSIVE
========================= */
@media (max-width:900px){
    .archivo-grid{
        grid-template-columns:repeat(2,1fr);
    }
}

@media (max-width:768px){

    #site-header{
        padding:20px;
    }

    .header-grid{
        grid-template-columns:1fr;
        gap:15px;
        text-align:center;
    }

    .nav ul{
        flex-direction:column;
        gap:10px;
    }

    .search{
        text-align:center;
    }

    .hero{
        padding:70px 20px;
    }

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

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

/* =========================
FADE SYSTEM
========================= */
.fade-up{
    opacity:0;
    transform:translateY(18px);
    transition:
        opacity .9s ease,
        transform .9s cubic-bezier(.22,.61,.36,1);
}

.fade-up.visible{
    opacity:1;
    transform:none;
}

.fade-soft{
    opacity:0;
    transition:opacity 1.15s ease;
}

.fade-soft.visible{
    opacity:1;
}