/* Base variables and resets */
:root {
	--primary-color: #003399;
	--secondary-color: #8888DD;
	--text-color: #2c2c2c;
	--background-color: #ffffff;
	--spacing-unit: 1rem;
	--menu-width: 250px;
	--header-height: 60px;
	--sidebar-width: 250px;
}

* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

body {
	font-family: Arial, sans-serif;
	line-height: 1.6;
	color: var(--text-color);
	margin: 0;
	padding: 0;
	min-height: 100vh;
}

body  {
	font: 120% Verdana, Arial, Helvetica, sans-serif;
	background: #FFFFFF;
	margin: auto;
	padding: 0;
	text-align: center; 
	color: #FFCC00;
	max-width: 960px;
}
p {
	padding:1em;
	margin:1em;
}
h1 {
	padding:1em;
}

.css-240 body, .css-240 #container {
	width:240px;
}
.css-320 body, .css-320 #container {
	width:320px;
}
.css-480 body, .css-480 #container {
	width:480px;
}
.css-640 body, .css-640 #container {
	width:640px;
}
.css-960 body, .css-960 #container {
		max-width: 960px;
		width:960px;
}

.twoColHybLtHdr #container {
	max-width: 1200px;
	margin: 0 auto;
	padding: var(--spacing-unit);
}
.twoColHybLtHdr #container2 {
	/*width: 80%;  /* this will create a container 80% of the browser width */
	background: #ffffff;
	margin: 0 0 0 0; /* the auto margins (in conjunction with a width) center the page */
	position: relative;
	z-index: 1;
} 
.twoColHybLtHdr #header {
	/*background-image:url(/images/header_flare.jpg);*/
	padding: 1em 0;  /* this padding matches the left alignment of the elements in the divs that appear beneath it. If an image is used in the #header instead of text, you may want to remove the padding. */
	/* height: 150px;*/
	text-align: center; /* this overrides the text-align: center on the body element. */
	background-color: #FFFFFF;
	position: relative;
	z-index: 1;
} 

.twoColHybLtHdr #header h1 {
	margin: 0; /* zeroing the margin of the last element in the #header div will avoid margin collapse - an unexplainable space between divs. If the div has a border around it, this is not necessary as that also avoids the margin collapse */
	padding: 10px 0; /* using padding instead of margin will allow you to keep the element away from the edges of the div */
	color: #039;
	font-size: 300%;
}

.twoColHybLtHdr #header h3 {
	margin: 0; /* zeroing the margin of the last element in the #header div will avoid margin collapse - an unexplainable space between divs. If the div has a border around it, this is not necessary as that also avoids the margin collapse */
	padding: 2px 0; /* using padding instead of margin will allow you to keep the element away from the edges of the div */
	font-size:12px;
}

/* Tips for sidebar1:
1. Since we are working in relative units, it's best not to use padding on the sidebar. It will be added to the overall width for standards compliant browsers creating an unknown actual width. 
2. Since em units are used for the sidebar value, be aware that its width will vary with different default text sizes.
3. Space between the side of the div and the elements within it can be created by placing a left and right margin on those elements as seen in the ".twoColHybLtHdr #sidebar1 p" rule.
*/
.twoColHybLtHdr #sidebar1 {
	float: left;
	width: 150px;
	background-repeat: no-repeat;
	padding-top: 0px;
	padding-right: 0;
	padding-bottom: 0px;
	padding-left: 0;
	position:relative;
	z-index: 100;
	background-color: #FFFFFF;
}
.twoColHybLtHdr #sidebar1 h3, .twoColHybLtHdr #sidebar1 p {
	margin-left: 10px; /* the left and right margin should be given to every element that will be placed in the side columns */
	margin-right: 10px;
	font-size: 14px;
}

.twoColHybLtHdr #mainContent {
	margin: 0;
	padding: var(--spacing-unit);
	width: 100%;
	max-width: 960px;
} 
.twoColHybLtHdr #mainContent a{
	color:#003399;
}
.twoColHybLtHdr #footer { 
	background: var(--secondary-color);
	padding: var(--spacing-unit);
	margin-top: var(--spacing-unit);
	text-align: center;
} 
.twoColHybLtHdr #footer p {
	margin: 0; /* zeroing the margins of the first element in the footer will avoid the possibility of margin collapse - a space between divs */
	padding: 10px 0; /* padding on this element will create space, just as the the margin would have, without the margin collapse issue */
}

/* Miscellaneous classes for reuse */
.fltrt { /* this class can be used to float an element right in your page. The floated element must precede the element it should be next to on the page. */
	float: right;
	margin-left: 8px;
}
.fltlft { /* this class can be used to float an element left in your page */
	float: left;
	margin-right: 8px;
}
.clearfloat { /* this class should be placed on a div or break element and should be the final element before the close of a container that should fully contain a float */
	clear:both;
    height:0;
    font-size: 1px;
    line-height: 0px;
}

