/* --------------------------------------------------------------------------------------
 * html and body
 * -------------------------------------------------------------------------------------- */

	html {
		min-height: 100%;
		padding-bottom: 1px; /* always show vertical scrollbars */
	}
	body {
		background: #fff; color: #333;
		font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;
		font-size: 14px;
		margin: 0; padding: 0;
		width: 100%;
		height: 100%;
	}


/* --------------------------------------------------------------------------------------
 * generic classes
 * -------------------------------------------------------------------------------------- */

	/* clearer
	   http://www.pixelsurge.com/experiment/clearers.htm */
	.clear {
		clear: both;
		height: 1px;
		margin-top: -1px;
		overflow: hidden;
		font-size: 1px;
	}

	.inline {
		display: inline !important;
	}
	.hidden {
		visibility: hidden !important;
	}


	.mb0 {
		margin-bottom: 0 !important;
	}
	.mb1 {
		margin-bottom: 25px !important;
	}
	.mb2 {
		margin-bottom: 50px !important;
	}
	.mb3 {
		margin-bottom: 75px !important;
	}
	.mb4 {
		margin-bottom: 100px !important;
	}


/* --------------------------
 * media classes
 * -------------------------- */

	/*
	reader   = screen reader only  (eg skip links)
	print    = print only          (eg contact infos, references)
	nonprint = don't print         (eg navigation)
	*/

	.reader {
		position: absolute; left: -990em; height: 1em; width: 1em;
		overflow: hidden;
	}
	.print {
		display: none;
		visibility: hidden;
	}
	.nonprint {
		/* nothing */
	}


/* --------------------------------------------------------------------------------------
 * typo, images, lists, tables, forms,..
 * -------------------------------------------------------------------------------------- */

	p {
		font-size: 1em; line-height: 1.6em; font-weight: normal;
		margin: 0 0 1em 0; padding: 0;
	}
	h6, h5, h4, h3 {
		font-size: 1em; line-height: 1.6em; font-weight: bold;
		margin: 0; padding: 1em 0 0.8em 0;
		color: #333;
	}
	h2 {
		font-size: 1.2em; line-height: 1.3em; font-weight: bold;
		margin: 0; padding: 1em 0 1em 0;
		color: #555;
	}
	h1 {
		font-size: 1.5em; line-height: 1.2em; font-weight: bold;
		margin: 0; padding: 0 0 1em 0;
		color: #0065B3;
	}

/* --------------------------
 * dtr (image replacement)
 * -------------------------- */

	.decaf__dtr_images {
		position: relative; left: -2px;
	}
	.decaf__dtr_images img {
		display: inline;
	}
	

/* --------------------------
 * lists
 * -------------------------- */

	ul,
	ol {
		margin: 0;
		padding: 0.5em 0 1em 3em;
	}
	li {
		line-height: 1.6em;
		margin: 0 0 0.3em 0;
		padding: 0;
	}

/* --------------------------
 * tables
 * -------------------------- */

	table,
	table tr,
	table th,
	table td {
		margin: 0;
		padding: 0;
		border: 1px solid #ccc;
		vertical-align: top;
		text-align: left;
	}
	table th,
	table td {
		font-size: 1em; line-height: 1.6em;
		font-weight: normal;
		padding: 0.2em 1em 0.2em 0.2em;
	}

/* --------------------------
 * links
 * -------------------------- */

	a {
		color: #0066B1;
	}
	a:hover,
	a:focus {
	}
	a:active {
		outline: 0; /* remove dotted borders */
	}
	a:visited {
	}

/* --------------------------
 * images
 * -------------------------- */

	img {
		border: 0;
		padding: 0;
		margin: 0;
		display: block;
	}


