@import url("../fonts/embedfonts.css");

/* basics */
:root {
  --page-width: 1240px;
  --mobile-page-margin: 7.8%;
}

html {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
}
body {
  background: #fff;
  font-family: "GT America Extended", Helvetica, Arial, sans-serif;
  line-height: 1.22;
  font-size: 18px;
  color: #000;
  width: 100%;
  height: 100%;
  /* https://stackoverflow.com/questions/22204752/mac-safari-font-rendering-changes-thinner-when-any-element-on-the-page-gets-posi */
  font-synthesis: none;
  -moz-font-feature-settings: "kern";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  --header-height: 90px;
}

*::selection {
  background: #a6a6a6;
  color: #000;
}
.clearfix::after {
  content: "";
  clear: both;
  display: block;
}

* {
  box-sizing: border-box;
}
/* Text */

main {
  display: block;
  position: relative;
}
a,
.link {
  color: #a6a6a6;
}

a:not([href]) {
  color: #000000;
}
.h1,
.h2,
.h3,
.h4 {
  text-transform: uppercase;
  margin: 20px 0;
}

.h1 {
  font-size: 91px;
  line-height: 1.02;
  word-break: break-word;
  hyphens: auto;
  -webkit-hyphens: auto;
  -moz-hyphens: auto;
  -ms-hyphens: auto;
  -webkit-hyphenate-before: 2;
  -webkit-hyphenate-after: 3;
  hyphenate-lines: 3;
}
.h2 {
  font-size: 44px;
  line-height: 1.1;
}
.h4 {
  font-size: 16px;
}
.copy p {
  margin: 20px 0;
}
.copy p:first-child {
  margin-top: 0;
}
.copy p:last-child {
  margin-bottom: 0;
}
.h2 + .h4 {
  margin-top: 40px;
}
.h1 a,
.h2 a,
.h4 a {
  color: inherit;
  text-decoration: inherit;
}
.h1 a:hover,
.h2 a:hover,
.h4 a:hover {
  color: inherit;
  background: inherit;
  box-shadow: none;
}
h2.h2 {
  border-bottom: 1pt solid #000;
  padding-bottom: 3px;
  margin-bottom: 0;
  font-size: 22px;
}
h3.h3 {
  padding-bottom: 3px;
  margin-bottom: 0;
  font-size: 22px;
  text-transform: uppercase;
}
h4.h4 {
  padding-bottom: 3px;
  margin-bottom: 0;
  font-size: 100%;
  text-transform: uppercase;
}
em {
  font-style: normal;
}
em:before {
  content: "*";
}
em:after {
  content: "*";
}
.lined.section-large h4.h4 {
  margin: 0 0 10px 0;
  font-size: 22px;
}
.underlined {
  border-bottom: 1pt solid #000;
  padding-bottom: 3px;
  margin-bottom: 50px;
}
.collapse .underlined {
  margin-bottom: 0;
}
.overlined {
  border-top: 1pt solid #000;
  padding-top: 3px;
  margin-top: 0;
}
.text-oper {
  font-family: "stnOper", "GT America Extended", Helvetica, Arial, sans-serif;
}
.text-schauspiel {
  font-family: "stnSchauspiel", "GT America Extended", Helvetica, Arial,
    sans-serif;
}
.text-ballett {
  font-family: "stnBallet", "GT America Extended", Helvetica, Arial, sans-serif;
}
.text-konzert {
  font-family: "stnKonzert", "GT America Extended", Helvetica, Arial, sans-serif;
}
.text-oper, .text-schauspiel, .text-ballett, .text-konzert,
.text-opera, .text-drama, .text-ballet, .text-concert {
  text-transform: uppercase;
}
.text-reset-font {
  font-family: "GT America Extended", Helvetica, Arial, sans-serif;
}
.textcolumns {
  columns: 2;
  column-gap: 29px;
}
.filter-form {
  margin-top: 30px;
  margin-bottom: 45px;
}
.cp_medialib .filter .has-text + label {
  color: #fff;
}

.flex-grid-quarters {
  justify-content: space-between;
  display: flex;
}
.col {
  flex: 1;
}
.hidden {
  display: none;
}

/* Buttons */

.buttons {
  margin-top: 20px;
  line-height: 2;
}

.button-primary {
  display: inline-block;
  border: 1pt solid #000;
  color: #000;
  text-decoration: none;
  vertical-align: middle;
  padding: 0 10px;
  margin-right: 20px;
}
.button-primary.desktop-content {
  padding: 0 140px;
  margin-top: 100px;
}

.button-primary::before {
  content: "> ";
}

.button-tickets {
  display: inline-block;
  background: #000;
  color: #fff;
  text-decoration: none;
  vertical-align: middle;
  border: 1pt solid #000;
  padding: 0 10px;
  margin-right: 20px;
}
.button-tickets::before {
  content: "> ";
}

.button-secondary::after {
  content: "";
}

.button-secondary::before {
  content: "> ";
}

.button-secondary.after::after {
  content: " >";
}

.button-secondary.after::before {
  content: "";
}

