@charset "UTF-8";

.search form, .search-filter-form {
  input, button {
    transition: 0.25s ease;
    @include focusvisible;
  }

  input.search-field {
    position: relative;
    display: block;
    border-radius: 16px;
    border-top-right-radius: 32px;
    border-bottom-right-radius: 32px;
    width: calc(100% - 1px);
    height: 80px;
    background-color: white;
    border: 0;
    padding: 24px 90px 24px 24px;
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 22px;
    line-height: 32px;
    color: $color-primary;
    color: var(--theme-color-primary, $color-primary);
    border: 2px solid $color-secondary-dark;
    border: 2px solid var(--theme-color-secondary-intensed, $color-secondary-dark);

    @media(max-width: 767px) {
      height: 70px;
      padding: 10px 50px 10px 16px;
      font-size: 18px;
      line-height: 30px;
      border-top-right-radius: 28px;
      border-bottom-right-radius: 28px;
    }

    &:focus, &:active, &.focus-visible {
      box-shadow: 0 0 8px $color-secondary-dark;
      box-shadow: 0 0 8px var(--theme-color-secondary-intensed, $color-secondary-dark);
    }

    &::-webkit-input-placeholder {
      color: $color-link-hover;
      color: var(--theme-color-link-hover, $color-link-hover);
    }
    &::-moz-placeholder {
      color: $color-link-hover;
      color: var(--theme-color-link-hover, $color-link-hover);
    }
    &:-ms-input-placeholder {
      color: $color-link-hover;
      color: var(--theme-color-link-hover, $color-link-hover);
    }
    &:-moz-placeholder {
      color: $color-link-hover;
      color: var(--theme-color-link-hover, $color-link-hover);
    }

    &:-webkit-autofill,
    &:-webkit-autofill:hover,
    &:-webkit-autofill:focus,
    &:-webkit-autofill:active  {
      -webkit-box-shadow: 0 0 0 50px white inset !important;
    }
  }

  button.search-submit {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    top: 0;
    right: 0;
    width: 80px;
    height: 80px;
    border-radius: 32px;
    border: 0;
    background-color: $color-secondary;
    background-color: var(--theme-color-secondary, $color-secondary);
    color: $color-primary;
    color: var(--theme-color-primary, $color-primary);
    padding: 0 2px 0 0;
    cursor: pointer;
    @extend .icon-suche-big;

    &:hover {
      background-color: $color-secondary-dark;
      background-color: var(--theme-color-secondary-intensed, $color-secondary-dark);
      color: $color-white;
    }

    &:before {
      position: relative;
      display: block;
      text-align: center;
      font-size: 40px;
      line-height: 1;
      font-family: "Icons";
    }

    @media(max-width: 767px) {
      border-radius: 28px;
      width: 70px;
      height: 70px;

      &:before {
        font-size: 36px;
      }
    }
  }
}

