/* NAVBAR */

.navbar{
    position:fixed;
    top:24px;
    left:24px;
    width:auto;
    padding:0;
    display:flex;
    justify-content:flex-start;
    align-items:center;
    z-index:1000;
    background:transparent;
    pointer-events:auto;
}

.desktop-nav{
    display:none;
    position:relative;
    align-items:center;
    justify-content:center;
    gap:34px;
    padding:15px 30px;
    background:linear-gradient(135deg, rgba(32,54,74,.32), rgba(32,54,74,.16));
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    border:1px solid rgba(255,255,255,.16);
    border-radius:28px;
    overflow:hidden;
    max-width:620px;
    transition:.35s ease;
}

.desktop-nav a{
    position:relative;
    font-size:.82rem;
    font-weight:700;
    color:var(--paper);
    text-transform:uppercase;
    letter-spacing:1.5px;
    text-shadow:0 2px 10px rgba(0,0,0,.25);
    white-space:nowrap;
    transition:.35s ease;
}

.desktop-nav a::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-7px;
    width:0;
    height:2px;
    background:var(--red);
    transition:.3s ease;
}

.desktop-nav a:hover{
    color:var(--red);
}

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

.desktop-nav::before{
    content:"";
    position:absolute;
    top:50%;
    left:50%;
    width:24px;
    height:16px;
    transform:translate(-50%,-50%);
    opacity:0;
    pointer-events:none;
    background:
        linear-gradient(var(--paper),var(--paper)) 0 0 / 24px 2px no-repeat,
        linear-gradient(var(--paper),var(--paper)) 0 7px / 24px 2px no-repeat,
        linear-gradient(var(--paper),var(--paper)) 0 14px / 24px 2px no-repeat;
    transition:.3s ease;
}

.navbar.scrolled .desktop-nav{
    max-width:58px;
    padding:16px 29px;
    gap:0;
    background:rgba(32,54,74,.62);
}

.navbar.scrolled .desktop-nav::before{
    opacity:1;
}

.navbar.scrolled .desktop-nav a{
    opacity:0;
    pointer-events:none;
    transform:translateX(-12px);
}

.navbar.scrolled .desktop-nav:hover{
    max-width:620px;
    padding:15px 30px;
    gap:34px;
    background:rgba(236,227,211,.86);
}

.navbar.scrolled .desktop-nav:hover::before{
    opacity:0;
}

.navbar.scrolled .desktop-nav:hover a{
    opacity:1;
    pointer-events:auto;
    transform:translateX(0);
    color:var(--blue-dark);
    text-shadow:none;
}

/* MENU MOBILE */

.menu-toggle{
    width:50px;
    height:50px;
    border:1px solid rgba(236,227,211,.7);
    background:rgba(32,54,74,.32);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    border-radius:50%;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:7px;
    cursor:pointer;
    z-index:1100;
    transition:.3s ease;
}

.menu-toggle span{
    width:22px;
    height:2px;
    background:var(--paper);
    transition:.3s ease;
}

.navbar.scrolled .menu-toggle{
    background:rgba(32,54,74,.88);
}

.menu-toggle.active span:nth-child(1){
    transform:rotate(45deg) translate(3px,3px);
}

.menu-toggle.active span:nth-child(2){
    transform:rotate(-45deg) translate(3px,-3px);
}

.fullscreen-menu{
    position:fixed;
    inset:0;
    width:100%;
    height:100dvh;
    background:rgba(32,54,74,.82);
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
    z-index:900;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:clamp(14px,2.2vh,24px);
    padding:90px 6% 50px;
    opacity:0;
    pointer-events:none;
    overflow:hidden;
    transition:.4s ease;
}

.fullscreen-menu.active{
    opacity:1;
    pointer-events:auto;
}

.fullscreen-menu a{
    font-family:'Oswald',sans-serif;
    font-size:clamp(1.35rem,2.5vw,2.45rem);
    color:var(--paper);
    text-transform:uppercase;
    letter-spacing:2px;
}

/* HERO */

.archive-detail-hero{
    min-height:78vh;
    display:flex;
    align-items:flex-end;
    position:relative;
    overflow:hidden;
    background:
        linear-gradient(90deg, rgba(32,54,74,.94), rgba(32,54,74,.72), rgba(32,54,74,.32)),
        url('../../img/hero/archivo.png');
    background-size:cover;
    background-position:center;
    color:white;
}

.archive-detail-hero::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:-1px;
    height:120px;
    background:linear-gradient(to bottom, rgba(236,227,211,0), var(--blue-dark));
    pointer-events:none;
}

.archive-detail-hero-content{
    position:relative;
    z-index:2;
    max-width:850px;
    padding-bottom:90px;
}

.archive-detail-hero .section-tag{
    color:var(--gold);
}

.archive-detail-hero h1{
    margin-top:18px;
    font-size:clamp(3.4rem,7vw,7.2rem);
    line-height:.92;
    color:white;
}

