html, body {
  font-family: 'Source Sans Pro', sans-serif;
  font-size: 14px;
  font-weight: 400;
  
  min-height: 100%;
}
html {
  height: 100%;
}
body {
  display: flex;
  flex-direction: column;
  
  background-color: #f6f6f6;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Roboto', sans-serif;
  font-weight: 300;
}

header {
  padding: 30px 0;
}
main {
  flex: 1 0 auto;
  
  padding: 0px 0 40px;
}
footer {
  padding: 40px 0;
  
  background-color: #131313;
  color: #fff;
}

.hasch-logo,
.hasch-logo a {
  display: block;
  width: 115px;
  height: 30px;
}
.no-svg .hasch-logo {
  background: url('../images/hasch_logo_115x30.png') no-repeat;
}
.svg .hasch-logo {
  background: url('../images/hasch_logo.svg') no-repeat;
}

.nowrap {
  white-space: nowrap;
}

/* header */

header .head-box {
  padding-bottom: 20px;
  
  border-bottom: 1px solid #ddd;
}

header .logo {
  display: inline-block;
}

/* nav */

#collapseMenuButton {
  display: block;
  margin-top: 6px;
  padding: 6px 12px;
  
  color: #666;
  font-size: 16px;
  
  background-color: rgba(0, 0, 0, 0.02);
  border-bottom: 2px solid transparent;
  text-decoration: none;
}
#collapseMenuButton:hover {
  background-color: rgba(0, 0, 0, 0.04);
  border-bottom: 2px solid rgb(225, 11, 6);
}

#collapseMenu .menu {
  padding: 6px 12px;
}

.menu {
  display: inline-block;
  float: right;
  position: relative;
  top: 8px;
}
.menu ul {
  list-style: none;
  padding-left: 0px;
}
.menu li {
  display: inline-block;
}
.menu li a {
  display: block;
  padding: 4px 8px 2px;
  margin-right: 10px;
  
  color: #666;
  font-size: 16px;
  
  border-bottom: 2px solid transparent;
}
.menu li a:hover {
  border-bottom: 2px solid rgb(225, 11, 6);
  text-decoration: none;
}

#collapseMenu .menu {
  display: block;
  float: none;
  position: relative;
}

#collapseMenu .menu li {
  display: block;
}

/* main */

main h1.highlight {
  background-color: #ddd;
  
  height: 1px;
  margin: 82px 0 42px;
  
  text-align: center;
}
main h1.highlight + h3 {
  text-align: center;
}
main h1 b {
  font-weight: 500;
}
main h1 .highlight {
  padding: 0 30px;
  position: relative;
  top: -21px;

  background-color: #f6f6f6;
  color: #999;
}
@media (max-width: 575.98px) {
  main h1 .highlight {
    font-size: 24px;
  }
}

main h2 {
  font-size: 19px;
  font-weight: 500;
  color: #222;
}
main h2 .highlight {
  display: inline-block;
  padding: 7px 14px 8px;
  margin: -7px -14px -8px;
  border-radius: 1px;
  background: rgb(213,35,46);
  color: #eee;
  font-size: 18px;
}

/* footer */

footer .contact {
  
}
footer .break {
  margin: 40px auto;
  width: 200px;
  height: 0;
  border-bottom: 1px dashed #444;
}
footer a {
  color: #888;
}
footer .block * {
  display: block;
}

/* custom */

.solidline {
  display: block;
  width: 100%;
  height: 1px;
  
  border-bottom: 1px solid #ddd;
}

.dotline {
  display: block;
  width: 100%;
  height: 1px;
  
  border-bottom: 1px dotted #ddd;
}

.dashline {
  display: block;
  width: 100%;
  height: 1px;
  
  border-bottom: 1px dashed #ddd;
}

.box {
  border-radius: 3px;
  margin-bottom: 20px;
  padding: 10px 20px;
}
.box-red {
  background-color: rgb(213,35,46);
  color: #fff;
  
  min-height: 180px;
}
.box-grey {
  background-color: #eee;
}
.box h2:first-child {
  margin-top: 10px;
}
.box-red h2 {
  color: #fff;
}
.box-red a,
.box-red a:hover {
  color: #fff;
}

.btn-trans {
  border: 2px solid #fff;
  border-radius: 3px;
  background: transparent;
}
.btn-trans:hover {
  background: rgba(0,0,0,0.1);
}

/* video */

.responsive-iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* typo3 */

.csc-mailform ol {
  list-style: none;
  padding: 0;
}
