/*
Theme Name: Nanofaktur Theme
Theme URI: https://2-code.de/
Author: 2code
Description: 2code Basic Theme
Version: 1.0
*/

/* montserrat-regular - latin */
@font-face {
    font-display: swap;
    font-family: 'montserrat';
    font-style: normal;
    font-weight: 400;
    src: url('assets/fonts/montserrat/static/Montserrat-Regular.ttf') format('truetype');
}

/* montserrat-italic - latin */
@font-face {
    font-display: swap;
    font-family: 'montserrat';
    font-style: italic;
    font-weight: 400;
    src: url('assets/fonts/montserrat/static/Montserrat-Italic.ttf') format('truetype');
}

/* montserrat-light - latin */
@font-face {
    font-display: swap;
    font-family: 'montserrat';
    font-style: normal;
    font-weight: 300;
    src: url('assets/fonts/montserrat/static/Montserrat-Light.ttf') format('truetype');
}

/* montserrat-light-italic - latin */
@font-face {
    font-display: swap;
    font-family: 'montserrat';
    font-style: italic;
    font-weight: 300;
    src: url('assets/fonts/montserrat/static/Montserrat-LightItalic.ttf') format('truetype');
}

/* montserrat-medium - latin */
@font-face {
    font-display: swap;
    font-family: 'montserrat';
    font-style: normal;
    font-weight: 500;
    src: url('assets/fonts/montserrat/static/Montserrat-Medium.ttf') format('truetype');
}

/* montserrat-medium-italic - latin */
@font-face {
    font-display: swap;
    font-family: 'montserrat';
    font-style: italic;
    font-weight: 500;
    src: url('assets/fonts/montserrat/static/Montserrat-MediumItalic.ttf') format('truetype');
}

:root {
    --bright: #FFFFFF;
    --bright-2: #F0F0F0;
    --dark: #231F20;
    --dark-2: #322D2E;
    --dark-3: #253746;
    --green: #61BD3D;
    --grey: #00000029;
    --grey-2: #E4E4E4;
    --orange: #F7941D;
}

html {
    margin: 0;
    position: relative;
    scrollbar-width: thin;
}

b,
strong {
    font-weight: 500;
}

img {
    max-width: 100%;
    height: auto;
}

video {
    max-width: 100%;
}

body {
    font-family: "montserrat", "Arial Rounded MT Bold";
    font-size: 16px;
    line-height: 24px;
    color: var(--dark);
    background-color: var(--bright);
    font-weight: 300;
    letter-spacing: 0;
}

body.active-overlay {
    overflow: hidden;
}

main {
    margin-top: 100px;
    display: inline-block;
    width: 100%;
    transition: all 0.4s;
}

section {
    display: inline-block;
    width: 100%;
}

div {
    position: relative;
}

h1 {
    font-size: 33px;
    line-height: 39px;
    letter-spacing: 1.25px;
    font-weight: 500;
    margin-bottom: 13px;
}

section.product-teaser h1,
h2 {
    font-size: 28px;
    line-height: 40px;
    letter-spacing: 1.06px;
    font-weight: 500;
    margin-bottom: 8px;
}

h3 {
    font-size: 20px;
    letter-spacing: 0;
    line-height: 24px;
    font-weight: 500;
    margin-bottom: 16px;
}

