/* ###################################################################
   Notes
   ################################################################### */


/* keep "cellspacing=0" in the table HTML markup, as CSS cellspacing is not 
   supported by older browsers. Newer browsers support border-spacing.
   
   This stylesheet works best with a Strict DOCTYPE.
   
   Links in the top navigation area should have 3 non-breaking spaces and 1 normal space between them.
   
   Difference between stylesheets for left hand menu and full page sites ...
   Change size of left and right padding in template-top, template-navigation, template-content and template-bottom (full page sites use percentage units).
   Change text-align in template-bottom. 
   Full page sites don't need tt-menu, template-menu, template-submenu, template-leftside or the whole media query that removes the left side menu. */
   
   
/* ###################################################################
   CSS Reset.
   ################################################################### */
   
   
body, html, div, img, label, a, p, h1, h2, h3, ul, ol, li, form, input, textarea, table, tr, td {
    margin: 0; 
	padding: 0; 
	border: 0;
}


/* ###################################################################
   Main code starts here..
   ################################################################### */


/* Main body class. */
body {
	font-family: Lucida Sans Unicode, Tahoma, sans-serif;     /* Tahoma for Mac, but need something better. */
	font-size: 16px;
	font-weight: normal;
	font-style: normal;
	color: #000000;
	background-color: #FFFFFF;
	margin: 0px;
}

