@font-face {
font-family: 'Druk';
font-style: normal;
font-weight: normal;
src: local('Druk'), url('fonts/DrukWideBold.woff') format('woff');
font-display:swap;
}

body {
    box-sizing: border-box;
    margin:0px;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    font-family: 'Outfit', sans-serif;
}

h1, h2, h3{
    font-family: 'Druk', sans-serif;
    text-transform: uppercase;
}

h1{
    font-size:1.2em;
    letter-spacing:1px;
}


a { color: #000; text-decoration: none; }
.app { display: grid; grid-template-columns: 250px 1fr; height: 100vh; }
.sidebar { background: #fff; padding: 10px; overflow-y: auto; border-right: 1px solid #333; }
.album-btn {
    display: block;
    width: 100%;
    background: #fff;
    color: #000;
    border:0px;
    border-bottom: 1px solid #000;
    padding: 5px;
    margin-bottom: 6px;
    cursor: pointer;
    text-align: left;
}
.album-btn.active { font-weight:bold; letter-spacing:-0.5px; }
.main { padding: 20px; overflow-y: auto; }
.title { font-size:0.8em; letter-spacing:1px; margin-bottom:2em; font-family: 'Druk', sans-serif; text-transform: uppercase;}
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
.card { background: #fff; border: 1px solid #333; border-radius: 0px; overflow: hidden; }
.thumb { width: 100%; aspect-ratio: 4/4; object-fit: cover; display: block; }
.meta { padding: 8px; font-size: 12px; color: #000; display: flex; justify-content: space-between; }
.lightbox { position: fixed; inset: 0; background: rgba(0,0,0,0.9); display: none; align-items: center; justify-content: center; }
.lightbox.open { display: flex; }
.lightbox img { max-width: 90vw; max-height: 90vh; border: 2px solid #444; border-radius: 10px; }
.lightbox .close { position: absolute; top: 20px; right: 20px; background: #222; color: #fff; border: 1px solid #444; padding: 8px 12px; border-radius: 0px; cursor: pointer; }
.lightbox .nav { position: absolute; width: 100%; display: flex; justify-content: space-between; top: 50%; transform: translateY(-50%); }
.lightbox .nav button { background: transparent; border: none; color: #fff; font-size: 40px; cursor: pointer; opacity: 0.7; }

#navigation{
    border-right:1px solid #000;
    width:50px;
    height:100vh;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    padding:10px 5px;
}

#logomain svg{
    width:20px;
}


/* Evita che il link azzeri l’altezza del contenuto */
#navigation #logomain {
  display: inline-block;        /* o block */
  line-height: 1;               /* NON 0 */
  width:20px;
}

#main{
    display: flex;
}



nav{
    display: flex;
    flex-direction: column;
    gap: 15px;
    text-align: center;
    margin-bottom:10vh;
}

nav a{
    text-decoration: none;
    font-size: 1.3em;
    color:#000;
}

/* Tooltip (scritte che compaiono) */
.nav a::after{
  content: attr(data-label);
  position: absolute;
  left: 55px;   /* distanza dal numero */
  color: black;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease, transform .3s ease;
  transform: translateY(-0%) translateX(10px);
}

/* Mostra al rollover */
.nav a:hover::after{
  opacity: 1;
  transform: translateY(-0%) translateX(0);
}

footer{
    font-size:0.8em;
    border-top:1px solid #000;
    padding:5px 45px;
}

footer a{
    display: block;
    color: #fff;
    background: #000;
    width: 40px;
    height: 40px;
    padding: 5px;
    border-radius: 20px;
    text-align: center;
    text-decoration: none;
    line-height: 1em;
}



@media (max-width: 767px) {
  /* Stili solo per mobile */

    #navigation .nav{
        display: none;
    }

    #main{
        flex-direction: column;
        height:unset;
        }

    #navigation {
        border-right: none;
        border-bottom:1px solid #000;
        width: calc(100vw - 20px);
        display: unset;
        height:auto;
        padding:10px;
    }

    #navigation #logomain {
        display: none !important;
    }

    .sidebar{
        border:0px;
    }

    nav {
        flex-direction: row;
        gap: 5px;
        width: 100%;
        margin-bottom:unset;
    }

    .navmobile{
        font-size:12px;
        justify-content: space-between;
        margin-top:15px;
    }


    .app { 
        display: block;
        height: unset;
        }

    #albumList{
        display: flex;
        flex-wrap: wrap;
        }

    .album-btn {
        display: block;
        width: 21%;
    }

    .restauri{
        
    }

}



@media (min-width: 767px) {
    .navmobile{
        display: none;
    }
    .logomobile{
        display: none;
    }
}