:root {
  --cassiopeia-color-primary: #ffffff;
  --body-bg: #ffffff;
  --cassiopeia-color-hover: #3eb6e7;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
	font-family: Ruda-Black, verdana, arial, sans-serif;
	font-weight: normal;
}
.container-header {
	background-color: var(--cassiopeia-color-primary);
	background-image: none;
	box-shadow: none;
}
#mod-custom118 .grid-child {
	justify-content: right;
}
.site-grid {
	grid-gap: 0 1em;
	display: grid;
	grid-template-areas: ". banner banner banner banner ." ". top-a top-a top-a top-a ." ". top-b top-b top-b top-b ." ". comp comp comp comp ." ". side-r side-r side-r side-r ." ". side-l side-l side-l side-l ." ". bot-a bot-a bot-a bot-a ." ". bot-b bot-b bot-b bot-b .";
	grid-template-columns: [full-start] minmax(0,1fr) [main-start] repeat(3,minmax(0,21.875rem)) [main-end] minmax(0,1fr) [full-end];
}

@font-face {
	font-family: 'Ruda-Regular';
	src:url(../fonts/Ruda-Regular.ttf);
}
@font-face {
	font-family: 'Ruda-Bold';
	src:url(../fonts/Ruda-Bold.ttf);
}
@font-face {
	font-family: 'Ruda-Black';
	src:url(../fonts/Ruda-Black.ttf);
}
body {
	hyphens:auto;
	box-sizing:border-box;
	font-family:'Ruda-Regular', verdana, arial, sans-serif;
	font-size: 1em;
	line-height: 1.5em;
	color: rgba(0,0,0,0.6);
}
a:not([class]) {
	text-decoration: none;
}
a:not(.btn):focus, a:not(.btn):hover {
	color: #3eb6e7;
}
a		 	{color: rgba(0,0,0,0.6); text-decoration: none;}
a:hover 	{color: #3eb6e7; text-decoration: none;}
a:active 	{color: #3eb6e7; text-decoration: none;}
a:focus 	{color: #3eb6e7; text-decoration: none;}

p {
	margin-bottom:0px;
}

h1 {
	font-size: 6em;
	line-height:1.3;
	color: #ffffff;
}
h1 a 		{color: #ffffff; text-decoration: none;}
h1 a:hover 	{color: #ffffff; text-decoration: none; }
h1 a:active {color: #ffffff; text-decoration: none; }
h1 a:focus 	{color: #ffffff; text-decoration: none; }

h2 {
	font-size: 1.5em;
	margin-bottom: 9px;
}

h3 {
	color:#3eb6e7;
}
h4, h4 a {
	margin-bottom:0px;
    font-size:1.1rem;
}
#firma, .immo, .dienst, .kont, .link, .impr, .ueber {
	background-attachment: fixed;
	-webkit-background-size: cover;
	-moz-background-size: cover;
	-o-background-size: cover;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
	overflow: hidden;
	height: 35%;
	min-height: 375px;
	position: relative;
}
#firma {
	background-image:url(../images/home.jpg);
	padding-top:450px;
}
.ueber {
	background-image:url(../images/ueberuns.jpg);
}
.immo {
	background-image:url(../images/immobilien.jpg);
}
.dienst {
	background-image:url(../images/dienstleistungen.jpg);
}
.kont {
	background-image:url(../images/kontakt.jpg);
}
.link {
	background-image:url(../images/links.jpg);
}
.impr {
	background-image:url(../images/impressum.jpg);
}
.grid-child.container-component main {
	position: relative;
	z-index: 100;
	margin-top: 57px;
}

#mod-custom91 {
	z-index: 10;
}

/*startseite       ------------- */
#mod-custom90 {
	text-align: center;
}
#mod-custom90 #firma {
  	height:100%;
  	min-height:900px;
}
.pfeil_sm {
	display: none;
}
body.itemid-101 .grid-child.container-component main {
	margin-top: 0px;
}
.footer .grid-child {
	justify-content: flex-end;
  	padding:0px;
}
.footer {
	background-color: #ffffff;
	background-image: none;
	color: rgba(0,0,0,0.6);
	font-size: .75rem;
	margin-top: 50px;
}
body.itemid-101 .footer {
	margin-top: 10px;
}
.footer a {
	color:rgba(0,0,0,0.6);
}  
.footer a:hover {
  	color:#3eb6e7;
}
.back-to-top-link {
	border: 0;
	border-radius: 0;
	position: fixed;
	bottom: 1rem;
	right: 1rem;
	width: 50px;
	height: 26px;
	background-image: url(../images/pfeil-nach-oben.png);
	background-color:transparent;
}
.back-to-top-link:hover {
	background-color: #ffffff;
  	transform: scale(1.1);
}
.back-to-top-link, .back-to-top-link:hover {
  	transition: transform 0.3s;
}
.icon-arrow-up::before {
	display: none;
}
/*   content      ---------------------------------------------  */
.grid-container.seiten {
	display: grid;
	grid-template-columns: auto auto;
}
.grid-container.leist.desk {
	display: grid;
	grid-template-columns: 25% 50% 25%;
}
img.quadrat {
	max-width: 225px;
}
img.schweiz {
	margin-left:-40px;
}
.mobile {
	display:none;
}
.grid-container p {
	max-width:550px;
}
p.partner {
	margin-left:95px;
	font-size:0.9em;
	line-height:1.4;
}
p.partner.left {
	margin-left: 10px;
	margin-top: 22px;
}
p.partner.right {
	margin-top: 244px;
	margin-left:-30px !important;
}
img.vertrauen {
	padding-top:8px;
}
table.vrat tr td:first-child {
	padding-right:20px;
}
/* navigation            --------------------------------------------------------------------  */
.container-header .mod-menu {
	margin-top: -57px;
	background: rgba(255,255,255,0.8);
	padding: 18.6px 100px 16px;
	z-index: 100;
	position: relative;
	justify-content: space-around;
}
.container-header .mod-menu > li > a {
	font-family: 'Ruda-Black', verdana, arial, sans-serif;
 	color:rgba(0,0,0,0.6);
   }

.container-header .mod-menu > li > a:hover,
.container-header .mod-list li.active > a {
	text-decoration: none;
	color: #3eb6e7;
}
.metismenu.mod-menu .metismenu-item {
	padding: 0;
  	line-height:1.4;	
  	font-size:1rem;
}
/* ------------------------------------------------------------------------*/
/*  MEDIA QUERIES  min-width 1400px
---------------------------------------------------------------------------*/
@media (max-width:1400px){
p.partner.right {
	margin-left:0px !important;
}
}
/* ------------------------------------------------------------------------*/
/*  MEDIA QUERIES    max-width:979px
------------------------------------------------------------------------*/
@media (max-width:979px){
img.schweiz {
	margin-left:0px;
}
#firma, .immo, .dienst, .kont, .link, .impr, .ueber {
	min-height: 275px;
}
/*   navigation            -------------------------------------------- */
.container-header .navbar-toggler {
	border: 0;
	color: rgba(255,255,255,0.9);
	cursor: pointer;
	font-size: 2.25rem;
	border-radius: 0;
	transition: box-shadow .15s ease-in-out;
	position: absolute;
  	top: 285px;
  	right:0;
  	z-index:100;
}
/*  rahmen um burger-button loeschen   */
.navbar-toggler:focus {
	box-shadow: none;
}
/*  icon burger und icon kreuz bei offener und geschlossener navigation   */
button[aria-expanded="false"] > span.icon-menu::before {
	content: "\f0c9";
} 
button[aria-expanded="true"] > span.icon-menu::before {
	content: "\f00d";
}
.container-header .mod-menu {
	margin: -27px 0 0 0px;
	padding: 0;
	width: 300px;
	background-color: rgba(255,255,255,0.9);
}
.container-header .navbar-collapse.show {
	display: block;
}
.navbar.navbar-expand-lg {
	position: absolute;
	top: 24px;
  	width:100%;
} 
.mod-menu.metismenu.mod-list li  {
  	padding:0 15px;
  }
.mod-menu.metismenu.mod-list li a {
  	padding:7px 0;
  	border-bottom: 1px solid rgba(0,0,0,0.6);
  	width:100%;
  }
.mod-menu.metismenu.mod-list li:last-child a {
  	border-bottom: 0px;
  }
.mod-menu.metismenu.mod-list li a:hover,
.mod-menu.metismenu.mod-list li.active a  {
    color:#3eb6e7;
    text-decoration:none;
  }
}
/* ------------------------------------------------------------------------*/
/*  MEDIA QUERIES  max-width 767px
---------------------------------------------------------------------------*/
@media (max-width:767px){
#firma, .immo, .dienst, .kont, .link, .impr, .ueber {
	min-height: 150px;
}
.container-header .navbar-toggler {
 	top: 160px;
}
/*         inhalt                --------------------------------------------*/
.header {
	text-align:center;
}
.grid-child.container-component main {
	position: relative;
	z-index: 100;
	margin-top: 35px;
}
#mod-custom118 .grid-child {
	justify-content: center;
}
img.schweiz, img.quadrat {
	margin:0px 40px 50px;
  	max-width:auto;
}
h1 {
	font-size: 4em;
}
.grid-container.leist.desk {
	display:none;
}
.clearfix::after {
  content: "";
  clear: both;
  display: table;
}
.mobile {
	display:block;
	margin-left:-10px;
}
img.vertrauen {
	position: absolute;
	left: 35px;
}
.mobile p.partner {
	font-size: 0.85em;
	line-height: 1.4;
	float: left;
	padding-top: 8px;
	position: relative;
}
.mobile p.partner.top-left {
	margin-left: 0px;
}
.mobile p.partner.right {
	margin-top: 0px;
	margin-left: 99px !important;
}
.mobile p.partner.left {
	margin-top: 222px;
	margin-left:0px;
	clear:both;
}
.mobile p.partner.bot-right {
	margin-top: 222px;
	margin-left: 103px;
}

.grid-container.seiten {
	display: block;
}
}

/* ------------------------------------------------------------------------*/
/*  MEDIA QUERIES     max-width:520px
------------------------------------------------------------------------*/
@media (max-width:520px){
.navigation {
	margin:210px 0 10px 0;
}
/*         inhalt                --------------------------------------------*/
.pfeil_big {
	display:none;
}
.pfeil_sm {
	display:block;
}
h1 {
	font-size: 2.5em;
}
#firma {
	padding-top:300px;
}
img.schweiz, img.quadrat {
	margin:0px 0px 50px;
}
img.vertrauen, img.quadrat {
	margin-left:0px;
}
.footer .grid-child {
	padding: 0 20px;
	line-height: 1.4;
}
}