table {
	width: 100%;
	border: 0px;
	border-spacing: 0;
	margin: 0px;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

td {
	border: 0px;
	font-family: Lucida Sans Unicode, Tahoma, sans-serif;
	font-size: 16px;
	font-weight: normal;
	font-style: normal;
	color: #000000;
	background-color: #FFFFFF;
	vertical-align: top;
	text-align: left;
}

p {
	font-size: 16px;
    line-height: 1.35;
	margin: 1em 0em;
}  

a {
	color: #001B53;
	text-decoration: underline;
	vertical-align: top;

}

a:hover {
    color: #990000; 
}


/* ###################################################################
   Text.
   ################################################################### */

   
h1 {
	font-size: 25px;
	font-weight: bold;
	margin: 0em 0em 1em 0em;
}

h2 {
	font-size: 19px;
	font-weight: bold;
	margin: 1em 0em;
}

h3 {
	font-size: 19px;
	font-weight: normal;
	margin: 1em 0em;
}

.bold-text {
	font-weight: bold;
}

.bold-colour-text {
	font-weight: bold;
	color: #990000;
}

.italic-text {
    font-style: italic;
}

.large-text {
	font-size: 19px;
	font-weight: normal;
}

.large-colour-text {
	font-size: 19px;
	font-weight: normal;
	color: #990000;
}

.large-bold-text {
	font-size: 19px;
	font-weight: bold;
}

.large-bold-colour-text {
	font-size: 19px;
	font-weight: bold;
	color: #990000;
}

.colour-text {
    color: #990000;
}
	
.site-name {
	font-size: 32px;
}

.small-text {
    font-size: 13px;
	font-weight: normal;
}

.listing {
	font-size: 19px;
	font-weight: bold;
	color: #CC6600;
	margin: 1em 0em;
}

/* When the listing class is applied to a link. */
a.listing {
	font-size: 19px;
	font-weight: bold;
	color: #001B53; 
    text-decoration: underline;
	margin: 1em 0em;
}

a.listing:hover {
	color: #990000; 
}


/* ###################################################################
   Images
   ################################################################### */
   

/* This sets a maximum width for images so they don't exceed the screen size */
img {
	height: auto;
	max-height: 100%;
	width: auto;
	max-width: 100%;
	margin: 1em 0em;
}


/* ###################################################################
   Lists
   ################################################################### */


/* Unordered lists (bulleted) */
ul {
	list-style-type: disc;
	list-style-position: inside;
	margin: 1em;
	padding: 0.25em 0em;
}

/* Ordered lists (numbered) */
ol {
	list-style-type: decimal;
    list-style-position: inside;
	margin: 1em;
	padding: 0.25em 0em;
}

/* List items */
li {
	margin: 1em 0em;   /* Sets spacing between individual list items */
}


/* ###################################################################
   Tables and cells with borders.
   ################################################################### */
   
/* Small tables have same width and max-width as a form input field.
   Medium tables have same width and max-width as a form textarea field.
   100% tables have a fixed width of 100% at all times. */


.table-borders-small {
	border: 1px solid #000000;
	border-collapse: collapse;
	border-spacing: 0;
	margin: 1.5em 0em;
	width: 40%;
}

.table-borders-medium {
	border: 1px solid #000000;
	border-collapse: collapse;
	border-spacing: 0;
	margin: 1.5em 0em;
	width: 60%;
}

.table-borders-large {
	border: 1px solid #000000;
	border-collapse: collapse;
	border-spacing: 0;
	margin: 1.5em 0em;
	width: 80%;
}

.table-borders-100pc {
	border: 1px solid #000000;
	border-collapse: collapse;
	border-spacing: 0;
	margin: 1.5em 0em;
	width: 100%;
}

.cell-borders-padding {
	border: 1px solid #000000;
	padding: 0.75em;
}

.cell-borders-padding-bgcolour {
	border: 1px solid #000000;
	padding: 0.75em;
	background-color: #E7ECEF;
}

.cell-padding {
	padding: 0.75em;
}

/* Padding to top, right and bottom only. */
.cell-paddingtrb {
	padding: 0.75em 0.75em 0.75em 0em;
}


/* ###################################################################
   Control paragraph margins in table cells.
   ################################################################### */
   
/* Keep this order to make sure first-child is given priority over last-child 
   when only one paragraph is present and the browser doesn't support only-child. */
   

/* Remove bottom margin from the last paragraph. */
/* NOTE: last-child is CSS3 and not supported in IE8 or lower. */
.cell-borders-padding p:last-child { 
	margin: 1em 0em 0em 0em;
}

/* Remove top margin from the first paragraph. */
.cell-borders-padding p:first-child { 
	margin: 0em 0em 1em 0em;
}

/* If there is only one paragraph, remove margin from all sides. */
/* NOTE: only-child is CSS3 and not supported in IE8 or lower. */
.cell-borders-padding p:only-child { 
	margin: 0em;
}

.cell-borders-padding-bgcolour p:last-child { 
	margin: 1em 0em 0em 0em;
}

.cell-borders-padding-bgcolour p:first-child { 
	margin: 0em 0em 1em 0em;
}

.cell-borders-padding-bgcolour p:only-child { 
	margin: 0em;
}

.cell-padding p:last-child { 
	margin: 1em 0em 0em 0em;
}

.cell-padding p:first-child { 
	margin: 0em 0em 1em 0em;
}

.cell-padding p:only-child { 
	margin: 0em;
}

.cell-paddingtrb p:last-child { 
	margin: 1em 0em 0em 0em;
}

.cell-paddingtrb p:first-child { 
	margin: 0em 0em 1em 0em;
}

.cell-paddingtrb p:only-child { 
	margin: 0em;
}


/* ###################################################################
   Forms
   ################################################################### */
   

form {
	width: 100%;
	padding: 1em 0em;
}

input[type='text'] {
	width: 40%;
	margin: 0px;
	border: 1px solid #000000;
	font-size: 16px;
	font-family: Lucida Sans Unicode, Tahoma, sans-serif;
	padding: 0.2em 0.4em;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

input[type='checkbox'] {
	margin: 0px;
	border: 1px solid #000000;
    width: 1.1em;
	height: 1.1em;
}

input[type='radio'] {
	margin: 0px;
	border: 1px solid #000000;
	width: 1.1em;
	height: 1.1em;
}

select {}

textarea {
	width: 60%;
	height: 16em;
	margin: 0px;
	border: 1px solid #000000;
	font-size: 16px;
    line-height: 1.35;
	font-family: Lucida Sans Unicode, Tahoma, sans-serif;
	padding: 0.4em;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

/* Reduces the width of a form textarea to the same as a standard text input and reduces height. */  
.form-textarea-small {
	width: 40%;
	height: 8em;
}

/* Increases the height of a form textarea field. The width remains the same. */ 
.form-textarea-large {
	width: 80%;
	height: 24em;
}

/* Reduces the width of a form input field.
   Note: I'm using !important to override the higher specificity of the normal input selector.
   I could write it as follows, which would override it without using !important ...    
   input[type=text].form-input-small, .form-input-small {} 
   I'm only choosing to use !important because it has universal browser support. */
.form-input-small {
	width: 20% !important;
}

input[type='submit'] {
	font-size: 40px;
	font-weight: normal;
	font-style: normal;
	color: #001B53;
	font-family: Verdana, Lucida Sans Unicode, sans-serif;
	background-color: #E3ECF9;
	padding: 0.5em;
	margin: 0em;
	border: 2px solid #001B53;
	cursor: pointer;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

input[type='submit']:hover {
	color: #990000;
}


/* ###################################################################
   Template tables, navigation and menus.
   ################################################################### */
   
/* The template classes are the main ones. They are applied to the TD within the template tables.
   The tt classes are applied to the template tables only, not the TD. */

   
.template-top {
	padding-top: 0.5em;
	padding-right: 8px;   /* Fallback */
	padding-right: 0.75vw;
	padding-bottom: 0em;
	padding-left: 8px;   /* Fallback */
	padding-left: 0.75vw;
	background-color: #CDDAE0;
}

.template-navigation {
	font-size: 25px;
	font-style: normal;
	background-color: #CDDAE0;
	padding-top: 0.5em;
	padding-right: 8px;   /* Fallback */
	padding-right: 0.75vw;
	padding-bottom: 0.5em;
	padding-left: 8px;   /* Fallback */
	padding-left: 0.75vw;
	line-height: 50px;
	font-family: Verdana, Lucida Sans Unicode, sans-serif;
}

/* The main links in the top navigation. */
.nav {
	margin-right: 20px;
}

/* The last link in the top navigation (no margin-right). */
.navlast {
}

/* The content column. */
.template-content {
	padding-top: 2em;
	padding-right: 8px;   /* Fallback */
	padding-right: 0.75vw;
	padding-bottom: 2em;
	padding-left: 0em;
}

/* The left hand menu column. The width will change based on media queries. */
.template-leftside {
	width: 270px;
	padding-top: 5.9em;
	padding-right: 0em;
	padding-bottom: 2em;
	padding-left: 0em;
}

/* The main links in the left side menu. */
.template-menu {
	font-size: 19px;
	padding-top: 0.2em;
	padding-right: 3em;
	padding-bottom: 0.2em;
	padding-left: 8px;   /* Fallback */
	padding-left: 0.75vw;
}

/* The secondary links in the left side menu. */
.template-submenu {
	font-size: 16px;
	padding-top: 0.2em;
	padding-right: 3em;
	padding-bottom: 0.2em;
	padding-left: 16px;   /* Fallback */
	padding-left: 1.5vw;
}

/* When sites have a left side menu, text is aligned to center (American spelling). */
/* When sites have no side menu, text is aligned to left (or not defined, as left is default). */
.template-bottom {
	padding-top: 0px;
	padding-right: 8px;   /* Fallback */
	padding-right: 0.75vw;
	padding-bottom: 0px;
	padding-left: 8px;   /* Fallback */
	padding-left: 0.75vw;
	text-align: center;
}

.tt-top {}

.tt-navigation {
	border-bottom-width: 5px;
	border-bottom-style: solid;
	border-bottom-color: #E1EAEC;
}

.tt-content {
	table-layout: fixed;
}

.tt-menu {}

.tt-bottom {}


/* ###################################################################
   Media Queries for LARGER screen widths (1356px or above)
   ################################################################### */
   
   
/* General settings for ALL screen widths above 1356px */
   
@media only screen and (min-width: 1356px) and (max-width: 10000px) {

body, table, td, p, .template-submenu, textarea, input[type='text'] {
	font-size: 1.25vw;
}

.large-text, .large-bold-text, .large-colour-text, .large-bold-colour-text, h2, h3, .listing, a.listing, .template-menu {
	font-size: 1.5vw;
}

.small-text {
    font-size: 1vw;
}

h1 {
	font-size: 2vw;
}

input[type='checkbox'], input[type='radio'] {
    width: 1.1em;
	height: 1.1em;
}

input[type='submit'] {
	font-size: 3.1vw;
}

.site-name {
    font-size: 2.5vw;
}

.template-navigation {
	font-size: 2vw;
}

.template-leftside {
	width: 21.2vw;
	padding-top: 5em;
}

/* A top margin of 1vw has been added to tt-menu, while at the same time reducing the template-leftside top padding from 5.9em to 5em.
   This help the template-leftside top padding scale up more accurately as screen sizes increase.
   vw units increase in size slightly faster than em units */
.tt-menu {
	margin-top: 1vw;  
}

    }


/* ###################################################################
   Media Queries for SMALLER screen widths ( 1250px or below)
   ################################################################### */
   
   
/* General text settings for ALL widths from 758px to 1250px */

@media only screen and (min-width: 758px) and (max-width: 1250px) {

body, table, td, p, .template-submenu, textarea, input[type='text'] {
	font-size: 15px;
}

.large-text, .large-bold-text, .large-colour-text, .large-bold-colour-text, h2, h3, .listing, a.listing, .template-menu {
	font-size: 18px;
}

.small-text {
    font-size: 12px;
}

h1 {
	font-size: 24px;
}
	
    }
	
	
/* General text settings for ALL widths from 1px to 757px */

@media only screen and (min-width: 1px) and (max-width: 757px) {

body, table, td, p, textarea, input[type='text'] {
	font-size: 14px;
}

.large-text, .large-bold-text, .large-colour-text, .large-bold-colour-text, h2, h3, .listing, a.listing {
	font-size: 17px;
}

.small-text {
    font-size: 11px;
}

h1 {
	font-size: 23px;
}

    }

	
/* General settings for ALL widths BELOW 1014px (removes the left side menu) */

@media only screen and (min-width: 1px) and (max-width: 1013px) {

.template-leftside {
	width: 0px;
	padding: 0px;
    overflow-x: hidden;
    overflow-y: hidden;
}

.template-top, .template-navigation, .template-content, .template-bottom {
	padding-right: 5%;
	padding-left: 5%;
}

.template-bottom {
	text-align: left;
}
    }
	
	
/* 1014px width up to 1250px */

@media only screen and (min-width: 1014px) and (max-width: 1250px) {

.template-leftside {
	width: 250px;
}

.template-navigation {
	font-size: 22px;
}

.nav {
	margin-right: 10px;
}

input[type='submit'] {
	font-size: 36px;
}
	
    }

	
/* 758px width up to 1013px */

@media only screen and (min-width: 758px) and (max-width: 1013px) {

.template-navigation {
	font-size: 20px;
}

.nav {
	margin-right: 0px;
}

input[type='text'], .table-borders-small, .form-textarea-small {
	width: 50%;
}

textarea, .table-borders-medium {
	width: 70%;
}

.table-borders-large, .form-textarea-large {
	width: 90%;
}

.form-input-small {
	width: 25% !important;
}

input[type='submit'] {
	font-size: 36px;
}
	
    }

	
/* 470px up to 757px */

@media only screen and (min-width: 470px) and (max-width: 757px) {

.site-name {
    font-size: 26px;
}

.template-navigation {
	font-size: 19px;
}

.nav {
	margin-right: 0px;
}

input[type='text'], .table-borders-small, .form-textarea-small {
	width: 65%;
}

textarea, .table-borders-medium {
	width: 85%;
}

.table-borders-large, .form-textarea-large {
	width: 100%;
}

.form-input-small {
	width: 35% !important;
}

input[type='submit'] {
	font-size: 32px;
}

    }

	
/* 350px up to 469px */

@media only screen and (min-width: 350px) and (max-width: 469px) {

.site-name {
    font-size: 24px;
}

.template-navigation {
	font-size: 19px;
}

.nav {
	margin-right: 0px;
}

input[type='text'], .table-borders-small, .form-textarea-small {
	width: 80%;
}

textarea, .form-textarea-large, .table-borders-medium, .table-borders-large {
	width: 100%;
}

.form-input-small {
	width: 50% !important;
}

input[type='submit'] {
	font-size: 28px;
}

    }


/* BELOW 350px */

@media only screen and (min-width: 1px) and (max-width: 349px) {

.site-name {
    font-size: 20px;
}

.template-navigation {
	font-size: 19px;
}

.nav {
	margin-right: 0px;
}

input[type='text'], textarea, .form-textarea-small, .form-textarea-large, .table-borders-small, .table-borders-medium, .table-borders-large {
	width: 100%;
}

.form-input-small {
	width: 60% !important;
}

input[type='submit'] {
	font-size: 24px;   /* Fallback */
	font-size: 8vw;
	width: 100%;
}

    }
