/*
 Theme Name:   GeneratePress Child Landesfrauenrat Nds
 Theme URI:    https://generatepress.com
 Author:       ideenwerft
 Author URI:   https://www.ideenwerft.com
 Description:  GeneratePress child theme
 Template:     generatepress
 Version:      1.0
*/

/* ---------- VARIABLES ---------- */
:root {
    --primary-clr: #af1a5d;
    --darker-primary-clr: #810c41;
    --cta-clr: #1e398f;
	--darker-cta-clr: #10225b;
    --accent-clr: #f7a600;
    --grey: #575656;
    --light-grey: #f3f3f3;
    --font-headlines: 'Barlow Condensed', Helvetica, sans-serif;
    --font-body: 'Open Sans', sans-serif;
}
body {
    --gp-slideout-width:450px;
}

/* ---------- LANGUAGE ---------- */
html[lang="en-GB"] .hide-en,
html[lang="de-DE"] .hide-de {
    display: none !important;
}

/* ---------- BASICS ---------- */
body {
    overflow-x: hidden;
    background-color: var(--white);
    font-family: var(--font-body);
    font-size: 1.1rem;
  	color: #555;
}
#content {
    padding-top: 0;
    padding-bottom: 8rem;
}
.grid-container {
    max-width: 1400px;
}
.entry-content > [class*="wp-block-"]:not(:last-child):not(.wp-block-heading):not(.wp-block-image):not(.wp-block-gallery):not(.wp-block-buttons) {
    margin-bottom: 0;
}
.search .generate-columns-container {
    display: block !important;
}

/* ... HIDE / SHOW .... */
@media (max-width:1000px) {
    .hide-mobile {
        display: none !important;
    }
}
@media (min-width:1001px) {
    .hide-desktop {
        display: none !important;
    }
}

/* .... GRIDS .... */
.grid {
    display: grid;
    grid-gap: 30px;
}
/* 2er */
@media (min-width:700px) {
    .grid-2 {
        grid-template-columns: repeat(2,1fr);
    }
}
@media (min-width:1000px) {
    .grid-2 {
        grid-template-columns: repeat(2,1fr);
    }
}
/* 3er */
@media (min-width:700px) {
    .grid-3 {
        grid-template-columns: repeat(2,1fr);
    }
}
@media (min-width:1000px) {
    .grid-3 {
        grid-template-columns: repeat(3,1fr);
    }
}
/* 4er */
@media (min-width:700px) {
    .grid-4 {
        grid-template-columns: repeat(2,1fr);
    }
}
@media (min-width:1000px) {
    .grid-4 {
        grid-template-columns: repeat(4,1fr);
    }
}

/* .... FONT AWESOME .... */
/*
.xyz:before {
    content: "\f101";
    font-family: "Font Awesome 6 Pro";
    position: relative;
    display: inline-block;
    font-weight: 900;
    font-size: 1.5em;
    margin-right: 17px;
    margin-left: 4px;
}
ul.check-list li::marker {
    content: "\f00c";
    font-family: "Font Awesome 6 Pro";
    position: relative;
    display: inline-block;
    position: absolute;
    transition: all .2s ease;
    font-weight: bold;
    font-size: 1.2em;
}
*/

/* .... TEXT .... */
h1, h2, h3, h4 {
	font-family: var(--font-headlines);
	font-weight: 700;
	color: var(--primary-clr);
    -webkit-hyphens: auto;
    hyphens: auto;
    -webkit-hyphenate-limit-before: 6;
    -webkit-hyphenate-limit-after: 6;
    -ms-hyphenate-limit-chars: 12 6 6;
    hyphenate-limit-chars: 12 6 6;
}
h1 {
	font-size: 2.5rem;
    margin-bottom: 2rem;
    hyphens: auto;
    -webkit-hyphens: auto;
}
h2 {
	font-size: 2.3rem;
    margin-top: 3rem;
    margin-bottom: 1.6rem;
}
/*
h1 + h2 {
    margin-top: -1.2rem;
    margin-bottom: 3rem;
    color: #999;
    text-transform: uppercase;
    font-weight: 600;
    font-size: 1.2rem;
    text-align: center;
}
*/
h3 {
	font-size: 1.8rem;
    margin-top: 1.6rem;
	margin-bottom: 1.25rem;
}
h4 {
    margin-top: 1.5rem;
    margin-bottom: 1rem;
    font-size: 1.3rem;
    font-weight: 500;
}
.wp-block-column > h2:first-child,
.wp-block-column > h3:first-child,
.wp-block-column > h4:first-child {
    margin-top: 0;
}
.preheadline {
	font-family: var(--font-headlines);
    color: var(--cta-clr);
    font-size: 1.6rem !important;
    font-weight: 600;
}
.preheadline + h1,
.preheadline + h2,
.preheadline + h3 {
    margin-top: -10px;
}
p {
    margin-bottom: 1rem;
    line-height: 1.5rem;
}
main.site-main h2, 
main.site-main h3, 
main.site-main h4, 
main.site-main p, 
main.site-main ul, 
main.site-main ol {
    max-width: 1000px;
}
main.site-main p, 
main.site-main ul, 
main.site-main ol {
    max-width: 1000px;
    font-size: 1rem;
}
main.site-main h1.has-text-align-center,
main.site-main h2.has-text-align-center, 
main.site-main h3.has-text-align-center, 
main.site-main h4.has-text-align-center, 
p.has-text-align-center {
    margin-left: auto;
    margin-right: auto;

}
main.site-main ul:not(.wpforms-field-required) {
    padding-left: 0;
    margin-left: 22px;
}
main.site-main ol {
    list-style-position: inside;
}
main.site-main li {
	margin-bottom: 15px;
}
main a,
main .entry-title a {
	color: var(--cta-clr);
    font-weight: 600;
}
main a:hover {
	text-decoration: none;
	color: var(--darker-cta-clr);
}
a.read-more::before,
.team button.dialog::before {
    content: "\f054";
    font-family: "Font Awesome 6 Pro";
    font-weight: 900;
    font-size: 16px;
    color: var(--cta-clr);
    margin-right: 5px;
}
b, strong {
    font-weight: 600;
}

