/*
Theme Name:		Imsol
Version: 		1.21
Author: 		Mohnrot
*/

@import url('https://use.typekit.net/rsu7vgd.css');


body {
    --first-level-group-padding: 2em;
    --gap-medium: 1em;
    overflow-x: hidden;
}



@media (max-width: 899px) {
    html, body {
        font-size: 15px !important;
    }

    body {
        --wp--preset--font-size--medium: 15px;
    }
}

* {
    box-sizing: border-box;
    font-smoothing: antialiased;
    -webkit-font-smoothing: antialiased;
}

*:first-child {
    margin-top: 0 !important;
    margin-block-start: 0;
}

*:last-child {
    margin-bottom: 0 !important;
    margin-block-end: 0;
}

a {
    color: inherit;
}

    .wp-block-navigation-item a {
        text-transform: uppercase !important;
    }

@media (max-width: 400px) {
    body {
        --wp--preset--font-size--medium: 16px;
    }

    html, body {
        font-size: var(--wp--preset--font-size--medium) !important;
        line-height: 120%;
    }
}


@media (min-width: 600px) {
body {
        --first-level-group-padding: 4em;
        --gap-medium: 2em;
    }

    header > .wp-block-group:last-child {
        padding-bottom: 0 !important;
    }
    header nav .wp-block-navigation__responsive-container-content > ul > li > a {
        padding-bottom: 0.8em !important;
        color: #333 !important;
    }

    header nav .wp-block-navigation__responsive-container-content > ul {
        gap: 0 1em;
    }

	header nav ul ul.wp-block-navigation__submenu-container {
		display: block !important;
		border: 0 !important;
		background-color: #d3c399 !important;
        color: #333 !important;
		padding: 1em 0 !important;
        margin-left: -1em !important;
	}

		header nav ul ul.wp-block-navigation__submenu-container li {
			padding-bottom: 0.4em;
            background: unset !important;
		}

		header nav ul ul.wp-block-navigation__submenu-container a {
			padding: 0 1em !important;
            color: #333 !important;
		}
}

@media (min-width: 900px) {
   header nav .wp-block-navigation__responsive-container-content > ul {
        gap: 0 1.5em;
    }
}

@media (max-width: 599px) {
    header nav,
    header nav ul {
        color: #000 !important;
    }

	header nav ul ul {
		display: none !important;
	}

    header nav ul a {
		text-decoration: none !important;
		font-size: 1.2em;
		line-height: 120%;
        color: #000 !important
	}

    header nav ul ul a {
		text-decoration: none !important;
		font-size: 1rem;
		line-height: 120%;
	}

    header .wp-block-site-logo + .wp-block-group {
        align-self: flex-start;
    }

    h1 {
        font-size: 1.5em;
        line-height: 1.2;
    }

    h2 {
        font-size: 1.35em;
        line-height: 1.2;
    }

    .has-primary-background-color h2 {
        font-size: 1.2em;
        line-height: 1.2;
    }

	.wp-block-navigation__responsive-container-open  {
		transform: scaleX(200%) scaleY(120%) translateX(0.3em);
        transform-origin: center right;
	}

	.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open {
		top: 9.05em !important;
		padding: 0 !important;
        background: #d3c399
	}

	.wp-block-navigation__responsive-container-content {
		padding-top: 0 !important;
		padding: 2em !important;
	}

	.wp-block-navigation__responsive-container-close {
		display: none !important;
	}

	header nav ul li:hover ul,
	header nav ul li.current-menu-item ul,
	header nav ul li.current-menu-ancestor ul {
		display: block !important;
	}

	header nav ul ul li + li {
		margin-top: 0.7em !important;
	}

    .wp-block-group.has-primary-background-color .wp-block-columns .wp-block-column:nth-child(2) figure {
        max-width: 30%;
        margin-left: auto;
    }

}

@media (min-width: 370px) and (max-width: 781px) {
    .wp-block-group.has-primary-background-color .wp-block-columns .wp-block-column:nth-child(2) figure {
        max-width: 30%;
        margin-left: auto;
    }

    .wp-block-group.has-primary-background-color .wp-block-columns .wp-block-column:nth-child(2) figure {
        margin-top: -6em !important;
    }
}