section.search {
  position: relative;
  overflow: hidden;
  padding: calc(0.4vw + 20px) 0 calc(1vw + 40px);
  min-height: calc(24vw + 220px);
  margin: 0;

  @media(max-width: 767px) {
    padding: calc(1.5vw + 15px) 0 calc(1vw + 10px);
  }

  + section, + #toclist > section:first-child {
    margin-top: 0;
  }

  .image-box {
    display: none;
  }

  &[data-type="background-color"],
  &[data-type="background-image"] {
    color: white;

    .artwork {
      display: none;
    }

    .btn {
      @extend .btn.white;
    }
  }

  &[data-type="background-color"] {
    background: linear-gradient(120deg, rgba($color-primary, 0.6) 0%, $color-primary 100%);
    background: linear-gradient(120deg, rgba(var(--theme-color-primary-rgb, $color-primary-rgb), 0.6) 0%, rgba(var(--theme-color-primary-rgb, $color-primary-rgb), 1) 100%);
  }

  &[data-type="background-image"] {
    .image-box {
      @include fullsize;

      &:after {
        content: "";
        @include fullsize;
        background: linear-gradient(120deg, rgba($color-primary, 1) 0%, rgba($color-primary, 0.2) 100%);
        background: linear-gradient(120deg, rgba(var(--theme-color-primary-rgb, $color-primary-rgb), 1) 0%, rgba(var(--theme-color-primary-rgb, $color-primary-rgb), 0.2) 100%);
      }

      img {
        position: relative;
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
      }
    }
  }

  .container {
    position: relative;
    z-index: 1;
  }

  .row {
    //align-items: center;
    //min-height: 460px;
    min-height: 620px;

    @media(max-width: 567px) {
      min-height: 0;
    }
  }

  .artwork {
    @media(max-width: 420px) {
      top: 30px;
      right: -20px;
    }
    @media(max-width: 340px) {
      top: 40px;
      right: -30px;
    }
  }

  form {
    position: relative;
    margin: 32px 0 16px;
    box-shadow: 0 3px 20px -5px rgba($color-black, 0.3);
    border-radius: 16px;
    border-top-right-radius: 32px;
    border-bottom-right-radius: 32px;

    @media(max-width: 567px) {
      margin-top: 20px;
    }
  }

  h1 {
    margin-left: 0;

    @media(max-width: 567px) {
      font-size: 24px;
      margin: 0;
    }

  }

  .tiles {
    margin: 0 -8px;
    display: flex;
    flex-wrap: wrap;
    font-family: "Korb", sans-serif;

    @media(max-width: 567px) {
      margin: 0 -6px;
    }

    .tile {
      position: relative;
      display: flex;
      padding: 8px;
      flex: 1 1 33.3333%;
      max-width: 33.3333%;

      &::before {
        position: absolute;
        top: 8px;
        right: 8px;
        margin: 10px 8px;
        font-family: Icons, sans-serif;
        font-size: 18px;
        line-height: 1;
        text-align: center;
        pointer-events: none;
        z-index: 1;
      }

      &[data-type="download"]::before {
        @include icon-small-download;
      }
      &[data-type="external"]::before {
        @include icon-small-link-external;
      }

      @media(max-width: 567px) {
        flex: 1 1 50%;
        max-width: 50%;
        padding: 6px;
      }

      &:nth-child(3) ~ .tile {
        z-index: 1;
      }

      &.downloads, &.a-z, &.events, &.contacts {
        order: 1;
        background-color: transparent;

        &::before {
          font-family: "Icons", sans-serif;
          position: absolute;
          font-size: 24px;
          line-height: 1;
          right: 0;
          top: 0;
          margin: 11px 10px;
          z-index: 1;
          background-color: white;
          padding: 7px 6px 5px;
          border-top-right-radius: 8px;
          border-bottom-left-radius: 8px;

          @media(max-width: 767px) {
            margin: 18px;
            font-size: 24px;
          }
        }
      }

      &.downloads::before {
        @include icon-suche-datei;
      }
      &.a-z::before {
        @include icon-suche-az;
      }
      &.events::before {
        @include icon-suche-veranstaltung;
      }
      &.contacts::before {
        @include icon-suche-person;
      }
    }

    .tile > a, .outer {
      position: relative;
      display: flex;
      align-items: flex-end;
      width: 100%;
      min-height: 108px;
      padding: 18px 24px 24px;
      border-radius: $radius-md;
      box-shadow: 0 4px 20px -5px rgba($color-black, 0.25);
      transition: 0.25s ease;
      line-height: 1.2;
      background-color: $color-white;
      overflow: hidden;

      @media(max-width: 767px) {
        font-size: 16px;
        padding: 10px 10px 15px;
        min-height: 84px;
      }

      &:before {
        content: "";
        position: absolute;
        display: block;
        bottom: 0;
        left: 0;
        right: 0;
        height: 8px;
        background-color: $color-secondary;
        background-color: var(--theme-color-secondary, $color-secondary);
        transition: 0.25s $easeOutQuad;
      }

      &:hover {
        color: $color-secondary-dark;
        color: var(--theme-color-secondary-intensed, $color-secondary-dark);

        &:before {
          height: 14px;
        }
      }

      &:after {
        content: "";
        @include fullsize;
        @include focus-standalone(true);
        opacity: 0;
        border-radius: 16px;
        transition: 0.3s ease;
        z-index: 1;
      }

      &.focus-visible:focus {
        outline: 0;

        &:after {
          opacity: 1;
        }
      }
      &:focus-visible, &-moz-focusring {
        outline: 0;

        &:after {
          opacity: 1;
        }
      }
    }

    .tile > a {
      text-decoration: none;

      .item-title {
        text-decoration: underline;
      }
    }

    .outer {
      background-color: $color-primary-light-04;
      background-color: var(--theme-primary-light-04, $color-primary-light-04);
      padding: 14px 20px 18px;
      border: 4px solid white;

      &::after, &::before {
        display: none;
      }
    }

    .inner {
      display: block;
      max-width: 100%;
    }

    .kicker {
      white-space: nowrap;
      text-overflow: ellipsis;
      overflow: hidden;
      max-width: 100%;
      display: block;
      text-decoration: none;
    }

    ul {
      list-style: none;
      padding: 0;
      font-size: 16px;
      max-width: 100%;
      margin: 0;

      li {
        margin-top: 5px;
      }

      a {
        display: block;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        transition: 0.2s ease;
        font-weight: 500;

        &:hover {
          color: $color-secondary-dark;
          color: var(--color-secondary-dark, $color-secondary-dark);
        }
      }
    }

    .proposals {
      flex: 1 1 100%;
      padding: 10px 12px 0;
      order: 2;

      a {
        margin: 0 0.3em 0 0.1em;
      }

      p {
        margin-bottom: 0;
      }

      ~ .all-button-wrapper {
        display: none;
      }
    }

    .all-button-wrapper {
      padding: 16px 8px;
      display: block;
      flex: 1 1 100%;
      order: 3;

      .btn {
        transition: 0.2s ease;

        .count {
          margin-left: 0.3em;

          &::before {
            content: '(';
          }
          &::after {
            content: ')';
          }
        }
      }
    }
  }
}

