/*	
----------------------------------------------------------
Reset
---------------------------------------------------------- 
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}

article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}

article:after, aside:after, details:after, figcaption:after, figure:after, 
footer:after, header:after, hgroup:after, menu:after, nav:after, section:after, 
div:after, ul:after, ol:after {
	content: "";
	display: table;
	clear: both;
}

body {
	line-height: 1;
}

blockquote, q {
	quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
	display: table;
}

html {
	box-sizing: border-box;
}

*, *:before, *:after {
	box-sizing: inherit;
}







/*	
----------------------------------------------------------
General
---------------------------------------------------------- 
*/

* {
	font-family: 'Trebuchet MS', Helvetica, sans-serif;
	font-weight: 400;
	font-size: 14px;
}

body {
	-webkit-user-select: text!important;
	background-image: url('../image/background.jpg');
	background-position: top center;
	padding: 10px;
	font-family: 'Trebuchet MS', Helvetica, sans-serif;
	font-weight: 400;
	font-size: 14px;
}


#outer {
	margin: 0 auto;
	width: 100%;
	max-width: 840px;
}


header {
	position: relative;
	margin: 0 0 20px 0;
}

#logo {
	float: left;
	margin: 0 20px 0 0;
	max-width: 250px;
	width: calc((100% - 20px) / 3.28);
}

#logo img {
	width: 100%;
}

#headbox {
	position: relative;
	float: left;
	max-width: 570px;
	width: calc((100% - 20px) / 1.43859);
}

#banner {
	width: 100%;
}

#tagline {
	position: absolute;
	left: 14%;
	bottom: -15%;
	max-width: 250px;
	width: 43.86%;
}

#info {
	position: absolute;
	left: calc((100% - 20px) / 3.28 + 20px);
	bottom: 0px;
	width: calc((100% - 20px) / 1.43859);
	max-width: 570px;
}

#info span {
	float: left;
	margin-right: 40px;
	color: #eeee00;
	font-size: 20px;
}

#info span:last-child {
	float: right;
	margin-right: 0;
	color: #ff7700;
}

#login {
	position: absolute;
	top: 0px;
	right: 0px;
	font-size: 10px;
}







nav {
}

nav div {
	border: 2px solid #ff7700;
	background-color: rgba(255, 238, 0, 0.2);
	padding: 2px 0 0 2px;
	height: 36px;
	margin: 0 0 4px 0;
}

nav div a {
	display: block;
	float: left;
	margin: 0 2px 2px 0;
	border: 1px solid #ff7700;
	background-color: rgba(255, 238, 0, 0.2);
	padding: 5px 9px;
	color: #eeee00;
	font-size: 16px;
	font-weight: 700;
	text-decoration: none;
	transition: all .2s;
}

nav div a:hover {
	background-color: rgba(255, 238, 0, 0.7);
	color: #ff7700;
}

nav div a.hse_link_in_path {
	position: relative;
	margin-bottom: -12px;
	border: 2px solid #ff7700;
	border-bottom: none;
	padding: 4px 9px;
	background-color: rgba(255, 119, 0, 1);
	padding-bottom: 14px;
}

nav div a.hse_link_in_path:hover {
	background-color: rgba(255, 238, 0, 1);
}







main {
	margin: 0 0 4px 0;
	border: 2px solid #ff7700;
	background-color: rgba(255, 238, 0, 0.2);
	padding: 2px;
}

main > div {
	background-image: url('../image/watermark.png');
	background-position: bottom right;
	background-repeat: no-repeat;
	background-color: rgba(255, 255, 238, 0.8);
	padding: 5px;
}



h1 {
	margin: 50px 0 10px 0;
	border-top: 1px solid #ff7700;
	padding-top: 25px;
	font-size: 24px;
	font-weight: 900;
}

h1:first-of-type {
	margin-top: 0;
	border-top: none;
	padding-top: 0;
}

h2 {
	margin: 30px 0 10px 0;
	font-size: 20px;
	font-weight: 900;
}

h3 {
	margin: 30px 0 10px 0;
	font-size: 18px;
	font-weight: 900;
}

h4 {
	margin: 30px 0 10px 0;
	font-size: 14px;
	font-weight: 900;
}

p {
	margin-bottom: 10px;
	line-height: 145%;
}

a {
	color: #ff7700;
}

