
.col-wrap {
  display:inline-block;
  width:100%;
  }

.grid-1-full {
  width:100%;
  box-sizing: border-box;
  padding: 0;
  background-color:#fff;
}

.topic .grid-1-full > div:last-child {
  padding-bottom: 3.125rem;
}

.grid-1-full table {
  border:none;
  table-layout:fixed;
  border-collapse: collapse;
}

.grid-1-full td {
  border:none;
  /* bug in bookingkit, no focus: 
  overflow:hidden; */
  vertical-align:top;
}

.grid-1-full table img {
  width:auto !important;
  max-width:100% !important;
}

.wrap-bottom {
  padding-bottom:3.125rem
}


/********************
- Blöcke -
********************/

.col-left {
  padding-right: .625rem;
}

.col-right {
  padding-left: .625rem;
}

/*  Standardblock, 100% Breite, dynamische Höhe */
.col-1-1 {
  width:100%;
  box-sizing: border-box;
  padding: 3.125rem 2.5rem 0 2.5rem;
  margin:0;
}

/* Standardblock Startseite, 100% Breite, dynamische Höhe, grauer Rahmen oben. */
.col-1-1-4 {
  overflow: auto;
  width:100%;
  box-sizing: border-box;
  padding: 3.125rem 2.5rem 3.125rem;
  margin:0;
  border-top: 1.25rem solid #fafafa;;
}

/* Standardblock Event & Offer, 100% Breite, dynamische Höhe, grauer Rahmen unten. */
.col-1-1-2 {
  overflow: auto;
  width:100%;
  box-sizing: border-box;
  padding: 3.125rem 2.5rem 0;
  margin:0;
  border-bottom: 1.25rem solid #fafafa;;
}

/* 2x Standardblöcke, 50% Breite, dynamische Höhe */
.col-2-1 {
  display:flex;
  flex-flow: row nowrap ;
  box-sizing: border-box;
}
.col-2-1 .col-left {
  flex-basis:50%;
  box-sizing: border-box;
  padding: 3.125rem .625rem 0 2.5rem;
}
.col-2-1 .col-right {
  flex-basis:50%;
  box-sizing: border-box;
  padding: 3.125rem 2.5rem 0 .625rem;
}

/* 2x Standardblock, 50% Breite, dynamische Höhe, grauer Rahmen unten. */
.col-2-1-2 {
  display:flex;
  flex-flow: row nowrap ;
  overflow: auto;
  padding: 0;
  border-bottom: 1.25rem solid #fafafa;;
}
.col-2-1-2 .col-left {
  flex-basis:50%;
  padding: 3.125rem .625rem 3.125rem 2.5rem;
  box-sizing: border-box;
}
.col-2-1-2 .col-right {
  flex-basis:50%;
  padding: 3.125rem 2.5rem 3.125rem .625rem;
  box-sizing: border-box;
}

/* 2 Standardblöcke Startseite, 50% Breite, dynamische Höhe, grauer Rahmen mittig. */
.col-2-1-5 {
  display: flex;
  flex-flow: row nowrap ;
  width:100%;
  padding: 0 ;
}
.col-2-1-5 .col-left {
  width:50%;
  border-right: .625rem solid #fafafa;;
  padding: 3.125rem 2.5rem 0 2.5rem;
  box-sizing: border-box;
}
.col-2-1-5 .col-right {
  width:50%;
  border-left: .625rem solid #fafafa;;
  padding: 3.125rem 2.5rem 0 2.5rem;
  box-sizing: border-box;
}


/* 2x Standardblock, 50% Breite, dynamische Höhe, grauer Rahmen oben. */
.col-2-1-4 {
  display: flex;
  flex-flow: row nowrap;
  overflow: auto;
  padding: 0;
  border-top: 1.25rem solid #fafafa;;
}
.col-2-1-4 .col-left {
  flex-basis:50%;
  padding: 3.125rem .625rem 3.125rem 2.5rem;
  box-sizing: border-box;
}
.col-2-1-4 .col-right {
  flex-basis:50%;
  padding: 3.125rem 2.5rem 3.125rem .625rem;
  box-sizing: border-box;
}

/* 3 Standardblöcke, 33% Breite, dynamische Höhe, grauer Rahmen oben */
.col-3-1-1 {
  display: flex;
  flex-flow: row wrap ;
  padding: 3.125rem 2.5rem 0 2.5rem;
  border-top: 1.25rem solid #fafafa;;
}
.col-3-1-1 .col-header {
  flex: 1 100%;
}
.col-3-1-1 .col-header h3 {
  margin-bottom: 2.625rem
}
.col-3-1-1 .col-left {
  flex: 2 32%;
}
.col-3-1-1 .col-mid {
  flex: 2 32%;
  padding: 0 .625rem;
}
.col-3-1-1 .col-right {
  flex: 2 32%;
}
.col-3-1-1 img {
  margin-bottom:3.125rem;
}
.col-3-1-1 h2 {
  margin-bottom:1.875rem;
}

/* 2 Blöcke (für Preise), 1/3 und 2/3, dynamische Höhe */
.col-4-1-1 {
  display: flex;
  flex-flow: row wrap;
  padding: 3.125rem 2.5rem;
}
.col-4-1-1 .col-left {
  box-sizing: border-box;
  flex-basis: 33%;
  padding-right: .625rem;
}
.col-4-1-1 .col-right {
  box-sizing: border-box;
  flex: 1;
  padding-left: .625rem;
}
.col-4-1-1 .col-footer {
  color:#555;
  padding-top: 3.125rem;
  flex: 2 100%;
}