@media (min-width: 768px) {
    h1 {
        font-size: 3rem;
        margin-bottom: 3rem;
    }
    h2 {
        font-size: 2.6rem;
    }
}


/* .... BUTTONS .... */
button:not(.menu-toggle):not(.slideout-exit):not(.baguetteBox-button):not(.close-button):not(.lightbox-trigger):not(.fancybox-button),
a.button,
a.btn,
input[type=submit],
a.wp-block-button__link:not(.has-background),
a.wp-show-posts-read-more:link, 
a.wp-show-posts-read-more:visited {
    padding: 6px 17px;
    margin-top: 10px;
    background: var(--cta-clr);
    display: inline-block;
    color: #fff;
    border-radius: 6px;
    font-size: 1rem;
}
button:not(.menu-toggle):not(.slideout-exit):not(.baguetteBox-button):not(.close-button):not(.lightbox-trigger):hover,
a.button:hover,
a.btn:hover,
button:not(.menu-toggle):focus,
a.button:focus,
a.btn:focus,
.wp-block-button__link:hover,
.wp-block-button__link:focus,
a.wp-show-posts-read-more:hover,
a.wp-show-posts-read-more:focus {
	background: var(--darker-cta-clr);
    color: #fff;
}
.wp-block-buttons.is-content-justification-right {
    float: right;
}

/* .... FORM FIELDS .... */
button.wp-block-search__button {
    border: 1px solid #eee;
    border-radius: 5px;
}
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="date"],
input[type="search"],
textarea {
    border: none;
    background: var(--light-grey);
    border-radius: 5px;
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="date"]:focus,
input[type="search"]:focus,
textarea:focus {
    background: #feedcb !important;
    border: 1px solid var(--accent-clr);
}

/* .... OTHER .... */
img {
  	max-width: 100%;
  	height: auto; 
}
.wp-caption .wp-caption-text {
    line-height: 1.5em;
}
.fancybox-image {
    display: block;
}
.fancybox-slide--html .fancybox-close-small {
    padding: 2px !important;
}
div.fancybox-bg {
    background-color: rgba(102, 102, 102, 0.6);
}

/* default WP lightbox */
.scrim {
    background: rgba(0,0,0,0.85) !important;
}
.wpcf7 .note {
	margin-top: 30px;
	font-style: italic;
	font-size: 0.9em;
    font-weight: 400;
    opacity: 0.7;
}
.iframewrap {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 */
    padding-top: 25px;
    height: 0;
}
.iframewrap iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

/* .... HEADER .... */


/* .... TOP BAR .... */
.top-bar {
    background: transparent;
}
.top-bar .inside-top-bar {
    position: relative;
    z-index: 200;
    padding: 0;
}
.top-bar .inside-top-bar > aside {
    position: absolute;
    top: 20px;
    right: 40px;
}
.social {
    display: flex;
    align-items: center;
    gap: 0.3rem;
}
.social a,
li.social-mobile a {
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 100%;
    color: var(--cta-clr) !important;
    height: 28px;
    width: 28px;
    font-size: 1.5rem !important;
    padding: 0 !important;
}
.site-footer .social a,
.site-footer li.social-mobile a {
    color: #fff !important;
}
.social a.smaller,
li.social-mobile a.smaller {
    font-size: 1.25rem !important;
}



.inside-header {
    padding-top: 0px;
    padding-bottom: 0px;
    align-items: flex-end;
}

/* header stuck */
.navigation-branding .sticky-navigation-logo img {
    height: 40px;
    padding: 0;
}

@media (max-width:1000px) {
    .inside-header {
        align-items: flex-start;
        padding-left: 0;
    }
    #menu-hauptnavigation li.social-mobile {
        display: inline-block;
        width: 25px !important;
        margin-top: 10px;
        margin-left: 20px;
    }    
}



/* .... NAVIGATION .... */

.main-navigation .main-nav ul li a, 
.main-navigation .menu-toggle, 
.main-navigation .menu-bar-items {
    color: #333;
    background: transparent;
}
.main-navigation .main-nav ul li[class*="current-menu-"] > a {
    color: var(--cta-clr);
}

@media (min-width: 1001px) {
    #menu-hauptnavigation {
        justify-content: space-around;
    }
    .main-navigation:not(.is_stuck), 
    .main-navigation:not(.is_stuck) ul ul {
        margin-bottom: 20px;
        margin-right: -15px;
        background-color: transparent;
    }
    #menu-hauptnavigation > li > a {
        font-size: 1.1rem;
        line-height: 45px !important;
        color: var(--cta-clr);
        font-weight: 600;
    }
    #menu-hauptnavigation > li.current-menu-item > a,
    #menu-hauptnavigation > li.current_page_item > a,
    #menu-hauptnavigation > li.current-page-parent > a,
    #menu-hauptnavigation > li.current_page_parent > a {
        color: var(--primary-clr);
    }

    /* 2. Ebene */
    #menu-hauptnavigation .sub-menu {
        min-width: 200px;
        width: inherit;
        background:transparent;
    }
    #menu-hauptnavigation .sub-menu li {
        margin-bottom: 2px;
    }
    #menu-hauptnavigation .sub-menu a {
        background: var(--cta-clr);
        font-size: 1rem;
        padding: 8px 20px;
        color: #fff;
        white-space: nowrap;
    }
    #menu-hauptnavigation .sub-menu a:hover,
    #menu-hauptnavigation .sub-menu a:focus,
    #menu-hauptnavigation .sub-menu .current-menu-item a,
    #menu-hauptnavigation .sub-menu .current_page_item a {
        background: var(--primary-clr);
        color: #fff;
    }

    /* navigation stuck */
    .main-navigation.is_stuck #menu-hauptnavigation > li > a {
        font-size: 16px;
        line-height: 40px !important;
    }
}