h4 {
    font-size: 16px;
    line-height: 24px;
    font-weight: 500;
    margin-bottom: 23px;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
a {
    word-break: break-word;
}

p {
    margin-bottom: 15px;
}

p+ul,
p+ol {
    margin-top: 15px;
}

a {
    transition: all 0.4s;
    color: var(--dark);
    text-decoration: none;
}

.textcontent a {
    color: var(--green);
    position: relative;
}

p:last-of-type {
    margin-bottom: 0;
}

button:not(.icon-button) img.icon,
a.button-link:not(.icon-button) img.icon {
    margin-left: 6px;
}

button:hover img.icon,
a.button-link:hover img.icon {
    filter: brightness(0) invert(1);
}

button:not(.icon-button, .slick-autoplay-toggle-button),
a.button-link,
input.wpcf7-submit {
    display: inline-block;
    width: fit-content;
    text-align: center;
    border: none;
    font-size: 16px;
    line-height: 19px;
    font-weight: 400;
    border-radius: 20px;
    border: 1px solid var(--dark);
    background-color: transparent;
    color: var(--dark);
    padding: 9.5px 34.5px;
    min-width: 200px;
    transition: all 0.4s;
}

button.active,
button:not(.icon-button, .slick-autoplay-toggle-button):hover,
a.button-link:hover,
input.wpcf7-submit:hover {
    color: var(--bright);
    background-color: var(--dark);
}

button:not(.icon-button, .slick-autoplay-toggle-button).secondary,
a.button-link.secondary {
    border-color: var(--green);
    color: var(--green);
    background-color: transparent;
}

button:not(.icon-button).secondary:hover,
a.button-link.secondary:hover {
    background-color: var(--green);
    color: var(--bright);
}

button.reset-filters {
    background-color: transparent;
    border: none;
    padding: 0;
    margin: 7px 20px;
    min-width: unset;
    color: var(--green);
}

button.reset-filters:hover {
    color: var(--green);
    background-color: transparent;
}

.hidden {
    opacity: 0;
    visibility: hidden;
    height: 0;
    margin: 0 !important;
    padding: 0 !important;
}

nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

img.icon {
    height: 19px;
    width: auto;
    transition: all 0.4s;
}

.icon-button {
    border-radius: 50%;
    height: 45px;
    width: 45px;
    background-color: var(--green);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    border: none;
}

.icon-button img {
    filter: brightness(0) invert(1);
}

span.medium {
    font-weight: 500;
}

.small-font {
    font-size: 12px;
    line-height: 15px;
    letter-spacing: 0;
    font-weight: 400;
}

.outer-inner-left-line,
.left-line {
    display: inline-block;
    height: 0.5px;
    background-color: black;
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    margin: auto;
}

section.onesided-fullwidth .row {
    --bs-gutter-x: 0;
}

.button-wrap {
    text-align: right;
}

section.image-width-medium .textcontent,
section.image-width-narrow .textcontent {
    padding-top: 158px;
    padding-bottom: 158px;
}

section.image-width-wide img,
section.image-width- img {
    aspect-ratio: 1173 / 835;
    object-fit: cover;
    min-height: 100%;
    width: 100%;
    max-height: calc(100vh - 100px);
}

section.image-width-medium img,
section.image-width-narrow img {
    aspect-ratio: 735 / 835;
    object-fit: cover;
    min-height: 100%;
    width: 100%;
    max-height: calc(100vh - 100px);
}

/* FORMS */
select {
    border-radius: 20px;
    min-width: 200px;
    max-width: 100%;
    text-align: center;
    border: 1px solid var(--green);
    color: var(--green);
    font-weight: 400;
    cursor: pointer;
    padding: 7px 20px;
    background-color: #FFF;
}

select option {
    text-align: left !important;
    color: var(--dark);
}

input:not(.wpcf7-submit, input[type="checkbox"], input[type="submit"]),
textarea {
    width: 100%;
}

span.wpcf7-spinner {
    display: none;
}

input,
textarea {
    border: none;
    padding: 18px 20px;
    background-color: var(--bright);
    accent-color: var(--bright);
}

input:not(input[type="submit"], input[type="search"]),
textarea {
    border-radius: 0 !important;
}

textarea {
    height: 152px;
}

button[type="submit"],
input[type="submit"],
input.wpcf7-submit {
    display: block;
    margin-left: auto;
    margin-top: 43px;
}

form .display-input {
    position: relative;
    margin-bottom: 20px;
}

.wpcf7-not-valid-tip {
    padding-top: 5px;
}

form .display-input label {
    width: 100%;
    border: none;
    padding: 18px 20px;
    background-color: var(--bright);
}

form .display-input input[type="file"] {
    position: absolute;
    visibility: hidden;
    padding: 0;
    height: 0;
}

.wpcf7-acceptance .wpcf7-list-item,
form li {
    margin-left: 0;
}

.acceptance label,
.wpcf7-acceptance label {
    display: flex;
    align-items: center;
    gap: 10px;
}

input[type="checkbox"] {
    width: 24px;
    height: 24px;
    padding: 0;
}

.form-response {
    margin-top: 1rem;
    padding: 1rem;
    border-radius: 4px;
    font-weight: bold;
}

.form-response.success {
    background-color: #d4edda;
    color: #155724;
}

.form-response.error {
    background-color: #f8d7da;
    color: #721c24;
}


/* HEADER */

header {
    background-color: var(--bright);
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    padding: 0 100px;
    z-index: 10;
    transition: all 0.4s;
}

body.scrolled main {
    margin-top: 67px;
}

body.scrolled header {
    padding: 5px 100px 5px 100px;
}

header img.logo {
    height: 57px;
    width: auto;
}

header .header-content {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: space-between;
    --webkit-justify-content: space-between;
}

header nav,
header nav ul {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

header nav.main,
header nav.main>ul {
    column-gap: 36px;
    row-gap: 20px;
    height: 100%;
}

header nav.main .wpml-ls-item {
    display: none;
}

header .icons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 15px;
}

header .group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 67px;
    row-gap: 20px;
}

header nav.lang li:not(header nav.lang li:last-of-type)::after {
    content: ' - ';
    display: inline-block;
    padding: 0 3px;
}

header nav.lang ul .wpml-ls-menu-item a {
    display: inline-block;
}

header .search-toggle-content {
    position: absolute;
    right: 0;
    margin-top: 27px;
}

header input.search-field {
    background-color: var(--green);
    border: none;
    color: var(--bright);
    padding: 13px 16px;
    border-radius: 25px;
    width: fit-content;
}

header input.search-field::placeholder {
    color: var(--bright);
    opacity: 1;
}

header nav li.wpml-ls-current-language a,
header nav li.current-menu-item>a:not(.is-not-current),
header nav li.current-menu-parent>a {
    color: var(--green);
}

header nav.main .sub-menu {
    display: none;
    position: absolute;
    background-color: var(--bright-2);
    padding: 20px;
    width: 100%;
    height: fit-content;
    top: 100%;
    flex-wrap: wrap;
    flex-direction: column;
    gap: 5px;
    align-items: start;
    min-width: 200px;
}

