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

html { height: 100%; }
body { font: 9pt "Tahoma", "Consolas", "Bitstream Vera Sans"; background: #fff; overflow-x: hidden; height: 100%; }

a { text-decoration: none; }
strong { font-weight: bold; }

h1 { font: 19pt "Trebuchet MS", "Consolas", "Tahoma", "Bitstream Vera Sans"; color: #844; margin-bottom: 16px; }
h2 { font: 16pt "Trebuchet MS", "Consolas", "Tahoma", "Bitstream Vera Sans"; color: #844; margin-bottom: 14px; }
h3 { font: 13pt "Trebuchet MS", "Consolas", "Tahoma", "Bitstream Vera Sans"; color: #844; margin-bottom: 12px; }

h3 a { font: 13pt "Trebuchet MS", "Consolas", "Tahoma", "Bitstream Vera Sans"; color: #844; }
h3 a:hover { color: #a66; text-decoration: underline; }

pre { font-family: "Monospace", "Lucida Console", "Courier New"; }
p { margin-bottom: 12px; }

a { color: #24a03f; color: #4C8393; font-weight: bold; }
a:hover { color: #42b65b; color: #62A4BC; }

#header { height: 184px; background: url("header.jpg") top center no-repeat; }

#menubutton { display: none; position: fixed; left: 0; top: 0; width: 64px; height: 64px; background: #333 url("menubutton.png"); }
#menu { display: block; position: absolute; left: 0; right: 0; top: 128px; height: 56px; text-align: center; }
#menu a { display: inline-block; font: 12pt "Trebuchet MS", "Consolas", "Tahoma", "Bitstream Vera Sans"; color: #000; color: rgba(0,0,0,0.85); text-shadow: 0 1px 0 #fff; height: 56px; line-height: 56px; vertical-align: top; padding: 0 12px; }

#menu a.selected, #menu a:hover {
	color: #fff; text-shadow: 0 -1px 0 #000;

	background: #415953;
	background: -moz-linear-gradient(top, #415953 0%, #2b453f 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#415953), color-stop(100%,#2b453f));
	background: -webkit-linear-gradient(top, #415953 0%,#2b453f 100%);
	background: -o-linear-gradient(top, #415953 0%,#2b453f 100%);
	background: -ms-linear-gradient(top, #415953 0%,#2b453f 100%);
	background: linear-gradient(to bottom, #415953 0%,#2b453f 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#415953', endColorstr='#2b453f',GradientType=0 );
}

#container { text-align: center; min-height: 731px; background: url("bg.jpg") top center no-repeat; padding-top: 16px; }

#content { display: inline-block; text-align: left; color: #333; background: #4d8184; background: rgba(77,129,132,0.65); padding: 10px; border: 1px solid rgba(255,255,255,0.35); box-shadow: 0 0 4px rgba(0,0,0,0.4); }

.contentbox { background: #fff; padding: 16px; box-shadow: 0 0 8px rgba(0,0,0,0.25); margin-bottom: 10px; }
.contentbox:last-child { margin-bottom: 0; }

#leftcol { display: inline-block; width: 256px; vertical-align: top; margin-right: 10px; }
#rightcol { display: inline-block; width: 256px; vertical-align: top; margin-left: 10px; }
#maincol { display: inline-block; width: 970px; vertical-align: top; }

.youtube_embed { width: 720px; height: 405px; }

#footer { color: #666; text-align: center; margin-top: 24px; padding: 10px 0; background: rgba(255,255,255,0.15); text-shadow: 0 1px 1px #fff; }

.twocolumns > div { width: 480px; display: inline-block; vertical-align: top; }
.twocolumns > div:first-child { margin-right: 10px; }

/************************************************************************
    News
************************************************************************/
.contentbox.newsentry.image { padding-right: 142px; }
.contentbox.newsentry span.info { display: block; font-size: 0.75em; margin-top: 4px; color: #aaa; }
.contentbox.newsentry span.info span { color: #777; }
.contentbox.newsentry span.info a { color: #2E6EB2; font-weight: normal; }
.contentbox.newsentry span.info a:hover { text-decoration: underline; }

/************************************************************************
    Project listing
************************************************************************/
#projectlist > div:first-child { margin-bottom: 32px; }

#projectlist a {
	display: inline-block; position: relative; width: 450px; height: 96px; margin: 0 12px 12px 0; vertical-align: top; box-shadow: inset 0 0 1px #000;
	
	background: #3f4c6b;
	background: -moz-linear-gradient(top, #3f4c6b 0%, #3f4c6b 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#3f4c6b), color-stop(100%,#3f4c6b));
	background: -webkit-linear-gradient(top, #3f4c6b 0%,#3f4c6b 100%);
	background: -o-linear-gradient(top, #3f4c6b 0%,#3f4c6b 100%);
	background: -ms-linear-gradient(top, #3f4c6b 0%,#3f4c6b 100%);
	background: linear-gradient(to bottom, #3f4c6b 0%,#3f4c6b 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3f4c6b', endColorstr='#3f4c6b',GradientType=0 );
}

#projectlist a .overlay h2 {
	display: block; color: #eee; color: rgba(255,255,255,0.85); text-shadow: 0 0 1px #000; background: rgba(0,0,0,0.15); margin: 0; padding: 4px 6px; z-index: 2; height: 34px;

	background: -moz-linear-gradient(top, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0.25) 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,0.65)), color-stop(100%,rgba(0,0,0,0.25)));
	background: -webkit-linear-gradient(top, rgba(0,0,0,0.65) 0%,rgba(0,0,0,0.25) 100%);
	background: -o-linear-gradient(top, rgba(0,0,0,0.65) 0%,rgba(0,0,0,0.25) 100%);
	background: -ms-linear-gradient(top, rgba(0,0,0,0.65) 0%,rgba(0,0,0,0.25) 100%);
	background: linear-gradient(to bottom, rgba(0,0,0,0.65) 0%,rgba(0,0,0,0.25) 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#a6000000', endColorstr='#40000000',GradientType=0 );
}

#projectlist a .overlay span {
	display: block; position: absolute; left: 0; right: 0; bottom: 0; max-height: 32px; text-overflow: ellipsis; background: rgba(0,0,0,0.15); color: #fff; text-shadow: 0 0 2px #000, 0 0 1px #000; padding: 2px 4px; font-weight: normal; z-index: 1;

	background: -moz-linear-gradient(top, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.35) 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,0.15)), color-stop(100%,rgba(0,0,0,0.35)));
	background: -webkit-linear-gradient(top, rgba(0,0,0,0.15) 0%,rgba(0,0,0,0.35) 100%);
	background: -o-linear-gradient(top, rgba(0,0,0,0.15) 0%,rgba(0,0,0,0.35) 100%);
	background: -ms-linear-gradient(top, rgba(0,0,0,0.15) 0%,rgba(0,0,0,0.35) 100%);
	background: linear-gradient(to bottom, rgba(0,0,0,0.15) 0%,rgba(0,0,0,0.35) 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#26000000', endColorstr='#59000000',GradientType=0 );
}

#projectlist a:hover .overlay h2 { color: #fff; text-shadow: 0 0 2px #000; }

#projectlist a .overlay { position: absolute; left: 0; top: 0; right: 0; bottom: 0; z-index: 2; }
#projectlist a .bg { position: absolute; left: 0; top: 0; right: 0; bottom: 0; background-position: center center; background-repeat: no-repeat; z-index: 0; }

#projectlist a.small { height: 34px; }

/************************************************************************
    Tables
************************************************************************/
table { border-spacing: 0; border-collapse: collapse; }
table.default td, table.default th { padding: 1px 12px 1px 1px; }
table.default th {
	text-align: left; font-weight: bold; color: #333; text-shadow: 1px 1px 1px #fff; border-bottom: 1px solid rgba(0,0,0,0.12);
	
	background: #fafafa;
	background: -moz-linear-gradient(top, #fafafa 0%, #e8e8e8 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fafafa), color-stop(100%,#e8e8e8));
	background: -webkit-linear-gradient(top, #fafafa 0%,#e8e8e8 100%);
	background: -o-linear-gradient(top, #fafafa 0%,#e8e8e8 100%);
	background: -ms-linear-gradient(top, #fafafa 0%,#e8e8e8 100%);
	background: linear-gradient(to bottom, #fafafa 0%,#e8e8e8 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fafafa', endColorstr='#e8e8e8',GradientType=0 );
}

table.default th:nth-child(2n) {
	background: #e8e8e8;
	background: -moz-linear-gradient(top, #e8e8e8 0%, #d8d8d8 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#e8e8e8), color-stop(100%,#d8d8d8));
	background: -webkit-linear-gradient(top, #e8e8e8 0%,#d8d8d8 100%);
	background: -o-linear-gradient(top, #e8e8e8 0%,#d8d8d8 100%);
	background: -ms-linear-gradient(top, #e8e8e8 0%,#d8d8d8 100%);
	background: linear-gradient(to bottom, #e8e8e8 0%,#d8d8d8 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e8e8e8', endColorstr='#d8d8d8',GradientType=0 );
}

table.default td.icon { background-repeat: no-repeat; height: 16px; padding-left: 20px; }

table.bordered td { border: 1px solid #555; padding: 2px 4px; }

/************************************************************************
    Form elements
************************************************************************/
input[type=text] {
	border: 1px solid #999; padding: 1px 3px; border-radius: 2px; box-sizing: border-box; -moz-box-sizing: border-box; box-shadow: inset 0 1px 4px #ddd; margin: 1px;
	
	background: #f1f1f1;
	background: -moz-linear-gradient(top, #f1f1f1 0%, #f8f8f8 53%, #ffffff 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f1f1f1), color-stop(53%,#f8f8f8), color-stop(100%,#ffffff));
	background: -webkit-linear-gradient(top, #f1f1f1 0%,#f8f8f8 53%,#ffffff 100%);
	background: -o-linear-gradient(top, #f1f1f1 0%,#f8f8f8 53%,#ffffff 100%);
	background: -ms-linear-gradient(top, #f1f1f1 0%,#f8f8f8 53%,#ffffff 100%);
	background: linear-gradient(to bottom, #f1f1f1 0%,#f8f8f8 53%,#ffffff 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f1f1f1', endColorstr='#ffffff',GradientType=0 );
}

input[type=text]:focus { outline: 0; border-color: #07f; }

/************************************************************************
    Form elements - Buttons (default)
************************************************************************/
input[type=button], input[type=submit], button {
	padding: 3px 8px; color: #333; text-shadow: 1px 1px 1px #fff; margin: 1px; border: 1px solid #888; border-radius: 3px; box-shadow: inset 0 0 2px #fff; box-sizing: border-box; -moz-box-sizing: border-box;
	
	background: #f0f0f0;
	background: -moz-linear-gradient(top, #f0f0f0 0%, #dfdfdf 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f0f0f0), color-stop(100%,#dfdfdf));
	background: -webkit-linear-gradient(top, #f0f0f0 0%,#dfdfdf 100%);
	background: -o-linear-gradient(top, #f0f0f0 0%,#dfdfdf 100%);
	background: -ms-linear-gradient(top, #f0f0f0 0%,#dfdfdf 100%);
	background: linear-gradient(to bottom, #f0f0f0 0%,#dfdfdf 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f0f0f0', endColorstr='#dfdfdf',GradientType=0 );
}

input[type=button]:disabled, input[type=submit]:disabled, button:disabled { color: #777; border-color: #aaa; }

input[type=button]:not(:disabled):hover, input[type=submit]:not(:disabled):hover, button:not(:disabled):hover {
	border-color: #999;
	background: #f7f7f7;
	background: -moz-linear-gradient(top, #f7f7f7 0%, #e6e6e6 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f7f7f7), color-stop(100%,#e6e6e6));
	background: -webkit-linear-gradient(top, #f7f7f7 0%,#e6e6e6 100%);
	background: -o-linear-gradient(top, #f7f7f7 0%,#e6e6e6 100%);
	background: -ms-linear-gradient(top, #f7f7f7 0%,#e6e6e6 100%);
	background: linear-gradient(to bottom, #f7f7f7 0%,#e6e6e6 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f7f7f7', endColorstr='#e6e6e6',GradientType=0 );
}

input[type=button]:not(:disabled):hover:active, input[type=submit]:not(:disabled):hover:active, button:not(:disabled):hover:active {
	border-color: #777;
	background: #dddddd;
	background: -moz-linear-gradient(top, #dddddd 0%, #c4c4c4 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#dddddd), color-stop(100%,#c4c4c4));
	background: -webkit-linear-gradient(top, #dddddd 0%,#c4c4c4 100%);
	background: -o-linear-gradient(top, #dddddd 0%,#c4c4c4 100%);
	background: -ms-linear-gradient(top, #dddddd 0%,#c4c4c4 100%);
	background: linear-gradient(to bottom, #dddddd 0%,#c4c4c4 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dddddd', endColorstr='#c4c4c4',GradientType=0 );
}

/************************************************************************
    Form elements - Buttons (blue)
************************************************************************/
input[type=button].blue, input[type=submit].blue, button.blue {
	border-color: #05c; color: #fff; text-shadow: -1px -1px 1px rgba(0,0,0,0.35);
	
	background: #499bea;
	background: -moz-linear-gradient(top, #499bea 0%, #207ce5 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#499bea), color-stop(100%,#207ce5));
	background: -webkit-linear-gradient(top, #499bea 0%,#207ce5 100%);
	background: -o-linear-gradient(top, #499bea 0%,#207ce5 100%);
	background: -ms-linear-gradient(top, #499bea 0%,#207ce5 100%);
	background: linear-gradient(to bottom, #499bea 0%,#207ce5 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#499bea', endColorstr='#207ce5',GradientType=0 );
}

/************************************************************************
    Icon links
************************************************************************/
a.icon, span.icon { line-height: 16px; height: 16px; display: inline-block; padding-left: 20px; background-repeat: no-repeat; }

.icon_mail { background-image: url("//static.frigolit.net/img/fugue/icons-shadowless/mail.png"); }

.icon_github  { background-image: url("//static.frigolit.net/img/misc/16x16/github.png"); }
.icon_twitter { background-image: url("//static.frigolit.net/img/misc/16x16/twitter.png"); }
.icon_youtube { background-image: url("//static.frigolit.net/img/misc/16x16/youtube.png"); }

/************************************************************************
    Responsive design
************************************************************************/
@media (max-width: 1010px) {
	#container { background: #fff; padding-top: 0; min-height: 0; }
	#content { display: block; width: auto; border: none; box-shadow: none; border-top: 1px solid rgba(0,0,0,0.25); }

	#leftcol { display: none; }
	#maincol { display: block; width: auto; }
	#rightcol { display: none; }
}

@media (max-width: 850px) {
	#header { position: fixed; top: 0; left: 0; right: 0; height: 64px; border-bottom: 1px solid rgba(0,0,0,0.25); background: no-repeat url("header-mobile.jpg") top left; background-size: auto 64px; }
	#menu { display: none; position: fixed; left: 0; top: 64px; height: auto; bottom: 0; width: 100%; margin: 0; text-align: left; background: #fff; z-index: 10; overflow-y: auto; }
	#menu a {
		display: block;

		background: #cedbd8;
		background: -moz-linear-gradient(top, #cedbd8 0%, #a8bfb9 100%);
		background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#cedbd8), color-stop(100%,#a8bfb9));
		background: -webkit-linear-gradient(top, #cedbd8 0%,#a8bfb9 100%);
		background: -o-linear-gradient(top, #cedbd8 0%,#a8bfb9 100%);
		background: -ms-linear-gradient(top, #cedbd8 0%,#a8bfb9 100%);
		background: linear-gradient(to bottom, #cedbd8 0%,#a8bfb9 100%);
		filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cedbd8', endColorstr='#a8bfb9',GradientType=0 );
	}

	#menubutton { display: block; border: 1px solid rgba(0,0,0,0.25); }

	#footer { margin-top: 0; }
	#container { padding-top: 64px; }
	#content { padding: 0; background: #fff; border-top: none; }
	#content > div > .contentbox { box-shadow: none; width: auto; padding: 8px; margin-bottom: 0; border-bottom: 1px solid #555; }
	#content > div > .contentbox img { max-width: 400px; }
	.youtube_embed { width: 400px; height: 225px; }
}

@media (max-width: 440px) {
	#content > div > .contentbox img { max-width: 250px; }
	.youtube_embed { width: 250px; height: 140px; }
}

/************************************************************************
    Gallery
************************************************************************/
#cnt_gallery_dates h3 { margin-bottom: 4px; }
#cnt_gallery_dates > div > a { display: inline-block; padding: 4px; color: #844; }
#cnt_gallery_dates > div > a:hover { background: #844; color: #fff; text-shadow: 0 0 1px rgba(0,0,0,0.35); }
#cnt_gallery_dates > div > div > a { display: inline-block; padding: 4px; }
#cnt_gallery_dates > div > div > a:hover { background: #4C8393; color: #fff; text-shadow: 0 0 1px rgba(0,0,0,0.35); }
#cnt_gallery_dates > div > div { display: inline-block; }

.gallery_thumb {
	position: relative; width: 152px; height: 95px; display: inline-block; vertical-align: top; margin: 2px; text-align: center; box-shadow: 0 0 2px rgba(0,0,0,0.35); border: 1px solid #fff; border-radius: 2px; background-size: 152px 95px; overflow: hidden;

	background: #b4bcbc;
	background: -moz-linear-gradient(top, #b4bcbc 0%, #a0afb0 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#b4bcbc), color-stop(100%,#a0afb0));
	background: -webkit-linear-gradient(top, #b4bcbc 0%,#a0afb0 100%);
	background: -o-linear-gradient(top, #b4bcbc 0%,#a0afb0 100%);
	background: -ms-linear-gradient(top, #b4bcbc 0%,#a0afb0 100%);
	background: linear-gradient(to bottom, #b4bcbc 0%,#a0afb0 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#b4bcbc', endColorstr='#a0afb0',GradientType=0 );
}

.gallery_thumb > img { width: 150px; height: 93px; background-size: 150px 93px; }

.gallery_thumb > .icons { position: absolute; top: 0; right: 0; padding: 2px; background: rgba(255,255,255,0.35); border-left: 1px solid #fff; border-bottom: 1px solid #fff; box-shadow: 0 0 1px rgba(0,0,0,0.5); }

/**** Side menu ****/
div.sidemenu {
	display: flex;
	flex-direction: row;
}

div.sidemenu > ul {
	flex: 0 0 auto;
	padding-right: 20px;
	list-style: none;
}

div.sidemenu > ul li {
	display: block;
}

div.sidemenu > ul a {
	display: block;
	padding: 2px;
}

div.sidemenu > ul a:hover {
	background: #4C8393;
	color: white;
}

div.sidemenu > ul > li.separator {
	height: 0px;
	border-bottom: 1px dotted #aaa;
	margin: 4px 0;
}

div.sidemenu > div.contentbox {
	flex: 1 1 auto;
}
