/* ###############
##### Basic ######
############### */
@media all {
    .ce-layout-inner {
        color: var(--ce-color-fg);
        background-color: var(--ce-color-bg)
    }

    .ce-element .badge {
        --ce-color-link: #fff
    }

    .ce-teaserlink {
        position: relative
    }

    .ce-teaserlink a {
        z-index: 2;
        position: relative
    }

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

    .ce-element {
        margin-top: var(--page-gap, 1rem);
    }

    .content > .ce-element:last-child {
        margin-bottom: var(--page-gap, 1rem);
    }

    .content > .ce-element:last-child:is(.ce-grid-fw-bg-image, .ce-grid-fw-bg-color) {
        margin-bottom: 0;
    }

    .ce-element {
        color: var(--ce-color-fg);
    }

}

/* #################
##### Embed ######
################# */
@media all {
    .ce-embed {
        position: relative;
        height: 0;
        overflow: hidden;
        padding-bottom: 56.25%
    }

    .ce-embed-default {
        padding-bottom: 56.25%
    }

    .ce-embed-ratio-1-1 {
        padding-bottom: 100%
    }

    .ce-embed-ratio-4-3 {
        padding-bottom: 75%
    }

    .ce-embed-ratio-3-2 {
        padding-bottom: 66.6667%
    }

    .ce-embed-ratio-16-10 {
        padding-bottom: 62.5%
    }

    .ce-embed-ratio-16-9 {
        padding-bottom: 56.25%
    }

    .ce-embed>* {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        width: 100%;
        height: 100%;
        border: 0
    }

    .ce-embed-audio {
        position: static;
        height: auto
    }

    .ce-embed-audio>* {
        position: static;
        height: auto;
        min-height: 32px;
        overflow: visible
    }
}

/* #################
##### Gallery ######
################# */
@media all {

    .ce-gallery .ce-media,
    .ce-gallery .ce-media-caption,
    .ce-gallery a,
    .ce-gallery img {
        display: block;
        height: auto;
        max-width: 100%;
        width: 100%;
    }

    .ce-gallery .ce-row {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        gap: var(--ce-gallery-gutter);
        margin-bottom: var(--ce-gallery-gutter)
    }

    .ce-gallery .ce-row:last-child {
        margin-bottom: 0
    }

    .ce-gallery .ce-column {
        width: 100%;
        max-width: var(--ce-gallery-column-width)
    }

    .ce-gallery.ce-width-set .ce-column {
        width: auto;
        display: inline-block;
        vertical-align: top
    }

    .ce-gallery.ce-height-set {
        --ce-gallery-column-width: unset
    }

    .ce-gallery.ce-height-set .ce-column {
        width: auto;
        max-width: 100%
    }

    .ce-above-header .ce-gallery .ce-row,
    .ce-center .ce-gallery .ce-row {
        justify-content: center
    }

    /* ce-gallery based on grid */

    .ce-gallery {
        display: grid;
        gap: var(--gallery-gap);
        grid-template-columns: repeat(var(--gallery-columns, 1), minmax(0, 1fr));
    }

    .ce-gallery[data-ce-columns="2"] {--gallery-columns: 2;}
    .ce-gallery[data-ce-columns="3"] {--gallery-columns: 3;}
    .ce-gallery[data-ce-columns="4"] {--gallery-columns: 4;}
    .ce-gallery[data-ce-columns="5"] {--gallery-columns: 5;}
    .ce-gallery[data-ce-columns="6"] {--gallery-columns: 6;}

}

/* ###############
##### Media ######
############### */
@media all {
    .ce-media {
        margin: 0
    }

    .ce-media img[src$=svg] {
        width: 100%;
        -o-object-fit: contain;
        object-fit: contain
    }

    .ce-media-copyright {
        position: absolute;
        z-index: 1;
        font-size: var(--ce-media-copyright-size);
        line-height: 1;
        text-transform: uppercase;
        text-align: right;
        color: rgba(255, 255, 255, .75);
        text-shadow: 1px 1px 1px rgba(0, 0, 0, .25);
        left: var(--ce-media-overlay-offset);
        right: var(--ce-media-overlay-offset);
        bottom: var(--ce-media-overlay-offset);
        pointer-events: none
    }

    .ce-media-image a {
        position: relative;
        display: block;
        text-decoration: none
    }

    .ce-media-image a::before {
        content: "";
        font-family: "Font Awesome 6 Free";
        font-size: var(--ce-media-icon-size);
        font-weight: 700;
        line-height: 1;
        width: var(--ce-media-icon-size);
        height: var(--ce-media-icon-size);
        position: absolute;
        z-index: 1;
        top: var(--ce-media-overlay-offset);
        right: var(--ce-media-overlay-offset);
        color: #fff;
        text-shadow: 0 0 1px rgba(0, 0, 0, .25);
        background: none
    }

    .ce-media-image a.lightbox::before {
        content: ""
    }

    .ce-media-image .ce-media-caption a::before {
        content: none
    }
    
    .ce-media-image picture {
        position: relative;
        display: grid;
    }
    .ce-media-image picture .ce-media-copyright {
        position: absolute;
    }
    .ce-media-image picture img {
        width: 100%;
    }
}

