/* --- Reset and Global Variables --- */
:root {
    --bg-color: #ffffff;
    --text-main: #333333;
    --text-muted: #aaa69b;
    --text-credits: #999999;
    --accent-color: #B30909;
    --border-color: #cccccc;
    --border-light: #eeeeee;
    
    --font-sans: "Helvetica", "MS sans-serif", sans-serif;
    --font-serif: Georgia, serif;
    --font-body: Calibri, sans-serif;
}

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

html {
    font-size: 100%;
    border-top: 1em solid var(--text-main);
}

body {
    max-width: 70em;
    width: 85%;
    margin: 2em auto;
    padding: 1em 0 0 0;
    background-color: var(--bg-color); 
    font-family: var(--font-body);
    font-size: 1em;
    color: var(--text-main);
}

h2 {
    font-size: 1.2em;
    margin-bottom: 0.5em;
    color: black;
    font-family: var(--font-serif);
}

#content ul.no-margin-left {
    margin-left: 0;
}

/* --- Layout Structure (Modern Flexbox) --- */
#wrap { 
    background-color: var(--bg-color); 
    color: var(--text-main); 
    display: flex;
    flex-direction: row; /* Sideways layout on desktop */
    align-items: flex-start;
}

/* --- Left Sidebar (Menu & Site Title) --- */
#menu { 
    flex: 0 0 14em;
    padding: 0 1.5em 1.5em 0; 
    border-right: 0.1em dotted var(--border-color); 
}

#menu h1 {  
    line-height: 1.1em; 
    font-family: var(--font-serif); 
    font-size: 2.3em; 
    margin: 0 0 1em 0;  
}

#menu h1 a { 
    color: black; 
    text-decoration: none;
}

#menu ul { 
    list-style-type: none; 
}

#menu ul li a { 
    display: block;
    line-height: 2em; 
    font-family: var(--font-serif); 
    font-size: 1.2em;   
    color: var(--text-muted); 
    font-weight: bold;
    text-decoration: none;
}

#menu ul li a:hover { 
    color: var(--text-main); 
}

#menu ul li:active a { 
    color: var(--text-muted); 
}

#menu .textbox {
    font-size: 1.2em; 
    padding-top: 3em; 
    line-height: 1.5em;
}

/* --- Right Content Window --- */
#content { 
    flex: 1;
    font-family: var(--font-sans);
    font-size: 1em; 
    line-height: 1.7em; 
    padding: 0 1em 1em 3em; 
} 

#content h1 { 
    font-family: var(--font-serif);  
    line-height: 1.5em; 
    margin-bottom: 0.8em; 
}

#content p {
    margin-bottom: 1em;
}

#content hr { 
    border: 0; 
    border-bottom: 0.2em dotted var(--border-light); 
    margin: 0.5em 0 1.3em 0;
}

#content ul { 
    margin-left: 1.5em; 
    margin-bottom: 2em;
}

#content ul ul {
    margin-left: 1.5em;
    margin-bottom: 0em;
}

#content ul ul a {
    font-weight: normal;
}

#content ul li { 
    margin-bottom: 0.2em; /* Slightly roomier list tracking */
}

#content p + ul { 
    margin-top: -0.5em;
}

/* --- Typography & Global Elements --- */
a {
    font-family: var(--font-serif);
    color: var(--accent-color);  
    font-weight: bold;
    text-decoration: none;
}

strong { 
    font-family: var(--font-serif); 
}

span.date {
    font-size:0.9em;
    color:#666;
    margin-bottom: 0.1em;
}

/* --- Specific Academic Output Context Rules --- */
#content ul li.publication:not(:has(ul)) a {
    color: var(--accent-color);
    border-bottom: 0.15em transparent solid; /* Slightly scaled line balance */
    transition: border-bottom 0.2s ease, color 0.2s ease;
}

#content ul li.publication:not(:has(ul)):hover a {
    border-bottom: 0.15em var(--accent-color) dotted;
}

#content ul li.publication:not(:has(ul)):hover a:hover {
    border-bottom: 0.15em var(--accent-color) solid;
}

/* --- Specific Academic Output Context Rules --- */
#content li.publication ul a {
    color: var(--accent-color);
    border-bottom: 0.15em transparent solid; /* Slightly scaled line balance */
    transition: border-bottom 0.2s ease, color 0.2s ease;
}

#content li.publication ul:hover a {
    border-bottom: 0.15em var(--accent-color) dotted;
}

#content li.publication ul:hover a:hover {
    border-bottom: 0.15em var(--accent-color) solid;
}


#content p:hover a {
    border-bottom: 0.15em #666 dotted;
}

#content p:hover a:hover {
    color: var(--accent-color); /* Added pop of accent on active hover */
    border-bottom: 0.15em var(--accent-color) solid;
}

/* --- Miscellaneous Elements --- */
#logos { margin-top: 2.75em; }
#content img.logo { margin-top: 2em; margin-bottom: 0.2em; }
#front { margin-bottom: 2em; }
#front img { max-width: 100%; height: auto; width: 16em; } /* Responsive protection */
#credits { font-family: Verdana, sans-serif; line-height: 1.5em; font-size: .7em; margin-top: 3.0em; color: var(--text-credits); }

/* --- No-menu layout (hidden sections) --- */
body.no-menu #content {
    padding-left: 0;
}
@media (max-width: 48em) {
    body {
        width: 90%;
        margin: 1em auto;
        padding: 0; /* Remove top padding on mobile */
    }
    
    #wrap {
        flex-direction: column;
    }
    
    #menu {
        flex: 0 0 auto; /* Stop it from growing to fill space */
        width: 100%;
        border-right: none;
        border-bottom: 0.1em dotted var(--border-color);
        padding: 1em 0; /* Reduced vertical padding */
        margin-bottom: 1em; /* Reduced margin */
    }

    #menu h1 {
        margin: 0 0 0.5em 0; /* Tighten up title spacing */
        font-size: 2em; /* Slightly smaller on mobile */
    }
    
    #menu ul {
        display: flex;
        flex-wrap: wrap;
        gap: 0.2em 1em; /* Tighter gap */
    }

	#menu ul li a {
		line-height: 0em;
	}
    
    #content {
        padding: 1em 0; /* Ensure content is visible */
    }
}