/* mobil */
.main-navigation.mobile-menu-control-wrapper {
    background: none;
}
.main-navigation .menu-toggle {
    position: absolute;
    right: 20px;
    top: 50px;
    color: var(--cta-clr);
    font-size: 32px;
    background: transparent;
}

@media (max-width: 1000px) {
    #primary-menu {
        background: #fff;
    }
    #menu-hauptnavigation {
        padding-bottom: 2rem;
        margin-left: 20px;
    }
    #menu-hauptnavigation,
    #menu-hauptnavigation li {
        text-align: left;
        background: #fff;
    }
    #menu-hauptnavigation > li > a {
        line-height: 45px;
        font-size: 17px;
        font-weight: 600;
        color: var(--cta-clr);
    }
    .main-navigation.toggled .menu-item-has-children .dropdown-menu-toggle {
        float: none;
        padding-left: 10px;
    }
    .main-navigation ul ul {
        background: transparent;
        border-bottom: none !important; 
        padding-bottom: 20px;
    }
    .main-navigation .main-nav ul ul li a {
        padding: 8px 20px;
        font-size: 16px;
    }
    .main-navigation .main-nav ul ul li[class*="current-menu-"] > a {
        color: var(--primary-clr);
        background-color: #fff;
        font-weight: 600;
    }

}

@media (min-width:1001px) and (max-width: 1250px) {
    .menu-item-has-children .dropdown-menu-toggle {
        display: none;
    }
    #menu-hauptnavigation > li > a {
        padding-right: 10px;
        padding-left: 10px;
    }
}

/* off canvas slideout menu */
#generate-slideout-menu {
    max-width: 100%;
}
.slideout-navigation button.slideout-exit {
    padding-left: 20px !important;
    padding-right: 20px !important;
    font-size: 22px;
}
.main-navigation .main-nav ul.slideout-menu > li > a {
    line-height: 40px;
    padding-left: 20px;
    padding-right: 20px;
    font-size: 1.2rem;
}
.main-navigation .main-nav ul.slideout-menu .sub-menu {
    background: none;
    margin-bottom: 20px;
    box-shadow: none;
}
.main-navigation .main-nav ul.slideout-menu .sub-menu a {
    padding-left: 30px;
}



/* .... HERO .... */
#hero {
  position: relative;
  margin-bottom: 4rem;
}
#hero.hero-nomargin {
    margin-bottom: 0;
}
#hero .textbox {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: -ms-textbox!important;
    display: flex!important;
}
#hero .textbox .grid-container {
    z-index: 10;
    display: flex;
    width: 100%;
    padding: 0 30px;
}
#hero img {
    display: block;
	width: 100%;
}

@media (max-width:767px) {
  #hero div:not(.box-below) .textbox {
    display: none;
  }
}

/* textbox plazierung */
#hero.hero-classic.hero-textbox:not(.onlyslogan),
#hero .slide-textbox:not(.onlyslogan) {
    display: grid;
    grid-template-columns: 1fr;
}
#hero.hero-classic.hero-textbox:not(.onlyslogan) .textbox .content,
#hero .slide-textbox:not(.onlyslogan) .textbox .content {
    display: flex;
    align-items: center;
    max-width: 500px;
}

@media (min-width: 800px) {
    #hero.hero-classic.hero-textbox:not(.onlyslogan),
    #hero .slide-textbox:not(.onlyslogan) {
        grid-template-columns: 9fr 11fr;
    }
    #hero.hero-classic.hero-textbox:not(.onlyslogan) picture,
    #hero .slide-textbox:not(.onlyslogan) picture {
        order: 1;
    }
    #hero.hero-classic.hero-textbox:not(.onlyslogan) .textbox,
    #hero .slide-textbox:not(.onlyslogan) .textbox {
        position: relative;
        top: inherit;
        left: 0;
        right: inherit;
        bottom: inherit;
        width: auto;
    }
    #hero > div:not(.box-below) .textbox {
        width: 400px;
        background: var(--light-grey);
    }
}
@media (max-width: 799px) {
    #hero.hero-classic.hero-textbox:not(.onlyslogan) .textbox::after,
    #hero .slide-textbox:not(.onlyslogan) .textbox::after {
        content: '';
        position: absolute;
        z-index: 1;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        background: linear-gradient(25deg, rgb(255, 229, 176) 0%, rgba(247, 166, 0, 0) 70%, rgba(247, 166, 0, 0) 100%);
    }
    #hero.hero-classic.hero-textbox:not(.onlyslogan) .textbox .content,
    #hero .slide-textbox:not(.onlyslogan) .textbox .content {
        align-items: flex-end;
        padding-bottom: 2rem;
    }
}
@media (max-width: 600px) {
    #hero.hero-classic.hero-textbox:not(.onlyslogan) .textbox::after,
    #hero .slide-textbox:not(.onlyslogan) .textbox::after {
        background: linear-gradient(25deg, rgb(255, 229, 176) 0%, rgba(247, 166, 0, 0) 80%, rgba(247, 166, 0, 0) 100%);
    }
    #hero.hero-classic.hero-textbox:not(.onlyslogan) .textbox .content,
    #hero .slide-textbox:not(.onlyslogan) .textbox .content {
        padding-bottom: rem;
    }
}