.no-touch .button-tickets:hover,
.no-touch .button-tickets:active {
  background: #fff;
  color: #000;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
}

.no-touch .button-primary:hover,
.no-touch .button-primary:active {
  -webkit-user-select: none;
  -webkit-touch-callout: none;
  background: #000;
  color: #fff;
}

/* Blocks */

.section-small {
  padding: 8px 0 5px 0;
}
.section-large {
  padding-top: 100px;
}
.section-large:last-child {
  padding-bottom: 100px;
}
.section-large .collapse:first-child .collapse-action {
  margin-top: 0;
}
/*.section-large .collapse:last-child .collapse-content section{padding-bottom:0;}*/
.collapsed + .collapse .collapse-action {
  margin-top: 0;
  transition: margin-top 0.5s;
}

.lined > p,
.lined > div,
.lined > section {
  padding: 8px 0 7px 0;
}
.lined > section:not(.noline),
.lined > div:not(.noline),
.lined > p:not(.noline) {
  border-bottom: 1pt solid black;
}
.lined > p:first-of-type:not(.noline),
.lined > div:first-of-type:not(.noline),
.lined > div:first-of-type:not(.buttons),
.lined > section:first-of-type {
  border-top: 1pt solid black;
}

.lined > .underlined + p,
.lined > .underlined + div,
.lined > .underlined + section,
.lined > p + section:first-of-type,
.lined > section + p:first-of-type {
  border-top: none !important;
}
.lined > div.buttons {
  padding: 0;
  border: none !important;
}
.page-width {
  width: var(--page-width);
  margin-left: auto;
  margin-right: auto;
}

.loading {
  width: 100%;
  min-height: 100px;
  background: url(../images/loading.gif) 50% 50% no-repeat;
  /*display: none;*/
}

.not-displayed {
  display: none !important;
}

main {
  display: block;
}

/* Columns */

.flex-columns {
  display: inline-flex;
  width: 100%;
  flex-wrap: wrap;
  justify-content: space-between;
  align-content: flex-start;
}

/* Form Elements */

/* SELECT */

select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none; /* remove default arrow */
  border: none;
  width: 100%;
  font-family: "GT America Extended", Helvetica, Arial, sans-serif;
  font-size: 18px;
  height: 30px;
  border-bottom: 1pt solid #000;
  background: url(../icons/arrow-down.svg) right calc(50% + 3px) no-repeat; /* add custom arrow */
  cursor: pointer;
}
select::-ms-expand {
  display: none;
}
select:focus,
input:focus {
  outline: none;
}
input[type="text"],
input[type="email"],
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none; /* remove default arrow */
  border-radius: 0;
  font-family: "GT America Extended", Helvetica, Arial, sans-serif;
  font-size: 18px;
  height: 30px;
  width: 100%;
  border: none;
  border-bottom: 1pt solid #000;
  padding-left: 0;
  margin: 0;
}
input[type="text"]::placeholder,
input[type="email"]::placeholder,
textarea::placeholder {
  color: #a6a6a6;
}

.styled-select select {
  /*display: none;*/
  opacity: 0;
  pointer-events: none;
  position: absolute;
}
.styled-select {
  position: relative;
  display: block;
  width: 100%;
  height: 30px;
  background: #fff;
  border-bottom: 1px solid #000;
}
.styled-select label {
  display: block;
  width: 100%;
  height: 30px;
  font-size: 18px;
  line-height: 1.7;
  color: #000;
  cursor: pointer;
}
.styled-select label::after {
  content: " ";
  position: absolute;
  background: url(../icons/arrow-down.svg) center center no-repeat;
  width: 20px;
  height: 11px;
  right: 0;
  top: calc(50% + 3px);
  transition: transform 0.5s cubic-bezier(0.77, 0, 0.175, 1);
  transform: translate(0, -50%);
  will-change: transform;
}
.styled-select.disabled {
  border-color: #a6a6a6;
  pointer-events: none;
}
.styled-select label.label,
.styled-select.disabled label {
  color: #a6a6a6;
}
.contactform .styled-select label {
  margin-top: 20px;
  margin-right: 5%;
}
.contactform .message-block {
  margin-top: 20px;
  margin-right: 5%;
}
.contactform .captcha-block {
  margin-top: 20px;
  margin-right: 5%;
}
.contactform .additional-block {
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  height: 0;
  width: 0;
  z-index: -1;
}
.styled-select.disabled label::after {
  opacity: 0.3;
}
.styled-select ul {
  max-height: 50vh;
  overflow-x: hidden;
  overflow-y: auto;
  width: 100%;
  z-index: 3;
  position: absolute;
  visibility: hidden;
  background-color: rgba(255, 255, 255, 0);
  transition: background-color 0.25s;
}
.styled-select ul li {
  cursor: pointer;
  opacity: 0;
  background: #fff;
  transform: translate(30px, 0);
  transition: opacity 0.25s, transform 0.25s;
  will-change: transform, opacity;
  padding: 10px 0;
}
.styled-select ul li:hover {
  background: #000;
  color: #fff;
}
.styled-select ul li > span {
  display: block;
  line-height: 1.2;
  pointer-events: none;
}
.styled-select.open ul {
  background-color: rgba(255, 255, 255, 1);
}
.styled-select.open {
  z-index: 3;
}
.styled-select.open ul {
  visibility: visible;
}
.styled-select.open label::after {
  transform: translate(0, -50%) scale(1, -1);
}
.styled-select.open ul li {
  opacity: 1;
  transform: translate(0, 0);
}

