* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/*     Fonts       */

@font-face {
    font-family: notosansreg;
    src: url(../fonts/notosansreg.ttf);
}

@font-face {
    font-family: comfortaa;
    src: url(../fonts/comfortaa.ttf);
}

@font-face {
    font-family: fortuna;
    src: url(../fonts/fortunaschwein.ttf);
}

@font-face {
    font-family: nunito;
    src: url(../fonts/nunito.ttf);
}

@font-face {
    font-family: cormorant;
    src: url(../fonts/cormorant-reg.ttf);
}



/*       Main content       */

body {
    background-image: url("../images/bg-general3.png");
    background-repeat: no-repeat;
    background-position: center top;
    color: rgb(15,15,15);
    font-family: 'cormorant', serif;
    font-weight: 500;
    font-size: 1.2rem;
    font-style: normal;
    width: 100%;
}

@media screen and (min-width: 700px) {
    body {
        display: flex;
        flex-direction: column;

        align-items: center;
    }
}

h2, h3 {
    clear: both;
    font-family: 'fortuna', sans-serif;
    font-size: 24pt;
    font-weight: normal;
}

h2 { 
    margin: 0;
    padding: 0;
    text-align: center; 
    font-size: 2rem;
}

h3 {
    text-align: center;
    font-size: 18pt;
    margin: 20px 0 0 20px;
    padding: 5px 0;
}

h4 {
    padding: 10px 0;
    font-size: 1.25rem;
}

p {
    padding: 1rem;
    text-align: center;
    font-size: 0.9rem;
}

a {
    color: #000;
    text-decoration: none;
}

a:hover, a:active {
    font-weight: bold;
}





/* --- HEADER --- */

.hero { width: 100%; }

@media screen and (min-width: 700px) {
    .hero { max-width: 700px; }

    header { text-align: center; }
    
    #header-wrapper {
        grid-area: header-area;
        max-width: 1000px;
    }
}




/* --- MAIN --- */

#container {
    background-color: rgba(255,255,255, 0.6);
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
    min-width: 350px;
    margin-bottom: 30px;
    width: 100%;
}

@media screen and (min-width: 700px) {
    #container { width: 100%; }
}

#container p { font-size: 1.25rem; }

.about-text { 
    margin: 0 auto;
    padding: 30px;
    max-width: 1000px; 
}

#controls {
    display: flex;
    flex-direction: column;
    justify-items: center;
    margin: 20px auto;
    text-align: center;
    width: -moz-fit-content;
    width: fit-content;
}

@media screen and (min-width: 600px) {
    #controls {  flex-direction: row; }
}

#controls ul {
    display: flex;
    flex-direction: row;
    justify-items: center;
    list-style: none;
    width: -moz-fit-content;
    width: fit-content;
}

#controls ul li {
    margin: 2px 0;
    padding: 0 5px;
}

.sort-divider { display: none; }

@media screen and (min-width: 600px) {
    .sort-divider {  display: block; }
}

.control:hover {
    cursor: pointer;
    font-weight: 800;
}

#sortbyyear, #showoriginal {
    border-right: 1px solid gray;
}

#lib-wrapper { 
    padding: 30px; 
    border-bottom: 1px solid lightgray;
}

#library {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: 15px;
    margin: 0 auto;
}

.photo-card { 
    text-align: center;
    width: 100%;
    min-width: 250px;
}

@media screen and (min-width: 600px) {
    .photo-card {  width: 47%; }
}

@media screen and (min-width: 800px) {
    .photo-card {  width: 32%; }
}

.photo-card:hover { cursor: pointer; }

.thumb {
    margin: 0 auto;
    aspect-ratio: 16 / 9;
    background-size: 100%;
    background-position: center center;
    background-repeat: no-repeat;
    border: 1px solid lightgray;
    max-width: 400px;
    transition: background-size 0.5s;
}

.thumb:hover {
    background-size: 125%;
}

.title { 
    padding-top: 10px;
    font-size: 1.5rem; 
}

.date, .view {
    padding: 5px;
    font-size: 1.3rem;
    font-weight: 500;
}

.view { font-size: 1.1rem; }

/* -- ITEMS -- */

#main-info {
    display: flex; 
    flex-direction: column;  
    align-items: center;
    padding-bottom: 30px;
}

#info {
    line-height: 1.8; 
    width: 100%;
}

@media screen and (min-width: 700px) {
    #info {
        line-height: 1.8; 
        width: 700px;
    }
}


#image img {
    border: 1px solid lightgray;
    width: 100%;
    max-width: 700px;
}

#title h4 {
    font-weight: 400;
    font-size: 1.7rem;
    padding: 0;
    margin-bottom: 0;
}

#tabs {
    display: flex;
    flex-direction: row;
    gap: 10px;
}

.tab {
    border: 1px solid lightgray;
    padding: 10px;
    font-size: 1rem;
    width: -moz-fit-content;
    width: fit-content;
}

.open {
    position: relative;
    z-index: 3;
    background-color: white;
    border-bottom-color: white;
}

.closed {
    cursor: pointer;
    position: relative;
    z-index: 1;
}

#description-tab {
    background-color: white;
    margin-left: 40px;
}

#source-tab { background-color: white; }

#description-page {
    display: flex;
    flex-direction: column;
}

#source-page {
    display: none;
    flex-direction: column;
}

#other-page {
    display: none;
    flex-direction: column;
}

.page {
    position: relative;
    z-index: 2;
    background-color: #FFF;
    margin-top: -2px;
    border: 1px solid lightgray;
    padding: 20px;
}

.info-block { padding-bottom: 15px; }

h5 {
    padding-bottom: 5px;
    font-size: 1.3rem;
    font-weight: 600;
}

ul { margin-left: 20px; }

li { padding: 5px; }

#other-versions {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
}

ul#other-versions { 
    margin-left: -5px;
    list-style: none;
}

.other-image {
    cursor: pointer;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    margin-right: 20px;
    margin-bottom: 20px;
    width: 100%;
}

@media screen and (min-width: 550px) {
    .other-image { width: 45%; }
}

@media screen and (min-width: 700px) {
    .other-image { width: 30%; }
}

.other-image img { width: 100%; }

/* FOOTER */
#footer-links {
    display: flex;
    list-style: none;
}

#footer-links li {
    margin-bottom: 30px;
    border-right: 1px solid gray;
    padding: 0 30px;
}

#footer-links li:last-child {
    border-right: 0;
    padding: 0 30px;
}