/* slogan unter hero */
#hero > .slogan {
    padding: 1rem;
    background: var(--accent-clr);
    color: var(--primary-clr);
    text-align: center;
    font-size: 3rem;
    font-family: 'Tuzonie','Barlow Condensed', Helvetica, sans-serif; ;
}
#hero > .slogan span {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
}
#hero > .slogan span::before {
    content: '';
    display: block;
    flex-shrink: 0;
    background: var(--primary-clr);
    width: 30px !important;
    height: 30px !important;
    border-radius: 100%;
}
@media (max-width:800px) {
    #hero > .slogan span {
        justify-content: flex-start;
        align-items: flex-start;
        text-align: left;
    }
    #hero > .slogan span::before {
        margin-top: 20px;
    }
}


/* headline */
#hero .headline {
    display: grid;
    grid-template-columns: 40px 1fr;
    margin: 0;
    font-weight: 400;
    font-family: 'Barlow Condensed', 'Open Sans', sans-serif;
    font-size: 2.3rem;
    line-height: 1.1em;
    color: var(--primary-clr);
}
#hero:not(.onlyslogan) .headline::before,
#hero .slide-textbox:not(.onlyslogan) .headline::before {
    content: '';
    display: block;
    background: var(--accent-clr);
    width: 30px !important;
    height: 30px !important;
    border-radius: 100%;
    margin-top: 7px;
}

@media (min-width: 900px) {
    #hero .headline {
        grid-template-columns: 50px 1fr;
        font-size: 2.5rem;
    }
    #hero:not(.onlyslogan) .headline::before,
    #hero .slide-textbox:not(.onlyslogan) .headline::before {
        width: 35px !important;
        height: 35px !important;
        margin-top: 8px;
    }
}

@media (min-width: 1100px) {
    #hero .headline {
        grid-template-columns: 60px 1fr;
        font-size: 2.8rem;
    }
    #hero:not(.onlyslogan) .headline::before,
    #hero .slide-textbox:not(.onlyslogan) .headline::before {
        width: 40px !important;
        height: 40px !important;
        margin-top: 8px;
    }
}

/* nur slogan */
#hero .onlyslogan .textbox {
    z-index: 10;
    max-width: 100%;
    width: auto !important;
    background: transparent !important;
}
#hero.hero-classic.onlyslogan::after,
#hero .slide.onlyslogan::after {
    content: '';
    position: absolute;
    z-index: 1;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#f7a600+0,f7a600+100&1+0,0+25 */
    background:linear-gradient(25deg,  rgba(247,166,0,1) 0%,rgba(247,166,0,0) 70%,rgba(247,166,0,0) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
}
#hero.hero-classic.onlyslogan .content,
#hero .slide.onlyslogan .content {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding-bottom: 1rem;
}
#hero .onlyslogan .headline {
    display: flex;
    gap: 1.2rem;
    padding-left: 0;
    font-size: 3rem;
    line-height: 1.2em;
    color: var(--primary-clr);
    font-family: 'Tuzonie', 'Barlow Condensed', sans-serif;
}
#hero .onlyslogan .headline::before {
    content: '';
    display: block;
    background: var(--primary-clr);
    width: 43px;
    height: 43px;
    border-radius: 100%;
    margin-top: 6px;
}


#hero .coloured-background {
    background: var(--accent-clr);
    position: relative;
    padding-bottom: 70%;
    height: 0;
}
#hero.onlyslogan.noimage .content, 
#hero .slide.onlyslogan.noimage .content {
    justify-content: center;
    padding-bottom: 0;
}
#hero.onlyslogan.noimage .headline {
    font-size: 2.5rem;
}
#hero.onlyslogan.noimage .headline::before {
    width: 38px;
    height: 38px;
    margin-top: 4px;
}