/* SPECIAL FX */
.appear {
  -webkit-animation: appear 1s ease-out both;
  -o-animation: appear 1s ease-out both;
  animation: appear 1s ease-out both;
  will-change: opacity;
}

.is-mobile {
  display: none !important;
}

.is-desktop {
  display: block !important;
}

.invert-color {
  background-color: black;
  color: white;
}

@keyframes appear {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* ---------- Black-Theme of the media library ---------- */
body.medialib-layout {
  background: #000;
  color: #fff;
  overflow-x: hidden;
}
.medialib-layout .intro-text {
  font-size: inherit;
}
.medialib-layout .section-large:last-child {
  padding-bottom: 50px;
}
.medialib-layout *::selection {
  background: #a6a6a6;
  color: #000;
}

.medialib-layout h1.h1 {
  font-size: 40px;
}
.medialib-layout h2.h2 {
  border-bottom: 1pt solid #fff;
}
.medialib-layout .underlined {
  border-bottom: 1pt solid #fff;
}
.medialib-layout .overlined {
  border-top: 1pt solid #fff;
}

.medialib-layout .lined > p:not(.noline) {
  border-bottom: 1pt solid #fff;
}
.medialib-layout .lined > p:first-of-type:not(.noline),
.medialib-layout .lined > div:first-of-type:not(.noline),
.medialib-layout .lined > div:first-of-type:not(.buttons),
.medialib-layout .lined > section:first-of-type {
  border-top: 1pt solid #fff;
}

.medialib-layout .result-title {
  text-transform: uppercase;
  margin-bottom: 0;
}

.medialib-layout .overlay-search {
  position: fixed;
  background: #000;
  z-index: 20;
  top: 50px;
  display: none;
}
.medialib-layout .overlay-search h3 {
  margin-bottom: 30px;
}
.medialib-layout .overlay-search.opened {
  display: block;
}

/* Form Elements */

/* SELECT */

.medialib-layout select {
  border-bottom: 1pt solid #fff;
  background: url(../icons/arrow-down-white.svg) right calc(50% + 3px) no-repeat; /* add custom arrow */
}
.medialib-layout input[type="text"],
.medialib-layout input[type="email"] {
  border-bottom: 1pt solid #fff;
  background-color: #000;
  color: #fff;
}
.medialib-layout .styled-select {
  background: #000;
  border-bottom: 1pt solid #fff;
}
.medialib-layout .styled-select.open {
  z-index: 1000;
}
.medialib-layout .styled-select label {
  color: #a6a6a6;
}
.medialib-layout .styled-select label::after {
  background: url(../icons/arrow-down-white.svg) center center no-repeat;
}

.medialib-layout .button-primary {
  border: 1pt solid #fff;
  color: #fff;
}
.medialib-layout .button-tickets {
  background: #fff;
  color: #000;
  border: 1pt solid #fff;
}
.medialib-layout.no-touch .button-tickets:hover,
.medialib-layout.no-touch .button-tickets:active {
  background: #000;
  color: #fff;
}

.no-touch .button-primary:hover,
.no-touch .button-primary:active {
  -webkit-user-select: none;
  -webkit-touch-callout: none;
  background: #000;
  color: #fff;
}

.medialib-layout .styled-select ul {
  background-color: rgba(0, 0, 0, 0);
}
.medialib-layout .styled-select ul li {
  background: #000;
}
.medialib-layout .styled-select ul li:hover {
  background: #fff;
  color: #000;
}
.medialib-layout .styled-select.open ul {
  background-color: rgba(0, 0, 0, 1);
}

.medialib-layout .richtext {
  font-size: 20px;
}

.collapse-content.medialib .event.lined .content img {
  max-width: 100%;
}

.collapse-content.medialib .event.lined a.box_9to16 {
  overflow: hidden;
  position: relative;
  width: 100%;
  display: block;
  margin-bottom: 15px;
}

.collapse-content.medialib .event.lined a.box_9to16:before {
  content: "";
  display: block;
  margin-top: 56.25%;
}


.collapse-content.medialib .event.lined .content {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  display: flex;
  justify-items: center;
  align-items: center;
  text-align: center;
}

.collapse-content.medialib .event.lined:hover a {
  color: #000;
}

/* DESKTOP & PRINT */

@media (min-width: 768px), print {
  .h4 + .h1 {
    margin-top: -20px;
  }

  a:hover {
    color: #000;
  }

  /* ---------- Black-Theme of the media library ---------- */
  .medialib-layout a:hover {
    color: #fff;
  }
  .medialib-layout .intro-text {
    font-size: 133%;
  }

  /* Columns Desktop */

  .flex-columns-2 > * {
    flex-basis: calc((100% - 20px) / 2);
    width: calc((100% - 20px) / 2);
    /*margin-bottom: 10px;*/
  }
  .flex-columns-3 > * {
    flex-basis: calc((100% - 64px) / 3);
    width: calc((100% - 64px) / 3);
  }
  .flex-columns-4 > * {
    flex-basis: calc((100% - 60px) / 4);
    width: calc((100% - 60px) / 4);
  }
  .flex-columns-4 > .col {
    flex: unset;
  }

  .table-columns {
    display: table;
    table-layout: fixed;
    width: 100%;
  }
  .table-columns .table-row {
    display: table-row;
    page-break-inside: avoid;
    break-inside: avoid;
  }
  .table-columns .table-row > * {
    display: table-cell;
    width: 100%;
    padding-bottom: 50px;
    vertical-align: top;
  }
  .table-columns .table-row > span {
    padding-bottom: 0px !important;
  }

  .table-columns-3 .table-row > *:nth-child(3n + 3) {
    padding-left: 16px;
  }
  .table-columns-3 .table-row > *:nth-child(3n + 1) {
    padding-right: 16px;
  }
  .table-columns-3 .table-row > *:nth-child(3n + 2) {
    padding-right: 8px;
    padding-left: 8px;
  }

  .home-slider .table-columns .table-row > * {
    width: 120%;
  }

  .home-slider .table-columns-3 .table-row > *:nth-child(3n + 3) {
    width: 90%;
  }
  .home-slider .table-columns-3 .table-row > *:nth-child(3n + 1) {
    width: 90%;
  }

  .collapse-content.medialib .table-columns-3 .table-row > *:nth-child(3n + 3) {
    padding-left: 20px;
  }
  .collapse-content.medialib .table-columns-3 .table-row > *:nth-child(3n + 1) {
    padding-right: 21px;
  }
  .collapse-content.medialib .table-columns-3 .table-row > *:nth-child(3n + 2) {
    padding-right: 10px;
    padding-left: 10px;
  }

  .half-width {
    width: 50%;
  }

  .section-large .detail {
    margin-top: -50px;
    padding-bottom: 0;
  }
  .section-large .shortDescription {
    padding-bottom: 0;
  }
  .section-large .table-row:last-child > * {
    padding-bottom: 0;
  }
  .collapse-content .section-large {
    padding-top: 50px;
  }
  .collapse-content .section-large:last-child {
    padding-bottom: 100px;
  }
  .section-dropdown {
    padding-top: 50px;
  }
  .section-dropdown:last-child {
    padding-bottom: 100px;
  }
  .home-messages {
    padding-top: calc(100px - 50px + 20px - 7px);
  }
  .medialib-layout .overlay-search {
    width: calc(100% / var(--page-scale) + 2px);
    left: 50%;
    transform-origin: 50% 0;
    transform: translate(-50%, 0) scale(var(--page-scale));
  }
}

/* SCALED DESKTOP */

@media (min-width: 768px) and (max-width: 1539px) {
  main {
    overflow: hidden;
  }
  main > div {
    transform-origin: 0 -90px;
    width: 1540px;
  }
  header {
    transform-origin: 0 0;
  }
}

/* MOBILE */

@media screen and (max-width: 767px) {
  /* Text mobile */

  /*
	3.4375
	8.28125
	6.25
	16.5625
	4.375
	 */

  body,
  select,
  input,
  .styled-select label {
    font-size: calc(3.4375vw * 1.2);
  }

  .medialib-layout .richtext {
    font-size: calc(3.4375vw * 1.2);
  }

  body {
    line-height: 1.4;
  }

  /* .h1 { font-size: calc(8.28125vw * 1.2); margin: 3.5vw 0; } */
  .h1 {
    font-size: 38px;
    line-height: 41px;
  }
  .h2 {
    font-size: calc(6.25vw * 1.2);
    margin: 3.5vw 0;
  }
  /*.h2 { font-size: 38px; line-height: 41px;  }*/
  .h4 {
    font-size: calc(4.375vw * 1.2);
    margin: 3.5vw 0;
  }
  /*.h4 { font-size: 20px; line-height: 20px; }*/

  .textcolumns {
    columns: auto;
  }

  /* Blocks mobile */

  .section-large {
    padding-top: 25%;
  }
  .section-large:last-child {
    padding-bottom: 25%;
  }
  .collapse-content .section-large {
    padding-top: 12.5%;
  }
  .collapse-content .section-large:last-child {
    padding-bottom: 25%;
  }
  .section-dropdown {
    padding-top: 12.5%;
  }
  .section-dropdown:last-child {
    padding-bottom: 25%;
  }
  /* .section-large { padding-top: 12.2%; }
	.section-large:last-child { padding-bottom: 12.2%; } */

  .lined > p,
  .lined > a,
  .lined > section {
    padding: 1.4% 0 1.6% 0;
  }

  .lined.section-large h4.h4 {
    margin: 5px 0 5px 0;
    font-size: 20px;
  }

  .page-width {
    --page-width: calc(100% - var(--mobile-page-margin) * 2);
  }

  /* Columns mobile */

  .flex-columns-4 > *,
  .flex-columns-3 > *,
  .flex-columns-2 > * {
    flex-basis: 100%;
    width: 100%;
  }

  /* Buttons mobile */

  .buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-top: 0;
  }

  .button-tickets,
  .button-primary {
    margin-top: calc(18px + 3%);
    margin-right: 0;
    white-space: nowrap;
    text-align: center;
    height: unset;
    line-height: 2.5;
  }
  .button-primary {
    flex-basis: 100%;
  }
  .button-tickets {
    flex-basis: 100%;
  }
  .button-tickets ~ .button-primary {
    margin-top: 4.4%;
  }
  .button-tickets.fixated {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    border: 1pt solid #fff;
  }

  /* Forms mobile */

  input[type="text"] {
    font-size: 100%;
  }
  input[type="text"],
  select {
    height: auto;
  }
  select {
    background-size: auto 75%;
    background-position: 100% 50%;
  }
  .styled-select {
    height: auto;
  }
  .styled-select label {
    height: auto;
  }

  .is-desktop {
    display: none !important;
  }

  .is-mobile {
    display: block !important;
  }
  .buttons.mobile-block {
    display: block;
    width: 100%;
  }
  .buttons.mobile-block.desktop-content {
    margin-top: 55px;
    padding: 0 50px;
  }
  .no-result {
    font-size: 22px !important;
  }

  .collapse-content.medialib .event.lined a.box_9to16:before {
    margin-top: 40.25%;
  }

  .medialib-layout .overlay-search {
    padding: 0;
  }

  .medialib-layout .overlay-search .section-large {
    padding-top: 10%;
    gap: 1.5em;
  }

  .medialib-layout .overlay-search .buttons {
    margin-top: 1.5em;
  }

}
@media screen and (max-width: 700px) {
  .collapse-content.medialib .event.lined a.box_9to16:before {
    margin-top: 44.25%;
  }
}
@media screen and (max-width: 610px) {
  .collapse-content.medialib .event.lined a.box_9to16:before {
    margin-top: 52.25%;
  }
}
@media screen and (max-width: 330px) {
  .collapse-content.medialib .event.lined a.box_9to16:before {
    margin-top: 51.25%;
  }
}