.search-filter-form {
  position: relative;
  background-color: $color-primary-light-04;
  background-color: var(--theme-color-primary-dimmed-04, $color-primary-light-04);
  padding: 24px 30px 0;
  margin-bottom: 20px;

  input[type="checkbox"] + label, input[type="radio"] + label {
    max-width: none;
  }

  @media(max-width: 767px) {
    //margin: 0 -20px 15px;
    margin: 20px 0;
    padding: 16px 15px 0;
  }

  h1, .like-h3 {
    margin-top: 0;
    margin-left: 1px;
  }

  fieldset {
    position: relative;
    border: 0;
    padding: 0;

    &:last-child {
      padding-bottom: 32px;
    }
  }

  .search-results-search {
    @media(max-width: 567px) {
      display: flex;
      flex-direction: column;

      .toggle-actions {
        order: 1;
        margin-top: 15px;
        padding-bottom: 24px;
      }
    }
  }

  .extendleft {
    @media(max-width: 567px) {
      margin: 15px 2px 2px;
    }
    @media(min-width: 568px) {
      float: right;
      margin-top: -65px;
      margin-right: 10px;
    }
  }

  input[type="number"] {
    appearance: none;
    -webkit-appearance: none;

    &::-webkit-inner-spin-button, &::-webkit-outer-spin-button {
      -webkit-appearance: none;
       margin: 0;
    }
  }

  .subtitle {
    margin-bottom: 32px;
    font-size: 18px;
    margin-left: 2px;
  }

  .extended-search {
    display: none;
    margin: 0 -30px;

    @media(max-width: 767px) {
      margin: 0 -20px;
    }

    &:before {
      content: "";
      position: relative;
      display: block;
      background-color: $color-white;
      height: 30px;

      @media(max-width: 767px) {
        height: 10px;
      }
    }
  }

  .ev-filter {
    display: none;
    transition: background-color 0.3s ease;
    padding: 0 26px 20px;

    @media(max-width: 767px) {
      padding: 0 18px 18px;
    }
  }

  label.acc {
    display: inline-block;
    width: calc(100% - 40px);

    a {
      text-decoration: none;
      display: block;
      position: relative;
      padding-right: 30px;
      padding-left: 5px;
      margin-left: -5px;
      @include focusvisible;
      @extend .icon-checkbox-liste;
      transition: 0.2s ease;

      &:before {
        font-family: "Icons";
        font-size: 30px;
        line-height: 1;
        position: absolute;
        right: -3px;
        top: 50%;
        margin-top: -15px;
      }

      &:hover:before {
        color: $color-primary;
        color: var(--theme-color-primary, $color-primary);
      }
    }
  }

  .acc + .ev-filter {
    padding-bottom: 6px;
    transition: background-color 0.3s ease;

    .ev-filter-wrapper {
      border: 0;
      padding: 2px 0 2px 8px;

      @media(max-width: 767px) {
        padding-left: 6px;
      }
    }
  }

  .ev-search-btn {
    position: relative;
    display: block;
    border-top: 1px solid $color-white;
    padding: 13px 20px 13px 56px;
    @extend .icon-plus;
    cursor: pointer;
    text-decoration: underline;
    @include focusvisible;
    transition: 0.3s ease;

    &:before {
      font-family: "Icons";
      position: absolute;
      display: inline-block;
      font-size: 24px;
      line-height: 30px;
      left: 22px;
      top: 50%;
      margin-top: -15px;
      text-decoration: none;
      font-weight: 400;
    }

    @media(max-width: 767px) {
      padding-left: 52px;
      font-size: 18px;
      font-weight: 600;

      &:before {
        left: 18px;
      }
    }

    &.focus-visible:focus {
      z-index: 1;
    }
    &:focus-visible, &.-moz-focusring {
      z-index: 1;
    }

    &.open {
      background-color: $color-primary-light-03;
      background-color: var(--theme-color-primary-dimmed-03, $color-primary-light-03);
      @extend .icon-minus;

      + .ev-filter {
        background-color: $color-primary-light-03;
        background-color: var(--theme-color-primary-dimmed-03, $color-primary-light-03);
      }
    }
  }

  .ev-filter-wrapper {
    padding: 4px 0;
    margin: 0 -2px;

    + .ev-filter-wrapper {
      border-top: 1px solid $color-primary-light-02;
    }
  }

  .toggle-actions {
    margin-top: 30px;
    padding-bottom: 30px;

    #search-expand-collapse {
      @extend .btn-small;
      @extend .icon-plus;
      padding-left: 48px;
      @include focusvisible;

      @media(max-width: 767px) {
        padding-top: 10px;
        padding-bottom: 10px;
      }

      &.open {
        @extend .icon-minus;
      }

      &:before {
        font-family: "Icons";
        position: absolute;
        font-size: 24px;
        line-height: 30px;
        left: 13px;
        top: 50%;
        margin-top: -15px;
      }
    }
  }

  .row {
    margin: 0 -8px;

    > .ev-filter-wrapper {
      border-top: 0;
      padding: 6px 10px;
      position: relative;
      margin: 0;

      @media(max-width: 567px) {
        flex: 1 1 100%;
        max-width: 100%;

        &.col-sm-3.location {
          flex: 1 1 30%;
          max-width: 30%;
        }
        &.col-sm-6.location {
          flex: 1 1 70%;
          max-width: 70%;
        }
        &.date {
          flex: 1 1 50%;
          max-width: 50%;
        }
      }

      @media(min-width: 567px) {
        &.col-sm-3 {
          flex: 1 1 25%;
          max-width: 25%;
        }
        &.col-sm-6 {
          flex: 1 1 50%;
          max-width: 50%;
        }
        &.col-sm-9 {
          flex: 1 1 75%;
          max-width: 75%;
        }
      }
    }
  }

  .input-row {
    padding: 10px 14px;

    @media(max-width: 767px) {
      padding: 10px;
    }
  }

  .input-wrapper {
    display: inline-block;
    padding: 4px 10px;
  }

  .btn-wrapper {
    position: relative;
    padding: 20px 22px;
    border-top: 1px solid $color-white;

    @media(min-width: 768px) {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 18px;
    }

    .reset {
      position: relative;
      @extend .icon-reset;
      display: inline-block;
      padding-left: 40px;

      @media(max-width: 767px) {
        margin-bottom: 18px;
        margin-left: 1px;
      }

      &:before {
        position: absolute;
        left: 0;
        top: 50%;
        margin-top: -14px;
        font-family: "Icons";
        font-size: 30px;
        line-height: 1;
        display: inline-block;
        vertical-align: middle;
        text-decoration: none;
      }
    }
  }
}