.current-menu-item > a {
color: #4E4E4C !important;
}

.menu-item:hover > a {
color: #4E4E4C !important;
}



.entry-content {
    max-width: 100vw;
    overflow: hidden;
}

    .entry-content,
    .entry-content > *:first-child {
        margin-block-start: 0;
    }

    .entry-content > .wp-block-cover:first-child,
    header + .wp-block-cover {
        min-height: 37vw;
        z-index: 0;
        margin-block-start: 0 !important;
    }

    .home .entry-content > .wp-block-cover:first-child {
        min-height: 40vw;
    }

        @media (max-width: 599px) {
            .home .entry-content > .wp-block-cover:first-child {
                min-height: 60vw;
            }

        }

    .entry-content > .wp-block-cover .wp-block-cover__inner-container {
        max-width: 1200px;
        width: 100% !important;
        margin: 0 auto !important;
        z-index: 99;
        position: relative !important;

        z-index: 99 !important;
        display: flex;
        align-items: flex-end;
        margin-top: 8em !important;
    }

        .entry-content > .wp-block-cover .wp-block-cover__inner-container > .wp-block-group {
            margin: 0 0 0 auto !important;
        }

.entry-content > .wp-block-cover:first-child {
    position: relative;
}

.entry-content > .wp-block-cover:first-child::before {
    content: "";
    display: block;
    position: absolute;
    background: #000;
    z-index: 9999;
    width: 50vw;
    height: 100%;
    top: 0;
    left: 0;
    transform: translateX(-560px);
    pointer-events: none;
    background: #809832;
    opacity: 0.8;
}

.entry-content > .wp-block-cover:first-child::after {
    content: "";
    display: block;
    position: absolute;
    background: #000;
    z-index: 9999;
    width: 50vw;
    height: 100%;
    top: 0;
    right: 0;
    transform: translateX(560px);
    pointer-events: none;
    background: #efac08;
    opacity: 0.8;
}


@media (max-width: 1140px) {
    .entry-content > .wp-block-cover:first-child::before {
        width: 1.5rem;
        transform: none;
    }

    .entry-content > .wp-block-cover:first-child::after {
        width: 1.5rem;
        transform: none;
    }
}

.entry-content > .wp-block-group {
    padding-top: var(--first-level-group-padding);
    padding-bottom: calc(var(--first-level-group-padding) * 1);
    margin-block-start: 0;
}


.entry-content > .wp-block-group + .wp-block-group {
    margin-block-start: 0;
}

.entry-content > .wp-block-group.has-background-background-color + .wp-block-group.has-background-background-color,
.entry-content > .wp-block-group.has-foreground-background-color + .wp-block-group.has-foreground-background-color,
.entry-content > .wp-block-group.has-primary-background-color + .wp-block-group.has-primary-background-color {
    margin-top: calc(-1 * var(--first-level-group-padding));
}

.wp-block-columns{
        gap: 2em !important;
    }

.wp-block-gallery {
    display: flex;
    flex-flow: row wrap;
    margin-top: 3em;
    gap: 2em !important;
}

    .wp-block-gallery > * {
        flex-grow: 0 !important;
        width: calc(50% - 1em) !important;
    }

    @media (min-width: 600px) {
        .wp-block-gallery > * {
            width: calc(33.33% - 1.3333em) !important;
        }
    }




header.wp-block-template-part {
    top: 0;
    width: 100%;
    z-index: 99999;
}

    @media (min-width: 600px) {
        header .wp-block-site-logo {
            margin-bottom: 1em !important;
        }
    }

    header .wp-block-site-logo img {
        width: 16em !important;
        height: auto !important;
    }

    header nav ul ul.wp-block-navigation-submenu {

    }

    @media (min-width: 600px) {
        header nav {
            font-size: 0.9em;
            line-height: 100%;
        }

        header nav ul ul.wp-block-navigation-submenu {
            white-space: nowrap;
            color: #fff !important;
        }
    }


.wp-block-navigation-item {
    font-size: 1em;
    line-height: 120%;
    font-weight: 900;
}

.wp-block-navigation-item .wp-block-navigation-item {
    font-weight: 700;
}