/* PRINT */

@media print {
  body,
  .styled-select label,
  input[type="text"],
  select {
    font-size: 9pt;
  }
  .styled-select label,
  .styled-select,
  input[type="text"],
  select {
    height: 6mm;
  }
  main > div {
    transform: none !important;
    width: 100%;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
  main > div > div {
    margin-top: 3mm !important;
  }
  .page-width {
    width: 180mm;
  }
  .h1 {
    font-size: calc(91pt * 0.5);
    margin: 10pt 0;
  }
  .h2 {
    font-size: calc(44pt * 0.5);
    margin: 10pt 0;
  }
  .h4 {
    font-size: calc(22pt * 0.5);
    margin: 10pt 0;
  }
  .h4 + .h1 {
    margin-top: -4mm;
  }
  .copy p {
    margin: 2mm 0;
  }
  .table-columns-3 .table-row > *:not(:nth-child(3n + 3)) {
    padding-right: 3mm;
  }
  .table-columns-3 .table-row > *:not(:nth-child(3n + 1)) {
    padding-left: 3mm;
  }
  .section-large {
    padding-top: 5mm;
  }
  .section-large:last-child {
    padding-bottom: 5mm;
  }
  .section-small {
    padding: 0.2mm 0 0.1mm 0;
  }
  .buttons {
    display: none;
  }
  .lined > p,
  .lined > section {
    padding: 0.6mm 0 0.6mm 0;
  }
}

.fullwidth-video {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 56.25%;
}
.youtube-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.fullwidth-media-video {
  width: 100% !important;
  height: auto !important;
}

.message {
  margin-top: 10px;
}

.newsletter .message {
  padding: 20px 0;
}

.message.success {
  color: green;
}

.message.error,
.message.captcha {
  color: red;
}
.margin-top-small {
  margin-top: 20px;
}
.margin-top {
  margin-top: 30px;
}

.margin-top-large {
  margin-top: 50px;
  border-top: 1px solid black;
  padding-top: 50px;
}

.cp_grusswort h4.h4 {
  margin-bottom: 20px;
}

.cp_grusswort h4 + h1 {
  margin-top: 0 !important;
}

@media print, (min-width: 768px) {
  .cp_grusswort .bottom-link {
    display: none;
  }
}

.hyphenate {
  /*-ms-word-break: break-all;
	word-break: break-all;*/
  word-break: break-word;
  hyphens: auto;
  -webkit-hyphens: auto;
  -moz-hyphens: auto;
  -ms-hyphens: auto;
  -webkit-hyphenate-before: 2;
  -webkit-hyphenate-after: 3;
  hyphenate-lines: 3;
}

.uppercase {
  text-transform: uppercase;
}

.no-top-border {
  border-top: none !important;
}

.form input,
.form textarea {
  width: 100%;
  display: inline-block;
  font-size: 18px;
  border: none;
  border-bottom: 1px solid;
  border-radius: 0;
  margin-top: 20px;
  margin-right: 5%;
}

.form input[type="checkbox"] {
  /* width: initial; */
  /* margin-right: 0; */
  /*display: none;*/
  opacity: 0;
  pointer-events: none;
  position: absolute;
}

.form .checkbox-container {
  position: relative;
  margin-bottom: 5px;
  margin-top: 5px;
}
.form .checkbox-container label {
  cursor: pointer;
  margin-left: 30px;
}
.form .checkbox-container label:before,
.form .checkbox-container label:after {
  content: "";
  position: absolute;
  top: 50%;
}
.form .checkbox-container label:before {
  left: 0;
  width: 20px;
  height: 20px;
  margin: -10px 0 0 10px;
  background: #fff;
  border: solid 1px #000;
}
.form .checkbox-container label:after {
  left: 15px;
  width: 12px;
  height: 12px;
  margin: -5px 0 0px;
  opacity: 0;
  background: #000;
}

.form .checkbox-container input[type="checkbox"]:checked + label:after {
  opacity: 1;
}

@media (max-width: 756px) and (orientation: portrait) {
  .form .checkbox-container label:before {
    margin: -21px 0 0 10px;
  }
  .form .checkbox-container label:after {
    margin: -16px 0 0px;
  }
}

@media (max-width: 756px) and (orientation: landscape) {
  .form .checkbox-container label:before {
    margin: -27px 0 0 10px;
  }
  .form .checkbox-container label:after {
    margin: -22px 0 0px;
  }
}

.form button {
  cursor: pointer;
  font-size: 18px;
  font-family: "GT America Extended", Helvetica, Arial, sans-serif;
  padding: 0 3px;
  margin-bottom: 3%;
  background-color: #000;
  color: #fff;
  width: 45%;
}

.form button:disabled {
  opacity: .3;
  pointer-events: none;
}

.form button:hover {
  background-color: #fff !important;
  color: #000 !important;
}

.font-size-medium {
  font-size: 22px !important;
}

.font-size-large {
  font-size: 44px !important;
}

.margin-bottom {
  margin-bottom: 60px;
}

.no-padding {
  padding: 0 !important;
}

.no-bottom-padding {
  padding-bottom: 0 !important;
}

.border-top {
  border-top: 1px solid #000;
}

.border-bottom {
  border-bottom: 1px solid #000;
}

.common-message {
  padding-bottom: 10px;
}

.common-message h3 {
  margin-top: 0;
}

.common-message a {
  color: black;
  text-decoration: none;
}

.home-messages {
  cursor: default;
}

.no-top-margin {
  margin-top: 0 !important;
}
.no-margin {
  margin: 0 !important;
}
.emergency-info {
  color: #b95a58;
}

.lined > p:first-of-type:not(.noline).emergency-info,
.lined > p:not(.noline).emergency-info {
  border-top: 1pt solid;
  border-color: #b95a58;
  margin-top: -1pt;
}

.no-border {
  border: none !important;
}

.layer {
  display: block;
  position: fixed;
  top: 50%;
  left: 50%;
  background: white;
  transform: translate(-50%, -50%);
  width: 918px;
  margin: 0;
  box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.25);
  z-index: 5;
}
.layer-header {
  background: white;
  text-align: right;
  border-bottom: 1px solid black;
  margin: 0;
  padding: 0 10px;
  height: 48px;
}
.layer-header button {
  background: white;
  border: 0 solid black;
  margin: 0;
  line-height: 25px;
  padding: 0;
  cursor: pointer;
  position: relative;
  width: 23px;
  height: 23px;
  vertical-align: top;
  top: 50%;
  transform: translateY(-50%);
}
.layer-header button::before,
.layer-header button::after {
  content: "";
  display: block;
  width: 20px;
  height: 2px;
  background-color: #fff;
  border-radius: 4px;
  position: absolute;
  left: 0;
}
.layer-header button::before {
  top: 5px;
  background-color: #000;
  transform: translate3d(0, 6px, 0) rotate(45deg);
}
.layer-header button::after {
  top: 5px;
  background-color: #000;
  transform: translate3d(0, 6px, 0) rotate(-45deg);
}
.layer-content {
  text-align: center;
  margin: 40px;
  max-height: 50vh;
  overflow-y: auto;
}
.layer-content-text {
  font-size: 42px;
  line-height: 1.05;
  margin-bottom: 34px;
  letter-spacing: 2.4px;
}
.layer-content-text a {
  color: #000;
}
.layer-content-text a:hover {
  color: #a6a6a6;
}
.layer-header-text,
.layer-footer-text {
  font-size: 23px;
  line-height: 1.2;
}
.layer-header-text {
  margin-bottom: 40px;
}
@media screen and (max-width: 930px) {
  .layer {
    max-width: 80vw;
  }
}
@media screen and (max-width: 767px) {
  .layer-header {
    height: 40px;
  }
  .layer {
    top: 63px;
    width: 332px;
    max-width: 332px;
    transform: translate(-50%, 0);
  }
  .layer-content {
    margin: 20px 40px;
  }
  .layer-content-text {
    font-size: 22px;
    line-height: 1.15;
    margin-bottom: 17px;
    letter-spacing: 0.5px;
  }
  .layer-content-text p {
    display: inline;
  }
  .layer-header-text,
  .layer-footer-text {
    font-size: 17px;
    line-height: 1.4;
  }
  .layer-footer-text {
    letter-spacing: 0.4px;
  }
  .layer-header-text {
    margin: 0 0px 15px;
    letter-spacing: 1px;
  }
}
@media screen and (max-width: 332px) {
  .layer {
    max-width: 80vw;
  }
}

