/*
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.   
*/
#nav-bar {font-family: 'Overlock', Helvetica, Arial,'Liberation Sans', FreeSans, sans-serif;}
#nav-bar li li:hover {background-color:WhiteSmoke;}
#nav-bar li {
	padding-left: 1em;
	transition: background-color 0.1s; 
	-moz-transition: background-color 0.1s;
    -webkit-transition: background-color 0.1s;
    -o-transition: background-color 0.1s; 
    list-style-type:none; 
    text-shadow:1px 1px 1px LightSteelBlue;}
#nav-bar li li a {font-size: 1.2em;}
#page {font-family: 'Overlock', Helvetica, Arial,'Liberation Sans', FreeSans, sans-serif;}
#copyright {
    font-family: "Mate SC", "Lucida Console", Monaco, monospace;
    font-size: 9pt;
    padding: 5px 10px;
    text-align: justify;
    border: thin solid #D0D0D0;
    background-color: #F8F8F8;
    color: #404040;
}