/* --------------------------------------------------------------------------------------
 * layout strucutre
 * -------------------------------------------------------------------------------------- */

	#site-wrapper {
		width: 920px;
		margin: 10px auto;
		padding-bottom: 20px;
		overflow: hidden;
	}
	#site-t {
		height: 15px;
		background: url(../images/bgr_site-t.png) no-repeat;
	}
	#site-b {
		height: 15px;
		background: url(../images/bgr_site-b.png) no-repeat;
	}
	#site-m {
		background: url(../images/bgr_site-m.png) repeat-y;
	}
	* html #site-m {
		display: inline-block;
	}
	#site {
		position: relative; /* place on top */
		margin: -5px 10px;
	}


	#content-wrapper {
		position: relative; /* place on top */
		margin-top: -45px;
		overflow: hidden;
	}
	* html #content-wrapper {
		display: inline-block;
	}
	*+html #content-wrapper {
		display: inline-block;
	}
	#sidebar {
		width: 195px;
		float: left;
		margin: 0 35px 30px 15px;
		padding-top: 10px;
	}
	* html #sidebar {
		display: inline;
		background: #fff;
	}
	*+html #sidebar {
		display: inline;
		background: #fff;
	}
	#content {
		width: 610px;
		float: left;
		margin: 0 0 30px 0;
		min-height: 250px;
	}


/* --------------------------------------------------------------------------------------
 * header
 * -------------------------------------------------------------------------------------- */

	#header {
		background: url(../images/bgr_header.png) repeat-x;
	}
	#logo {
		position: relative;
		width: 210px;
	}
	#logo a em {
		position: absolute; top: 14px; right: 2px;
		font-style: normal;
		font-size: 11px;
		color: #0065b3;
		display: none;
	}
	#logo a:hover em,
	#logo a:focus em {
		display: block;
	}
	#topic {
		min-height: 240px;
		border-top: 1px solid #e5e5e5;
	}
	* html #topic {
		height: 240px;
	}


/* --------------------------------------------------------------------------------------
 * navigation
 * -------------------------------------------------------------------------------------- */

	/* main */

	#navigation {
		position: absolute; top: 0; right: 0;
		width: 640px;
		height: 56px;
	}
	#navigation ul {
		position: absolute; bottom: 0; right: 25px;
		margin: 0;
		padding: 0;
	}
	#navigation ul li {
		display: block;
		float: left;
		margin: 0 20px 0 0;
	}
	#navigation ul li a,
	#navigation ul li p {
		display: block;
		float: left;		
		margin: 0;
		text-decoration: none;
		overflow: hidden;
	}
	#navigation ul li a {
		color: #333;
	}
	#navigation ul li p,
	#navigation ul li a:hover,
	#navigation ul li a:focus {
		color: #0066B1;
	}
	#navigation ul li p strong,
	#navigation ul li a span {
		position: absolute; left: -990em; height: 1em; width: 1em;
		overflow: hidden;	
	}

	#navigation ul li a,
	#navigation ul li p {
		background: url(../images/bgr_navigation.png) 0 0 no-repeat;
		height: 20px;
	}
	#navigation ul li.n1 a,
	#navigation ul li.n1 p {
		background-position: 0 0;
		width: 82px;
	}
	#navigation ul li.n1 a:hover,
	#navigation ul li.n1 a:focus,
	#navigation ul li.n1 p {
		background-position: 0 -20px;
	}
	#navigation ul li.n2 a,
	#navigation ul li.n2 p {
		background-position: 0 -40px;
		width: 103px;
	}
	#navigation ul li.n2 a:hover,
	#navigation ul li.n2 a:focus,
	#navigation ul li.n2 p {
		background-position: 0 -60px;
	}
	#navigation ul li.n3 a,
	#navigation ul li.n3 p {
		background-position: 0 -80px;
		width: 72px;
	}
	#navigation ul li.n3 a:hover,
	#navigation ul li.n3 a:focus,
	#navigation ul li.n3 p {
		background-position: 0 -100px;
	}
	#navigation ul li.n4 a,
	#navigation ul li.n4 p {
		background-position: 0 -120px;
		width: 86px;
	}
	#navigation ul li.n4 a:hover,
	#navigation ul li.n4 a:focus,
	#navigation ul li.n4 p {
		background-position: 0 -140px;
	}
	#navigation ul li.n5 a,
	#navigation ul li.n5 p {
		background-position: 0 -160px;
		width: 64px;
	}
	#navigation ul li.n5 a:hover,
	#navigation ul li.n5 a:focus,
	#navigation ul li.n5 p {
		background-position: 0 -180px;
	}

	/* sub */

	#sub-navigation {
		margin: 0 0 30px 0;
	}
	#sub-navigation ul {
		margin: 0;
		padding: 0;
	}
	#sub-navigation ul li {
		display: block;
		margin: -1px 0 0 0;
		font-size: 0.93em;
	}
	* html #sub-navigation ul li {
		height: 1%;
	}
	*+html #sub-navigation ul li {
		height: 1%;
	}
	#sub-navigation ul li a,
	#sub-navigation ul li p {
		font-size: 1em;
		display: block;
		margin: 0;
		padding: 5px 0;
		text-decoration: none;
		border-top: 1px solid #e5e5e5;
		border-bottom: 1px solid #e5e5e5;
		overflow: hidden;
	}
	* html #sub-navigation ul li a,
	* html #sub-navigation ul li p {
		height: 1%;
	}
	*+html #sub-navigation ul li a,
	*+html #sub-navigation ul li p {
		height: 1%;
	}
	#sub-navigation ul li a {
		color: #333;
	}
	#sub-navigation ul li p,
	#sub-navigation ul li a:hover,
	#sub-navigation ul li a:focus {
		color: #0066B1;
	}