.contactform .form textarea {
  height: auto;
}

.newsletter .contactform .form {
  margin: 50px 0 75px;
}

.video_wrapper {
  background-color: black;
  background-size: cover;
  background-position: center;
  height: 100%;
  width: 100%;
  position: absolute;
}

.video_wrapper .video_trigger {
  width: 100%;
  height: 100%;
  position: absolute;
  bottom: 0;
  top: 0;
  left: 0;
  right: 0;
  z-index: 6;
  background-color: rgba( 0, 0, 0, .6 );
  color: #fff;
}
.video_wrapper .video_layer {
  position: relative;
  display: none;
  height: inherit;
  width: inherit;
  margin: auto;
}
.video_wrapper .video_layer iframe {
  border: 0px none transparent;
  height: inherit;
  width: inherit;
}

.video-double-layer {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 5px;
}

.video-double-layer svg {
  max-width: 11%;
  margin-top: 10%;
}
.video-double-layer h2 {
  text-align: center;
  text-transform: uppercase;
  font-size: 40px;
  line-height: 1.02;
  word-break: break-word;
  hyphens: auto;
  -webkit-hyphens: auto;
  margin: 0.7em 0 1.4em;
}

.video-double-layer .video-button {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  display: inline-block;
  text-decoration: none;
  vertical-align: middle;
  padding:  7.5px  10px;
  background: #fff;
  color: #000;
  border: 1pt solid #fff;
  font-size: 100%;
  margin-bottom: 0.7em;
  cursor: pointer;
  border-radius: 0;
}
.video-double-layer .video-button::before {
  content: "> ";
}