ul {
	margin: 0 0 10px 20px;
}

li {
	margin-top: 5px;
}

b {
	font-weight: 700 !important;
}

i {
	font-style: italic !important;
}


p.sign {
	margin-top: 40px;
	margin-bottom: 0;
	text-align: right;
	font-style: italic;
}


a.button {
	display: inline-block;
	border: 1px solid #ff7700;
	border-radius: 3px;
	background-color: rgba(255, 119, 0, 0.2);
	padding: 2px 5px;
	color: #000000;
	text-decoration: none;
	cursor: default;
}

a.button:active {
	background-color: rgba(255, 238, 0, 0.2);
}


.page-img {
	float: right;
	margin: 0 0 10px 10px;
}


.thumb-img {
	float: left;
	margin: 0 10px 10px 0;
}



.small { font-size: 80%; }
.big { font-size: 120%; }
.l { text-align: left; }
.r { text-align: right; }
.c { text-align: center; }
.w50 { width: 50px; }
.w75 { width: 75px; }
.w85 { width: 85px; }
.w110 { width: 110px; }
.w150 { width: 150px; }
.w220 { width: 220px; }
.w330 { width: 330px; }
.hide { display: none; }



address {
	margin-left: 40px;
}






table {
	margin: 0 auto 10px auto;
	border: 1px solid #ff7700;
}

tr {
	background-color: rgba(255, 119, 0, 0.2);
}

tr:nth-child(even) {
	background-color: rgba(255, 238, 0, 0.2);
}

td, th {
	padding: 3px 10px;
}

td:first-child, th:first-child {
	padding-left: 3px;
}

td:last-child, th:last-child {
	padding-right: 3px;
}

th {
	font-weight: 900;
}







form {
	margin: 0 auto 10px auto;
	max-width: 524px;
	border: 1px solid #ff7700;
	padding: 3px 3px 0 3px;
}

fieldset {
	margin: 2px 2px 10px 2px;
	border: 1px solid #ff7700;
	padding: 3px 3px 0 3px;
}

form > div,
fieldset > div {
	margin: 0 0 3px 0;
	padding: 2px;
}

div.hse_field:hover {
	background-color: rgba(255, 238, 0, 0.2);
}

div.hse_field label {
	display: block;
	float: left;
	margin: 5px 0 5px 0;
	width: 100%;
	max-width: 250px;
}

div.hse_field input,
div.hse_field select,
div.hse_field .hse_field_inner {
	display: block;
	float: left;
	width: 100%;
	max-width: 250px;
}

div.hse_field select {
	padding: 1px 0;
}

div.hse_field .hse_fixed_field {
	display: block;
	float: left;
	border: 1px solid #ff7700;
	width: 100%;
	height: 22px;
	max-width: 250px;
	padding: 3px 2px;
}

div.hse_field textarea {
	display: block;
	float: left;
	width: 100%;
}

div.hse_field input[type="checkbox"],
div.hse_field input[type="radio"] {
	margin: 5px 5px 5px 0;
	width: 12px;
}

div.hse_field .hse_list_container {
	clear: both;
}

div.hse_field .hse_list_container .hse_list_item {
	float: left;
	width: 100%;
	max-width: 250px;
}

div.hse_field .hse_list_container .hse_list_item:hover {
	background-color: rgba(255, 238, 0, 0.3);
}

div.hse_field .hse_list_container .hse_list_item label {
	width: calc(100% - 25px);
	max-width: 235px;
}


div.hse_field .hse_bool_container {
}

div.hse_field .hse_bool_container .hse_bool_item {
	float: left;
}

div.hse_field .hse_bool_container .hse_bool_item:hover {
	background-color: rgba(255, 238, 0, 0.3);
}

div.hse_field .hse_bool_container .hse_bool_item label {
	width: 40px;
}

div.hse_field .hse_pair_container {
	display: block;
	float: left;
	width: 100%;
	max-width: 250px;

}


div.hse_field .hse_field_inner {
	position: relative;
}

div.hse_field .hse_field_inner input,
div.hse_field .hse_field_inner select {
	float: none;
}


div.hse_field div.hints {
	position: absolute;
	top: 22px;
	width: 100%;
	max-width: 250px;
	border: 1px solid #ff7700;
	background-color: rgba(255, 255, 238, 0.9);
	padding: 1px;
	display: none;
}