/* --------------------------------------------------------------------------------------
 * footer
 * -------------------------------------------------------------------------------------- */

	#footer {
		border-top: 1px solid #e5e5e5;
		background: #eee url(../images/bgr_footer.png) repeat-x;
		padding: 5px 0;
		min-height: 15px;
		position: relative;
	}
	* html #footer {
		display: inline-block;
		height: 15px;
	}
	#footer p,
	#footer li {
		font-size: 0.86em; line-height: 1.4em;
	}
	#footer li p,
	#footer li li {
		font-size: 1em;
	}
	#footer .navigation {
		width: 640px;
		margin-left: 245px;
	}
	#footer .navigation ul {
		margin: 0;
		padding: 0;
	}
	#footer .navigation ul li {
		display: block;
		float: left;
		margin: 0 30px 0 0;
	}
	#footer .navigation ul li a {
		color: #999;
		display: block;
		float: left;		
		margin: 0;
		text-decoration: none;
	}
	#footer .navigation ul li p,
	#footer .navigation ul li a:hover,
	#footer .navigation ul li a:focus {
		color: #666;
	}

	#footer #decafmedia {
		position: absolute; top: 6px; right: 10px;
	}


/* --------------------------------------------------------------------------------------
 * sidebar
 * -------------------------------------------------------------------------------------- */

	/* items */

	#sidebar .item {
		margin: 0 0 20px 0;
		border: 1px solid #dfdfdf;
	}
	#sidebar .item p,
	#sidebar .item li {
		font-size: 0.86em; line-height: 1.4em;
	}
	#sidebar .item li p,
	#sidebar .item li li {
		font-size: 1em;
	}
	#sidebar .item .header {
		background: #f1f1f1 url(../images/bgr_sidebar_item.png) repeat-x;
		padding: 0.3em 5px 0.3em 10px;
	}
	#sidebar .item .header h4 {
		font-size: 0.86em; line-height: 1.4em; font-weight: bold;
		margin: 0;
		padding: 0;
	}
	#sidebar .item .content {
		padding: 10px 5px 5px 10px;
		overflow: hidden;
		position: relative;
	}
	#sidebar .item ul {
		margin: 0;
		padding: 0;
	}
	#sidebar .item ul li {
		margin: 0 0 10px 0;
		padding: 0;
		list-style-type: none;
	}
	#sidebar .item ul li p {
		margin: 0;
	}

	/* scroll items */

	#sidebar .scroll .content {
		padding: 30px 5px 40px 10px;
	}
	#sidebar .scroll .content ul {
		position: relative;
	}
	#sidebar .scroll .previous,
	#sidebar .scroll .next {
		width: 191px;
		height: 17px;
		background-image: url(../images/bgr_arrows.png);
		background-repeat: no-repeat;
		background-color: #eee;
		cursor: pointer;
		position: absolute;
		left: 1px;
	}
	#sidebar .scroll .previous:hover,
	#sidebar .scroll .next:hover {
		background-color: #eef4f9;
	}		
	#sidebar .scroll .previous {
		background-position: center 0;
		top: 1px;
	}
	#sidebar .scroll .previous:hover {
		background-position: center -40px;
	}
	#sidebar .scroll .next {
		background-position: center -22px;
		bottom: 1px;
	}
	#sidebar .scroll .next:hover {
		background-position: center -62px;
	}

	/* news */

	#sidebar #news .content {
		height: 70px;
	}
	#sidebar #news .content ul li {
		height: 70px;
		overflow: hidden;
		margin-bottom: 50px;
	}
	#sidebar #news .content ul li .text {
		font-weight: bold;
	}

	/* angebote */

	#sidebar #angebote .content {
		height: 160px;
	}
	#sidebar #angebote .content ul li {
		height: 160px;
		overflow: hidden;
		margin-bottom: 50px;
	}
	#sidebar #angebote .content ul li .title {
		font-weight: bold;
		margin-bottom: 10px;
	}
	#sidebar #angebote .content ul li .image {
		margin-bottom: 10px;
	}

	/* partner */

	#sidebar #partner .content img {
		margin: 0 auto;
		padding: 10px 0;
	}