@media (min-width:400px) {
    #hero .coloured-background {
        padding-bottom: 50%;
    }
    #hero.onlyslogan.noimage .headline {
        font-size: 2.6rem;
    }
    #hero.onlyslogan.noimage .headline::before {
        width: 38px;
        height: 38px;
        margin-top: 4px;
    }
}
@media (min-width:600px) {
    #hero .coloured-background {
        padding-bottom: 35%;
    }
    #hero.onlyslogan.noimage .headline {
        font-size: 2.6rem;
    }
    #hero.onlyslogan.noimage .headline::before {
        width: 38px;
        height: 38px;
        margin-top: 6px;
    }
}
@media (min-width:769px) {
    #hero.hero-classic.onlyslogan::after,
    #hero .slide.onlyslogan::after {
        background:linear-gradient(14deg,  rgba(247,166,0,1) 0%,rgba(247,166,0,0) 60,rgba(247,166,0,0) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
    }
    #hero .textbox .grid-container {
        padding: 0 40px;
    }
    #hero .onlyslogan .headline {
        gap: 1rem;
        font-size: 3rem;
    }
    #hero .onlyslogan .headline::before {
        width: 50px;
        height: 50px;
        margin-top: 7px;
    }
    #hero .coloured-background {
        padding-bottom: 20%;
    }
    #hero.onlyslogan.noimage .headline {
        font-size: 2rem;
    }
    #hero.onlyslogan.noimage .headline::before {
        width: 33px;
        height: 33px;
        margin-top: 3px;
    }
}
@media (min-width:900px) {
    #hero .onlyslogan .headline {
        gap: 1.3rem;
        font-size: 3.5rem;
    }
    #hero .onlyslogan .headline::before {
        width: 55px;
        height: 55px;
        margin-top: 8px;
    }
    #hero .coloured-background {
        padding-bottom: 20%;
    }
    #hero.onlyslogan.noimage .headline {
        font-size: 2.5rem;
    }
}
@media (min-width:1000px) {
    #hero.hero-classic.onlyslogan::after,
    #hero .slide.onlyslogan::after {
        background:linear-gradient(14deg,  rgba(247,166,0,1) 0%,rgba(247,166,0,0) 55%,rgba(247,166,0,0) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
    }
    #hero.hero-classic.onlyslogan:not(.noimage) .content,
    #hero .slide.onlyslogan .content {
        padding-bottom: 2rem;
    }
    #hero .onlyslogan .headline {
        gap: 1.5rem;
        font-size: 4rem;
    }
    #hero .onlyslogan .headline::before {
        width: 60px;
        height: 60px;
        margin-top: 9px;
    }
    #hero .coloured-background {
        padding-bottom: 25%;
    }
    #hero.onlyslogan.noimage .headline {
        font-size: 3rem;
    }
    
}

@media (min-width:1200px) {
    #hero .onlyslogan .textbox .grid-container {
        padding: 0 40px;
    }
    #hero.hero-classic.onlyslogan:not(.noimage) .content,
    #hero .slide.onlyslogan .content {
        padding-bottom: 3rem;
    }
    #hero .onlyslogan .headline {
        gap: 2rem;
        font-size: 4.5rem;
    }
    #hero .onlyslogan .headline::before {
        width: 65px;
        height: 65px;
        margin-top: 11px;
    }
    #hero .coloured-background {
        padding-bottom: 20%;
    }
    #hero.onlyslogan.noimage .headline {
        font-size: 3.5rem;
    }
    #hero.onlyslogan.noimage .headline::before {
        width: 50px;
        height: 50px;
        margin-top: 8px;
    }
}
@media (min-width:1600px) {
    #hero .onlyslogan .textbox .grid-container {
        max-width: 90%;
    }
    #hero .coloured-background {
        padding-bottom: 18%;
    }
}



/* inhalt */

#hero .text {
  padding: 20px;
  font-size: 1rem;
}


/* textbox als Banner */
#hero .textbox.box-below {
	position: relative;
	top: inherit;
	right: inherit;
	bottom: inherit;
	left: inherit;
	background: #55c1cc;
}
#hero .box-below .textbox {
	width: 100%;
	padding: 20px 0 20px;
    text-align: center;
}
#hero .box-below h3 {
	padding: 0;
	margin-bottom: 10px;
	background: none;
	text-align: center;
	font-size: 2rem;
}
#hero .box-below .text {
	padding: 0;
	background: transparent;
	color: #fff;
	font-size: 1.5rem;
}
#hero .box-below p {
	margin-bottom: 0;
}


/* .... badge (noch nicht im Template integriert) .... */
#hero .badge {
    position: absolute; 
    padding: 0;
    color: #fff;
    white-space: normal;
    hyphens: auto;
    line-height: 1.6rem;
    font-size: 1.2rem;
}
#hero .badge-right {
    top: -10px;
    right: 5%;
    transform: rotate(8deg);
}
#hero .badge-left {
    top: -10px;
    left: 5%;
    transform: rotate(-8deg);
}
#hero .badge-rightbottom {
    bottom: -40px;
    right: 5%;
    transform: rotate(8deg);
}
#hero .badge-leftbottom {
    bottom: -40px;
    left: 5%;
    transform: rotate(-8deg);
}
#hero .badge p {
    margin: 0;
    line-height: 1.8rem;
}
#hero .badge span,
#hero .badge a:link, 
#hero .badge a:visited {    
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;    
    width: 140px;
    height: 140px;
    border-radius: 70px;
    background: #56ada0;
    color: #fff;
    padding: 1.2rem;
}

@media (min-width:768px) {
    #hero .badge {
        line-height: 1.8rem;
        font-size: 1.35rem;
    }
    #hero .badge span,
    #hero .badge a:link, 
    #hero .badge a:visited {  
        width: 150px;
        height: 150px;
        border-radius: 75px;
    }
}
@media (min-width:1600px) {
    #hero .badge-right {
        top: -20px;
        right: 15%;
    }
    #hero .badge-left {
        top: -20px;
        left: 15%;
    }
    #hero .badge-rightbottom {
        right: 15%;
    }
    #hero .badge-leftbottom {
        left: 15%;
    }
}


/* ... BREADCRUMB .... */
#breadcrump {
    margin-left: 40px;
    font-size: 0.85rem;
}


/* .... CONTENT .... */


/* .... BLOG .... */
.post-image-above-header .inside-article .post-image {
    margin-bottom: 1rem;
}
.blog article.type-post h2 {
    margin-top: 0;
}


