
section.text-with-image {
    --text-wrapper-paddingX: 2em;
    --text-wrapper-paddingY: 2em;
    --description-marginY: 2em;
}

section.text-with-image.column-view {
    --column-gap: 0em;
}

section.text-with-image .blockTitle {
    text-align: center;
    margin-top: 3em;
    margin-bottom: var(--description-marginY);
}

section.text-with-image .blockDescription {
    text-align: center;
    margin-top: var(--description-marginY);
    margin-bottom: var(--description-marginY);
}

section.text-with-image .items {
    padding: 0;
    width: auto;
}

section.text-with-image .blockTitle:empty,
section.text-with-image .blockDescription:empty {
    display: none;
}

section.text-with-image .items .item {
    margin: 0;
    padding: 0;
    max-width: 100%;
    --width50: calc(100% / 2);
    --width33: calc(100% / 3);
    --image-min-width: 0px;
    --image-max-width: 100%;
    --image-min-height: 0px;
    --image-min-width-fact: min(100%, var(--image-min-width));
    min-width: var(--image-min-width-fact);
}

section.text-with-image.column-view .items .item {
    --width50: calc(100% / 2 - var(--column-gap) * 1 / 2);
    --width33: calc(100% / 3 - var(--column-gap) * 2 / 3);
}

section.text-with-image .items .item .img,
section.text-with-image .items .item .video {
    min-width: var(--image-min-width-fact);
}

section.text-with-image.row-view .items .item {
    display: flex;
    align-items: stretch;
    justify-content: center;
    flex-flow: row;
    flex-wrap: wrap;
}

section.text-with-image.row-view .items.image-first .item {
    flex-flow: row-reverse;
    flex-wrap: wrap-reverse;
}

section.text-with-image.row-view .items.alternate-image .item:nth-child(2n) {
    flex-flow: row-reverse;
    flex-wrap: wrap-reverse;
}

section.text-with-image.row-view .items.image-first.alternate-image .item:nth-child(2n) {
    flex-flow: row;
    flex-wrap: wrap;
}

section.text-with-image .items .item .img,
section.text-with-image .items .item .video,
section.text-with-image .items .item .block {
    min-height: var(--image-min-height);
}

section.text-with-image .items .item .block,
section.text-with-image .items .item .video {
    display: flex;
    align-items: center;
    justify-content: center;
}

section.text-with-image.row-view .items .item.full-size {
    flex-flow: column !important;
}

section.text-with-image.row-view .items.image-first .item.full-size {
    flex-flow: column-reverse !important;
}

section.text-with-image.row-view .items .item.full-size .img {
    width: 100%;
}

section.text-with-image.row-view .items .item.half-size .img {
    width: var(--width50);
}

section.text-with-image.row-view .items .item.half-size .block,
section.text-with-image.row-view .items .item.half-size .video {
    width: var(--width50);
    align-self: center;
}

section.text-with-image.row-view .items .item.half-size .text-wrapper {
    width: var(--width50);
}

section.text-with-image.row-view .items .item.third-size .img {
    width: var(--width33);
}

section.text-with-image.row-view .items .item.third-size .block,
section.text-with-image.row-view .items .item.third-size .video {
    width: var(--width33);
}

section.text-with-image.row-view .items .item.third-size .text-wrapper {
    width: calc(100% - var(--width33));
}

section.text-with-image.column-view .items {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    flex-flow: row;
    flex-wrap: wrap;
    gap: 0 var(--column-gap);
}

section.text-with-image.column-view .items .item {
    display: flex;
    flex-flow: column;
    align-items: stretch;
    justify-content: space-between;
    flex-grow: 0;
    box-sizing: border-box;
}

section.text-with-image .items .item .img.pure-image,
section.text-with-image .items .item .block,
section.text-with-image .items .item .video {
    max-width: var(--image-max-width);
    align-self: center;
    width: 100%;
}

section.text-with-image .items .item .img.pure-image {
    align-self: stretch;
}

section.text-with-image.column-view .items .item.full-size {
    width: 100%;
}

section.text-with-image.column-view .items .item.half-size {
    width: var(--width50);
}

section.text-with-image.column-view .items .item.third-size {
    width: var(--width33);
}

section.text-with-image.column-view .items .item .img.pure-image {
    height: auto;
}