/* ###############
##### Table ######
############### */
@media all {
    .table {
        width: auto;
        margin-bottom: 0
    }

    .table.table-100 {
        width: 100%
    }

    .table tbody td {
        min-width: 6rem
    }

    .ce-frame-align-data-right td {
        text-align: right
    }

    .contenttable-container {
        overflow: auto;
        max-width: 100%;
        background: -webkit-gradient(linear, left top, right top, color-stop(30%, white), to(rgba(255, 255, 255, 0))), -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0)), color-stop(70%, white)) 0 100%, radial-gradient(farthest-side at 0% 50%, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0)), radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0)) 0 100%;
        background: linear-gradient(to right, white 30%, rgba(255, 255, 255, 0)), linear-gradient(to right, rgba(255, 255, 255, 0), white 70%) 0 100%, radial-gradient(farthest-side at 0% 50%, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0)), radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0)) 0 100%;
        background-repeat: no-repeat;
        background-size: 40px 100%, 40px 100%, 14px 100%, 14px 100%;
        background-position: 0 0, 100%, 0 0, 100%;
        background-attachment: local, local, scroll, scroll
    }

    .contenttable-container.js-table-overflow-x {
        overflow-x: auto
    }
}

/* ###############
##### Frame ######
############### */
@media all {}

/* ################
##### Layout ######
################ */
@media all {
    .ce-layout-box-outer {}

    .ce-layout-box-inner {
        padding: var(--ce-layout-box-padding, 0.625rem);
        color: var(--ce-color-fg, rgb(51, 51, 51));
        background-color: var(--ce-color-bg, rgb(255, 255, 255));
        -webkit-box-shadow: var(--ce-layout-box-shadow, none);
        box-shadow: var(--ce-layout-box-shadow, none)
    }

    .ce-layout-box-inner>.ce-above-header>.ce-gallery,
    .ce-layout-box-inner>.ce-above>.ce-gallery,
    .ce-layout-box-inner>.ce-below>.ce-gallery {
        margin-left: calc(-1*var(--ce-layout-box-padding, 0.625rem));
        margin-right: calc(-1*var(--ce-layout-box-padding, 0.625rem))
    }

    .ce-layout-box-inner>.ce-above-header {
        margin-top: calc(-1*var(--ce-layout-box-padding, 0.625rem))
    }
}

/* ###############
##### Space ######
############### */
@media all {
    .ce-space-before-none {
        margin-top: 0 !important
    }

    .ce-space-before-extra-small {
        margin-top: var(--ce-margin-extra-small) !important
    }

    .ce-space-before-small {
        margin-top: var(--ce-margin-small) !important
    }

    .ce-space-before-medium {
        /*! margin-top: var(--ce-margin-medium) !important */
    }

    .ce-space-before-large {
        margin-top: var(--ce-margin-large) !important
    }

    .ce-space-before-extra-large {
        margin-top: var(--ce-margin-extra-large) !important
    }

    .ce-space-after-none {
        margin-bottom: 0 !important
    }

    .ce-space-after-extra-small {
        margin-bottom: var(--ce-margin-extra-small) !important
    }

    .ce-space-after-small {
        margin-bottom: var(--ce-margin-small) !important
    }

    .ce-space-after-medium {
        margin-bottom: var(--ce-margin-medium) !important
    }

    .ce-space-after-large {
        margin-bottom: var(--ce-margin-large) !important
    }

    .ce-space-after-extra-large {
        margin-bottom: var(--ce-margin-extra-large) !important
    }
}

