/* ######################### */
/* elements */
/* ######################### */
@media all {

  /*
  *:focus {
  outline: 2px solid var(--color-accent) !important;
}
  */

  .ce-element + .ce-element ,
  .ce-element + .ce-header ,
  .grid-row + .ce-element ,
  .ce-element + .grid-row ,
  .search-pagination {
    margin-top: var(--base-3-2);
  }

  /*  
  .ce-contributor-title + .ce-element > .grid-1 > .grid-col-1 > .ce-element:first-child > .ce-above > .ce-gallery {
  margin-top: calc(var(--base-3-2) * -1);
  padding-top: var(--gap-6);
}  
  */

  .ce-image-only + .ce-image-only {
    margin-top: var(--base-size);
  }

  .ce-element + .ce-list-type-ke_search_pi1 ,
  .ce-element + .ce-list-type-tiprogram_searchbox {
    margin-top: var(--gap-4);
  }

  .ce-type-header {
    margin-bottom: var(--gap-8);
  }

  .ce-header-left {
    text-align: left;
  }

  .ce-header-center {
    text-align: center;
  }

  .ce-header-right {
    text-align: right;
  }

  .ce-header-with-icon i[aria-hidden] {
    margin-right: 0.25em;
  }

  .ce-teaserlink-outer {
    position: relative;
  }

  .ti-program-detail .ce-media a {
    overflow: hidden;
  }

  .news-list-item .ce-media a img ,
  .ti-program-detail .ce-media a img ,
  .ce-teaserlink-outer img ,
  .lightbox img {
    transition: var(--transition-slow);
    transition-property: transform;
    will-change: transform;
  }

  .news-list-item .ce-media a:focus img ,
  .news-list-item .ce-media a:focus-visible img ,
  .news-list-item .ce-media a:hover img ,
  .ti-program-detail .ce-media:focus a img ,
  .ti-program-detail .ce-media:focus-within a img ,
  .ti-program-detail .ce-media:hover a img ,
  .ce-element .ce-teaserlink-outer:focus img[data-sizes="auto"].lazyloaded ,
  .ce-element .ce-teaserlink-outer:focus-within img[data-sizes="auto"].lazyloaded ,
  .ce-element .ce-teaserlink-outer:hover img[data-sizes="auto"].lazyloaded ,
  .ce-element .lightbox:focus img[data-sizes="auto"].lazyloaded ,
  .ce-element .lightbox:focus-visible img[data-sizes="auto"].lazyloaded ,
  .ce-element .lightbox:hover img[data-sizes="auto"].lazyloaded {
    transform: scale(1.25);
    opacity: .95;
  }

  .ce-teaserlink-outer .ce-gallery ,
  .ce-teaserlink-outer .ce-textmedia-outer {
    /*! position: relative; */
  }

  .ce-teaserlink-outer .ce-header * {
    transition: var(--transition-default);
  }

  .ce-teaserlink-outer .ce-header
  :is(h4,h5.h4,.h5) {
    color: var(--color-primary);
  }

  .ce-teaserlink-outer:is(:hover,:focus,:active) .ce-header 
  :is(h4,h5.h4,.h5) {
    color: var(--color-accent-hover);
  }

  .ce-teaserlink-outer .ce-teaserlink-inner a {
    /*! z-index: 2; */
    /*! position: relative; */
  }

  .ce-teaserlink-outer .ce-teaserlink-inner {
    /*! position: relative; */
    z-index: 1;
  }

  .ce-teaserlink-outer .ce-teaserlink-link {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    opacity: 0;
  }

  .ce-teaserlink-outer .ce-teaserlink-link:focus-visible {
    opacity: 1;
    color: transparent;
  }

  .ce-teaserlink-outer:hover .ce-header * {
    color: var(--color-accent-hover);
  }

  .ce-teaserlink-outer:hover .ce-text-on-image .ce-header * ,
  .ce-teaserlink-outer:hover .ce-text-on-image .ce-bodytext {
    color: var(--color-text-light);
  }

  .ce-header + * {
    margin-top: var(--base-3-2);
  }

  .page-footer .ce-header + * {
    margin-top: var(--gap-4);
  }

  .ce-header + :is(
  .ce-bodytext,
  .ce-menu
  ) {
    margin-top: var(--gap-4);
  }

  /*
  .ce-header * + * {
  margin-top: var(--gap-4);
}
  */

  .ce-header {
    display: grid !important;
    gap: var(--gap-4);
  }

  .ce-header ,
  .ce-bodytext ,
  .page-footer .ce-gallery ,
  .news-pagination ,
  .powermail_form ,
  .grid-row [class*="ce-list-type-tiprogram_"] ,
  .grid-row [class*="ce-list-type-ke_search_"] {
    padding-left: var(--base-size);
    padding-right: var(--base-size);
  }

  .ce-type-list.ce-list-type-tiprogram_category ,
  .grid-row > .ce-type-list ,
  [class*="ce-list-type-tiprogram_"] .ce-header ,
  [class*="ce-list-type-tiprogram_"] .ce-bodytext ,
  .grid-row .ce-list-type-tiprogram_category {
    padding-left: 0;
    padding-right: 0;
  }

  .ce-div {
    margin: 0;
    border: 0 none transparent;
    border-top: 1px solid var(--color-bg-light);
    opacity: 1;
  }

  .ce-element .btn i {
    display: flex;
    aspect-ratio: 1;
    line-height: 1;
    height: var(--gap-7);
    width: var(--gap-7);
    box-sizing: content-box;
    justify-content: center;
    align-items: center;
    border-radius: 100%;
    box-shadow: 0 0 0 calc(var(--gap) / 2) currentColor inset;
    margin-right: var(--gap-2);
    transition: var(--transition-default);
  }

  .ce-element .btn-search i {
    margin-right: 0;
    box-shadow: none;
    padding-right: var(--gap);
  }

  .ce-element .btn:focus i ,
  .ce-element .btn:hover i {
    box-shadow: 0 0 0 var(--gap-7) var(--color-accent-hover) inset;
    color: var(--color-text-light);
  }

  .ce-element .kesearch-searchbox .btn i ,
  .ce-element .form-program-search .btn i {
    padding-right: 0;
  }

  .ce-element .kesearch-searchbox .btn:focus i ,
  .ce-element .kesearch-searchbox .btn:hover i ,
  .ce-element .form-program-search .btn:focus i ,
  .ce-element .form-program-search .btn:hover i {
    box-shadow: none;
    color: unset;
  }

  a.btn[data-icon] i[class^=fa] {
    margin-right: var(--gap-2);
  }

  .ce-list-type-tiprogram_searchbox .form-program-search ,
  .ce-list-type-ke_search_pi1 .input-group {
    display: flex;
    background-color: var(--color-bg-extralight);
    border-radius: 100vh !important;
    box-shadow: 0 0 .5rem rgba(0,0,0,.05) inset;
    overflow: visible;
  }

  .ce-list-type-ke_search_pi1 .input-group input.search-word {
    background-color: transparent !important;
    padding-left: var(--gap-3) !important;
    /*! margin-right: var(--gap-2); */
    border-radius: 100vh !important;
  }

  .ce-list-type-ke_search_pi1 .input-group input.search-word:focus , 
  .ce-list-type-ke_search_pi1 .input-group input.search-word:hover {
    box-shadow: none;
  }

  .ce-list-type-ke_search_pi1 .input-group button.btn-search {
    background-color: #fff;
    border-radius: 100vh !important;
    padding-right: var(--gap-3);
    margin: .25rem;
    box-shadow: 0 0 .5rem rgba(0,0,0,.05);
  }

  .ce-list-type-ke_search_pi1 .input-group button.btn-search .text {
    color: var(--color-text);
  }

  .ce-list-type-ke_search_pi1 .input-group button.btn-search:focus ,
  .ce-list-type-ke_search_pi1 .input-group button.btn-search:hover {
    color:  var(--color-accent-hover);
    box-shadow: 0 0 1rem rgba(0,0,0,.25);
  }

  .ce-list-type-ke_search_pi1 .input-group button.btn-search:focus-visible {
    box-shadow: var(--shadow-focus);
  }

  /* override ti_programm styles */

  .ce-list-type-tiprogram_searchbox .form-program-search input {
    background-color: transparent !important;
    padding-left: var(--gap-3) !important;
  }

  .ce-list-type-tiprogram_searchbox .form-program-search input:focus {
    box-shadow: none;
    outline: none;
  }

  .ce-list-type-tiprogram_searchbox .form-program-search button {
    background-color: #fff;
    border-radius: 100vh !important;
    padding-right: var(--gap-3);
    margin: .25rem;
    box-shadow: 0 0 .5rem rgba(0,0,0,.05);
  }

  .ce-list-type-tiprogram_searchbox .form-program-search button .text {
    color: var(--color-text);    
  }

  .ce-list-type-tiprogram_searchbox .form-program-search button:focus ,
  .ce-list-type-tiprogram_searchbox .form-program-search button:hover {
    box-shadow: 0 0 1rem rgba(0,0,0,.25);
  }

  .ce-list-type-tiprogram_searchbox .form-program-search button i {
    margin-right: 0;
    box-shadow: none;
    padding-right: var(--gap);
  }

  .ce-list-type-tiprogram_programdetails .ti-program-meta + .ce-media ,
  .ce-list-type-tiprogram_programdetails .ti-program-meta + .ce-media + .ti-program-body {
    margin-top: var(--gap-6);
    margin-top: var(--base-3-2);
    margin-top: var(--base-3-4);
  }

  .ce-frame-footer-social .ce-gallery .ce-row {
    display: flex;
    padding: 0 var(--base-size);
  }

  .ce-frame-footer-social .ce-gallery .ce-column {
    max-width: var(--base-size);
    max-width: var(--gap-10);
  }

}