/* .... BLOG LATEST / BLOG LIST .... */
ul.wp-block-latest-posts__list {
    margin: 0 !important;
    max-width: inherit !important;
}
ul.wp-block-latest-posts__list li {
    margin-bottom: 5rem;
}
a.wp-block-latest-posts__post-title:link,
a.wp-block-latest-posts__post-title:visited,
.blog h2.entry-title a {
    display: block;
    margin: 12px 0 8px;
    font-size: 1.7rem;
    color: var(--primary-clr);
    font-family: var(--font-headlines);
    line-height: 1.2em;
}
a.wp-block-latest-posts__post-title:hover,
a.wp-block-latest-posts__post-title:focus {
    color: var(--cta-clr);
}
ul.wp-block-latest-posts__list a.button.read-more:link,
ul.wp-block-latest-posts__list a.button.read-more:visited,
.blog a.button.read-more:link,
.blog a.button.read-more:visited {
    background: transparent;
    padding: 0;
    color: var(--cta-clr);
}
ul.wp-block-latest-posts__list a.button.read-more:hover,
ul.wp-block-latest-posts__list a.button.read-more:focus {
    color: var(--darker-cta-clr);
}
/* blog list */
.post-image-above-header .inside-article .post-image {
    margin-bottom: 0 !important;
}
.blog .entry-summary {
    margin-top: 0.5em;
    font-size: 1rem;
}
.blog-tags {
    width: 100%;
    margin-bottom: 1rem;
    margin-left: 20px;
}
.blog-tags button {
    margin: 0 1rem 1rem 0;
    padding: 5px 15px !important;
}
.blog-tags + .type-post .wp-show-posts-entry-meta {
    display: none;
}

@media (min-width: 800px) {
    ul.wp-block-latest-posts__list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 2rem;
    }
}
@media (min-width: 1000px) {
    ul.wp-block-latest-posts__list {
        grid-template-columns: repeat(3, 1fr);
    }
    ul.wp-block-latest-posts__list > li:nth-child(4) {
        display: none;
    }
}
/* .... BLOG SINGLE .... */

.single .featured-image {
    max-width: 50%;
}
.single .featured-image img {
    width: 100%;
}
@media (min-width: 1001px) {
    .single .inside-article {
        display: grid;
        grid-template-columns: 45% 1fr;
        grid-template-rows: max-content 1fr 1fr;
        gap: 2rem;
    }
    .single .inside-article::before,
    .single .inside-article::after {
        display: none !important;
    }
    .single .entry-header {
        order: 1;
    }
    .single .featured-image {
        order: 3;
        grid-column: 1 / 2;
        max-width: 100%;
        float: left !important;
        text-align: left !important;
        margin-left: 0 !important;
        padding-right: 1rem;
    }
    .single .entry-content {
        order: 2;
        grid-column: 2 / 3;
        grid-row: 1 / 3;
        margin-top: 0;
        padding-top: 5px;
    }
}
@media (min-width: 1200px) {
    .single .inside-article {
        grid-template-columns: 500px 1fr;
    }
}


.single h1.entry-title {
    font-size: 2.5rem;
    margin-bottom: 1rem;
}
.single .entry-meta {
    font-size: 1rem; 
}
.single .entry-meta a {
    line-height: 1.4em;
}
.single .entry-meta .posted-on {
    font-size: 1.1rem;
}
.single footer.entry-meta {
    order: 4;
}
/* post navigation */
.single .post-navigation {
    margin-top: 70px !important;
    overflow: visible;
}
.single .post-navigation > div {
    position: relative;
    margin-bottom: 20px;
}
.single .post-navigation > div.nav-next {
    text-align: right;
}
.single .post-navigation .gp-icon {
    position: absolute;
    top: -4px;
    margin: 0 !important;
    font-size: 1.5rem;
    color: var(--cta-clr);
}
.single .post-navigation .icon-arrow-left {
    left: -25px;
}
.single .post-navigation .icon-arrow-right {
    right: -25px;
}
@media (min-width:769px) {
    .single .post-navigation {
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-gap: 30px;
        overflow: visible;
    }
    .single .post-navigation .gp-icon {
        top: -4px;
    }
}
@media (min-width:1200px) {
    .single h1.entry-title {
        font-size: 3.0rem;
    }
}





/* .... Youtube DSGVO .... */
a.youtube-dsgvo {
    position:relative;
    display:block; 
}
a.youtube-dsgvo img {
    width: 100%;
}
a.youtube-dsgvo .text-wrap {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    background: 
    rgba(25,25,25,.8);
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 15px;
    text-align: center;
    z-index: 10;
    opacity: 0;
}
a.youtube-dsgvo:hover .text-wrap {
    opacity: 1;
}
a.youtube-dsgvo .text-wrap p {
    font-size: 16px;
    color: #fff;
}
.youtube-dsgvo {
	font-size: 16px;
}

/* .... kontaktformular .... */
.nf-form-wrap {
    width: 100%;
    max-width:800px;
}
.nf-form-content label {
    font-size: 1rem;
}
.fullwidth.hellblau input[type="text"],
.fullwidth.hellblau input[type="tel"],
.fullwidth.hellblau [type="email"],
.fullwidth.hellblau [type="date"],
.fullwidth.hellblau select,
.fullwidth.hellblau textarea {
    background-color: #fff;
}
.nf-before-form-content {
    margin-bottom: 2rem;
}
.nf-form-fields-required {
    font-size: 0.8em;
    font-style: italic;
}
.nf-form-content .checkbox-wrap {
    flex-wrap: wrap;
}
.nf-form-content .checkbox-wrap .nf-field-description {
    flex-basis: 100%;   
}
.nf-form-content .checkbox-wrap .nf-field-description p {
    margin-top: 5px;
    font-style: italic; 
}
.nf-form-content .checkbox-wrap .nf-field-description a {
    font-weight: 400;
    text-decoration: underline;
}