:where(.wp-block-group.has-background) {
    padding: 1.5em !important;
}

    @media (max-width: 375px) {
        :where(.wp-block-group.has-background) {
            padding: 1.5em 1em !important;
        }
    }

.wp-block-buttons.button-main .wp-block-button a {
    font-size: 1.1rem !important;
    line-height: 120% !important;
    text-align: left;
    padding-top: 1em !important;
    padding-bottom: 1em !important;
    padding-left: 1.6em !important;
    padding-right: 3.5em !important;
    background-image: url(assets/images/arrow-b.svg);
    background-repeat: no-repeat;
    background-size: 1.2em auto;
    background-position: center right 1.2em;
    border: 0;
    border-radius: 9999px !important;
    box-shadow: 0 0.2em 0.5em rgba(0,0,0,0.3)
}


.wp-block-buttons.button-arrow .wp-block-button a {
    font-size: 1.55rem !important;
    line-height: 120% !important;
    width: 15em !important;
    text-align: left;
    padding-top: 1em !important;
    padding-bottom: 1em !important;
    padding-left: 1.6em !important;
    padding-right: 3.5em !important;
    background-image: url(assets/images/arrow-b.svg) !important;
    background-repeat: no-repeat;
    background-size: 1.2em auto;
    background-position: center right 1.2em;
}

    @media (max-width: 599px) {
        .wp-block-buttons.button-arrow .wp-block-button a {
            font-size: 1.1rem !important;
            line-height: 120% !important;
            padding-top: 0.75em !important;
            padding-bottom: 0.75em !important;
            padding-left: 1.2em !important;
            padding-right: 2.5em !important;
            background-position: center right 0.75em;
            width: auto !important;
        }
    }

.wp-block-buttons.button-arrow.button-white a {
    font-size: 1.2rem !important;
    line-height: 120% !important;
    width: 14em !important;
}


.entry-content p + ul {
    margin-block-start: 0.5em;
}

.entry-content ul {
    list-style-type: none;
    padding-left: 0;
}

.entry-content ul li {
  position: relative;
  padding-left: 1em;
}

.entry-content ul li::before {
  content: "–";
  position: absolute;
  left: 0;
  top: 0;
}