[data-browser="ie"] {
  .search-filter-form .ev-search-btn:before,
  .search-filter-form .btn-wrapper .reset:before {
    text-decoration: underline;
  }
  .search-filter-form .ev-search-btn:before,
  .search-filter-form .btn-wrapper .reset:before {
    text-decoration: none;
  }
}

/* clears the 'X' from Internet Explorer */
input[type=search]::-ms-clear {  display: none; width : 0; height: 0; }
input[type=search]::-ms-reveal {  display: none; width : 0; height: 0; }

/* clears the 'X' from Chrome */
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration { display: none; }


.results-wrapper {
  margin: 30px 0;
  position: relative;

  &:before {
    font-family: "Icons";
    position: absolute;
    font-size: 30px;
    line-height: 1;
    right: 0;
    top: 0;
    margin: 24px 30px;

    @media(max-width: 767px) {
      margin: 18px;
      font-size: 24px;
    }
  }

  &.no-border {
    .result {
      border: 1px solid $color-primary-light-03;
      border: 1px solid var(--theme-color-primary-dimmed-03, $color-primary-light-03);
      border-radius: 4px;
      padding: 10px 20px;
      margin: 10px 0;

      @media(min-width: 1200px) {
        font-size: 18px;
      }

      @media(max-width: 767px) {
        padding: 10px 12px;
      }

      &:not(.fitResult){
        a {
          display: block;
          text-decoration: none;
          transition: 0.2s ease;

          &:before {
            content: "";
            @include fullsize;
            pointer-events: none;
            @include focus-standalone;
            border-radius: 4px;
            opacity: 0;
            transition: 0.3s ease;
          }

          &.focus-visible:focus {
            outline: 0;

            &:before {
              opacity: 1;
            }
          }

          &:focus-visible, &.-moz-focusring {
            outline: 0;

            &:before {
              opacity: 1;
            }
          }

          &:hover {
            color: $color-link-hover;
            color: var(--theme-color-link-hover, $color-link-hover);
          }

          &:last-child .h-title {
            //margin-bottom: 2px;
          }
        }
      }

    }
  }

  .highlight {
    font-weight: 700;
  }

  .result {
    position: relative;
    display: block;

    @media(max-width: 767px) {
      overflow: hidden;
    }

    &:before {
      position: absolute;
      top: 0;
      right: 0;
      margin: 10px 8px;
      font-family: "Icons";
      font-size: 18px;
      line-height: 1;
      text-align: center;
    }

    &.download {
      @extend .icon-small-download;
    }
    &.external {
      @extend .icon-small-link-external;
    }

    p:last-child {
      margin-bottom: 3px;
    }

    &:hover {
      color: $color-secondary-dark;
      color: var(--theme-color-secondary-intensed, $color-secondary-dark);
    }
  }

  .h-kicker {
    @extend .kicker;
    margin-bottom: 0;
  }

  .title, .h-title {
    text-decoration: underline;
    font-size: 18px;
    margin-bottom: 5px;
    font-weight: 600;
    line-height: 1.25;

    &:after {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
    }

    &:first-child:last-child {
      margin: 5px 0;
    }

    &:last-child {
      margin-bottom: 3px;
    }

    @media(min-width: 1200px) {
      font-size: 22px;
    }
  }

  .fitResult{
    .title, .h-title {
      &:after {
        display: none;
      }

    }
  }

  .results {
    list-style: none;
    margin-bottom: 24px;
    padding: 0;

    li {
      margin: 10px 0;
    }

    a {
      display: block;
      background-color: $color-white;
      border-radius: 4px;
      padding: 10px 20px;

      &:hover {
        color: $color-link-hover;
        color: var(--theme-color-link-hover, $color-link-hover);
      }
    }
    .fitResult{
      display: block;
      background-color: $color-white;
      border-radius: 4px;
      padding: 10px 20px;
      a{
        padding: 0;
      }
    }
  }

  .more-wrapper {
    margin: 12px 0;
    text-align: right;

    strong {
      display: inline-block;
      margin: 0 5px;
    }
  }

  &:not(.no-border) {
    background-color: $color-primary-light-04;
    background-color: var(--theme-color-primary-dimmed-04, $color-primary-light-04);
    padding: 18px 28px;

    @media(max-width: 767px) {
      margin: 0 -20px;
      padding: 15px 20px;
    }

    .result {
      margin: 10px 0;
      display: block;
    }
  }

  &.events-list + .events-list, &.events-list + #infscr-loading + .events-list,
  &.events-list + .events-list, &.events-list + #infscr-loading + .events-list,
  #dummy-wrapper + .results-wrapper.events-list, #dummy-wrapper + #infscr-loading + .results-wrapper.events-list {
    margin-top: -50px;
    padding-top: 0;

    @media(max-width: 767px) {
      margin-top: -24px;
    }
  }

  &.no-border + .no-border, &.no-border + #infscr-loading + .no-border,
  &.no-border + .no-border, &.no-border + #infscr-loading + .no-border,
  #dummy-wrapper + .results-wrapper.no-border, #dummy-wrapper + #infscr-loading + .results-wrapper.no-border {
    margin-top: -20px;
  }
}