.wpcf7-form .datenschutz,
.wpcf7-form .datenschutz label {
    padding-left: 0 !important;
}
.wpcf7-form .datenschutz .wpcf7-list-item {
    margin-left: 0;
}

.wpcf7-form .pflichtfelder span {
    font-size: .8em;
    opacity: .7;
}
.wpcf7-form .wpcf7-not-valid-tip {
    font-size: 15px;
    padding-left: 15px;
}
.wpcf7-form .note {
    font-size: 15px;
}
.wpcf7-form input.wpcf7-not-valid,
.wpcf7-form textarea.wpcf7-not-valid {
    border: 1px solid #c00;
}
input:-webkit-autofill,
input:-webkit-autofill:hover, 
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover,
textarea:-webkit-autofill:focus,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus {
  -webkit-text-fill-color: #666;
  transition: background-color 5000s ease-in-out 0s;
}
.wpcf7-form .datenschutz input,
.wpcf7-form input[type="checkbox" i]{
    border:none;
    -webkit-appearance: checkbox !important;
     -moz-appearance: checkbox !important;
     -ms-appearance: checkbox !important;
     -o-appearance: checkbox !important;
     appearance: checkbox !important;
}
@media (max-width: 768px) {
    .wpcf7-form .cols {
        display: block;
    }
    .wpcf7-form .cols p {
        width: 100%
    }
    .wpcf7-form {
        padding-bottom: 2em;
    }
}
@media (max-width: 500px) {
    .wpcf7-form .submit-button {
        width: 100%;
    }
}



/* .... STICKY SIDEBAR .... */
/* sticky sidebar */
.sticky-sidebar {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    box-shadow: 0px -5px 10px rgba(0, 0, 0, 0.1);
    z-index: 999;
}
.sticky-sidebar > div {
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
}
.sticky-sidebar .sticky-button {
    position: relative;
    flex: 1 0 auto;
    background: #fff;
    -webkit-transition: all .6s ease-in-out;
    -moz-transition: all .6s ease-in-out;
    -ms-transition: all .6s ease-in-out;
    -o-transition: all .6s ease-in-out;
    transition: all .6s ease-in-out;
}

.sticky-sidebar .sticky-button > a,
.sticky-sidebar .sticky-button > span {
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    padding: 12px 14px;
    color: #fff;
    border: none;
    border-right: none;
    font-size: 17px;
}

.sticky-sidebar .sticky-button > a > i {
    width: auto;
    height: 25px;
}

.sticky-sidebar .sticky-button .title {
    margin: 0;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.2;
    text-align: center;
}

@media (min-width: 1000px) {
    .sticky-sidebar {
        position: fixed;
        top: 25vh;
        bottom: inherit;
        left: inherit;
        box-shadow: none;
        z-index: 100;
        right: 0;
        max-width: 55px;
        overflow: visible;
    }

    .sticky-sidebar>div {
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
    }

    .sticky-sidebar .sticky-button {
        position: relative;
        right: 0px;
        margin-bottom: 15px;
        border-radius: 0;
        box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.1);
        background-color: var(--cta-clr);
    }

    .sticky-sidebar .sticky-button:hover {
        background-color: var(--cta-clr-darker);
    }

    .sticky-sidebar .sticky-button:not(.notitle):hover,
    .sticky-sidebar .sticky-button:not(.notitle):focus {
        left: -170px;
        width: 225px;
    }

    .sticky-sidebar .sticky-button > a,
    .sticky-sidebar .sticky-button > span {
        -webkit-flex-direction: row;
        -ms-flex-direction: row;
        flex-direction: row;
        width: 230px;
        color: #fff;
        text-decoration: none;
        background: var(--cta-clr);
        padding: 12px 14px 12px 60px;
    }

    .sticky-sidebar .sticky-button > a:hover,
    .sticky-sidebar .sticky-button > a:focus {
        color: #fff;
    }

    .sticky-sidebar .sticky-button > a > i,
    .sticky-sidebar .sticky-button:last-child img {
        width: 45px;
        height: auto;
        margin: 0;
        font-size: 30px;
        position: absolute;
        left: 14px;
    }

    .sticky-sidebar .sticky-button > a > i.fa-address-book {
        margin-left: 3px;
    }

    .sticky-sidebar .sticky-button-content {
        position: absolute;
        left: 0;
        right: 0;
        top: 100%;
        display: none;
        padding: 15px 15px 5px;
        background: #f3f3f3;
        color: #333;
        font-size: 0.9rem;
    }
    .sticky-sidebar .sticky-button-content .text {
        margin-bottom: 10px;
    }
    .sticky-sidebar .sticky-button-content p {
        font-size: 15px !important;
        line-height: 1.25em;
    }
    .sticky-sidebar .sticky-button-content p.footer-title {
        margin-bottom: 0;
    }

    .sticky-sidebar .sticky-button:hover .sticky-button-content {
        display: block;
    }
    .sticky-sidebar .sticky-button-content .phone i {
        margin-right: 5px;
    }

}