.wp-block-gallery figure img {
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.wp-block-column iframe[src*="maps"] {
    width: 100% !important;
}


.entry-content .wp-block-query ul {
    padding-left: 0;
    list-style-type: none;
}

    .entry-content .wp-block-query ul li {
        padding-left: 0;
        position:relative;
    }

    .entry-content .wp-block-query ul .wp-block-post-title {
        position: absolute;
        top: 0;
        left: 0;
        opacity: 0;
        transition: all 0.2s ease-out;
        color: #000;
        width: 100%;
        height: 100%;
        margin-top: 0 !important;
        font-size: 1.1em;
        line-height: 1.2;
    }

        @media (min-width: 1100px) {
            .entry-content .wp-block-query ul .wp-block-post-title {
                font-size: 1.4em;
                line-height: 1.2;
            }
        }

        .entry-content .wp-block-query ul .wp-block-post-title a {
            text-decoration: none;
            display: block;
            display: flex;
            justify-content: center;
            align-items: center;
            width: 100%;
            height: 100%;
            position: absolute;
            top: 0;
            left: 0;
        }

        .entry-content .wp-block-query ul li:hover .wp-block-post-title,
        .entry-content .wp-block-query ul li:focus .wp-block-post-title {
            opacity: 1;
            color: #fff,
        }

    .entry-content .wp-block-query ul .wp-block-post-featured-image img {
        aspect-ratio: 4 / 3;
    }

    .entry-content .wp-block-query ul  li {
        position: relative;
    }

    .entry-content .wp-block-query ul figure {
        margin-bottom: 0 !important;
    }

    .entry-content .wp-block-query ul .wp-block-post-featured-image::before {
        content: "";
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(169, 201, 49, 0.9);
        pointer-events: none;
        opacity: 0;
        transition: all 0.2s ease-out;
    }

    .entry-content .wp-block-query ul .wp-block-group.info {
        padding: 1em;
        text-align: center;
        display: flex;
        flex-flow: row wrap;
        align-items: center;
        justify-content: center;
        aspect-ratio: 1 / 1;
        width: 100%;
        color: #fff;
        position: absolute;
        top: 0;
        opacity: 0;
        pointer-events: none;
        transition: all 0.2s ease-out;
    }

    .entry-content .wp-block-query ul li:hover .wp-block-post-featured-image::before,
    .entry-content .wp-block-query ul li:hover .wp-block-group.info,
    .entry-content .wp-block-query ul li:focus .wp-block-post-featured-image::before,
    .entry-content .wp-block-query ul li:focus .wp-block-group.info {
            opacity: 1
        }

        .entry-content .wp-block-query ul .wp-block-group.info a {
            text-decoration: none;
        }


        .wp-block-column > .wp-block-group {
            height: 100%;
        }

        .wp-block-column > .wp-block-group:not(.has-background) {
            display: flex;
            flex-flow: column wrap;
        }

        .wp-block-column > .wp-block-group:not(.has-background) > figure {
            flex-grow: 0
        }

        .wp-block-column > .wp-block-group:not(.has-background) > .wp-block-group.has-background {
            flex: 1;
            width: 100%;
            margin-block-start: 0;
        }






    /* Stacking */
    .wp-block-media-text.is-style-stacked {
        display: block;
        box-shadow: 0 0.2em 0.5em rgba(0,0,0,0.3)
    }

    .wp-block-column > .wp-block-media-text.is-style-stacked {
    	min-height: 100%
    }

    .wp-block-media-text.is-style-stacked .wp-block-media-text__media {
        position: relative;
    }

    .wp-block-media-text.is-style-stacked .wp-block-media-text__content {
    	padding: 1rem !important;
    }

        .wp-block-media-text.is-style-stacked .wp-block-media-text__content > *.has-background:first-child {
            margin-left: -1rem;
            margin-top: -1rem !important;
            width: calc(100% + 2rem);
            padding: 1rem;
            margin-bottom: 1rem;
        }

        .wp-block-media-text.is-style-stacked .wp-block-media-text__content p:first-of-type {
            margin-block-start: 0 !important;
        }

    .wp-block-media-text.is-style-stacked .wp-block-media-text__media::before {
        content: "";
        display: block;
        padding-bottom: 70%;
    }

    .wp-block-media-text.is-style-stacked .wp-block-media-text__media img {
        position: absolute;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        object-fit: cover;
    }

div.has-primary-background-color h2 {
    font-weight: 700 !important;
}

.wp-element-button {
    line-height: 120%;
    font-weight: 700;
}

#solar-svg img {
    width: 18em !important;

    height: auto;
}


table, table td {
border: none !important;
}

table td {
padding-top: 0 !important;
padding-left: 0 !important;
}


form {
	display: flex;
	flex-flow: row wrap;
    gap: 1em;
}

form .column {
	width: 100%;
}

@media (min-width: 600px) {
	form .column {
		width: calc(50% - 0.5em);
	}
}

form .form-row {
	width: 100%;
	margin-bottom: 0.3em;
}





form input[type='text'],
form input[type='email'],
form input[type='tel'],
form input[type='number'],
form input[type='submit'],
form input[type='button'].wpcf7-submit,
form textarea {
	background: #ebe8d9;
	color: #1D1D1B;
	appearance: none;
	-webkit-appearance: none;
	border: 1px solid #ebe8d9;
	padding: 0.7em 1em;
	font: inherit;
	width: 100%;
	outline: none;
	transition: all 0.2s ease-in-out;
    border-radius: 0 !important
}

form input[type='checkbox'] {
    background: #ebe8d9;
	appearance: none;
	-webkit-appearance: none;
	font: inherit;
	width: 1.25em;
    height: 1.25em;
	outline: none;
	transition: all 0.2s ease-in-out;
    transform: translateY(20%);
}

    form input[type='checkbox']:checked {
        background: rgb(0,0,0);
        background: radial-gradient(circle, rgba(0,0,0,1) 35%, rgba(231,238,203,1) 35%);
    }

form input::placeholder,
form textarea::placeholder {
	color: #1D1D1B;
}