/* ######################### */
/* textmedia */
/* ######################### */
@media all {
  .ce-textmedia.ce-intext .ce-gallery {
    /*width: calc(50% - var(--base-size) / 2);*/
    max-width: calc(50% - var(--base-size) / 2);
    width: 100%;
  }

  .ce-frame-image-small .ce-textmedia.ce-intext .ce-gallery {
    max-width: var(--base-3-1);
  }

  .ce-textmedia.ce-intext .ce-gallery.ce-width-set {
    width: auto !important;
    flex-shrink: 1;
    flex-grow: 0;
  }

  .ce-textmedia {
    display: flex;
    flex-wrap: wrap;
    row-gap: var(--base-3-2);
    column-gap: var(--gap-5);
    column-gap: var(--base-size);
  }

  .ce-news-layout-5 .news-list-item .ce-textmedia ,
  .grid-equalcols .ce-textmedia {
    row-gap: var(--gap-6);
  }

  .ce-textmedia.ce-nowrap.ce-intext {
    flex-direction: column;
  }

  .ce-textmedia.ce-nowrap.ce-intext .ce-gallery {
    width: unset;
    max-width: unset;
    order: 1;
  }

  .ce-textmedia.ce-nowrap.ce-intext .ce-textmedia-outer {
    order: 2;
  }

  .ce-textmedia > .ce-textmedia-outer {
    flex: 1;
    /*! position: relative; */
    z-index: 2;
  }

  .ce-textmedia > .ce-gallery {
    width: 100%;
    position: relative;
    z-index: 1;
  }

  .ce-textmedia.ce-below > .ce-gallery,
  .ce-textmedia.ce-nowrap.ce-right > .ce-gallery {
    order: 2;
  }

  .ce-textmedia.ce-intext.ce-nowrap .ce-gallery {
    width:100%;
  }

  .ce-textmedia.ce-intext:not(.ce-nowrap) {
    display: block;
  }

  .ce-textmedia.ce-intext:not(.ce-nowrap) .ce-gallery {
    margin-bottom: var(--base-3-4);
    margin-bottom: var(--base-3-2);
  }

  .ce-textmedia.ce-intext:not(.ce-nowrap).ce-left .ce-gallery {
    float: left;
    margin-right: var(--base-2-1);
  }

  .ce-textmedia.ce-intext:not(.ce-nowrap).ce-right .ce-gallery {
    float: right;
    margin-left: var(--base-size);
    margin-left: var(--base-2-1);
  }

  .ce-text-on-image{
    display: grid;
    align-items: end;
    background-color: var(--color-primary);
  }

  .grid-items-equal .ce-text-on-image {
    align-items: stretch;
  }

  .grid-items-equal .ce-text-on-image .ce-textmedia-outer {
    display: grid;
    align-items: end;
  }

  .grid-items-equal .grid-inner > .content-wrap {
    display: flex;
    justify-content: center;
    flex-direction: column;
  }

  .ce-text-on-image > * {
    grid-row: 1 / -1;
    grid-column: 1 / -1;
    flex: unset;
  }

  .ce-text-on-image > * {
    grid-row: 1 / -1;
    grid-column: 1 / -1;
    flex: unset;
  }

  .ce-text-on-image .ce-textmedia-inner {
    position: relative;
    padding-top: var(--base-size);
    padding-bottom: var(--base-size);
  }

  .ce-text-on-image .ce-textmedia-inner .ce-header ,
  .ce-text-on-image .ce-textmedia-inner .ce-bodytext {
    position: relative;
    z-index: 1;
  }

  .ce-text-on-image .ce-textmedia-inner::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 0;
    background: linear-gradient(transparent, rgba(0,0,0,.5));
    background: var(--gradient-overlay);
  }

  .ce-text-on-image .ce-header > * ,
  .ce-text-on-image .ce-bodytext {
    color: var(--color-text-light);
  }

  caption,
  figcaption {
    padding: 0 var(--base-size);
    padding-top: var(--gap-4);
  }

  .ti-program-list-bookable {
    margin-top: 0;
  }

  .ti-program-list-bookable li + li {
    margin-bottom: 0;
    position: relative;
  }

  .ti-program-list-bookable li + li {
    padding-top: var(--base-3-2);
    /*! margin-top: var(--base-3-2); */
  }

  .ti-program-list .ce-textmedia-outer ,
  .ti-program-list-bookable .ce-textmedia-outer {
    display: flex;
  }

  .ti-program-list-bookable .ce-textmedia-inner {
    display: grid;
  }

  .ti-program-list-bookable a:focus ,
  .ti-program-list-bookable a:hover ,
  .ti-program-list-bookable a:focus * ,
  .ti-program-list-bookable a:hover * {
    color: var(--color-accent-hover);
  }

  .tx-ti-program .ce-cal-card {
    display: flex;
    flex-direction: column;
    line-height: 1;
    color: var(--color-primary);
    text-align: center;
    min-width: calc(var(--base-size) * 2);
    margin-right: var(--base-size);
  }

  .ti-program-list .ce-teaserlink-outer:hover :is(.ti-program-meta, .ce-cal-card) {
    color: var(--color-accent-hover);
  }
  
  .ti-program-list .ce-teaserlink-link {
    bottom: calc(var(--gap-9) + var(--gap-4));
  }
  
  .ti-program-list .ce-teaserlink-outer .ce-teaserlink-inner a {
    /*! position: relative; */
    /*! z-index: 10; */
  }

  .tx-ti-program .cal-card-dark {
    background-color: var(--color-bg-light);
    padding: var(--gap) 0;
  }

  .tx-ti-program .cal-card-light {
    background-color: var(--color-bg-extralight);
    padding: calc(var(--gap) / 2) 0;
  }

  .tx-ti-program .cal-card-light + .cal-card-light {
    padding-top: 0;
  }

  .tx-ti-program .cal-card-day {
    font-size: 2em;
    font-weight: 700;
    white-space: nowrap;
  }

  .tx-ti-program .cal-card-month {
    font-weight: 700;
    text-transform: uppercase;
  }

  .ti-program-list-bookable .ce-bodytext p > span {
    display: block;
  }
  .ti-program-list-bookable .ce-bodytext p > span.ti-program-meta-label ,
  .ti-program-list-bookable .ce-bodytext p > span.ti-program-date {
    display: inline-block;
  }

  .ti-program-detail .ti-program-date ,
  .ti-program-list .ti-program-date ,
  .ti-program-list-bookable .ti-program-date ,
  .ce-list-type-tiprogram_booking .ti-program-date ,
  .ce-list-type-tiprogram_programdetails .ti-program-date {
    font-weight: 600;
  }

  .ti-program-detail .ce-media {
    float: right;
    max-width: calc(50% - var(--base-size) / 2);
    width: 100%;
    margin-left: var(--base-size);
    margin-left: var(--base-2-1);
    margin-bottom: var(--base-3-2);
  }

  .ti-program-detail .ce-div {
    margin-top: var(--base-3-4);
    margin-bottom: var(--base-3-4);
  }

  .ti-program-meta + .ce-media ,
  .ti-program-meta + .ti-program-body{
    margin-top: var(--base-3-4);
  }

  .ce-element + .ti-program-list ,
  .ti-program-list-bookable li + li ,
  .ti-program-list > li + li {
    /*! margin-top: var(--base-3-2); */
    padding-top: var(--base-3-2);
  }

  .ce-element + .ti-program-list ,
  .ti-program-list > li {
    position: relative;
  }

  .ti-program-list > :not(:last-child) {
    margin-bottom: 0 !important;
  }

  .ti-program-list p + p {
    margin-top: 0;
  }

  .tx-ti-program ul.ti-program-actions {
    display: flex;
    gap: var(--gap-4);
    margin-top: var(--gap-4);
  }

  .ce-list-type-tiprogram_booking .form-submit .form-indent {
    display: flex;
    gap: var(--gap-4);
  }

  .tx-ti-program ul.ti-program-actions li {
    margin: 0;
  }

  .ce-element + .ti-program-list::before ,
  .ti-program-list-bookable li + li::before ,
  .ti-program-list > li + li::before {
    content: "";
    display: block;
    top: 0;
    /*! border-top: 1px solid var(--color-bg-light); */
    position: absolute;
    left: calc(var(--base-size)* -1);
    right: calc(var(--base-size)* -1);
  }

  .ce-frame-orange ,
  .ce-frame-orange .ce-header > * {
    color: var(--color-accent);
  }

}