header nav.main li {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

header nav.main>ul>li {
    padding: 38px 0;
}

header nav.main li.menu-item-has-children:hover .sub-menu {
    display: flex;
}

header a.logo-wrap {
    display: flex;
    align-items: center;
}

.mainmenu button.submenu-toggle {
    display: none;
}

/* FOOTER */

footer {
    background-color: var(--dark);
    color: var(--bright);
    padding: 44px 0;
}

footer img.icon {
    height: 32px;
}

footer .footer-content {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: space-between;
    --webkit-justify-content: space-between;
    gap: 40px;
}

footer .group {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    column-gap: 80px;
}

footer .col-group {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    gap: 13px;
    max-width: 350px;
}

footer p {
    margin-bottom: 0;
}

footer h4 {
    margin-bottom: 15px;
}

footer a {
    position: relative;
    color: var(--bright);
}

footer .icon-title h4 {
    margin-bottom: 0;
}

footer .icon-title {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 13px;
}

section.copyright .copyright {
    padding: 12px 0;
}

/* SLICK */
.slick-list {
    padding: 0 !important;
}

.slick-dots li {
    width: 10px;
    height: 10px;
    margin: 0;
}

.slick-dots li button {
    height: 10px;
    width: 10px;
    padding: 0;
    min-width: unset;
}

ul.slick-dots li button:hover {
    background-color: unset;
}

.slick-dots li button .slick-dot-icon {
    color: var(--grey-2);
    opacity: 1;
}

.slick-dots li.slick-active button .slick-dot-icon:before {
    background-color: var(--green);
}

.slick-dots li button .slick-dot-icon:before {
    content: "";
    width: 10px;
    height: 10px;
    background-color: var(--grey-2);
    border-radius: 50%;
}

ul.slick-dots li+li {
    margin-left: 10px;
}

ul.slick-dots {
    position: relative;
    bottom: unset;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 36px;
}

.slick-dotted.slick-slider {
    margin-bottom: 0;
}

.slick-autoplay-toggle-button {
    right: 0;
    left: unset;
    bottom: 15px;
    opacity: 0.5;
    color: var(--dark-2);
}

/* SIDEBAR */
section.sidebar {
    position: fixed;
    bottom: 40px;
    left: 40px;
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    gap: 5px;
    width: fit-content;
    z-index: 9;
}

/* 404 */
section.error404 {
    margin-top: 108px;
}

/* PRODUCT SEARCH */
section.product-search {
    margin-top: 248px;
}

section.product-search .textcontent {
    font-size: 18px;
    line-height: 22px;
    max-width: 713px;
    margin-bottom: 104px;
}

section.product-search .taxonomy-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

section.product-search .product-search-taxonomies+.product-search-taxonomies {
    margin-top: 51px;
}

section.product-search button,
section.product-search .button-link {
    min-width: 238px;
}

section.product-search .reset-submit {
    margin-top: 65px;
    display: flex;
    flex-wrap: wrap;
    justify-content: end;
    gap: 10px;
}

/* Spacing */
main section:last-of-type:not(.onesided-fullwidth) {
    margin-bottom: 108px;
}

section.textblock+section {
    margin-top: 80px;
}

section.news+section {
    margin-top: 248px;
}

section.content-slider+section {
    margin-top: 167px;
}

section.product-teaser+section {
    margin-top: 153px;
}

section.product-teaser+section.product-teaser {
    margin-top: 40px;
}

section.header-slider+section {
    margin-top: 118px;
}

section.products+section {
    margin-top: 250px;
}

section.products.products-filtered+section {
    margin-top: 118px;
}

section.products.products-filtered:not(:has(~ section.products.products-filtered)) + section {
    margin-top:250px;
}

body section+section.textbox,
section.textbox+section {
    margin-top: 250px;
}

section.imagemap+section {
    margin-top: 150px;
}

section.partner+section {
    margin-top: 270px;
}

section.downloads+section {
    margin-top: 250px;
}

section.contactform+section {
    margin-top: 250px;
}

section.tags+section {
    margin-top: 250px;
}

section.contactpersons+section {
    margin-top: 232px;
}

/* TEMPLATE single */
body.single-post footer {
    margin-top: 72px;
}

section.single-content {
    margin-bottom: 150px;
}

section.single-content .teaser {
    margin-bottom: 50px;
}

section.single-content .teaser h2 span {
    font-weight: 400;
}

section.single-content .thumbnail {
    max-width: 100%;
    height: auto;
    margin-top: 50px;
}

section.single-content h2 {
    margin-bottom: 11px;
}

section.single-content p {
    margin-bottom: 23px;
}

section.single-content p:last-of-type {
    margin-bottom: 0;
}

section.single-navigation .news-meta {
    width: fit-content;
    margin-left: auto;
    display: flex;
    flex-direction: column;
    gap: 5px;
    border-top: 1px solid #707070;
    padding-top: 20px;
    margin-bottom: 150px;
}

section.single-navigation .news-meta a {
    color: var(--green);
}

section.single-navigation .navigation-buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    --webkit-justify-content: space-between;
    gap: 10px;
}