section.text-with-image.column-view .items.alternate-image .item:nth-child(2n) {
    flex-flow: column-reverse;
    justify-content: space-between;
}

section.text-with-image.column-view .items.image-first.alternate-image .item:nth-child(2n) {
    flex-flow: column;
}

section.text-with-image.column-view .items.image-first .item {
    flex-flow: column-reverse;
    justify-content: flex-end;
}

section.text-with-image.column-view .items .item {
    flex-grow: 1;
}

section.text-with-image.column-view .items.stand-alone .item {
    flex-grow: 1;
}

section.text-with-image .text-wrapper .button-wrapper {
    margin: 2em 0 0 0;
}

section.text-with-image .text-wrapper .button {
    margin: 0;
}

section.text-with-image .item-title {
    margin: 0 0 1em 0;
    text-align: center;
}

section.text-with-image .item-title:empty,
section.text-with-image .item-description:empty {
    display: none;
}

section.text-with-image .item-description {
    text-align: center;
}

section.text-with-image .item-description ul,
section.text-with-image .item-description ol {
    text-align: left;
    display: inline-block;
}

section.text-with-image .img {
    /*background-repeat: no-repeat!important;*/
    /*background-position: center!important;*/
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    flex-shrink: 0;
    flex-grow: 0;
    padding: 0;
}

section.text-with-image .img.cover-image {
    background-size: cover !important;
}

section.text-with-image .img.contain-image {
    background-size: contain !important;
}

section.text-with-image img {
    max-width: var(--image-max-width);
    max-height: 100%;
}

section.text-with-image .img.with-background:after {
    content: '';
    position: absolute;
    background-color: rgba(0, 0, 0, 0.05);
    left: 0;
    top: 0;
    bottom: 0;
    right: 0;
}

section.text-with-image .video iframe {
    min-height: var(--image-min-height);
    width: 100%;
    height: 100%;
    border: none;
}

section.text-with-image .items .item .img.pure-image {
    min-height: unset;
}

section.text-with-image.column-view .img.pure-image {
    width: auto !important;
    flex-grow: 0;
    margin: auto;
}

section.text-with-image.row-view .items .item.half-size .img.pure-image {
    max-width: var(--width50);
}

section.text-with-image.row-view .items .item.third-size-size .img.pure-image {
    max-width: var(--width33);
}

section.text-with-image .text-wrapper {
    justify-self: center;
    align-self: center;
    box-sizing: border-box;
    padding: var(--text-wrapper-paddingY) var(--text-wrapper-paddingX);
    text-align: center;
    flex-grow: 1;
}

section.text-with-image .text-wrapper.empty {
    display: none;
}


section.text-with-image .item.crosspoint-reached {
    flex-flow: column !important;
}

section.text-with-image .items.image-first .item.crosspoint-reached {
    flex-flow: column-reverse !important;
}

section.text-with-image .item.crosspoint-reached .text-wrapper {
    width: 100%;
    min-height: unset !important;
}

section.text-with-image .item.crosspoint-reached > * {
    width: 100% !important;
    min-width: unset !important;
}

section.text-with-image.row-view .items .item.crosspoint-reached .img.pure-image {
    max-width: 100% !important;
}

section.text-with-image.column-view .item.crosspoint-reached .item-description {
    min-height: auto;
}

section.text-with-image.column-view .item.crosspoint-reached {
    width: 100%;
}

section.text-with-image .blockDescription:not(:empty) ~ .items:not(.image-first) .item.crosspoint-reached:first-child .text-wrapper,
section.text-with-image .blockTitle:not(:empty) ~ .items:not(.image-first) .item.crosspoint-reached:first-child .text-wrapper,
section.text-with-image.column-view:not(.alternate-image) .items:not(.image-first) .item.crosspoint-reached:first-child .text-wrapper,
section.text-with-image.column-view:not(.alternate-image) .items:not(.image-first) .item:not(.crosspoint-reached) .text-wrapper {
    margin-top: calc(var(--description-marginY) * -1);
}

section.pageintro + section.text-with-image .items:not(.image-first) .item.crosspoint-reached:first-child .text-wrapper,
section.breadcrumbs + section.text-with-image .items:not(.image-first) .item.crosspoint-reached:first-child .text-wrapper {
    margin-top: calc(var(--text-wrapper-paddingY) * -1);
}