/* --------------------------------------------------------------------------------------
 * dm_form
 * -------------------------------------------------------------------------------------- */

	form.dm_form {
		width: 600px;
		font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;
		font-size: 1em;
		margin: 0;
		padding: 0;
		border: 0;
	}
	form.dm_form div.form_wrapper {
		margin: 0 -1%;
		padding: 0;
	}
	* html form.dm_form div.form_wrapper {
		display: inline-block;
	}
	*+html form.dm_form div.form_wrapper {
		display: inline-block;
	}
	form.dm_form fieldset {
		clear: both;
		margin: 0 0 20px 0;
		padding: 0;
		border: 0;
	}
	form.preview fieldset {
		display: none;
		visibility: hidden;
	}


/* --------------------------------------
 * labels and wrappers
 * -------------------------------------- */

	form.dm_form label {
		margin: 0 1%;
		padding: 0;
		border: 0;
		float: left;
		display: table;
		width: 1%;
	}
	* html form.dm_form label {
		display: inline-block !important;
		width: 1%;
		height: 1%;
		margin-right: 0.9% !important; /* avoid position bugs */
	}
	*+html form.dm_form label {
		display: inline-block !important;
		width: 1%;
		height: 1%;
		margin-right: 0.9% !important; /* avoid position bugs */
	}
	form.dm_form span.wrapper {
		margin: 0;
		padding: 0;
		display: table-cell;
		width: 1%; /* firefox */
	}
	* html form.dm_form span.wrapper {
		display: block !important;
		width: 100%;
		overflow: hidden;
	}
	*+html form.dm_form span.wrapper {
		display: block !important;
		width: 100%;
		overflow: hidden;
	}
	* html form.dm_form label.radiocheck span.wrapper {
		width: auto;
	}
	*+html form.dm_form label.radiocheck span.wrapper {
		width: auto;
	}


/* --------------------------------------
 * width
 * -------------------------------------- */

	form.dm_form label.w100 {
		width: 98%;
		display: block;
	}
	form.dm_form label.w75 {
		width: 73%;
		display: block;
	}
	form.dm_form label.w50 {
		width: 48%;
		display: block;
	}
	form.dm_form label.w25 {
		width: 23%;
		display: block;
	}


/* --------------------------------------
 * position
 * -------------------------------------- */

	form.dm_form label.p25 {
		margin-left: 26%;
	}
	form.dm_form label.p50 {
		margin-left: 51%;
	}
	form.dm_form label.p75 {
		margin-left: 76%;
	}


/* --------------------------------------
 * errors
 * -------------------------------------- */

	form.dm_form label.error input.field,
	form.dm_form label.error select.field,
	form.dm_form label.error textarea.field {
		border-color: #dd1100;
	}

	form.dm_form label.error span.title {
		color: #dd1100;
	}