.video-disclaimer {
  position: absolute;
  bottom: 1em;
  text-align: center;
}

.video-double-layer input[type="checkbox"] {
  display:none;
}

.video-double-layer input[type="checkbox"] + label::before {
  width: 13px;
  height: 13px;
  border: 1px solid #fff;
  background-color: transparent;
  display: inline-block;
  content: "";
  /* float: left; */
  /* margin-right: 10px; */
  /* margin-top: 2px; */
  position: absolute;
  left: -25px;
  top: 3px;
}
.video-double-layer input[type="checkbox"]:checked+label::before {
  box-shadow: inset 0px 0px 0px 3px #000;
  background-color: #fff;
}

.cp_stueck_videoaudio .videos .video_wrapper .video-double-layer h2 {

  font-size: 22px;
  line-height: 1.02;
  margin: 0.7em 0 1.4em;
}

.cp_stueck_videoaudio .videos .video_wrapper .video_layer {
  padding-bottom: calc(100% * 9 / 16);
}

@media (max-width: 768px) {
  .video-double-layer input[type="checkbox"] + label::before {
    top: 1px;
  }
  .video-double-layer svg {
    margin-top: 5%;
  }
  .video-double-layer {
    font-size: 14px;
  }

  .video_wrapper .video-double-layer h2 {
    font-size: 22px;
    line-height: 1.02;
    margin: 0.7em 0 1.4em;
  }

  .video-double-layer .video-button {
    font-size: 14px;
  }
}

