.section.image {
    padding-top: var(--gap-50);
    padding-bottom: var(--gap-50);
}

.section.image picture {
    border-radius: var(--picture-border-radius);
    overflow: hidden;
}

.section.two-columns-text {
    margin-top: var(--gap-50);
    margin-bottom: 6vw;
}

.section.two-columns-text .title {
    margin-bottom: 4.6vw;
    display: block;
    margin-top: 8vw;
    color: var(--color-f2);
}

.section.two-columns-text .columns {
    display: flex;
    justify-content: space-between;
}

.section.two-columns-text .columns .left {
    width: 37vw;
    color: var(--color-f2);
}

.section.two-columns-text .columns .right {
    width: 42vw;
}

.section.two-columns-text .columns .right .arrow-button {
    margin-top: 5vw;
    color: var(--color-f2);
}

.section.two-columns-text .reveal,
.mosaic.section .reveal,
.section.columns .reveal,
.banner-tail .reveal {
    position: relative;
    top: 20px;
    opacity: 0;
}

.section.two-columns-text .revealed,
.mosaic.section .revealed,
.section.columns .revealed,
.banner-tail .revealed {
    opacity: 1;
    top: 0;
}

.section.carousel {
    width: 100%;
    overflow: hidden;
    margin-bottom: var(--gap-module);
}

.section.carousel .swiper {
    width: 100%;
    padding: 0 var(--gap-50);
    margin: 0;
    overflow: visible;
}

.section.carousel .swiper-slide:not(.free) picture {
    border-radius: var(--picture-border-radius);
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 26vw;
    display: block;
}

.section.carousel .swiper-slide.free picture {
    border-radius: var(--picture-border-radius);
    overflow: hidden;
    position: absolute;
    width: 100%;
    height: 100%;
    display: block;
    top: 0;
    left: 0;
}

.section.carousel picture img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
}

.big-text.left .section-div-content {
    width: 50vw;
}

.mosaic.section {
    display: flex;
    justify-content: space-between;
    margin-bottom: var(--gap-module);
}

.mosaic.section .left {
    width: 38vw;
}

.mosaic.section .right {
    width: 46vw;
    color: var(--color-f2);
}

.mosaic.section .right > div {
    width: 64%;
    display: block;
    margin-bottom: 3.5vw;
}

.mosaic.section .right .aspect-container {
    border-radius: var(--picture-border-radius);
    overflow: hidden;
    display: block;
    width: 100%;
}

.mosaic.section .right picture img {
    width: 100%;
    display: block;
}

.section.columns .title {
    width: 46.8vw;
    display: block;
    margin-bottom: var(--gap-50);
    color: var(--color-f2);
}

.section.columns .columns .row {
    display: flex;
    margin-bottom: var(--gap-module-inside);
}

.section.columns.inverse .columns .row:nth-child(odd),
.section.columns .columns .row:nth-child(even) {
    flex-direction: row-reverse;
}

.section.columns.inverse .columns .row:nth-child(even) {
    flex-direction: row;
}

.section.columns .columns .row:last-child {
    margin-bottom: 0;
}

.section.columns .columns .row .text,
.section.columns .columns .row .image {
    width: 50%;
}

.section.columns .columns .row .image .aspect-container {
    padding-bottom: 100% !important;
}

.section.columns .columns .row .text {
    padding-top: 3.75vw;
}

.section.columns .columns .row .text .inner {
    width: 40vw;
}

.section.columns .columns .row .text .inner > span {
    display: block;
    margin-bottom: 3vw;
    color: var(--color-f2);
}

.section.columns .columns .row .image {
    border-radius: var(--picture-border-radius);
    overflow: hidden;
}

.section.columns.inverse .columns .row:nth-child(odd) .text,
.section.columns .columns .row:nth-child(even) .text {
    padding-left: 7vw;
}

.section.columns.inverse .columns .row:nth-child(even) .text {
    padding-left: 0;
}

.section.columns {
    margin-bottom: var(--gap-module);
}