section.single-navigation .prev-next {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

/* TEMPLATE search */
section.search-results {
    margin-top: 108px;
}

section.search-results h1 {
    margin-bottom: 108px;
}

section.search-results h2 {
    margin-bottom: 30px;
}

section.news.products .product-grid {
    margin-top: 0;
}

section.search-results .group+.group {
    margin-top: 108px;
}

/* DOWNLOADS */
section.downloads .textcontent {
    margin-bottom: 15px;
}

section.downloads .downloads-wrap {
    background-color: var(--bright-2);
    padding: 104px;
}

section.downloads .button-wrap {
    margin-top: 20px;
}

section.downloads ul.download-list {
    margin: 0;
    padding-left: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 7px;
}

section.downloads ul.download-list span{
    font-size: 12px;
    opacity: 0.8;
}

/* CONTENT SLIDER */

section.image-position-left .row {
    flex-direction: row-reverse;
}

section.content-slider .image-text-slide {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

section.content-slider .content-slider-wrap .slick-slide {
    background-color: var(--bright-2);
}

section.content-slider .textcontent {
    height: 100%;
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    justify-content: center;
    padding: 40px 90px;
}

section.content-slider .content-slide {
    height: 100%;
    display: block !important;
}

/* BIG IMAGE TEXT */

section.big-image-text .textcontent {
    height: 100%;
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    justify-content: center;
    padding-left: 90px;
    padding-right: 90px;
    padding-top: 40px;
    padding-bottom: 40px;
}

/* section.big-image-text img {
    object-fit: cover;
    width: 100%;
    height: 100%;
} */

section.big-image-text .big-image-text-content {
    background-color: var(--bright-2);
}

section.big-image-text .textcontent .button-link {
    margin-top: 28px;
    margin-left: auto;
}

/* TAGCLOUD */
/* Scoped Tagcloud Styles */
section.tags .tagcloud-wrapper {
    --tagcloud-diameter: 30rem;
    --tag-diameter: 8rem;
    --tag-font-size: 0.9rem;
    --tag-font-color-rgb: 0, 0, 0;
    --tagcloud-bg-color-rgb: 255, 255, 255;
    --tagcloud-animation-duration: 30s;
    --tagcloud-animation-direction: normal;
    --tagcloud-animation-play-state: running;
    --tagcloud-transition-duration: 0.3s;
    --tagcloud-transition-ease: ease-in-out;

    perspective: calc(var(--tagcloud-diameter) * 2);
    transform-style: preserve-3d;
    background: radial-gradient(rgba(var(--tagcloud-bg-color-rgb), 0.75) 15%, rgba(var(--tagcloud-bg-color-rgb), 0) calc(75% - var(--tag-diameter)));
    width: var(--tagcloud-diameter);
    height: var(--tagcloud-diameter);
    border-radius: 50%;
    font-size: var(--tag-font-size);
    margin: 0 auto;
    position: relative;
}

section.tags .tagcloud-wrapper .tagcloud {
    max-width: 100%;
    list-style-type: none;
    width: var(--tagcloud-diameter);
    height: var(--tagcloud-diameter);
    position: relative;
    transform-style: inherit;
    margin: 0;
    padding: 0;

    --radius: calc(calc(var(--tagcloud-diameter) / 2) - calc(var(--tag-diameter) / 2));
    animation: tagcloud-rotation var(--tagcloud-animation-duration) var(--tagcloud-animation-direction) linear infinite var(--tagcloud-animation-play-state),
        tagcloud-intro calc(var(--tagcloud-transition-duration) * 4) var(--tagcloud-transition-ease) 1;
}

@keyframes tagcloud-rotation {
    from {
        transform: rotateY(0deg) rotateX(0deg);
    }

    to {
        transform: rotateY(360deg) rotateX(360deg);
    }
}

@keyframes tagcloud-intro {
    from {
        scale: 0;
    }

    to {
        scale: 1;
    }
}

section.tags .tagcloud-wrapper .tagcloud:has(.tagcloud-tag > a:hover) .tagcloud-tag:not(:has(span:hover)),
section.tags .tagcloud-wrapper .tagcloud:has(.tagcloud-tag > span:hover) .tagcloud-tag:not(:has(span:hover)) {
    opacity: 0.25;
}

section.tags .tagcloud-wrapper .tagcloud-tag {
    --phi: acos(calc(-1 + (2 * var(--index)) / var(--num-elements)));
    --theta: calc(sqrt(calc(var(--num-elements) * 3.141592653589793)) * var(--phi));
    --x: calc(cos(var(--theta)) * sin(var(--phi)));
    --y: calc(sin(var(--theta)) * sin(var(--phi)));
    --z: calc(cos(var(--phi)));
    --vector-length: sqrt(var(--x) * var(--x) + var(--y) * var(--y) + var(--z) * var(--z));
    --normalized-x: calc(var(--x) / var(--vector-length));
    --normalized-y: calc(var(--y) / var(--vector-length));
    --normalized-z: calc(var(--z) / var(--vector-length));
    --scaled-x: calc(var(--normalized-x) * var(--radius));
    --scaled-y: calc(var(--normalized-y) * var(--radius));
    --scaled-z: calc(var(--normalized-z) * var(--radius));
    --final-x: calc(var(--scaled-x) + var(--radius));
    --final-y: calc(var(--scaled-y) + var(--radius));
    --final-z: var(--scaled-z);

    pointer-events: none;
    width: var(--tag-diameter);
    height: var(--tag-diameter);
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    transition: opacity var(--tagcloud-transition-duration) var(--tagcloud-transition-ease);
    transform: translate3d(var(--final-x), var(--final-y), var(--final-z));
    animation: tagcloud-tag-rotation var(--tagcloud-animation-duration) var(--tagcloud-animation-direction) linear infinite var(--tagcloud-animation-play-state);
}

@keyframes tagcloud-tag-rotation {
    from {
        transform: translate3d(var(--final-x), var(--final-y), var(--final-z)) rotateX(360deg) rotateY(360deg);
    }

    to {
        transform: translate3d(var(--final-x), var(--final-y), var(--final-z)) rotateX(0deg) rotateY(0deg);
    }
}

section.tags .tagcloud-wrapper .tagcloud-tag>a,
section.tags .tagcloud-wrapper .tagcloud-tag>span {
    pointer-events: initial;
    color: rgb(var(--tag-font-color-rgb));
    text-decoration: none;
    text-shadow:
        1px 1px 1px rgb(var(--tagcloud-bg-color-rgb)),
        1px -1px 1px rgb(var(--tagcloud-bg-color-rgb)),
        -1px 1px 1px rgb(var(--tagcloud-bg-color-rgb)),
        -1px -1px 1px rgb(var(--tagcloud-bg-color-rgb)),
        0 0 1rem rgb(var(--tagcloud-bg-color-rgb)),
        0 0 2rem rgb(var(--tagcloud-bg-color-rgb)),
        0 0 3rem rgb(var(--tagcloud-bg-color-rgb));
}

/* Font size variants */
section.tags .tagcloud-wrapper .size-small span {
    font-size: 0.7rem;
}

section.tags .tagcloud-wrapper .size-medium span {
    font-size: 1rem;
}

section.tags .tagcloud-wrapper .size-big span {
    font-size: 1.3rem;
}

section.tags .tagcloud-wrapper .size-xl span {
    font-size: 1.6rem;
}

/* NEWS */
section.news .textcontent {
    margin-bottom: 80px;
}

section.news .news-cards {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 20px;
}

section.news .news-content {
    padding: 40px 30px;
    background-color: var(--bright-2);
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: space-between;
    --webkit-justify-content: space-between;
    flex-grow: 1;
    gap: 15px;
}

section.news .news-card {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--bright-2);
}

section.news .news-card img {
    transition: all 0.4s ease-in-out;
}

section.news .news-card a:hover img {
    scale: 1.05;
}

section.news img,
section.news .news-thumbnail {
    width: 100%;
    height: 100%;
}

section.news img {
    object-fit: cover;
}

section.news .news-card a.thumbnail-link {
    width: 100%;
    display: inline-block;
    width: 100%;
    height: 310px;
}

section.news:not(.search-results) .news-card:first-of-type {
    grid-column: 1 / span 2;
}

section.news .news-meta {
    margin-top: 40px;
}

section.news h3.news-title {
    margin-bottom: 10px;
}

section.news .icon-button {
    position: absolute;
    top: 10px;
    right: 10px;
}

section.news img.icon {
    height: 20px;
    width: auto;
}

section.news .news-categories+.news-tags {
    margin-top: 3px;
}

section.news .button-wrap {
    margin-top: 80px;
}

section.news .news-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: end;
    margin-bottom: 61px;
}

/* textblock */
section.textblock .textcontent {
    font-size: 18px;
    line-height: 22px;
}

/* product teaser */

section.product-teaser .buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
}

section.product-teaser .textcontent {
    height: 100%;
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: center;
    padding: 0 79px;
}

section.product-teaser .teaser-image {
    max-height: 530px;
    width: auto !important;
}

section.product-teaser.image-position-right .slick-slide {
    text-align: right;
}

section.product-teaser.image-position-left button.slick-autoplay-toggle-button {
    right: unset;
    left: 0;
}

/* Header slider */
section.header-slider .header-slider-image {
    width: 100%;
    object-fit: cover;
}