form input[type='text']:focus,
form input[type='email']:focus,
form input[type='tel']:focus,
form input[type='number']:focus,
form input[type='button'].wpcf7-submit:focus
form input[type='submit']:focus,
form textarea:focus {
	border: 1px solid #A9C931;
}

form textarea {
	height: 8.8em;
    margin-top: 0.5rem;
}


form input[type='submit'],
form input[type='button'].wpcf7-submit {
	background: #87A127;
	border: 1px solid #87A127
;
	color: #ffffff;
	font-weight: bold;
	width: auto;
	font-size: 1.2em;
	line-height: 120%;
    padding: 0.75em 1.25em;
    font-weight: bold !important;
}

.wpcf7-checkbox {
    display: block;
    margin-bottom: 0.3em !important;
}

.hidden {
	display: none;
}

.wpcf7-list-item {
    margin-left: 0;
}

footer {
    margin: 0 !important;
    font-size: 0.9em;
    line-height: 120%;
}

    footer a {
        color: #FFF;
    }





    footer > .wp-block-group {
        padding-top: calc(var(--first-level-group-padding) / 2);
        padding-bottom:  calc(var(--first-level-group-padding)/4);
        background-position: center center;
        background-repeat: no-repeat;
        background-size: cover;
    }

    footer .imprint {
        padding-top: 4rem;
    }

    @media (max-width: 600px) {

        footer > .wp-block-group {
            padding-top: calc(var(--first-level-group-padding) * 2);
            padding-bottom:  calc(var(--first-level-group-padding) * 2);
        }

        footer .imprint {
            padding-top: 2rem !important;
        }


        footer .has-small-font-size {
            font-size: 1em !important;
            line-height: 120% !important;

        }

        footer .wp-block-social-links {
            margin-bottom: 1em  !important;
        }

    }

    .wp-block-social-links {
        margin-top: 0.3em !important;
        margin-left: -0.3em !important;
        margin-bottom: 0 !important;
    }

        .wp-block-social-links li a {
            padding-top: 0 !important
        }




/* Calculator */
.area {
    background: #E9C500;
    padding: 2em;
    border-radius: 2em;
}

    .area label {
        display: block;
        font-weight: bold;
        width: 100%;
    }

    @media (max-width: 599px) {
        .area label,
        .area p {
            font-size: 0.8em;
            line-height: 1.2;
        }
    }

    .area label .wp-block-buttons {
        display: inline-block;
        margin-left: auto;
    }

    .area input[type='radio'] {
        outline: none;
        font: inherit;
        background: #E9D893;
        appearance: none;
        -webkit-appearance: none;
        border: 0;
        height: 1.25em;
        width: 1.25em;
        border-radius: 999px;
        transform: translateY(15%);
        margin-right: 0.6em;
    }

        .area input[type='radio']:checked {
            background: rgb(0,0,0);
            background: radial-gradient(circle, rgba(0,0,0,1) 35%, rgba(233,216,147,1) 35%);
        }

    .area input[type='number'] {
        outline: none;
        font: inherit;
        background: #E9D893;
        appearance: none;
        -webkit-appearance: none;
        border: 0;
        padding: 0.81em 2em;
        width: 7em;
        border-radius: 999px;
    }

        .area label input[type='number'] {
            margin-left: 0.6em;
        }

    .area .flex {
        display: flex;
        flex-flow: row wrap;
        gap: 2em;
    }

        .area .flex .half {
            width: calc(50% - 1em);
        }


        @media (max-width: 599px) {
            .area .flex {
                gap: 1em;
            }

                .area .flex .half {
                    width: calc(50% - 0.5em);
                }
        }

    .radios label {
        margin-bottom: 0.5em;
    }

    @media (max-width: 375px) {
        .calculator h3 {
            font-size: 1.5em;
        }

        .calculator .wp-block-buttons.button-arrow.button-white a {
            width: 100% !important;
        }
    }

.subtotal,
.total {
    font-weight: bold;
    padding: 1rem 2rem;
    border-bottom: 3px solid #000;
    margin-top: 0 !important;
    display: flex;
    justify-content: space-between;
}

        @media (max-width: 375px) {
            .subtotal,
            .total {
                font-weight: bold;
                padding: 1rem 0;
            }

            .area {
                padding: 2em 1em !important;
            }
        }

    .group + .group {
        margin-top: 2em;
    }