/* --------------------------------------
 * input/select fields 
 * -------------------------------------- */

	form.dm_form label input.field,
	form.dm_form label select.field,
	form.dm_form label textarea.field {
		width: 100%;
		display: block;
		border: 0;
		border-bottom: 1px solid #adbecc;
		border-left: 8px solid #adbecc;
		background: #e7ecf0;
		padding: 4px;
		font-family: 'Consolas', 'Andale Mono', Courier, monospace;
		/* font-size-adjust: 0.51; */
		font-size: 1em;
		box-sizing: border-box;
		-moz-box-sizing: border-box; /* gecko */
		-webkit-box-sizing: border-box; /* khtml/webkit */
	}
	* html form.dm_form label input.field,
	* html form.dm_form label select.field,
	* html form.dm_form label textarea.field {
		position: relative; /* put on top */
		width: expression(parentNode.offsetWidth - 18); /* - border - padding */
		padding-top: 5px;
		padding-bottom: 5px;
	}
	*+html form.dm_form label input.field,
	*+html form.dm_form label select.field,
	*+html form.dm_form label textarea.field {
		position: relative; /* put on top */
		width: expression(parentNode.offsetWidth - 18); /* - border - padding */
		padding-top: 5px;
		padding-bottom: 5px;
	}
	form.dm_form label select.field {
		padding: 4px 1px 1px 1px; /* have to try out */
	}
	* html form.dm_form label select.field {
		width: 100%;
	}
	*+html form.dm_form label select.field {
		width: 100%;
	}

	/* Pflichtfelder
		mandatory fields */
	form.dm_form label.mandatory input.field,
	form.dm_form label.mandatory select.field,
	form.dm_form label.mandatory textarea.field {
	}
	* html form.dm_form label.mandatory input.field,
	* html form.dm_form label.mandatory select.field,
	* html form.dm_form label.mandatory textarea.field {
		width: expression(parentNode.offsetWidth - 18); /* - border - padding */
	}
	*+html form.dm_form label.mandatory input.field,
	*+html form.dm_form label.mandatory select.field,
	*+html form.dm_form label.mandatory textarea.field {
		width: expression(parentNode.offsetWidth - 18); /* - border - padding */
	}
	form.dm_form label input.field:focus,
	form.dm_form label select.field:focus,
	form.dm_form label textarea.field:focus {
		border-color: #0065B3;
	}


/* --------------------------------------
 * checkboxes and radios
 * -------------------------------------- */

	form.dm_form input.select {
		display: block;
		float: left;
		margin: 0;
	}
	* html form.dm_form input.select {
		position: relative;
		left: -2px;
		top: -2px;
	}
	*+html form.dm_form input.select {
		position: relative;
		left: -2px;
		top: -2px;
	}


/* --------------------------------------
 * submit button
 * -------------------------------------- */

	form.dm_form input.submit {
		font-size: 1em;
		padding: 3px 20px;
		font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;
		/* font-size-adjust: 0.52; */
		font-weight: bold;
		border: 1px solid #0065B3;
		background: #0065B3;
		color: #fff;
	}

	form.dm_form input.submit:hover,
	form.dm_form input.submit:focus {
		border: 1px solid #0065B3;
		background: #0065B3;
		cursor: pointer;  /* sorry, can't use that one in front of Opera */
	}


/* --------------------------------------
 * additional styles for
 * input/select fields
 * -------------------------------------- */

	form.dm_form label.inputselect span.title {
		margin: 0 0 2px 0;
		display: table; /* act as inline-block */
	}
	* html form.dm_form label.inputselect span.title {
		display: inline-block !important;
	}
	*+html form.dm_form label.inputselect span.title {
		display: inline-block !important;
	}
	form.dm_form label.mandatory span.title {
		font-weight: bold;
	}

	form.dm_form label span.title:hover,
	form.dm_form label span.title:focus {
		cursor: pointer;
	}

	form.dm_form label br {
		margin: 0 0 2px 0;
	}


/* --------------------------------------
 * additional styles for
 * checkboxes and radios
 * -------------------------------------- */

	form.dm_form label.wauto {
		width: auto;
		margin-right: 15px;
	}
	form.dm_form label.radiocheck {
		margin-bottom: 10px;
	}
	* html form.dm_form label.radiocheck {
		width: auto;
	}
	*+html form.dm_form label.radiocheck {
		width: auto;
	}
	* html form.dm_form label.radiocheck.w100 {
		width: 98%; /* avoid label being too short */
	}
	*+html form.dm_form label.radiocheck.w100 {
		width: 98%; /* avoid label being too short */
	}
	form.dm_form label.radiocheck span.wrapper {
		padding-right: 0;
	}
	form.dm_form label.wauto span.wrapper {
		display: inline;
	}
	form.dm_form label.radiocheck span.title {
		display: block;
		margin: 0 0 0 20px;
		padding: 0;
	}
	* html form.dm_form label.radiocheck span.title {
		display: inline-block !important;
		margin-left: 0;
	}
	*+html form.dm_form label.radiocheck span.title {
		display: inline-block !important;
		margin-left: 0;
	}