section.header-slider .container {
    height: 100%;
    display: flex;
    flex-wrap: wrap;
    align-items: end;
}

section.header-slider .textcontent {
    padding: 40px 55px;
    background-color: var(--bright);
    height: fit-content;
    margin: 33px 0;
    max-width: 882px;

    font-size: 18px;
    line-height: 22px;
}

section.header-slider .header-slider-content {
    background-attachment: scroll;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    aspect-ratio: 1920 / 742;
    background-color: var(--bright-2);
}

section.header-slider .header-slider-content.no-image {
    background: var(--dark);
    aspect-ratio: 1920 / 600;
}

section.header-slider .header-slider-content.particles {
    aspect-ratio: 1920 / 600;
}

section.header-slider video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    aspect-ratio: 1920 / 742;
}

section.header-slider.smaller-1 video{
        aspect-ratio: 1920 / 400;
}

section.header-slider .header-video-wrap .container {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 33px;
}

/* PARTICLES */

.particle-canvas,
.particles-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    /* Behind content */
    pointer-events: none;
}

.particle {
    position: absolute;
    width: 5px;
    height: 5px;
    background: var(--bright-2);
    border-radius: 50%;
}

/* CONTACTPERSONS */

section.contactpersons .contact .contact-content {
    background-color: var(--bright-2);
    display: flex;
    cursor: pointer;
}

section.contactpersons .contact.active .contact-content {
    outline: 3px solid rgb(35, 31, 32, 0.2);
}

section.contactpersons .contact .textcontent {
    padding: 28px;
    width: calc(100% - 191px);
    display: flex;
    flex-direction: column;
    gap: 15px;
    font-size: 18px;
    line-height: 22px;
}

section.contactpersons .contact+.contact {
    margin-top: 20px;
}

section.contactpersons .contact p {
    margin-bottom: 0;
}

section.contactpersons .contact img {
    width: 191px;
    /* height: 100%; */
    object-fit: cover;
}

section.contactpersons .contacts-details {
    display: none;
    height: 100%;
}

section.contactpersons .contacts-details.active {
    display: flex;
    flex-direction: column;
    justify-content: center;

}

/* FAQ */
section.faq button.accordion-button {
    border: none;
    width: 100%;
    background: linear-gradient(to right, white 30px, #F0F0F0 30px);
    background-color: unset;
    text-align: left;
    width: 100%;
    padding: 19px 80px;
    line-height: 22px;
    font-size: 18px;
    font-weight: 300;
    color: var(--dark);
    outline: none !important;
    box-shadow: none !important;
    border: none !important;
}

section.faq button.accordion-button::before {
    content: "";
    width: 66px;
    height: 66px;
    background: white;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 0px;
    transform: translate(0, -50%);
}

section.faq .icon-button {
    height: 61px;
    width: 61px;
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    z-index: 4;
}

section.faq button.accordion-button::after {
    /* content: url('assets/images/icons/angle-down-sharp-regular.svg'); */
    position: absolute;
    right: 26px;
    top: 0;
    bottom: 0;
    margin: auto;
    transform: rotate(180deg);
    transition: all 0.3s ease-in-out;
}

section.faq .accordion-button:not(.collapsed)::after {
    background-image: var(--bs-accordion-btn-icon);
}

section.faq button.accordion-button.collapsed::after {
    transform: rotate(0deg);
}

section.faq button.accordion-button:hover {
    background-color: var(--bright-2);
    color: var(--dark);
}

section.faq button.accordion-button:active,
section.faq button.accordion-button:focus {
    outline: none;
    border: none;
    box-shadow: none;
    color: var(--dark);
}

section.faq img.icon {
    height: 26px;
}

section.faq .accordion-body {
    padding: 37px 125px 37px 60px;
    background-color: var(--bright-2);
    margin-top: 10px;
}

section.faq .accordion-item {
    border: none;
}

section.faq .accordion-item+.accordion-item {
    margin-top: 20px;
}

section.faq .accordion-header {
    display: flex;
    flex-wrap: wrap;
    position: relative;
}

section.faq .button-wrap {
    margin-top: 53px;
}

/* textbox */

section.big-image-text+section {
    margin-top: 174px;
}

section.textbox .textcontent {
    padding: 107px 170px;
    background-color: var(--bright-2);
}

section.textbox .textcontent h2 {
    font-size: 30px;
    line-height: 36px;
    letter-spacing: 2.34px;
    font-weight: 400;
    margin-bottom: 0;
}

section.textbox .textcontent p {
    font-size: 22px;
    line-height: 28px;
    font-weight: 500;
}

section.textbox .textcontent h2 + p{
    margin-top: 56px;
}

section.textbox .textcontent .icon-button {
    position: absolute;
    right: 34px;
    bottom: 41px;
}

section.textbox .icon {
    height: auto;
    width: 27px;
}

/* products */

section.products h2.product-title {
    font-size: 18px;
    line-height: 22px;
    letter-spacing: 0;
    margin-bottom: 8px;
}

section.products .product-tags {
    margin-top: 6px;
}

section.products a {
    color: var(--dark);
}

section.products .product-item {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--bright-2);
}

section.products .textcontent {
    background-color: #F9F9F9;
    padding: 20px;
    margin-bottom: 0;
    height: 100%;
}

section.products .product-thumbnail img {
    width: 100%;
    height: auto;
    object-fit: cover;
    aspect-ratio: 1;
}

section.products .product-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 20px;
    margin-top: 107px;
}

section.products.products-filtered .product-grid {
    margin-top: 20px;
}

section.products .product-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: end;
}

/* Partner */

section.partner .partner-grid {
    padding: 19px;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 19px;
    background-color: var(--bright-2);
    margin-top: 60px;
}

section.partner .partner-item {
    background-color: var(--bright);
    aspect-ratio: 1;
}

section.partner .partner-thumbnail-wrap {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background-color: var(--bright);
    transition: opacity 0.3s ease-in-out;
}

section.partner .partner-item.has-text:hover {
    cursor: pointer;
}

section.partner .partner-item.has-text.active .partner-thumbnail-wrap {
    opacity: 0;
    pointer-events: none;
}