@media (max-width: 999px) {
    .site-footer {
        margin-bottom: 2.7em;
    }
    .sticky-sidebar .sticky-button:not(:first-child) {
        border-left: 2px solid rgba(255, 255, 255, 0.8);
    }
    .sticky-sidebar {
        display: flex;
        right: 0;
        bottom: 0;
        left: 0;
    }
    .sticky-sidebar .sticky-button {
        display: flex;
        justify-content: center;
        width: 20%;
        background-color: var(--cta-clr);
        border-top: none;
    }
    .sticky-sidebar .sticky-button:hover {
        background-color: var(--cta-clr-darker);
    }
    .sticky-sidebar .sticky-button > a,
    .sticky-sidebar .sticky-button > span {
        width: 100%;
        justify-content: center;
        font-size: 15px;
        padding: 10px 15px;
        flex-direction: row;
        border: none;
    }
    .sticky-sidebar .sticky-button > a > i,
    .sticky-sidebar .sticky-button img {
        margin-right: 10px;
        color: #fff;
        font-size: 24px;
    }
    .sticky-sidebar .sticky-button > span {
        color: #fff;
    }
    .sticky-sidebar .sticky-button > a span {
        display: none;
    }
    .sticky-sidebar .sticky-button-content {
        display: none;
    }
}

@media (max-width: 505px) {
    .sticky-sidebar .sticky-button > a,
    .sticky-sidebar .sticky-button > span {
        padding-left: 5px;
        padding-right: 5px;
    }
    .sticky-sidebar .sticky-button > a > i {
        margin-right: 10px;
    }
}

@keyframes bounce {
    0% {
    transform: translateY(0);
   }
    33% {
    transform: translateY(-10px);
   }
    66% {
    transform: translateY(0);
   }
    100% {
    transform: translateY(0);
   }
}
@keyframes bounce-invert {
    0% {
    transform: translateY(0);
   }
    33% {
    transform: translateY(10px);
   }
    66% {
    transform: translateY(0);
   }
    100% {
    transform: translateY(0);
   }    
}


/* .... 404 .... */
.error404.separate-containers .site-main {
    margin: 70px 20px;
}
.error404 #content h1,
.error404 #content p,
.error404 #content form,
.search #content h1,
.search #content p,
.search #content form {
    text-align: center;
    max-width: 920px;
    margin-left: auto;
    margin-right: auto;
}
.error404 #content form,
.search #content form {
    margin-top: 50px;
    max-width: 500px;
}


/* .... FOOTER .... */
.footer-widgets {
    padding-bottom: 1rem;
}
.footer-widgets .widget {
    font-size: 1rem;
}
.footer-widgets,
.site-info {
    background: var(--darker-cta-clr);
    color: #fff;
}
.inside-footer-widgets {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}
.inside-footer-widgets > div {
    padding-top: 60px;
}
.inside-footer-widgets > div:first-child {
    padding-top: 0;
}
.inside-footer-widgets > div:first-child img {
    max-width: 80%;
}
.inside-site-info {
    display: block;
    max-width: 1320px;
    padding-left: 0;
    padding-right: 0;
    border-top: 1px solid rgba(255,255,255,0.8);
}
@media (max-width: 1399px) {
    .inside-site-info {
        margin: 0 40px;
        padding: 20px 0px;
    }
}
@media (max-width: 1000px) {
    .inside-site-info {
        margin: 0 40px;
        padding: 20px 0px;
    }
    .inside-footer-widgets > div:first-child img {
        max-width: 50%;
    }
    .inside-footer-widgets {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width:700px) {
    .footer-widgets-container {
        padding-left: 20px;
        padding-right: 20px;
    }
    .inside-footer-widgets {
        grid-template-columns: repeat(1, 1fr);
    }
    .inside-footer-widgets > div {
        padding-top: 20px;
    }
    .inside-footer-widgets > div:first-child img {
        max-width: 50%;
    }
    .inside-site-info {
        margin-left: 20px;
        margin-right: 20px;
    }
}

.site-footer .contact i {
    color: #fff;
}
.footer-widgets a:link,
.footer-widgets a:visited {
    color: var(--light-grey);
    font-weight: 500;
}
.footer-widgets a:hover,
.footer-widgets a:focus {
    color: var(--primary-clr);
}
.footer-widgets a.wp-block-button__link:not(.has-background) {
    background: #fff;
    color: var(--cta-clr);
    font-size: 0.9rem;
}
.footer-widgets .wp-block-button__link:hover,
.footer-widgets .wp-block-button__link:focus {
	opacity: 0.8;
}

.footer-widgets .menu li {
    position: relative;
    padding-left: 16px;
}
.footer-widgets .menu li::before {
    content: "\f111";
    font-family: "Font Awesome 6 Pro";
    display: inline-block;
    position: absolute;
    font-weight: 900;
    font-size: 10px;
    left: 0;
    top: 5px;
    color: var(--accent-clr);
}
.footer-widgets .sub-menu {
    display: none;
}

/* musthaves und copy */
#menu-musthaves {
    display: flex;
    flex-wrap: wrap;
    padding: 0;
    margin: 0 0 0 -10px;
    list-style: none;
}
#menu-musthaves li {
    margin: 0 10px;
}
.copyright-bar {
    display: flex;
}
.copyright-bar .copy {
    margin-bottom: 10px;
    text-align: left;
}
@media (max-width: 799px) {
    .copyright-bar {
        flex-direction: column;
    }
    .menu-musthaves-container {
        order: -1;
        margin-bottom: 10px;
    }
}
@media (min-width: 800px) {
    .copyright-bar {
        width: 100%;
        justify-content: space-between;
    }
    .copyright-bar .copy {
        order: -1;
        margin-bottom: 0;
    }
    #menu-musthaves {
        margin-left: 0;
        margin-right: -10px;
    }
}


/* .... PRINT STYLES .... */
@media print {
    #hero,
	.main-navigation,
	#mobile-menu-control-wrapper,
	.site-navigation,
	.primary-menu,
	.must-have {
        display: none;
    }
	body, h1, h2, h3, h4, p, ul, li, a {
		color: #444 !important;
	}
}