div.hse_field div.hints a {
	display: block;
	padding: 1px 3px;
	text-decoration: none;
	color: black;
}

div.hse_field div.hints a.hovered {
	background-color: rgba(255, 119, 0, 0.5);
	text-decoration: none;
	cursor: default;
}

div.hse_field div.hints span {
	display: block;
	padding: 1px 3px;
	color: #999999;
	cursor: default;
}




div.hse_field .hse_field_error {
	border: 1px solid #ff0000;
	background: #ff0000;
	color: #ffffff;
}

div.hse_field .hse_field_notes {
	display: block;
	clear: both;
	width: 100%;
	padding: 2px 0 0 0;
	font-size: 10px;
}

div.hse_field .hse_field_error_text {
	display: block;
	width: 100%;
	color: #ff0000;
	padding: 2px 0 0 0;
	font-weight: 900;
}

div.g-recaptcha {
	float: left;
}

div.hse_formfoot {
	margin: 20px 0 5px 0;
	text-align: right;
}







div.block {
	margin: 2px 2px 10px 2px;
	border: 1px solid #ff7700;
	padding: 3px;
}

div.block *:first-child {
	margin-top: 0;
}

div.block *:last-child {
	margin-bottom: 0;
}

div.block.shrink {
	display: inline-block;
	vertical-align: top;
	margin: 0 2px 10px 2px;
}

div.block.shrink .push {
	display: table-row;
	width: 1px;
}

div.block.shrink .fit {
	display: table-cell;
	width: 1px;
}








div.block .paybutton {
	display: block;
	float: right;
	clear: right;
	margin: 0;
	border: 2px solid #ff7700;
	background-color: rgba(255, 238, 0, 0.5);
	width: 130px;
	padding: 3px 6px;
	color: #ff7700;
	text-align: center;
	text-decoration: none;
	font-weight: 900;
}

div.block .paybutton:hover {
	background-color: rgba(255, 119, 0, 0.5);
	color: #eeee00;
}

div.block .paybutton span {
	display: block;
	margin-top: 3px;
}

div.block p.filler {
	display: table-cell;
	margin: 0;
	height: 62px;
	vertical-align: middle;
}



img.mini-inline {
	height: 15px;
	vertical-align: top;
	cursor: pointer;
}





ul.title_list {
	list-style-type: none;
	margin-left: 0;
}

ul.title_list li {	
	margin-bottom: 10px;
}

ul.title_list li h2 {
	margin-bottom: 0;
}

ul.title_list li p:last-child {
	margin-bottom: 0;
}

ul.title_list h2.folded a {
	cursor: pointer;
}

ul.title_list h2.folded a:hover {
	text-decoration: none;
}

ul.title_list div.folded {
	display: none;
	margin: 5px 0 0 0;
	border: 1px solid #ff7700;
	padding: 3px;
}






div.list-wrapper {
	margin-top: 10px;
}

div.listlinks {
	text-align: center;
}

div.listlinks span,
div.listlinks a {
	display: inline-block;
	margin: 1px;
	min-width: 24px;
	padding: 1px;
	border: 1px solid #666666;
	text-align: center;
	color: #666666;
	text-decoration: none;
}

div.listlinks a {
	padding: 1px;
	border: 1px solid #ff7700;
	color: #ff7700;
}

div.listlinks .l {
	margin-right: 10px;
}

div.listlinks .r {
	margin-left: 10px;
}

div.listlinks a:hover {
	color: #ff7700;
}

div.listlinks div.inner {
	display: inline-block;
	padding: 0;
	margin: 0;
	width: 180px;
}

div.listlinks div.inner span,
div.listlinks div.inner a {
	margin: 1px 2px;
	width: 18px;
}

div.listlinks div.inner a.wide {
	width: 36px;
}












div#mission {
	margin: 0 0 20px 0;
	padding: 3px;
	border: 2px solid #ff7700;
	text-align: center;
}

div#mission h3 {
	margin-top: 10px;
}

div#mission p {
	font-size: 18px;
}




p.extra {
	margin: 30px 30px 30px 30px;
	font-size: 18px;
	text-align: center;
}





footer {
	margin: 0;
	border: 2px solid #ff7700;
	background-color: rgba(255, 238, 0, 0.2);
	padding: 0;
	font-size: 10px;
	text-align: center;
}