section.partner .partner-thumbnail {
    padding: 67px;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

section.partner .textcard {
    background-color: var(--bright);
    color: var(--dark);
    padding: 40px;
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    align-items: start;
    justify-content: center;
    height: 100%;
    gap: 10px;
    font-size: 12px;
    line-height: 18px;
    width: fit-content;
    margin: auto;
}

section.partner .title {
    font-size: 18px;
    line-height: 22px;
    font-weight: 500;
    margin-bottom: 10px;
    color: var(--green);
}

section.partner .contact a {
    color: var(--green);
}

section.partner .partner-sorting {
    text-align: right;
}

/* contactform */
section.contactform .contactform-content {
    background-color: var(--bright-2);
}

section.contactform .textcontent {
    height: 100%;
    padding-top: 124px;
    padding-bottom: 124px;
    padding-left: 138px;
    padding-right: 138px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* single product */
section.breadcrumbs {
    margin-bottom: 100px;
    margin-top: 60px;
}

section.single-product-content .gallery {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 20px;
    align-items: center;
    margin-top: 20px;
}

section.single-product-content .images img {
    max-width: 300px;
    height: auto;
    flex-grow: 0;
}

section.single-product-content .images img.gallery-item {
    cursor: pointer;
}

section.single-product-content .downloads,
section.single-product-content .options,
section.single-product-content .datatable {
    margin-top: 60px;
}

section.single-product-content .terms {
    margin-top: 20px;
}

section.single-product-content .terms a {
    color: var(--green);
}

section.single-product-content table {
    border-collapse: collapse;
    width: 100%;
}

section.single-product-content thead th {
    background-color: #f0f0f0;
    font-weight: bold;
}

section.single-product-content table,
th,
td {
    border: 1px solid #ccc;
    padding: 8px;
}

section.single-content.single-product-content h2 {
    margin-bottom: 18px;
}

section.single-product-content .download-links {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 20px;
}

section.single-product-content .options a {
    color: var(--green);
}

section.single-product-content .datatable {
    max-width: 100%;
    overflow: auto;
}

/* lightbox */
/* Lightbox Overlay */
.lightbox-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.9);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}

/* Lightbox Content */
.lightbox-content {
    position: relative;
    max-width: 80%;
    max-height: 80%;
    text-align: center;
}

/* Image inside the Lightbox */
.lightbox-img {
    max-width: 100%;
    max-height: 80vh;
    border-radius: 4px;
    box-shadow: 0 0 30px rgba(0, 0, 0, 0.7);
}

/* Caption below image */
.lightbox-caption {
    color: var(--bright);
    margin-top: 10px;
    font-size: 16px;
    font-family: sans-serif;
}

/* Close button (X) */
.lightbox-close {
    position: fixed;
    top: 20px;
    right: 20px;
    color: var(--bright);
    font-size: 30px;
    cursor: pointer;
    z-index: 10000;
    transition: opacity 0.2s;
}

.lightbox-close:hover {
    opacity: 0.7;
}

/* Navigation arrows */
.lightbox-prev,
.lightbox-next {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    font-size: 40px;
    color: var(--bright);
    cursor: pointer;
    user-select: none;
    padding: 10px;
    z-index: 10000;
    transition: opacity 0.2s;
}

.lightbox-prev {
    left: 20px;
}

.lightbox-next {
    right: 20px;
}

.lightbox-nav span:hover {
    opacity: 0.7;
}

/* fixes Claudia*/
.slick-autoplay-toggle-button {
    display: none;
}

.menu-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
}

nav.main .menu-toggle {
    display: none;
}

section.partner .partner-item{
    margin-top: 30px
}

section.partner .partner-thumbnail .title{
    position: absolute;
    top: -28px
}

.product-group h3{
    text-align: center;
}

.product-group .single-product{
    margin-bottom: 60px;
}

.product-group .single-product .text{
    background-color: #F9F9F9;
    padding: 20px;
}

@media (max-width: 1700px) {
    header {
        padding: 0 30px;
    }

    header img.logo {
        height: 45px;
    }

    header .group {
        column-gap: 22px;
    }
}

@media (max-width: 1400px) {
    main {
        margin-top: 85px;
    }

    main section.product-teaser:first-child {
        padding-top: 60px;
    }

    header {
        padding-top: 20px;
        padding-bottom: 20px;
    }

    section.sidebar {
        left: 20px;
        bottom: 60px;
    }

    footer {
        padding-bottom: 145px;
    }

    section.partner .partner-grid {
        grid-template-columns: 1fr 1fr 1fr;
    }
}

@media(max-width: 1130px) {
    nav.main .menu-toggle {
        display: block;
    }

    .menu-item-has-children:hover>.sub-menu {
        display: none;
    }
    .mainmenu {
        box-sizing: border-box;
        display: none;
        top: 85px;
        bottom: 0;
        left: 0;
        right: 0;
        position: fixed;
        overflow-y: auto;
        background-color: var(--bright);
        z-index: 998;
        padding: 20px 20px 0 20px;
        flex-direction: column;
        min-height: 0;
        max-height: calc(100dvh - 85px);
    }

    .mainmenu>*:last-child {
        margin-bottom: 20px;
    }

    .mainmenu li {
        list-style: none;
        padding: 8px 0;
    }

    .mainmenu li a {
        display: block;
        text-decoration: none;
        color: #333;
    }

    header img.logo {
        height: 38px;
    }

    header nav.main>ul>li {
        height: auto;
        padding: 12px 0;
    }

    header nav.main .sub-menu {
        margin-top: 15px;
        padding: 10px 20px;
    }

    header .search-toggle-content {
        margin-top: 20px;
    }

    header input.search-field {
        padding: 10px 16px;
    }
    .mainmenu button.submenu-toggle {
        display: block;
        position: absolute;
        right: 0;
        top: 0;
        bottom: 0;
        background-color: transparent !important;
        border: none;
        width: 40px;
        height: 40px;
        min-width: unset;
        padding: 0;
    }

    .mainmenu .submenu-toggle-icon {
        transition: transform 0.3s ease;
    }

    .mainmenu .menu-item-has-children.open .submenu-toggle-icon {
        transform: rotate(180deg);
    }

    header nav.main .mainmenu .sub-menu,
    header nav.main .mainmenu li:hover .sub-menu {
        position: relative;
        display: none;
    }
     nav.main button.menu-toggle {
        font-family: sans-serif;
        padding: 0;
        margin: 0;
        border: none;
        box-sizing: border-box;
        background-color: var(--green);
        border-color: var(--green);
        color: var(--bright);
        text-align: center;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 4px;
    }

    .menu-toggle span {
        display: block;
        width: 20px;
        height: 2px;
        background: var(--bright);
    }
}