/* ################
##### Header ######
################ */
@media all {
    .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: .25em
    }
}

/* ###################
##### Textmedia ######
################### */
@media all {
    .ce-textmedia.ce-intext .ce-gallery {
        width: var(--ce-gallery-width, calc(50% - var(--ce-gallery-margin-horizontal) / 2));
        margin-bottom: var(--gap-gallery-text);
    }

    .ce-textmedia.ce-intext.ce-no-text .ce-gallery {
        margin-bottom: 0;
    }

    .ce-textmedia.ce-intext .ce-gallery.ce-width-set {
        width: auto !important;
        max-width: var(--ce-gallery-width, calc(50% - var(--ce-gallery-margin-horizontal) / 2))
    }

    .ce-textmedia.ce-intext.ce-right .ce-gallery {
        float: right;
        justify-self: end;
        margin-left: var(--gap-gallery-text);
    }

    .ce-textmedia.ce-intext.ce-left .ce-gallery {
        float: left;
        margin-right: var(--gap-gallery-text);
    }

    .ce-textmedia.ce-intext.ce-nowrap .ce-gallery {
        margin-bottom: 0;
    }

    .ce-textmedia.ce-intext.ce-left ol,
    .ce-textmedia.ce-intext.ce-left ul {
        overflow: auto
    }

    .ce-textmedia.ce-above ,
    .ce-textmedia.ce-below {
        flex-direction: column;
    }

    .ce-layout-box .ce-textmedia.ce-above ,
    .ce-layout-box .ce-textmedia.ce-below.ce-no-header.ce-no-text {
        margin-top: calc(-1 * var(--ce-layout-box-padding));
    }

    .ce-layout-box .ce-textmedia.ce-below ,
    .ce-layout-box .ce-textmedia.ce-above.ce-no-header.ce-no-text {
        margin-bottom: calc(-1 * var(--ce-layout-box-padding));
    }

    .ce-textmedia:not(.ce-intext) ,
    .ce-textmedia.ce-nowrap {
        display: flex;
        /*! flex-wrap: var(--ce-textmedia-nowrap-wrap, nowrap); */
        gap: var(--gap-gallery-text);
    }

    .ce-textmedia.ce-intext.ce-nowrap {
        display: flex;
        flex-wrap: var(--ce-textmedia-nowrap-wrap, nowrap);
        gap: var(--gap-gallery-text);
        align-items: start;
    }

    .ce-textmedia.ce-intext.ce-nowrap.ce-left {
        justify-content: start;
    }

    .ce-textmedia.ce-intext.ce-nowrap.ce-right {
        justify-content: end;
    }

    .ce-textmedia.ce-intext.ce-nowrap.ce-left > .ce-gallery,
    .ce-textmedia.ce-intext.ce-nowrap.ce-right > .ce-textmedia-inner {
        order: 0;
    }
    .ce-textmedia.ce-intext.ce-nowrap.ce-right > .ce-gallery,
    .ce-textmedia.ce-intext.ce-nowrap.ce-left > .ce-textmedia-inner {
        order: 1;
    }

    .ce-textmedia.ce-intext.ce-nowrap .ce-textmedia-inner {
        -webkit-box-flex: 1;
        -ms-flex-positive: 1;
        flex-grow: 1
    }

    .ce-textmedia.ce-intext.ce-nowrap .ce-gallery {
        width: var(--ce-gallery-width, calc(50% - var(--ce-gallery-margin-horizontal) / 2));
        -ms-flex-negative: 0;
        flex-shrink: 0;
        margin-left: 0;
        margin-right: 0
    }

    .ce-textmedia.ce-below .ce-gallery {
        /*! margin-bottom: 0; */
    }

    .ce-textmedia.ce-below:not(.ce-no-text) .ce-gallery {
        /*! margin-top: var(--gap-gallery-text); */
    }
}

/* ##############
##### Menu ######
############## */
@media all {
    .ce-menu>.current>.item {
        background: rgba(0, 0, 0, .125)
    }

    .ce-menu {
        list-style: none;
        padding-left: 0
    }

    .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: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: baseline;
        -ms-flex-align: baseline;
        align-items: baseline;
        gap: .3125em;
        border: none;
        background: none;
        padding: 0;
        color: var(--ce-color-link, inherit)
    }

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

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

/* #################
##### Divider ######
################# */
@media all {
    .ce-div {
        margin: 0
    }
}