/* 4x Standardblock, 25% Breite, dynamische Höhe */
.col-5-1-1 {
  display: flex;
  flex-flow: row nowrap ;
  padding: 3.125rem 2.5rem;
}
.col-5-1-1 .col-left {
  flex-basis:25%;
  padding-right: .625rem;
  box-sizing: border-box;
}
.col-5-1-1 .col-left-mid, .col-5-1-1 .col-right-mid {
  flex-basis:25%;
  padding: 0 .625rem;
  box-sizing: border-box;
}
.col-5-1-1 .col-right {
  flex-basis:25%;
  padding-left: .625rem;
  box-sizing: border-box;
}

/* Accordion, Standardblock, 100% Breite, dynamische Höhe */
.col-1-1-3 {
  box-sizing: border-box;
  border-top: 1px solid #000;
  padding: 2.625rem 2.5rem;
}
.col-1-1-3 .col-full {
  padding-top:2rem;
}

/* Accordion, 2 Blöcke, je 50% Breite, dynamische Höhe */
.col-2-1-3 {
  display:flex;
  flex-flow: row wrap;
  box-sizing: border-box;
  border-top: 1px solid #000;
  padding: 2.625rem 2.5rem;
}
.col-2-1-3 .col-header {
  flex-basis: 100%;
}
.col-2-1-3 .col-left {
  width:50%;
  flex-basis:50%;
  margin:0;
  padding-top:2rem;
  padding-right: .625rem;
  box-sizing: border-box;
}
.col-2-1-3 .col-right {
  width:50%;
  flex-basis:50%;
  margin:0;
  padding-top:2rem;
  padding-left: .625rem;
  box-sizing: border-box;
}
.col-2-1-3 .col-right > div {
  margin-bottom: 3.125rem;
}
.col-2-1-3 .col-right > div:last-child {
  margin:0;
}

/* Accordion, 3 Blöcke, 1x 50%, 2x 25% Breite, dynamische Höhe */
.col-3-1-3 {
  display: flex;
  flex-flow: row wrap;
  box-sizing: border-box;
  border-top: 1px solid #000;
  padding: 2.625rem 2.5rem;
}
.col-3-1-3 .col-header {
  flex-basis: 100%;
}
.col-3-1-3 .col-left {
  flex-grow: 1;
  flex-basis:45%;
  padding-top:2rem;
  padding-right: 1.25rem;
  margin:0;
  box-sizing: border-box;
}
.col-3-1-3 .col-mid {
  flex-basis:25%;
  width: 25%;
  margin:0;
  padding-top:2rem;
  padding-right: .625rem;
  box-sizing: border-box;
}
.col-3-1-3 .col-right {
  flex-basis:25%;
  width: 25%;
  margin:0;
  padding-top:2rem;
  padding-left: .625rem;
  box-sizing: border-box;
}

/* 3 Blöcke, 1x50%, 2x25% Breite, dynamische Höhe, grauer Rahmen unten */

.col-6-1-1 {
  display: flex;
  flex-flow: row nowrap;
  padding: 3.125rem 2.5rem;
  border-bottom: 1.25rem solid #fafafa;;
}
.col-6-1-1 .col-left {
  box-sizing: border-box;
  flex: 1 50%;
  padding-right: 1.25rem;
}
.col-6-1-1 .col-mid {
  box-sizing: border-box;
  flex: 1 25%;
  padding-right: .625rem;
}
.col-6-1-1 .col-right {
  box-sizing: border-box;
  flex: 1 25%;
  padding-left: .625rem;
}

/********************
- Responsive -
********************/

@media only screen and (max-width: 1280px) {

  .col-left {
    padding-right: .5rem;
  }
  .col-right {
    padding-left: .5rem;
  }

  .wrap-bottom {
    padding-bottom:2.5rem
  }

  /* Startseite */
  .col-2-1-5 .col-left {
    border-right: .5rem solid #fafafa;;
    padding: 2.5rem 2.1875rem 0 2.1875rem;
  }
  .col-2-1-5 .col-right {
    border-left: .5rem solid #fafafa;;
    padding: 2.5rem 2.1875rem 0 2.1875rem;
  }

  /* paddings verschiedene blöcke*/
  .col-1-1, .col-3-1-1 {
    padding: 2.5rem 2.1875rem 0 2.1875rem;
  }

  .col-5-1-1, .col-6-1-1, .col-4-1-1 {
    padding: 2.5rem 2.1875rem;
  }

  .col-1-1-2 {
    padding: 2.5rem 2.1875rem 0;
  }

  .col-2-1-2 .col-left {
    padding: 2.5rem .625rem 1.8rem 2.1875rem !important;
  }
  .col-2-1-2 .col-right {
    padding: 2.5rem 2.1875rem 1.8rem .625rem !important;
  }

  .col-2-1-4 .col-left {
    padding: 2.5rem .625rem 0 2.1875rem;
  }
  .col-2-1-4 .col-right {
    padding: 2.5rem 2.1875rem 0 .625rem;
  }

  /* Accordion, 2 und 3 Blöcke */
  .col-2-1-3, .col-3-1-3 {
    padding: 1.8125rem 2.1875rem  1.7rem;
  }

}