@media(min-width: 48rem) {

  .ce-textmedia.ce-intext.ce-nowrap {
    flex-wrap: nowrap;
  }

  .ce-textmedia.ce-nowrap > div {
    flex: 1;
    /*! width: 100%; */
  }
}

@media(min-width: 62rem) {

  .ce-textmedia.ce-nowrap.ce-intext {
    flex-direction: row;
  }

  .ce-textmedia.ce-nowrap.ce-intext .ce-gallery {
    max-width: calc(50% - var(--base-size) / 2);
    width: 100%;
  }

  .ce-textmedia.ce-nowrap.ce-intext.ce-left .ce-gallery {
    order: 1;
  }
  .ce-textmedia.ce-nowrap.ce-intext.ce-left .ce-textmedia-outer {
    order: 2;
  }

  .ce-textmedia.ce-nowrap.ce-intext.ce-right .ce-gallery {
    order: 2;
  }
  .ce-textmedia.ce-nowrap.ce-intext.ce-right .ce-textmedia-outer {
    order: 1;
  }

  .tx-ti-program .ce-cal-card {
    min-width: calc(var(--base-size) * 3 / 2);
  }

}

@media(min-width: 74.5rem) {

  .tx-ti-program .ce-cal-card {
    min-width: var(--base-size);
  }

}

