/*
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.com/yui/license.html
version: 2.9.0
*/
/**
 * YUI Base
 * @module base
 * @namespace yui-
 * @requires reset, fonts
*/

body {
	/* For breathing room between content and viewport. */
	margin:10px;
}

h1 {
	/* 18px via YUI Fonts CSS foundation. */
	font-size: 138.5%;
}

h2 {
	/* 16px via YUI Fonts CSS foundation. */
	font-size: 123.1%;
}

h3 {
	/* 14px via YUI Fonts CSS foundation. */
	font-size: 108%;
}

h1,h2,h3 {
	/* Top & bottom margin based on font size. */
	margin: 1em 0;
}

h1,h2,h3,h4,h5,h6,strong,dt {
	/* Bringing boldness back to headers and the strong element. */
	font-weight: bold;
}
optgroup {
	font-weight:normal;
}

abbr,acronym {
	/* Indicating to users that more info is available. */
	border-bottom: 1px dotted #000;
	cursor: help;
}

em {
	/* Bringing italics back to the em element. */
	font-style: italic;
}

del {
	/* Striking deleted phrases. */
	text-decoration: line-through;
}

blockquote,ul,ol,dl {
	/* Giving blockquotes and lists room to breath. */
	margin: 1em;
}

ol,ul,dl {
	/* Bringing lists on to the page with breathing room. */
	margin-left: 2em;
}

ol {
	/* Giving OL's LIs generated numbers. */
	list-style: decimal outside;
}

ul {
	/* Giving UL's LIs generated disc markers. */
	list-style: disc outside;
}

dl dd {
	/* Giving DD default indent. */
	margin-left: 1em;
}

th,td {
	/* Borders and padding to make the table readable. */
	border: 1px solid #000;
	padding: .5em;
}

th {
	/* Distinguishing table headers from data cells. */
	font-weight: bold;
	text-align: center;
}

caption {
	/* Coordinated margin to match cell's padding. */
	margin-bottom: .5em;
	/* Centered so it doesn't blend in to other content. */
	text-align: center;
}

sup {
	/* to preserve line-height and selector appearance */
	vertical-align: super;
}

sub {
	/* to preserve line-height and selector appearance */
	vertical-align: sub;
}

p,
fieldset,
table,
pre {
	/* So things don't run into each other. */
	margin-bottom: 1em;
}
/* Opera requires 1px of padding to render with contemporary native chrome */
button,
input[type="checkbox"],
input[type="radio"],
input[type="reset"],
input[type="submit"] {
	padding:1px;
}

/* make IE scale images properly */
/* see http://code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ */
 img {
    -ms-interpolation-mode:bicubic;
}
