
/*------------------------------------
  styleh.css - 04/04/2016
  CSS stands for Cascading Style Sheets
  CSS describes how HTML elements are to be displayed on screen, paper, or in other media
  
  A CSS rule-set consists of a selector and a declaration block:
  
  Selector      Declaration       Declaration
  h1          { color:blue;       font-size:12px;}
                  ^    ^              ^       ^
                  |   Value           |     Value 
              Property            Property
              
  The 'selector' points to the HTML element you want to style.
  
  The 'declaration block' contains one or more declarations separated by semicolons.
  
  Each declaractoin includes a CSS property name and a value, separated by a colon.
  
  A CSS declaratoin always ends with a semicolon, and declaration blocks are surrounded
  by curly braces.
  
  CSS selectors are used to "find" (or select) HTML elements based on their element names,
  id, class, attribute, and more.
  
  The element selector selects elements based on tthe element name.  For example, you can
  select all the <p> elements on a page with P {}, or all the <div> elements with div {}.
  
  The id selector uses the id attribute of an HTML element to select a specific element.
  The id of an element should be unique within a page, so the id selector is used to 
  select one unique element!
  
  To select an element with a specific id, write a hash (#) character, followed by the id
  of the element.

  RESET all these elements
 ------------------------------------*/
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{
	margin:0;       /* margin generates space around elements */
	padding:0;      /* padding generates space around content */
}
table{
	border-collapse:collapse;   /* border-collapse sets table borders into a single border */
	border-spacing:0;           /* border-spacing sets the distance between the borders of adjacent cells 
	                              (for "separated borders" model only) */ 
}
fieldset,img{
	border:0;        /* shorthand to set all border properties in one declaration. 
	                    syntax: 
	                    boder: border-width border-style border-color|initial|inherit; 
			   */
}
address,caption,cite,code,dfn,th,var{
	font-style:normal;
	font-weight:normal;
}
caption,th{
	text-align:left;
}
h1,h2,h3,h4,h5,h6{
	font-size:100%;
	font-weight:normal;
}

q:before,q:after{
	content:'';  /* used with :before and :after pseudo-elements to insert generated content */
}
abbr,acronym{
	border:0;
}





/*------------------------------------*\
	MAIN

	Set the overall look of the page body
\*------------------------------------*/


body{
	font-family:Bookman,serif;
	font-size:1.50em;
	color:#333;
	width:960px;
	margin:0 auto;
	padding:10px;
}

/*------------------------------------*\
	The '#' denotes an ID 
\*------------------------------------*/
 
#bg { position: fixed; top: 0; left: 0; }  /* page background */
/* The .class selector selects elements with a specific class attribute.  You can also specify that only
 * specific HTML elements should be affected by a class by starting with the element name, then period, 
 * followed by the name of the class, e.g., p.hometown { background-color: yellow; ).  HTML elements can also
 * refer to more than one class, e.g., <p class="center large">This paragraph refers to two classes.</p>
 * Im not sure these do anything.  They seem to be overridden in the code to adust screen width.
 */
.bgwidth { width: 100%; }
.bgheight { height: 100%; }

