/*
 * Core styles for all pages
 */

html
{
    background-color: white;
    color: black;
    line-height: 1.5em;
}

h1, h2
{
    text-align: center;
    background-color: black;
    color: white;
    margin: 0 0 0.5em 0;
    padding: 0.5em;
}

header h1
{
    -moz-border-radius-topleft: 20px;
    -moz-border-radius-topright: 20px;
    -webkit-border-top-left-radius: 20px;
    -webkit-border-top-right-radius: 20px;
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;    
    margin-bottom: 0;
}

header h1:last-child, header h2:last-child
{
    margin-bottom: 0.5em;
}

nav > h1, section > h1, article > h1 /* for older browsers */
{
    font-size: 150%;
}

ul
{
    margin-bottom: 0;
}

li
{
    padding-bottom: 1em;
    padding-right: 1em;
}

p
{
    padding-left: 1em;
    padding-right: 1em;
}

body > nav
{
    text-align: center;
}

body > nav ul
{
    padding: 0;
}

body > nav li
{
    padding-left: 1em;
    padding-right: 1em;
}

body > nav a
{
    font-weight: bold;
    text-decoration: none;
}

body > nav a:link, body > nav a:visited
{
    color: blue;
}

body > nav a[href="#"]
{
    color: #ccc;
}
 
footer
{
    border-top: 1px solid black;
}

footer p:not(:last-child)
{
    margin-bottom: 0;
}

footer p:not(:first-child)
{
    margin-top: 0;
}

#ie
{
    color: red;
}

#ie p
{
    text-align: center;
    padding: 0 1em;
}

#ie a
{
    text-decoration: none;
}

/*
 * Core styles for home page
 */

#contact table
{
    margin: 0 1em;
}

#contact th
{
    vertical-align: top;
    text-align: left;
    min-width: 35%;
}

#contact td
{
    vertical-align: bottom;
    text-align: left; 
}

#contact [itemprop="address"] span
{
    display: block;
}


#contact #social a
{
    text-decoration: none;
}

#contact #social img
{
    max-width: 100%;
}

#photo img
{
    max-width: 100%;
    display: block;
    padding-bottom: 1em;
    margin-left: auto;
    margin-right: auto;
}

/* 
 * Core styles for module teaching resources
 */
 
.module
{
    /* margin-left: auto;
    margin-right: auto; */
    border-collapse: collapse;
    margin-bottom: 1em;
}

.module th, .module td 
{
    padding: 0.5em;
    border: 0.25em solid white;
}
 
.module th
{
    color: white;
    background-color: black;
}

.module .desc
{
    background-color: #55BB2F;
    font-style: italic;
}
    
.module .res
{
    background-color: #00FA9A;
}

.module .lab
{
    background-color: #44BB88;
}


/*
 * Small screen styles for all pages (over-ridden below)
 */
 
body
 {
    margin: 10px;
    border: 1px solid black;
    -moz-border-radius: 20px;
    -webkit-border-radius: 20px;
    border-radius: 20px;
 }
 
 main {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center; /* space-between;*/
}
    
main > * { /* for pages other than home page */
    flex-basis: 100%
}
 
.module
{
    font-size: 75%;
    flex-basis: auto;
}
 
/*
 * Larger screen styles
 */
  
@media screen and (min-width: 780px)
{
    /*
     * for all pages
     */
 
    body
    {
        width: 85%;
        margin-left: 10%;
    }
    
    body > nav    
    {
        width: 28em;
        -moz-border-radius-topright: 20px;
        -moz-border-radius-bottomright: 20px;
        -webkit-border-top-right-radius: 20px;
        -webkit-border-bottom-right-radius: 20px;
        border-top-right-radius: 20px;
        border-bottom-right-radius: 20px;
        position: fixed;
        top: 6em;
        left: -28em;
        background-color: #FFFF99;
    }
    
    body > nav:hover
    {
        left: 0;
        -moz-box-shadow: 10px 10px 10px #ccc;
        -webkit-box-shadow: 10px 10px 10px #ccc;
        box-shadow: 10px 10px 10px #ccc;
    }
    
    body > nav h1 
    {
        width: 8em;
        -webkit-transform: rotate(-90deg);
        -moz-transform: rotate(-90deg);
        filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=4);
        -ms-transform: rotate(-90deg);
        -o-transform: rotate(-90deg); 
        transform: rotate(-90deg);    
        position: absolute;
        top: 6em;
        margin-left: 14.8em;
        color: #ccc;
        background-color: #FFFF99;
        -moz-box-shadow: -10px 10px 10px #ccc;
        -webkit-box-shadow: -10px 10px 10px #ccc;
        box-shadow: -10px 10px 10px #ccc;
        -moz-border-radius-bottomleft: 20px;
        -moz-border-radius-bottomright: 20px;
        -webkit-border-bottom-left-radius: 20px;
        -webkit-border-bottom-right-radius: 20px;
        border-bottom-left-radius: 20px;
        border-bottom-right-radius: 20px;
    }
    
    /*
     * for home page
     */
     
    
    #links, #contact, #photo, #bio {
        flex-basis: 49.8%;
    }
    
    #links, #bio {
        border-left: 1px solid black;
    }
    
    #contact, #photo {
        border-right: 1px solid black;
    }
    
    /*
     * for modules
     */
    .module
    {
        font-size: 100%;
    }
}

/*
 * Too large screen sizes
 */

@media screen and (min-width: 1100px)
{
    body
    {
        width: 1000px;
        margin-left: 100px;
    }
}

@media print
{
    body
    {
        font-family: Baskerville, "Times New Roman", Times, serif;
    }
    
    h1, h2
    {
        font-family: Baskerville, Times, "Times New Roman", serif;
        color: black;
        background-color: white;
    }
    
    body > nav
    {
        display: none;
    }
    
    .module th, .module td
    {
        border: 1px solid black;
        color: black;
        background-color: white;
    }
    
    
    
}