/* ######################### */
/* menu */
/* ######################### */
@media all {
  .ce-menu {
    list-style: none;
    padding-left: 0;
    display: flex;
    flex-direction: column;
    gap: var(--gap);
    margin-top: unset;
    margin-bottom: unset;
  }

  .ce-menu .ce-menu {
    padding-left: 1.25rem;
  }

}

/* ######################### */
/* textexpand */
/* ######################### */
@media all {
  .ce-textexpand-btn,
  .ce-textexpand-text {
    margin-top: var(--ce-margin-extra-small, 1rem);
  }

  .ce-textexpand-btn {
    display: flex;
    align-items: baseline;
    gap: 0.3125em;
    border: none;
    background: none;
    padding: 0;
    color: var(--bs-primary, inherit);
  }

  .ce-textexpand-btn[aria-expanded=false]:not(:first-of-type) {
    display: none;
  }

  .ce-textexpand-btn[aria-expanded=true]:first-of-type {
    display: none;
  }
}

/* ######################### */
/* table */
/* ######################### */
@media all {
  .ce-type-table .ce-table {
    width: 100%;
  }
}

/* ######################### */
/* uploads */
/* ######################### */
@media all {
  .ce-type-uploads .ce-uploads {
    list-style: none;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--gap-2);
  }

  .ce-uploads-link {
    display: flex;
    align-items: flex-start;
    gap: var(--gap-3);
    width: 100%;
    text-decoration: none;
    color: inherit;
    box-shadow: var(--box-shadow);
    background-color: var(--color-bg-light);
    padding: var(--gap-4) var(--gap-3);
    padding: var(--gap-4) var(--gap-5);
    border-radius: var(--border-radius-half);
    border: var(--border);
    align-items: center;
  }

  .ce-uploads-icon {
    font-size: clamp(1.125rem, 0.95rem + 0.9vw, 1.5rem);
    padding: var(--gap) var(--gap);
    border-radius: var(--border-radius-btn-controller);
    background-color: var(--color-primary);
    color: var(--color-text-light);
  }

  .ce-uploads-link .fa-download {
    color: var(--color-primary);
  }

  .ce-uploads-text {
    display: flex;
    flex-wrap: wrap;
    flex: 1;
  }

  .ce-uploads-filename {
    font-family: var(--font-family-header);
    font-weight: 600;
  }

  .ce-uploads-text span {
    width: 100%;
  }

  .ce-uploads-text .ce-uploads-description {
    margin-top: var(--gap);
  }
}