@media (max-width: 558px) {
  .video-double-layer .video-button {
    margin-top: 5%;
  }
  .video_wrapper .video-double-layer svg,
  .video_wrapper .video-double-layer h2 {
    display: none;
  }
}

.col-sm-3 > .fullwidth-video .video-double-layer input[type="checkbox"] + label::before { top: 1px; }
.col-sm-3 > .fullwidth-video .video-double-layer svg { margin-top: 5%; }
.col-sm-3 > .fullwidth-video .video-double-layer { font-size: 14px; }
.col-sm-3 > .fullwidth-video .video-double-layer .video-button { font-size: 14px; margin-top: 5%; }
.col-sm-3 > .fullwidth-video .video_wrapper .video-double-layer svg,
.col-sm-3 > .fullwidth-video .video_wrapper .video-double-layer h2 { display: none; }

.google-wrapper {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 56.25%;
}
.map_wrapper {
  background-color: black;
  background-size: cover;
  background-position: center;
  height: 100%;
  width: 100%;
  position: absolute;
}

.map_wrapper .map_trigger {
  width: 100%;
  height: 100%;
  position: absolute;
  bottom: 0;
  top: 0;
  left: 0;
  right: 0;
  z-index: 6;
  background-color: rgba( 0, 0, 0, .6 );
  color: #fff;
}
.map_wrapper .map_layer {
  position: relative;
  display: none;
  height: inherit;
  width: inherit;
  margin: auto;
}
.map_wrapper .map_layer iframe {
  border: 0px none transparent;
  height: inherit;
  width: inherit;
}

