/* ######################### */
/* elements */
/* ######################### */
@media all {
  .ce-element {
    margin-bottom: var(--gap-10);
  }

  .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-bodytext *:last-child {
    margin-bottom: 0;
  }

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

  .ce-teaserlink-outer:is(:hover,:focus,:active) .ce-header 
  :is(h4,h5.h4,.h5) {
    color: var(--color-primary-hover);
  }
  
  .ce-teaserlink-outer .ce-teaserlink-inner a {
    z-index: 2;
    position: relative;
  }

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

  .ce-header + :is(*,.row) {
    margin-top: var(--gap-8);
  }

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

  .ce-div {
    margin: 0;
    border: .125rem solid rgba(var(--color-accent-rgb),.2);
  }
}

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

  .ce-textmedia.ce-intext .ce-gallery.ce-width-set {
    width: auto !important;
  }

  .ce-textmedia {
    display: flex;
    flex-wrap: wrap;
    row-gap: var(--gap-4);
    column-gap: var(--gap-5);
  }
  
  .ce-type-textmedia:not(.ce-layout-box) .ce-textmedia {
    align-self: baseline;
  }

  .ce-textmedia > .ce-textmedia-outer{
    flex: 1;
  }

  .ce-textmedia > .ce-gallery {
    width: 100%
  }

  .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%;
  }

}

@media(min-width: 48rem) {

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

  .ce-textmedia.ce-nowrap > div {
    flex: 1;
  }
}

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

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

  .ce-menu > .current > .item {
    background: rgba(0, 0, 0, .125)
  }
}

/* ######################### */
/* 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);
  }
  
  .ce-teaser-icon  > svg{
    width: 100%;
    height: 100%;
  }
}

/* ######################### */
/* 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;
  }
}