.banner-tail {
    width: 100%;
    height: 46vw;
    background-color: black;
    position: relative;
    margin-bottom: calc(-2 * var(--gap-50));
}

.banner-tail > picture {
    opacity: 0.8;
}

.banner-tail > picture,
.banner-tail > picture img {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    object-fit: cover;
}

.banner-tail .content {
    text-align: center;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: var(--white);
    width: 61%;
    height: 90%;
    display: flex;
    justify-content: space-between;
    flex-direction: column;
}

.banner-tail .content .small {
    width: 47vw;
    margin: 2vw auto 0;
}

.banner-tail .rrss {
    list-style: none;
    margin-top: 2vw;
}

.banner-tail .rrss li {
    display: inline-block;
    margin: 0 0.5vw;
}

.banner-tail .rrss li a {
    display: block;
    content: "";
    border-radius: 50%;
    width: 2.3vw;
    height: 2.3vw;
    background-color: var(--white);
}

.banner-tail .rrss li a img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.section.iframe-block {
    padding-top: var(--gap-50);
    padding-bottom: var(--gap-50);
    width: 100%;
    position: relative;
    display: flex;
    justify-content: center;
}

.iframe-block .inner {
    display: block;
    width: 100%;
    position: relative;
}

.iframe-block .inner.narrow {
    width: 60vw;
}

.iframe-block .paddingBlock {
    width: 100%;
    position: relative;
}

.iframe-block iframe {
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    position: absolute;
}

@media only screen and (max-width: 768px) {
    .page-template-modules .section.big-text .inner-section {
        padding-top: 0;
    }

    .section.two-columns-text .title {
        margin-top: 12vw;
        margin-bottom: 10vw;
    }

    .section.image {
        width: 100vw;
        margin-left: calc(-1 * var(--gap-50));
        padding-left: 0;
        padding-right: 0;
    }

    main > .section.image {
        margin-left: 0;
    }

    .section.image picture {
        border-radius: 0;
    }

    .section.two-columns-text .columns {
        display: block;
    }

    .section.two-columns-text .columns .left,
    .section.two-columns-text .columns .right {
        display: block;
        width: 100%;
    }

    .section.two-columns-text .columns .left {
        margin-bottom: 10vw;
    }

    .section.carousel .swiper-slide:not(.free) picture {
        height: 72vw;
    }

    .section.carousel {
        margin-top: 4vw;
        margin-bottom: 12vw;
    }

    .big-text.left .section-div-content {
        width: 100%;
    }

    .mosaic.section {
        display: block;
    }

    .mosaic.section .left,
    .mosaic.section .right,
    .mosaic.section .right > div {
        display: block;
        width: 100%;
    }

    .mosaic.section .left,
    .mosaic.section .right > div {
        margin-bottom: 5vw;
    }

    .section.columns {
    }

    .section.columns .title,
    .section.columns .columns .row .text,
    .section.columns .columns .row .image,
    .section.columns .columns .row .text .inner {
        width: 100%;
    }

    .section.columns .columns .row {
        display: block;
    }

    .section.columns .columns .row .text {
        padding-left: 0 !important;
        padding-top: 0;
    }

    .section.columns .title {
        margin-bottom: 16vw;
    }

    .section.columns .columns .row .text .inner > span {
        margin-bottom: 5vw;
    }

    .section.columns .columns .row .image {
        padding: 0 !important;
        margin-top: 7vw;
        margin-bottom: 16vw;
    }

    .banner-tail {
        height: 162vw;
    }

    .banner-tail .rrss {
        display: none;
    }

    .banner-tail .content {
        width: 80%;
    }

    .banner-tail .content .title {
        margin-bottom: 20vw;
        display: block;
    }

    .banner-tail .content .small {
        width: 80%;
        margin-top: 8vw;
    }

    .section.columns .columns .row:nth-child(even) .text {
        padding-left: 0;
    }

    .section.columns .columns .row .text .inner {
        margin-bottom: 20px;
    }

    .iframe-block .inner.narrow {
        width: 100%;
    }
}