.archive-detail-hero p{
    margin-top:24px;
    max-width:620px;
    line-height:1.75;
    color:rgba(255,255,255,.82);
    font-size:1.1rem;
}

/* INTRO */

.archive-detail-intro{
    background:var(--blue-dark);
    position:relative;
    padding-bottom:70px;
}

.archive-detail-intro::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 20% 30%, rgba(179,33,33,.12), transparent 28%),
        radial-gradient(circle at 80% 70%, rgba(182,138,67,.10), transparent 34%);
    pointer-events:none;
}

.archive-detail-intro-content{
    position:relative;
    max-width:900px;
    margin:0 auto;
    text-align:center;
}

.archive-detail-intro .section-tag{
    color:var(--gold);
}

.archive-detail-intro h2{
    margin-top:16px;
    font-size:clamp(1.8rem,3vw,3.2rem);
    line-height:1.1;
    color:white;
}

.archive-detail-intro p{
    margin:22px auto 0;
    max-width:680px;
    line-height:1.8;
    color:rgba(255,255,255,.78);
}

/* GALERÍA */

.gallery-section{
    background:var(--blue-dark);
    padding-top:40px;
    padding-bottom:120px;
}

.gallery-grid{
    columns:4 280px;
    column-gap:24px;
}

.gallery-item{
    position:relative;
    display:block;
    width:100%;
    break-inside:avoid;
    margin-bottom:24px;
    overflow:hidden;
    border-radius:18px;
    background:rgba(255,255,255,.06);
    cursor:pointer;
    transition:.35s ease;
}

.gallery-item img{
    width:100%;
    height:auto;
    display:block;
    object-fit:contain;
    border-radius:18px;
    filter:grayscale(.08) contrast(1.04);
    transition:.4s ease;
}

.gallery-item::after{
    content:"Ver detalle";
    position:absolute;
    left:18px;
    bottom:18px;
    padding:10px 16px;
    border-radius:50px;
    background:rgba(32,54,74,.86);
    color:white;
    font-size:.72rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:1px;
    opacity:0;
    transform:translateY(10px);
    transition:.35s ease;
}

.gallery-item:hover{
    transform:translateY(-6px);
}

.gallery-item:hover img{
    filter:grayscale(0) contrast(1.08) brightness(1.04);
}

.gallery-item:hover::after{
    opacity:1;
    transform:translateY(0);
}

/* MODAL SIMPLE */

.gallery-modal{
    position:fixed;
    inset:0;
    z-index:3000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:5vh 6%;
}

.gallery-modal.active{
    display:flex;
}

.gallery-modal-overlay{
    position:absolute;
    inset:0;
    background:rgba(12,17,22,.78);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
}

.gallery-modal-content{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:center;
    width:auto;
    max-width:95vw;
    max-height:90vh;
    background:transparent;
    box-shadow:none;
    border-radius:0;
    overflow:visible;
}

.gallery-modal-close{
    position:absolute;
    top:-22px;
    right:-22px;
    width:48px;
    height:48px;
    border:none;
    border-radius:50%;
    background:var(--blue-dark);
    color:white;
    font-size:2rem;
    cursor:pointer;
    z-index:4;
    box-shadow:0 18px 45px rgba(0,0,0,.28);
    transition:.3s ease;
}

.gallery-modal-close:hover{
    background:var(--red);
    transform:scale(1.06);
}

.gallery-modal-image{
    display:flex;
    align-items:center;
    justify-content:center;
    background:transparent;
    padding:0;
}

.gallery-modal-image img{
    display:block;
    width:auto;
    height:auto;
    max-width:90vw;
    max-height:85vh;
    object-fit:contain;
    border-radius:18px;
    box-shadow:0 35px 90px rgba(0,0,0,.45);
}

/* FOOTER */

footer{
    background:var(--red);
    color:white;
    margin-top:0;
}

.footer-container{
    display:grid;
    grid-template-columns:1.2fr 1.4fr .8fr;
    gap:70px;
    padding:60px 8%;
}

.footer-column{
    text-align:left;
}

.footer-column h3{
    font-size:1.8rem;
    color:white;
    margin-bottom:18px;
}

.footer-column h4{
    font-size:1rem;
    letter-spacing:1px;
    text-transform:uppercase;
    color:white;
    margin-bottom:18px;
}

.footer-column p{
    line-height:1.8;
    color:rgba(255,255,255,.85);
    font-size:.95rem;
}

.social-links{
    display:flex;
    gap:18px;
    margin-top:12px;
}

.social-links a{
    width:58px;
    height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.18);
    border-radius:50%;
    transition:.3s ease;
}

.social-links a:hover{
    transform:translateY(-4px);
    background:#8f1717;
    border-color:#8f1717;
}

.social-links img{
    width:30px;
    height:30px;
    display:block;
    filter:brightness(0) invert(1);
}

.footer-bottom{
    height:52px;
    background:#8f1717;
    border-top:1px solid rgba(255,255,255,.08);
}