.total {
    font-size: 1.25em;
    line-height: 1.2;
    padding:
}


.reference-filter {
    text-transform: uppercase;
    letter-spacing: 0.02em;
    font-weight: bold;
    display: flex;
    flex-flow: row wrap;
    margin-bottom: 2em
}

    .reference-filter > span {
        display: block;
        cursor: pointer;
    }

    .reference-filter > span::before {
        content: "/";
        margin: 0 1em;
    }

    .reference-filter > span:nth-child(1)::before {
        display: none;
    }

    .reference-filter > span span {
        border-bottom: 2px solid #fff;
    }

    .reference-filter > span.is-active span {
        border-bottom: 2px solid #000;
    }

    .reference-filter > span:not(.is-active):hover span {
        border-bottom: 2px solid var(--wp--preset--color--secondary);
    }

    @media (max-width: 549px) {
        .reference-filter {
            display: flex;
            flex-flow: column;
            gap: 0.5em;
        }

        .reference-filter > span::before {
            display: none;
        }
    }


#rmOrganism form {
    width: 100% !important
}

#rmOrganism .rmLayout--vertical.rmBase .rmBase__container {
    padding: 0 !important;
    width: 100% !important
}

.rmBase__comp--privacy {
    display: none !important;
}


#rmOrganism .rmBase__el .comp__input,
#rmOrganism .rmBase__el .comp__select {
    border: 0 !important;
    color: #fff !important;
    background: #565954 !important;
    font: inherit !important;
    border-radius: 0 !important;
    font-size: 12px !important;
    line-height: 120% !important;
    padding: 1.5em 1.5em !important;
}

#rmOrganism .rmBase__comp--cta {
    background: var(--wp--preset--color--secondary) !important;
    border-radius: 0 !important;
    font-size: 12px !important;
    line-height: 120% !important;
    padding: 1em 1.5em !important;
    color: #000 !important;
    width: 50% !important;
}


.single-reference h2.wp-block-post-title {
    margin-bottom: 0.5em;
}

.single-reference .go-back {
    margin-bottom: 2em;
}


.wp-block-cover + .cover-buttons {
    margin-top: 0 !important
}

.wp-block-cover + .cover-buttons .wp-block-button {
    display: block;
    width: 100%;
}

.wp-block-cover + .cover-buttons .wp-block-button a {
    display: block;
    width: 100% !important;
    border-radius: 0 !important;
    box-shadow: none !important
}


footer ul {
    padding-left: 0 !important
}

footer input[type=submit] {
    font-size: 1em !important;
}


.home .entry-content > .wp-block-group:first-child {
    padding: 5em 1.275em !important;
    position: relative;
}

    @media (max-width: 599px) {
        .home .entry-content > .wp-block-group:first-child {
            padding: 2.5em 1.275em !important;
        }

        .home .entry-content > .wp-block-group:first-child .wp-block-spacer {
            display: none;
        }
    }

.home .entry-content > .wp-block-group:nth-child(2) {
    min-height: 15em;
}

video {
    background: #d3c399;
    border: 2em solid #d3c399;
    border-radius: 2em;
    cursor: pointer;
}

@media (max-width: 599px) {
    video {
        border: 1em solid #d3c399;
        border-radius: 1em;
    }
}

.video-column {
    position: relative;
}

.video-column figure.wp-block-video {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 9;
}

    .video-column figure.wp-block-video video {
        position: absolute;
        top: 0;
        left: 0;
        height: 100%;
        width: 100%;
        object-fit: cover;
    }

.video-column p {
    margin-left: 2em;
    margin-bottom: 0.5em;
}


@media (min-width: 782px) {
    .video-column figure.wp-block-video {
        position: absolute;
        top: 2em;
        width: 100%;
        /* transform: translateY(50%); */
    }

    .video-column video {
        position: absolute;
        z-index: 999;
    }
}


strong {
    font-smoothing: antialiased;
    -webkit-font-smoothing: antialiased;
    font-weight: 700 !important;
}
