* { box-sizing: border-box; }

.left_image {
    width: 50%;
    margin: 1em;
    float: left;
}
.right_image {
    width: 50%;
    margin: 1em;
    float: left;
}

html, body {
    height: 100vh; 
    max-height: 100vh;
    width: 100vw; 
    max-width: 100vw;
    margin: 0; 
    padding: 0;
}
body {
    display: flex; 
    flex-direction: column;
    background: var(--color-bg);
    font-family: 'Inter', 'Segoe UI', 'Roboto', Arial, sans-serif;
    color: var(--theme-bg);
    background: var(--theme-page-bg);
}
header, nav, footer, main { 
    width: 100%; 
    max-width: 100%; 
    min-width: 100%; 
}
header, nav, footer { 
    flex: 0 0 auto; 
    padding: 0.5rem; 
}
main {
    flex: 1; 
    display: flex; 
    flex-flow: row wrap;
    justify-content: space-evenly;
    position: relative; 
    width: 100%; 
    min-height: 0; 
    overflow-y: auto;
}
h3 {
    width: 100%; 
    padding: 1ex; 
    text-align: center;
    font-size: x-large; 
    font-variant: small-caps;
    color: var(--theme-bg_accent);
}

/* 
 *                              Navigation 
 */

nav {
    color: var(--theme-fg);
    background: linear-gradient(
        90deg, 
        var(--theme-bg_accent) 0%, 
        var(--theme-bg) 100%
    ); 
    box-shadow: 20px 20px 30px 0px rgba(0,0,0,0.75);
    border-radius: 0 0 16px 16px;
    padding: 0 1ex;
    align-items: center; 
}

nav ul {
    padding: 0;
    margin: 0;
    list-style: none;
}
nav a {
    text-decoration: none;
    color: var(--theme-fg);
    display: block;
    width: 100%;
    padding: 1ex;
}

nav > ul {
    display: flex;
    width: 100%;
    height: 100%;
}

nav > ul > li {
    flex: 1;
    text-align: center; 
    position: relative; 
    padding: 10px 0; 
    color: var(--theme-fg);
    &:hover {
        color: var(--theme-fg_accent);
    }
}

/* Second Level: Hidden by default, absolute positioning */
nav > ul > li > ul {
    color: var(--theme-fg);
    border-radius: 8px;
    padding: 0;
    text-align: left;
    visibility: hidden;
    opacity: 0;
    transition: visibility 0.5s, opacity 0.5s ease-in-out;
    position: absolute;
    top: 102%; /* Positions the dropdown immediately below the parent */
    left: 0;
    width: 100%; 
    background: var(--theme-bg);
    z-index: 1000;
}

nav > ul > li > ul > li {
    &:hover {
        background: var(--theme-bg_accent);
        color: var(--theme-fg_accent);
        border-radius: 8px;
    }
}


/* Show Second Level on Hover */
nav > ul > li:hover > ul {
    visibility: visible;
    opacity: 0.9;
}


/*
 *                               Header 
 */

header {
    width: 100%;
    background: linear-gradient(
        90deg, 
        var(--theme-bg_accent) 0%, 
        var(--theme-bg) 100%
    );
    color: var(--theme-fg);
    text-align: center; 
    font-weight: 700;
    font-size: clamp(1.0rem, 3.2vw + 0.2rem, 2.3rem);
    font-family: 'Montserrat', 'Verdana', 'Geneva', sans-serif;
    letter-spacing: 2px; padding: 0;
    font-variant: small-caps; 
    flex-shrink: 0; 
    flex-grow: 0;
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis;
    position: relative;   
    /* display: flex; 
    align-items: center; 
    justify-content: center; */
}

header > h1 { font-size: inherit; }
    
    /* logo */

header > img {
    height: clamp(22px, 1.5em, 44px); 
    width: auto;
    position: absolute; 
    left: clamp(6px,2vw,16px); 
    top: 50%; 
    transform: translateY(-50%);
}


    /* Login widget */

#login {
    position: absolute; 
    right: clamp(6px,2vw,16px); 
    top: 50%; 
    transform: translateY(-50%);
    display: flex; 
    align-items: center; 
    gap: 10px;
}
#login > a {
    padding: clamp(6px,1vh,8px) clamp(12px,2vw,16px);
    border-radius: 4px; 
    text-decoration: none;
    font-size: clamp(0.75rem,1.8vw,0.9rem); 
    transition: background 0.3s; 
    white-space: nowrap;
    color: var(--theme-fg);
    background: var(--theme-bg_muted);
    &:hover {
        color: var(--theme-fg_accent);
        background: var(--theme-bg_accent);
    }
}

.centered {
    position: absolute; bottom: 50%; left: 50%; transform: translate(-50%, 50%);
    color: #fff; font-size: 30px; font-family: serif; font-weight: bolder;
}
section {
    width: 100%;
    margin: 1.5rem;
}
section.dark { 
    background: var(--theme-bg);
    color: var(--theme-fg);
    border-radius: 8px;
}
section.dark a {
    color: var(--theme-fg_accent);
    &:visited {
        color: var(--theme-fg_muted);
    }
}
p {
    padding: 0.5rem;
    text-align: justify;
}