@media (max-width: 1199.98px) {

    section.big-image-text .textcontent,
    section.contactform .textcontent {
        padding: 60px;
    }

    body section+section.textbox,
    section.textbox+section {
        margin-top: 150px;
    }
}

@media (max-width: 991.98px) {

    .container {
        max-width: 100%;
        padding: 0 20px;
    }

    section.onesided-fullwidth .onesided-fullwidth-content {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    /* header */

    header {
        padding: 20px;
    }

    /* footer */

    footer .footer-content,
    footer .group {
        flex-direction: column;
        row-gap: 40px;
    }

    section.copyright .copyright {
        text-align: center;
    }

    /* spacing */
    section.tags+section,
    section.downloads+section,
    section.contactform+section,
    section.partner+section,
    section.imagemap+section,
    section.content-slider+section,
    section.header-slider+section,
    section.contactpersons+section,
    body section+section.textbox,
    section.textbox+section,
    section.product-teaser+section,
    section.big-image-text+section,
    section.news+section,
    section.products.products-filtered:not(:has(~ section.products.products-filtered)) + section {
        margin-top: 100px;
    }

    section.textblock+section {
        margin-top: 40px;
    }

    section.product-search {
        margin-top: 150px;
    }

    section.single-content {
        margin-bottom: 100px;
    }

    body.single-post footer {
        margin-top: 0;
    }

    section.single-navigation .news-meta {
        margin-bottom: 100px;
    }

    body main> :first-child:not(section),
    section.error404,
    section.search-results {
        margin-top: 60px;
    }

    /* search */
    section.search-results h1 {
        margin-bottom: 60px;
    }

    /* product search */
    section.product-search .textcontent {
        margin-bottom: 50px;
    }

    /* product teaser */

    section.product-teaser .row {
        gap: 30px;
    }

    /* big image text */
    section.big-image-text .text-col {
        order: 2;
    }

    /* content slider */
    section.content-slider .text-col {
        order: 2;
    }

    /* news */

    section.news .news-cards .news-card {
        grid-column: span 1;
    }

    section.news .news-cards .news-card.sticky-post {
        grid-column: span 2;
    }

    section.news .news-cards {
        grid-template-columns: 1fr 1fr;
    }

    section.news .button-wrap {
        margin-top: 40px;
    }

    /* textbox */
    section.textbox .textcontent {
        padding: 100px;
    }

    /* contatcs */
    section.contactpersons .contact img {
        width: 160px;
    }

    section.contactpersons .contact .textcontent {
        padding: 20px;
        width: calc(100% - 160px);
        font-size: 16px;
        line-height: 18px;
    }

    /* products */
    section.products .product-grid {
        grid-template-columns: 1fr 1fr 1fr;
    }

    /* faq */
    section.faq .accordion-body {
        padding: 40px;
    }

    section.faq button.accordion-button {
        background: linear-gradient(to right, white 20px, #F0F0F0 20px);
        padding: 20px 60px;
    }

    section.faq button.accordion-button::before {
        width: 45px;
        height: 45px;
    }

    section.faq .icon-button {
        height: 40px;
        width: 40px;
    }

    section.partner .partner-grid {
        grid-template-columns: 1fr 1fr;
    }

    section.partner .textcard {
        font-size: 16px;
    }

    section.partner .textcard .contact {
        line-height: 20px;
    }

    section.partner .textcard,
    section.partner .partner-thumbnail {
        padding: 20px;
    }

    section.contactform .text-col {
        order: 2;
    }

    /* downloads */
    section.downloads .downloads-wrap {
        padding: 40px 20px;
    }
    section.partner .textcard{
        flex-direction: row;
    }
}

@media (max-width: 767.98px) {
    header .group {
        column-gap: 10px;
    }

    header nav.main .wpml-ls-item {
        display: block;
        margin-top: 40px;
    }

    header nav.main .wpml-ls-item+.wpml-ls-item {
        margin-top: 0;
    }

    section.sidebar .icon-button {

        img.icon {
            height: 16px;
        }
    }

    h1,
    section.textbox .textcontent h2 {
        font-size: 28px;
        line-height: 32px;
    }

    section.product-teaser h1,
    h2 {
        font-size: 24px;
        line-height: 30px;
        margin-bottom: 14px;
    }

    .small-font {
        font-size: 16px;
        line-height: 26px;
    }

    /* news */

    section.news .news-content {
        padding: 30px 20px;
    }

    section.news .news-cards {
        grid-template-columns: 1fr;
    }

    section.news .news-cards .news-card.sticky-post {
        grid-column: span 1;
    }

    section.product-search .taxonomy-buttons {
        flex-direction: column;
    }

    section.news .news-card a.thumbnail-link {
        height: 240px;
    }

    /* headerslider */
    section.header-slider .header-slider-content.no-image,
    section.header-slider .header-slider-content.particles,
    section.header-slider video,
    section.header-slider.smaller-1 video,
    section.header-slider .header-slider-content {
        aspect-ratio: unset;
    }

    section.header-slider .textcontent {
        padding: 30px 40px;
        margin: 60px 0;
    }

    section.header-slider .header-video-wrap .container {
        bottom: 0;
    }

    section.header-slider .container {
        align-items: center;
    }

    /* image sections */
    section.image-width-medium img,
    section.image-width-narrow img {
        aspect-ratio: 1;
        max-height: 60vh;
    }

    /* box */
    section.textbox .textcontent .icon-button {
        right: 0;
        left: 0;
        margin: auto;
        bottom: -22px;
    }

    section.textbox .textcontent {
        padding: 60px 50px;
        text-align: center;
    }

    section.textbox .textcontent p {
        margin-top: 30px;
    }

    /* contatcpersons */
    section.contactpersons .container>.row {
        flex-direction: column-reverse;
        gap: 40px;
    }

    section.contactpersons .contact img {
        width: 100px;
        height: 100px;
        border-radius: 50%;
        margin-top: 20px;
        margin-bottom: 20px;
    }

    section.contactpersons .contact .contact-content {
        padding-left: 20px;
    }

    section.contactpersons .contact .textcontent {
        padding: 20px;
        width: calc(100% - 100px);
    }

    section.contactpersons .links {
        line-height: 26px;
    }

    section.contactpersons .contact .contacts-details {
        display: none;
        padding: 20px;

        .textcontent {
            padding: 0;
            width: 100%;
        }
    }

    section.contactpersons .contact.active .contacts-details {
        display: block;
    }

    section.contactpersons .contact ul {
        margin: 0;
    }

    /* products */
    section.products .product-grid {
        grid-template-columns: 1fr 1fr;
        margin-top: 40px;
    }

    section.news .news-filters,
    section.products .product-filters {
        flex-direction: column;
    }

    button.reset-filters {
        margin: 7px 0;
    }

    section.products .product-tags {
        margin-top: 20px;
    }

    section.products a {
        color: var(--green);
    }

    /* single post */
    section.single-content .teaser h2 span {
        font-size: 12px;
        line-height: 18px;
        color: var(--green);
        display: block;
        margin-top: 5px;
        margin-bottom: 20px;
    }

    /* partner */
    section.partner .textcard,
    section.partner .partner-thumbnail {
        padding: 10px 20px;
    }

    section.partner .textcard {
        font-size: 18px;
    }

    section.partner .textcard .contact {
        line-height: 28px;
    }


    /* single product */
    section.single-product-content .gallery {
        flex-direction: column;
    }

    section.single-product-content .images img {
        max-width: 100%;
    }

    /* lightbox */
    .lightbox-prev,
    .lightbox-next {
        padding: 5px;
    }

    .lightbox-prev {
        left: 5px;
    }

    .lightbox-next {
        right: 5px;
    }
    section.news .news-cards{
        display: block;
    }
    section.news .news-cards .news-card{
        margin-bottom: 15px;
    }
}

@media (max-width: 575.98px) {
    select {
        min-width: unset;
    }

    section.contactpersons .contact img {
        width: 60px;
        height: 60px;
    }

    section.contactpersons .contact .textcontent {
        padding: 20px 10px;
        width: calc(100% - 60px);
        font-size: 14px;
        line-height: 18px;
    }

    section.contactpersons .contact .contact-content {
        padding-left: 10px;
    }

    section.textbox .textcontent {
        padding: 60px 20px;
    }

    /* products */
    section.products .product-grid {
        grid-template-columns: 1fr;
    }

    /* partner */

    section.partner .partner-grid {
        grid-template-columns: 1fr;
    }

    section.partner .partner-item {
        aspect-ratio: unset;
        height: auto;
        min-height: calc(100vw - 80px);
    }

    /* single post */
    section.single-navigation .navigation-buttons {
        flex-direction: column;
    }

    section.single-navigation .navigation-buttons .button-link {
        width: 100%;
    }

    /* tagcloud */
    section.tags .tagcloud-wrapper {
        --tagcloud-diameter: 90vw;
        --tag-diameter: 4rem;
    }

    section.tags {
        overflow: hidden;
    }

    section.tags .tagcloud-wrapper .size-small span {
        font-size: 0.5rem;
    }

    section.tags .tagcloud-wrapper .size-medium span {
        font-size: 0.8rem;
    }

    section.tags .tagcloud-wrapper .size-big span {
        font-size: 1rem;
    }

    section.tags .tagcloud-wrapper .size-xl span {
        font-size: 1.2rem;
    }
}

@media (max-width: 339.98px) {
    section.contactpersons .links a {
        display: block;
    }
}

.wp-block-gallery.wp-block-gallery-1.images-box{
    --wp--style--unstable-gallery-gap: var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 1em ) ) );
  gap: var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 1em ) ) );
}