/*------------------------------------*\
	NAV
	This is copied wholesale from some example of how to do navigation
	with some modifications to fit with my website.
\*------------------------------------*/
#nav{
	list-style:none;     /* list-style is a shorthand property use to set all list properties 
	                        in one declaration */
	font-weight:normal;  /* font-weight:bold;  */
	margin-bottom:10px;  /* set bottom margin. can also specify a percentage as x% of the width 
	                        of the containing element */
	/* Clear floats */
	float:left;          /* specifies whether or not an element should float.  can be used
	                        to wrap text around imagaes. */
	width:100%;
	/* Bring the nav above everything else--uncomment if needed.
	position:relative;
	z-index:5;
	*/
}
#nav li{
	float:left;
	margin-right:10px;
	position:relative;  /* specifies positioning method used for an element: static, 
	                       relative, fixed, or absolute. */
}
#nav a{
	display:block;      /* the most important CSS property for controlling layout, specifying
	                       if and how an element is displayed.  Every HTML element has a default
			       display value depending on what type of elemen it is.  The default 
			       for most elements is 'block' or 'inline'.
			       
			       Block-level elemens always start on a new line and take up the full
			       width available, stretching out to the left and right as far as it can.
			       E.g., <div>, <h1> - <h6>, <p>, <form>, <header>, <footer>, and <section>
			       are block-level elements.
			       
			       Inline elements do not start on a new line and only take up as much
			       width as necessary, e.g., <span>, <a>, and <img>. */
			  
	padding: 10px 30px; /* padding:5px; */
	color:#fff;         /* color can be a valid color name (red), a hex value (#ff0000), or a
	                       RGB value (rgb(255,0,0)). */
	background:#333;
	background:rgba(255,255,255,0); /* Make the background fully transparent. RGBA color values
	                                   are an extension of the RGB color values with an alpha
	                                   channel, which specifies the opacity of the object.  The 
	                                   alpha paramaeter is a number between 0.0 (fully transparent
	                                   and 1.0 (fully opaque). Supported in IE9+, Firefox 3+, 
	                                   Chrome, Safari, and Opera 10+. */
	text-decoration:none;  /* options are none, underline, overline, line-through, initial, inherit */
}
#nav a:hover{
	color:#fff;
	background:#6b0c36;
	text-decoration:underline;
}

/*--- DROPDOWN ---*/
#nav ul{
	background:#fff; /* Adding a background makes the dropdown work properly in IE7+. 
	                    Make this as close to your page's background as possible 
	                    (i.e. white page == white background). */
	background:rgba(255,255,255,0); /* But! Let's make the background fully transparent where we can, 
	                                   we don't actually want to see it if we can help it... */
	list-style:none;
	position:absolute;
	left:-9999px; /* Hide off-screen when not needed (this is more accessible than display:none;) */
}
#nav ul li{
	padding-top:1px; /* Introducing a padding between the li and the a give the illusion spaced items */
	float:none;
}
#nav ul a{
	white-space:nowrap; /* Stop text wrapping and creating multi-line dropdown items.  Specifies however
	                       white-space inside an element is handled.
	                       normal - whitespaces collapse to a single whitespace. Text will
	                                wrap when necessary.  The default.
	                       nowrap - whitespaces collapse to a single whitespace. Text never
	                                wraps to next line, but continues until a <br> is encountered.
	                       pre    - whitespace preserved by browser.  Text wraps on line breaks. Acts 
	                                line the <pre> tag in HTML.
	                       pre-line - whitespaces collpase to a single whitespace.  Text wraps when
	                                  necessary and on line breaks.
			       pre-wrap - whitespace preserved by browser. Text wraps when necessary and
			                  on line breaks.
			       initial - sets this propery to its default value.
			       inherit - inherits this property from its parent element. */
}
#nav li:hover ul{ /* Display the dropdown on hover */
	left:0; /* Bring back on-screen when needed */
}
#nav li:hover a{ /* These create persistent hover states, meaning the top-most link stays 'hovered' even when your cursor has moved down the list. */
	background:#6b0c36;
	text-decoration:underline;
}
/* The :hover selector selects elements when you mouse over them.  It can be used on all elements.
 * Use the :link selector to style links to unvisited pages, :visited for visited pages, and the 
 * :active selector to style the active link.  :hover MUST come after :link and :visited, if present
 * in order to be effective.  In IE there must be declared a <!DOCTYPE> for the :hover selector to 
 * work on elements other than the <a> element.
 * you can group elements. e.g.,  p:hover, h1:hover, a:hover { background-color: yellow: }
 */

#nav li:hover ul a{ /* The persistent hover state does however create a global style for links even 
                       before they're hovered. Here we undo these effects.
                       I think what this is doing is specifying a style for list items (li) when hovered
                       over, as well as for unordered lists (ul) and anchors (a). */
	text-decoration:none;
}
#nav li:hover ul li a:hover{ /* Here we define the most explicit hover states--what happens when you 
                                hover each individual link. 
                                I think this specifies a background color for list items when hovered 
                                over, unordered lists, list items when NOT hovered over, and 
                                anchors when hovered over. */
	background:#333;
}





/*------------------------------------*\
	TYPE
\*------------------------------------*/
h1{
	font-family:Bookman, serif;
/*	font-family:Calibri, Arial, Verdana, sans-serif;  */
	font-size:2em;
	width:520px;
}