/* ################## */
#menudiv
{
}
#menuinner
{
	height: 24px;
	padding-left: 20px;
}
ul.menubox
{
	padding: 0;
	list-style: none;
	margin: 0;
}
ul.menubox li
{
	padding: 0;
	margin: 0;
	float: left;
	padding-right: 1px;
	position: relative;
}
ul.menubox li a
{
	display: block;
	height: 24px;
	line-height: 24px;
	color: white;
	text-transform: uppercase;
	background: url(../images/img/menu.png) repeat-x;
	text-decoration: none;
	padding: 0 0px 0 0px;
	font-size: 11px;
	font-weight: bold;
}
ul.menubox li a:hover, ul.menubox li.chosen a, ul.menubox li.chosen a:hover
{
	background: url(../images/img/menuhover.png) repeat-x;
}
ul.menubox li ul
{
	position: absolute;
	padding: 0;
	margin: 0;
	list-style: none;
	z-index: 100;
	top: 24px;
	left: -999em;
	border-top: solid 1px transparent;
}
ul.menubox li ul li
{
	float: none;
}
ul.menubox li ul li a, ul.menubox li.chosen ul li a
{
	display: block;
	height: 24px;
	line-height: 24px;
	color: white;
	text-transform: uppercase;
	background: url(../images/img/menu.png) repeat-x;
	text-decoration: none;
	padding: 0 0px 0 0px;
	font-size: 11px;
	width: 10em;
}
ul.menubox li:hover ul, ul#menuboxie6 li.sfhover ul
{
	left: auto;
}

.notes
{
	padding: 1.5em 1.5em 1.5em 1.5em;
	margin: 0.5em;
	border: 2px #111199 solid;
	background-color: #F7F4AB;
	background-repeat: no-repeat;
	background-position: 0.5em 0.5em;
}

.interesting
{
	color: blue;
	background-image: url(images/icons/interesting.gif);
}

.facts
{
	color: green;
	background-image: url(images/icons/facts.gif);
}

.info
{
	color: #3333aa;
	background-image: url(images/icons/info.png);
	width:35em;
	font-size:small;
	float:right;
}

/* Convert to mobile-first approach */
@media screen and (min-width: 768px) {
	.twoColHybLtHdr #mainContent {
		margin-left: 25%;
	}
	
	.twoColHybLtHdr #sidebar1 {
		position: fixed;
		width: 20%;
		top: 0;
		left: 0;
		height: 100%;
		overflow-y: auto;
		padding: var(--spacing-unit);
		background: var(--background-color);
		box-shadow: 0 0 10px rgba(0,0,0,0.1);
	}
}

/* Base layout structure */
#container {
	margin-left: var(--sidebar-width);
	min-height: 100vh;
	padding: 20px;
	box-sizing: border-box;
	position: relative;
	z-index: 1;
}

/* Header positioning */
#header {
	padding: 20px;
	background: #fff;
	border-bottom: 1px solid #eee;
	position: relative;
	z-index: 2; /* Ensure header is above sidebar */
}

/* Main nav positioning */
.main-nav {
	position: fixed;
	top: 0;
	left: 0;
	width: var(--menu-width);
	height: 100vh;
	overflow-y: auto;
	background: #fff;
	box-shadow: 2px 0 8px rgba(0,0,0,0.1);
	z-index: 1000;
}

/* Sidebar positioning */
#sidebar1 {
	position: fixed;
	top: 0;
	left: 0;
	width: var(--sidebar-width);
	height: 100vh;
	overflow-y: auto;
	background: #fff;
	box-shadow: 2px 0 8px rgba(0,0,0,0.1);
	z-index: 1000;
}

/* Main content positioning */
#mainContent {
	position: relative;
	z-index: 2; /* Ensure content is above sidebar */
	background: #fff;
	padding: 20px;
	min-height: calc(100vh - var(--header-height));
	width: auto;
	margin-left: 0; /* Remove any left margin since container handles it */
}

/* Footer positioning */
#footer {
	margin-left: 0;
	padding: 20px;
	background: var(--secondary-color);
	position: relative;
	z-index: 2; /* Ensure footer is above sidebar */
}

/* Clear fix for floated elements */
.clearfloat {
	clear: both;
	display: block;
}

/* Responsive adjustments */
@media (max-width: 767px) {
	#container {
		margin-left: 0;
		padding: 10px;
	}

	#sidebar1 {
		width: 100%;
		height: auto;
		position: relative;
	}

	#header {
		padding: 10px;
	}

	#mainContent {
		margin-left: 0;
		width: 100%;
	}
}
