html {
	height: 100%;
	font-family: 'Open Sans', 'Helvetica', sans-serif;
	font-size: 14px;
}

html, body {
	max-width: 100%;
}

body {
	background-color: #eaeaea;
	color: #333;
}

* {
	margin: 0;
	padding: 0;
	border: none;
	outline: none;
}

::-moz-selection {
	background: rgba(20, 105, 190, 0.99);
	color: #f9f9f9;
}

::selection {
	background: rgba(20, 105, 190, 0.99);
	color: #f9f9f9;
}

a {
	color: rgb(20, 105, 190);
	font-weight: bold;
	text-decoration: none;
}

a:hover {
	color: rgb(57, 143, 229);
	font-weight: bold;
	text-decoration: none;
}

p {
	margin: 1.2em 0;
}

/**
 *  Layout
 */

#contents {
	text-align: center;
	width: 900px;
	max-width: 100%;
	margin: 32px auto 16px auto;

	background-color: #f7f7f7;
	border-radius: 5px;
	overflow: hidden;
	
	-webkit-box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.15);
	box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.15);
}

#contents #header {
	position: relative;
	display: table;
	height: 300px;
	width: 100%;
}

#contents #header:hover #title {
	opacity: 0;
	visibility: hidden;
	transition-delay: 0s;
}

#contents #header #title {
	position: relative;
	display: table-cell;
	vertical-align: bottom;
	padding-bottom: 20px;

	background-color: rgba(0, 0, 0, 0.25);

	color: #fff;
	font-size: 1.8em;
	text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.8);

	opacity: 1;
	visibility: visible;
	transition: visibility 0.2s linear 0.2s, opacity 0.2s linear;
	transition-delay: 0s;
}

#contents #header .banner {
	position: absolute;
	top: 0; right: 0; bottom: 0; left: 0;

	background-repeat: no-repeat;
	background-position: center center;
}

#contents #header #banner		{ background-color: #333; }
#contents #header #banner-prev	{ background-color: transparent; }

#contents #header #banner 		{ z-index: 600; }
#contents #header #banner-prev 	{ z-index: 601; }
#contents #header #title		{ z-index: 1000; }

#contents #main {
	width: 600px;
	max-width: 85%;
	max-width: calc(100% - 32px);
	margin: 0 auto;
	padding: 16px;
}

#contents #main > div.section { margin: 16px 0 32px 0; }
#contents #main h3 { margin-bottom: 8px; }

#footer {
	text-align: center;
	margin-bottom: 16px;

	color: #888;
}


/**
 *  Utilities
 */

.section-divider {
	display: block;
	width: 80%;
	margin: 16px auto 0 auto;
	text-align: center;
	overflow: hidden;
	white-space: nowrap;
	color: #5d5d5d;
}

.section-divider > span {
	position: relative;
	display: inline-block;
}

.section-divider > span:before,
.section-divider > span:after {
    content: "";
    position: absolute;
    top: 50%;
    width: 9999px;
	height: 1px;
    background: #999;
}

.section-divider > span:before {
	right: 100%;
	margin-right: 15px;
}

.section-divider > span:after {
	left: 100%;
	margin-left: 15px;
}


/**
 * 	Responsive media queries
 */

/* Narrow viewports: display content full-screen */
@media only screen and (max-width: 900px) {
	#contents {
		margin: 0;
		border-radius: 0;
	}
}

/* Short viewports: shrink header */
@media only screen and (max-height: 600px) {
	#contents #header {
		height: 240px;
	}
}

/* Very short viewports: shrink header more */
@media only screen and (max-height: 400px) {
	#contents #header {
		height: 180px;
	}
}

/* High DPI: scale banner to 1/2 its normal size */
@media only screen and (-webkit-min-device-pixel-ratio: 2),
	   only screen and (   min--moz-device-pixel-ratio: 2),
	   only screen and (     -o-min-device-pixel-ratio: 2/1),
	   only screen and (        min-device-pixel-ratio: 2),
	   only screen and (                min-resolution: 192dpi),
	   only screen and (                min-resolution: 2dppx) { 
	#contents #header {
		height: 150px !important;
	}
	
	#contents #header .banner {
		background-size: cover;
	}
}