footer div {
	display: inline-block;
	margin: 0 16px;
	vertical-align: middle;
}

footer span {
	display: block;
	margin: 1px auto 1px;
	color: #ff7700;
}

footer a.icon {
	display: inline-block;
	margin: 5px 5px 5px 5px;
	border-radius: 25px;
	-moz-border-radius: 25px;
	-webkit-border-radius: 25px;
	background: white;
	vertical-align: middle;
}

footer a.icon img {
	display: block;
	margin: -1px;
}

footer a.icon:hover img {
	opacity: 0.9;
}








div.error {
	margin: 0 0 10px 0;
	border: 2px solid #ff0000;
	padding: 5px;
	background: rgba(255, 0, 0, 0.2);
	color: #ff0000;
	font-weight: bold;
}

div.warning {
	margin: 0 0 10px 0;
	border: 2px solid #999900;
	padding: 5px;
	background: rgba(153, 153, 0, 0.2);
	color: #999900;
	font-weight: bold;
}

div.message {
	margin: 0 0 10px 0;
	border: 2px solid #006600;
	padding: 5px;
	background: rgba(0, 102, 0, 0.2);
	color: #006600;
	font-weight: bold;
}

div.note {
	margin: 0 0 10px 0;
	border: 2px solid #0000ff;
	padding: 5px;
	background: rgba(0, 0, 255, 0.2);
	color: #0000ff;
	font-weight: bold;
}






.stack {
	position: relative;
	width: 250px;
}

.stack:after {
	display: block;
	padding-top: 100%;
	content: '';
}

.stack img {
	position: absolute;
	width: 100%;
	opacity: 0;
	transition: opacity 1s ease-in-out;
	-moz-transition: opacity 1s ease-in-out;
	-webkit-transition: opacity 1s ease-in-out;
}

.stack img:first-child {
	opacity: 1;
}



@media only screen and (max-width: 580px) {
	form {
		max-width: 280px;
	}

	.g-recaptcha {
		float: none;
		transform: scale(0.887);
		-webkit-transform: scale(0.887);
		transform-origin: 0 0;
		-webkit-transform-origin: 0 0;
	}

	.page-img {
		width: 33%;
	}
}




@media only screen and (max-width: 480px) {
	header {
		margin-bottom: 15px;
	}

	#logo {
		width: calc((100% - 20px) * 0.18);
	}

	#headbox {
		width: calc((100% - 20px) * 0.82);
	}

	#tagline {
		display: none;
	}

	#info {
		clear: both;
		position: static;
		width: 100%;
		padding-top: 15px;
	}

	#info span {
		margin: 0;
		font-size: 14px;
	}
}





.toggle {
	display: block;
	float: left;
	margin: 0 0 3px 2px;
	border: 1px solid #ff7700;
	border-radius: 2px;
	padding: 0 2px;
	color: #ff7700;
	cursor: pointer;
}







.hse_admin_role_list {
	float: left;
	margin: 20px 0;
	width: 200px;
}

#online_form {
	margin-top: 100px;
}

#reminder_form .hse_formfoot {
	margin-top: 5px;
}










table.leaderboard {
	width: auto;
	border: none;
	border-collapse: separate; 
	border-spacing: 0 5px;
}

table.leaderboard th {	text-align: left;  padding: 5px 10px;	}
table.leaderboard .r {	text-align: right;	}
table.leaderboard tbody tr.heat1 {	background: rgba(255, 153, 0, 0.25);	}
table.leaderboard tbody tr.heat2 {	background: rgba(153, 255, 0, 0.25);	}
table.leaderboard tbody tr.heat3 {	background: rgba(255, 0, 255, 0.25);	}
table.leaderboard tbody tr.final {	background: rgba(0, 255, 255, 0.25);	}
table.leaderboard tbody td { padding: 5px 10px;	}




.photo-img {
	max-width: 100%;
	max-height: 75vh;
}



#tform .error {
	border: 1px solid red;
}

#tblock .tline {
	margin-bottom: 2px;
	padding: 2px;
	text-align: center;
}

#tblock .tline a {
	float: right;
	border: 2px solid white;
	border-radius: 8px;
	height: 15px;
	width: 15px;
	background: red;
	color: white;
	text-align: center;
	font-weight: bold;
	font-size: 12px;
	text-decoration: none;
}



