html
{
    font-family: Georgia, "Times New Roman", serif;
    font-size: 16px;
}

body
{
    background: #cff;
    padding: 0;
    margin: 0;
    line-height: 1.25;
}

body *
{
    box-sizing: border-box;
}

header
{
    background: #009faa;
    padding: 0 1rem;
    position: relative;
    width: 100%;
}

header form.search
{
    position: absolute;
    right: 1rem;
    top: 1rem;
    padding: 0;
    margin: 0;
    border: none;
}

header form.search input
{
    max-width: 25vw;
}

header p.header
{
    font-weight: bold;
    font-style: italic;
    color: white;
    margin: 0 1rem;
    padding: 0.5rem 0 0.5rem 0;
    text-align: center;
    font-size: 2rem;
}

header p.header img
{
    max-height: 1em;
}

header ul
{
    list-style: none;
    padding: 0;
    margin: 0 1rem;
    display: flex;
    text-align: center;
    justify-content: space-between;
}

header ul li
{
    margin: 1rem;
    font-style: italic;
    font-size: 1rem;
    width: 6rem;
}

header ul li img
{
    height: 4rem;
    display: block;
    margin: 0 auto 0.5rem auto;
    transform: scale(100%, 100%);
    filter: none;
    transition: all 0.25s ease-in-out;
}

header ul li:hover img
{
    transform: scale(125%, 125%) rotate(10deg);
    filter: drop-shadow(2px 2px 4px white);
}

header h1
{
    color: white;
    text-align: center;
    font-size: 1.5rem;
    margin: 0;
    padding: 0.5rem 1rem 1rem 1rem;
}

p.onbreak
{
    background: #8bfcfb; 
    color: black; 
    text-align: center; 
    border-bottom: solid 0.5rem #009faa;
    padding: 0.5rem 2rem;
    margin: 0;
}

@media (max-width: 799.98px)
{
    header p.header
    {
        font-size: 1.5rem;
        text-align: left;
    }

    header ul
    {
        justify-content: center;
    }

    header ul li
    {
        margin: 0.5rem 1rem;
        font-size: 0.7rem;
        white-space: nowrap;
    }

    header ul li img
    {
        height: 2.5rem;
        margin-bottom: 0;
    }

    header h1
    {
    }

    header form.search input
    {
        max-width: 25vw;
        font-size: smaller;
    }
}

main
{
    padding: 2rem;
}

main a
{
    color: #009faa;
}

main article
{
    clear: right;
    padding: 0 0 0.5rem 0;
    border-top: solid 1px silver;
}

main article aside
{
    float: right;
    margin: 0 0 0 2rem;
    display: block;
    text-align: center;
}

main article aside img
{
    display: block;
    margin: 1rem 0 1rem 0;
}

main .update
{
    color: maroon;
    font-weight: bold;
}
@media (max-width: 639.98px) {
    #porthole
    {
        text-align: center;
    }

    #porthole img
    {
        max-height: 120px;
    }

    #porthole p.name
    {
        font-size: 200%;
        margin: 0;
    }

    #porthole p.role
    {
        font-size: 125%;
        margin: 0;
    }
}

@media (min-width: 640px) {
    #main main
    {
        background: url(/s/map.jpg) no-repeat center center transparent;
        background-size: auto auto;
    }

    #porthole
    {
        background: url(/s/porthole.png) no-repeat left top transparent;
        background-size: contain;
        width: calc(670px * 3 / 4);
        height: calc(680px * 3 / 4);
        padding: 40px 60px;
        text-align: center;
        margin: 0 auto;
    }

    #porthole img
    {
        max-height: 70px;
        padding: 0;
        margin: 0;
    }

    #porthole h1
    {
        padding: 0 10px;
        margin: 0;
        font-size: 1.25rem;
    }

    #porthole p.name
    {
        font-size: 200%;
        margin: 0;
    }

    #porthole p.role
    {
        font-size: 125%;
        margin: 0;
    }
}

.lightbox
{
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    height: 100%;
    max-height: 80vh;
    max-width: 80vw;
}

footer
{
    clear: both;
    background: #009faa;
    padding: 1rem 2rem;
    display: flex;
    justify-content: space-between;
    align-items: start;
}

footer a
{
    color: white;
}

footer address
{
    font-style: normal;
    margin: 0 0 1rem 0;
}

footer p
{
    margin: 0 2rem 1rem 0;
}

footer aside
{
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

footer aside img
{
    max-height: 6rem;
}

footer aside p
{
    width: 100%;
    color: silver;
    font-size: 75%;
    text-align: right;
    margin: 0;
}
@media (max-width: 799.98px)
{
    footer
    {
        flex-wrap: wrap;
    }
}
form
{
    max-width: 50rem;
    margin: 2rem auto;
    border: solid 1px silver;
    box-shadow: 2px 2px 4px black;
    padding: 1rem 2rem 2rem;
    background: #009faa;
    color: white;
}

form h1
{
    margin: 0 0 0.5rem 0;
    padding: 0;
    text-align: center;
}
form label
{
    margin: 0.5rem 0;
    display: block;
}

form label span
{
    font-size: 0.8rem;
    display: block;
}

form input, form textarea, form select
{
    max-width: 100%;
    min-width: 100%;
    font-size: 1.25rem;
}

form textarea
{
    height: 6rem;
    min-height: 4rem;
}

form input[type="submit"]
{
    padding: 0.5rem;
    margin: 1rem auto 0;
}

table.order
{
    margin: 0 auto 2rem auto
}

table.order td
{
    vertical-align: top;
    padding: 0.25rem 1rem;
}

table.order .price
{
    text-align: right;
}


aside.popup {
    position: fixed;
    top: 33%;
    left: 50%;
    transform: translate(-50%,-50%);
    background: white;
    padding: 1rem 2rem;
    border: solid 1px grey;
    box-shadow: 4px 4px 8px black;
    width: 80%;
    max-width: 30rem;
}