#infscr-loading, #infscr-initial-loading {
  display: flex;
  justify-content: center;

  img{
    width: 100px;
  }
}

h2.search-hits {
  margin: 40px 0 12px;

  @media(max-width: 767px) {
    margin: 30px 0 0;
  }
}

#searchcategoryaddition a {
  //@extend .btn-small;
  margin-bottom: 8px;
  background-color: $color-primary-light-04;
  background-color: var(--theme-color-primary-dimmed-04, $color-primary-light-04);
  color: $color-primary;
  color: var(--theme-color-primary, $color-primary);

  &:hover, &:focus, &:active, &.active, &.active:hover {
    background-color: $color-primary;
    background-color: var(--theme-color-primary, $color-primary);
    color: $color-white;
    text-decoration: none;
  }
}

[data-browser="ie"] {
  section.search {
    form, .tiles a {
      box-shadow: 0 3px 15px rgba($color-black, 0.2);
    }
  }
}

/*
#infscr-loading + .results-wrapper {
  opacity: 0;
  transition: 0.4s linear;
}

#infscr-loading[style="display: none;"] + .results-wrapper,
#infscr-loading:not(:visible) + .results-wrapper {
  opacity: 1;
}
*/



/*
// OLD STYLING

.search-form {
  margin: 0 auto 20px;
}
.search-field {
  -webkit-appearance: none!important;
  border: none;
  -webkit-border-radius: 0;
  border-radius: 0;
  box-sizing: border-box;
  color: $cGlobalText;
  font-family: $font-source-sans-proregular;
  font-size: 1.0625em; // 17px
  float: left;
  height: 60px;
  margin: 0 auto;
  padding: 0 0 0 10px;
  width: calc(100% - 80px);
  outline-width: 0;
}
.search-field:focus {
  outline: none;
}
.search-submit {
  background-color: $secondary-color;
  border: none;
  float: left;
  height: 60px;
  padding: 0;
  position: relative;
  width: 60px;
  &:after {
    @include icons2();
    content: "";
    @include backgroundpositionheightweight(icon_search);
    display: inline-block;

    left: 50%;
    position: absolute;
    top: 50%;

    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%,-50%);
  }
  &:hover {
    background: $primary-color;
  }
  &:focus {
    background: $primary-color;
  }
}
.linktext-wrapper {
  @include flexbox();
  @include align-items(center);
  height: 60px;
}

@media (min-width: $screen-sm-min),
print {
  .search-field {
    padding: 0 0 0 20px;


  }
  .search-submit {

    &:after {
      @include backgroundpositionOffset(icon_search, 3, 0);

    }
  }
}

@media (max-width: 348px) {
  .search-field::-webkit-input-placeholder { font-size: 0.85em; }
  .search-field::-moz-placeholder { font-size: 0.85em; }
  .search-field:-ms-input-placeholder { font-size: 0.85em; }
  .search-field:-moz-placeholder { font-size: 0.85em; }
}

*/
