/* 
 * Set up general fonts, sizes and colors 
 */
body { font-family : Arial, sans-serif; }

H1, H2, H3, H4, p, a { color : #4D4D4D; }

.intro-header H1 {
 font-size : 16pt;
 font-weight : normal;
 color : #E5E5E5;
}

h2 {
 font-size : 13pt;
 font-weight : normal;
 color : #7B8694;
}
/* For regular div labels */
H4 .div-label {
 font-size : 10pt;
 font-weight : bold;
}

/* For the main page content's title */
#content-header H4 .div-label {
 font-size : 14pt;
 font-weight : normal;
 color : #8C96A2;
 float : none;
 clear : both;
}

.page-description { 
 font-size : 10pt;
 float : none;
 clear : both;
}

a {
 font-weight : bold;
 text-decoration : none;
 color : #4D4D4D;
}

a .link-label {
 font-size : 10pt;
 font-weight : normal;
}

#navigation-links a .link-label {
 font-size : 9pt;
 font-weight : normal;
 color : #E5E5E5;
}

a .text {
 font-size : 8pt;
 font-weight : normal;
}

p .group-description {
 font-size : 10pt;
 font-weight : normal;
}


/* 
 * Set up other general properties like padding/margins
 */
html, body { width : 100%; height : 100%; }

html, body, div, h1, h4, p, a { margin : 0px; padding : 0px; }

.intro-header H1 { padding-top : 10px; margin-left : 10px; }

/* For regular div labels */
#page-content div H4 {
 padding : 10px;
 padding-bottom : 0px;
}

/* For the main page content's div label */
#page-content #content-header H4 {
 padding-bottom : 10px;
 padding-top : 0px;
}

/* special case for Mozilla's main content-header label.
   Mozilla 1.4 needs more room at the top */
#page-content > #content-header H4 { padding-top : 10px; }

/* Needed in IE to get shift+tab to show the active image properly */
a:active {
 border : solid 0px;
}

a img {
 border-width : 0;
 background-repeat : no-repeat;
}

/*
 * to get scrollbars working in both IE and Mozilla
 */
html,body { overflow: auto; }
html>body { overflow: visible; }

/*
 * Set up the body, decorative background, and navigation for the content 
 * pages. 
 * Note: the root page handles its own background and navigation; these
 * settings primarily apply to the content pages
 */
body {
 background-color : #FFFFFF;
 background-repeat : no-repeat;
 background-position : bottom right;
}



.intro-header { background-color : transparent; z-index : 100;}

body, .page{
 min-width : 770px;
 /* since IE doesn't support min-width, try expression */
 width:expression(document.body.clientWidth < 770? "770px": "auto" );
 min-height : 425px;
 height : 100%;
 height : expression(document.body.clientHeight < 425? "425px": "100%" );
}

.page { 
 background-image : url(graphics/contentpage/wordmark.gif);
 background-repeat : no-repeat;
 background-position : bottom left;
 min-height : 475px;
}

#page-content {
 background-repeat : no-repeat;
 background-position : bottom right;
 height : 70%;
}

/* 
 * Lay out the navigation links 
 * (Root page does something similar for its navigation)
 */
#navigation-links {
 position : relative;
 left : 10px;
 top : 5px;
 height : 60;
 width : 98%;
}

#navigation-links a {
 padding-left : 5px;
 padding-right : 5px;
 float : left;
 text-align : center;
}

#navigation-links a img {
 height : 52px;
 width : 52px;
 vertical-align : middle;
}

#navigation-links a .link-label { display : block; margin-top : 5px;}

#navigation-links a .text { display : none; }

#navigation-links a:hover, 
#navigation-links a:focus 
#navigation-links a:active { border-right : 0px;}


#navigation-links a#workbench { position : absolute;  right : 0px; top : -35px; text-align : right;}
#navigation-links a#workbench .text { display : none; }
#navigation-links a#workbench img { background-image : url(graphics/icons/etool/wb48.gif); width : 53px; height : 53px;}
#navigation-links a#workbench:hover img,
#navigation-links a#workbench:focus img,
#navigation-links a#workbench:active img { background-image : url(graphics/icons/ctool/wb48.gif); }

/* 
 * Lay out the page title and description 
 */
h1, p { margin-left : 10px; } /* required in mozilla so the page description is properly indented */

/* position the page content so that the page title overlays the bottom
 * of the background image, but make sure the content is always on top 
 * (using z-index) */
#page-content {
 float : none;
 clear : both;
 text-align : center;
 margin-top : 35px;
}

.page > #page-content { margin-top : 50px; }

#page-content p { 
 padding-bottom : 15px; 
 text-align : left; 
 float : none;
 clear : both;
}

#page-content #content-header H4, .page-description {
 text-align : left;
 margin-right : 10px;
 float : none;
 clear : both;
}