/* Allow mix of custom blocks and wp blocks */
main>*:not(section) {
    width: 100%;
    margin-right: auto;
    margin-left: auto;
}

main>*:not(section, ul, ol) {
    padding-right: 12px;
    padding-left: 12px;
}

main>p+h1,
main>p+h2,
main>p+h3,
main>p+h4,
main>p+h5,
main>p+h6 {
    margin-top: 40px;
}

main> :last-child:not(section) {
    margin-bottom: 108px;
}

main> :first-child:not(section) {
    margin-top: 108px;
}

@media (min-width: 576px) {
    main>*:not(section) {
        max-width: 540px;
    }
}

@media (min-width: 768px) {
    main>*:not(section) {
        max-width: 720px;
    }
}

@media (min-width: 992px) {
    main>*:not(section) {
        max-width: 960px;
    }

    /* hovers */
    section.contactpersons .textcontent a::after,
    section.content-slider .textcontent a::after,
    section.textblock .textcontent a::after,
    section.contactform .textcontent a::after,
    footer a::after {
        content: "";
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
        height: 1px;
        width: 0;
        background-color: var(--bright);
        transition: width 0.4s;
    }

    section.contactpersons .textcontent a::after,
    section.content-slider .textcontent a::after,
    section.textblock .textcontent a::after,
    section.contactform .textcontent a::after {
        background-color: var(--green);
    }

    section.contactpersons .textcontent a:hover::after,
    section.content-slider .textcontent a:hover::after,
    section.textblock .textcontent a:hover::after,
    section.contactform .textcontent a:hover::after,
    footer a:hover::after {
        width: 100%;
    }

    header nav a:hover {
        color: var(--green);
    }

    section.partner .partner-item.has-text:hover .partner-thumbnail-wrap {
        opacity: 0;
        pointer-events: none;
    }

    section.tags .tagcloud-wrapper:hover {
        --tagcloud-animation-play-state: paused;
    }
}

@media (min-width: 1200px) {
    main>*:not(section) {
        max-width: 1140px;
    }
}

@media (min-width: 1299.98px) {

    .container,
    main>*:not(section) {
        max-width: 1338px;
    }
}

/* Anpassungen gem. Mails */
.partner .partner-sorting{
    display: none;
}