.map-double-layer {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 5px;
}

.map-double-layer svg {
  max-width: 11%;
  margin-top: 10%;
}
.map-double-layer h2 {
  text-align: center;
  text-transform: uppercase;
  font-size: 40px;
  line-height: 1.02;
  word-break: break-word;
  hyphens: auto;
  -webkit-hyphens: auto;
  margin: 0.7em 0 1.4em;
}

.map-double-layer .map-button {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  display: inline-block;
  text-decoration: none;
  vertical-align: middle;
  padding:  7.5px  10px;
  background: #fff;
  color: #000;
  border: 1pt solid #fff;
  font-size: 100%;
  margin-bottom: 0.7em;
  cursor: pointer;
  border-radius: 0;
}
.map-double-layer .map-button::before {
  content: "> ";
}

.map-disclaimer {
  position: absolute;
  bottom: 1em;
  text-align: center;
}

.video-checkbox,
.map-checkbox {
  max-width: 65%;
  text-align: center;
}

.map-double-layer input[type="checkbox"] {
  display:none;
}

.map-double-layer input[type="checkbox"] + label::before {
  width: 13px;
  height: 13px;
  border: 1px solid #fff;
  background-color: transparent;
  display: inline-block;
  content: "";
  /* float: left; */
  /* margin-right: 10px; */
  /* margin-top: 2px; */
  position: absolute;
  left: -25px;
  top: 3px;
}
.map-double-layer input[type="checkbox"]:checked+label::before {
  box-shadow: inset 0px 0px 0px 3px #000;
  background-color: #fff;
}

.cp_stueck_mapaudio .maps .map_wrapper .map-double-layer h2 {

  font-size: 22px;
  line-height: 1.02;
  margin: 0.7em 0 1.4em;
}

.cp_stueck_mapaudio .maps .map_wrapper .map_layer {
  padding-bottom: calc(100% * 9 / 16);
}

.map-checkbox label,
.video-checkbox label{
  cursor: pointer;
  position: relative;
}

.map-checkbox span.hidden-sm-up,
.video-checkbox span.hidden-sm-up{
  display:none;
}

.message-image {
  margin-bottom: 50px;
  margin-top: 50px;
}

.message-image img {
  max-width: 100%;
  max-height: 100%;
  height: auto;
  width: unset;
  display: inline-block;
}

.plus-icon {
  display: inline-block;
  text-decoration: none !important;
}
.plus-icon:hover {
  text-decoration: none !important;
}
.plus-icon::before {
  content:'';
  display: inline-block;
  width: 1em;
  height: 0.75em;
  background: url('../icons/plus-dark.svg') 0 100% / contain no-repeat;
}
.plus-icon.plus-icon--bright::before {
  background-image: url('../icons/plus-bright.svg');
}
.plus-icon.plus-icon--without-link {
  pointer-events: none;
}

@media (max-width: 768px) {

  .safari.iOS .home-teaser img {
    bottom: 180px;
  }

  .message-image {
    margin-bottom: 15px;
    margin-top: 15px;
  }

  .map-double-layer input[type="checkbox"] + label::before {
    top: 1px;
  }

  .map-checkbox span.hidden-sm-down,
  .video-checkbox span.hidden-sm-down{
    display:none;
  }

  .map-checkbox span.hidden-sm-up,
  .video-checkbox span.hidden-sm-up{
    display:inline;
  }

  .map-double-layer svg {
    margin-top: 5%;
  }
  .map-double-layer {
    font-size: 14px;
  }

  .map_wrapper .map-double-layer h2 {
    font-size: 22px;
    line-height: 1.02;
    margin: 0.7em 0 1.4em;
  }

  .map-double-layer .map-button {
    font-size: 14px;
  }
}


@media (max-width: 550px) {


  .map-double-layer .map-button {
    margin-top: 5%;
  }

  .map_wrapper .map-double-layer svg,
  .map_wrapper .map-double-layer h2 {
    display: none;
  }
}

@media (max-width: 415px) {
  .cp_stueck_videoaudio .video-checkbox {
    max-width: 70%;
  }
}

@media (max-width: 390px) {
  .cp_stueck_videoaudio .video-checkbox {
    max-width: 73%;
  }
}

@media (max-width: 380px) {
  .video-checkbox{
    max-width: 67%;
  }
}

@media (max-width: 375px) {
  .cp_stueck_videoaudio .video-checkbox {
    max-width: 78%;
  }
}

@media (max-width: 370px) {
  .video-checkbox,
  .map-checkbox {
    max-width: 70%;
  }
}

@media (max-width: 360px) {
  .cp_stueck_videoaudio .video-checkbox {
    max-width: 78%;
  }
}

@media (max-width: 355px) {
  .video-checkbox,
  .map-checkbox{
    max-width: 73%;
  }
}


@media (max-width: 345px) {
  .cp_stueck_videoaudio .video-checkbox {
    max-width: 83%;
  }
}

@media (max-width: 340px) {
  .video-checkbox,
  .map-checkbox{
    max-width: 78%;
  }
}