/* --------------------------------------
 * clearing elements
 * -------------------------------------- */

	form.dm_form .clear {
		clear: both;
		display: block;
		padding: 0 0 10px 0;
	}
	form.dm_form .mb0 {
		margin-bottom: 0 !important;
	}

	form.dm_form .pb20 {
		padding-bottom: 20px !important;
	}


/* --------------------------------------
 * form content
 * -------------------------------------- */

	form.dm_form p,
	form.dm_form h3 {
		margin: 0 1% 10px 1%;
	}

	/* errors */

	form.dm_form div.errors {
		margin: 0 1% 30px 1%;
		padding: 0.5em;
		background: #dd1100;
	}
	form.dm_form div.errors p {
		margin: 0 0 0.5em 0;
		color: #fff;
	}
	form.dm_form div.errors ol {
		margin: 0;
		padding: 0;
	}
	form.dm_form div.errors ol li {
		width: auto;
		margin: 0 0 0 2.5em;
		padding: 0;
		color: #fff;
		list-style-type: decimal;
	}
	form.dm_form div.errors ol li p {
		width: auto !important;
		margin: 0 0 0.5em 0;
		color: #fff;
		font-size: 1em;
		line-height: 1.2em;
	}	

	/* preview */

	form.dm_form .mailpreview {
		background: #e7ecf0;
		padding: 1em 0.3em 0.3em 0.3em;
		margin: 0 1% 10px 1%;
	}
	form.dm_form h3 {
		padding: 0;
	}

	/* formsent (outside of form!)*/

	div.formsent {
		margin: 0 0 3em 0;
		padding: 1em 0.5em 0.5em 0.5em;
		background: #e7ecf0;
	}
	div.formsent p {
		margin: 0 0 0.5em 0;
		color: #333;
	}
	div.formsent h2 {
		padding: 0;
		margin: 0 0 0.5em 0;
		color: #333;
	}


/* --------------------------------------------------------------------------------------
 * content
 * -------------------------------------------------------------------------------------- */

	#content h1 {
		width: 450px;
	}


	/* pics */

	#content .pic {
		margin: 0 0 20px 0;
	}
	#content .aleft {
		float: left;
		margin-right: 20px;
	}
	#content .aright {
		float: right;
		margin-right: 10px;
		margin-left: 20px;
	}
	#content .wtext {
		border: 1px solid #ddd;
		padding: 4px;
	}
	#content .pic p {
		font-size: 0.785em; line-height: 1.2em;
		margin: 0;
		padding: 3px 0;
		color: #666;
	}

	/* gallery */

	#content .gallery {
		width: 590px;
		padding: 1px 0 0 1px;
		margin: 0 0 1.5em 0;
	}
	#content .gallery .item {
		display: block;
		float: left;
		margin: -1px 0 0 -1px;
	}
	#content .gallery .item span {
		display: block;
		margin: 0;
		padding: 4px;
		border: 1px solid #ddd;
		overflow: hidden;
	}
	#content .gallery .item a {
		margin: 0;
	}
	#content .gallery .item a:hover span,
	#content .gallery .item a:focus span {
		border: 1px solid #0065B0;
		position: relative;
	}
	#content .gallery .item img {
		margin: 0 auto;
	}
	#content .c2 .item span {
		width: 280px;
		height: 280px;
	}
	#content .c3 .item span {
		width: 184px;
		height: 184px;
	}
	#content .c4 .item span {
		width: 136px;
		height: 136px;
	}
	#content .c5 .item span {
		width: 107px;
		height: 107px;
	}







	/* maintenance */

	#maintenance {
		background: #0065B0;
	}
	#maintenance p {
		font-size: 0.9em;
		line-height: 1em;
		display: block;
		text-align: center;
		color: #fff;
		padding: 2px;
		margin: 0;
		border-bottom: 2px solid #fff;
	}