/* ######################### */
/* counter */
/* ######################### */
@media all {
  .ce-counter-number {
    font-family: var(--font-family-header);
  }

  .ce-counter-number .counter {
    font-size: var(--font-size-h2);
  }

}

/* ######################### */
/* teaser */
/* ######################### */
@media all {
  .ce-teaser-item {
    display: flex;
    flex-direction: column;
    gap: var(--gap-4);
  }

  .ce-teaser-icon {
    width: var(--icon-size-teaser);
  }
}

/* ######################### */
/* timeline */
/* ######################### */
@media all {
  .ce-timeline {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: var(--gap-5);
  }

  .ce-timeline::before {
    content:"";
    position: absolute;
    top:0;
    bottom:0;
    left: 0;
    transform: translateX(-50%);
    border-right: .125rem dashed currentColor;
    opacity: .2;
  }

  .ce-timeline-item {
    position: relative;
    padding-left: calc(var(--gap-5));
  }

  .ce-timeline-item-inner {
    display: flex;
    gap: var(--gap-5);
    align-items: center;
    box-shadow: var(--box-shadow);
    padding: var(--gap-5);
  }

  .ce-timeline .ce-gallery {
    flex:1;
  }

  .ce-timeline-text {
    flex:2;
  }


  .ce-timeline-date {
    position: absolute;
    aspect-ratio: 1 / 1;
    left:0;
    top: 50%;
    transform: translate(-50%, -50%);
    border-radius: 100vw;
    color: var(--color-text-light);
    padding: .5em;
    font-size: 87.5%;
    background-color: var(--color-primary);
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: var(--box-shadow);
  }
}

@media (min-width: 62rem) {
  .ce-timeline {
    gap: 0;
  }

  .ce-timeline::before {
    left:50%;
  }

  .ce-timeline-item {
    width: 50%;
    padding-right: var(--gap-5);
  }

  .ce-timeline-item:nth-child(2n) {
    margin-left: 50%;
    padding-left: var(--gap-5);
    padding-right: 0;
  }

  .ce-timeline-date {
    left: 100%;
  }

  .ce-timeline-item:nth-child(2n) .ce-timeline-date {
    left: auto;
    right: 100%;
    transform: translate(50%, -50%);
  }

  .ce-timeline-item {
    padding-left: 0;
  }
}

@media all {
  .page-popup-wrapper {
    display: none;
  }
}