/**
 * 70-theme.css
 * Author: einfach-machen.berlin - Daniel Kaiser
**/

* {
    box-sizing: border-box;
    -webkit-appearance: none;
    -moz-appearance: none;
}

.mod_mmenuCustom {
    /*display: none;*/
}

html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: 18px;
    line-height: 1.5;
    
}


body {
    font-size: 1rem;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    color: var(--text-color);
    min-width: 390px;
    font-family: 'Inter', arial, helvetica, sans-serif;
    font-weight: 400;
}

.mod_mobile_toggle {
    display: none;
}

p, li {
    line-height: 1.625;
}

b,
strong,
p strong {
    font-weight: 500
}

.content-text p{
    font-size: 1rem;
}

.content-text blockquote p {
    margin-bottom: 20px;
    font-family: 'Inter', arial, helvetica, sans-serif;
    font-size: 20px;
    line-height: 28px;
    font-weight: 700;
    font-style: normal;
}

.content-text blockquote p em {
    font-style: italic;
    color: var(--text-color);
}


h1, h2, h3, h4, h5, h6 {
    color: var(--headline-color);
    text-transform: none;
    line-height: 1;
}

h1, h2 {
    font-weight: 200;
    margin-bottom: 46px;
}

h1 {
    font-size: 55px;
}

h2 {
    font-size: 44px;
    font-weight: 400;
    letter-spacing: -1px;
}

h3 {
    margin-bottom: 20px;
}

h6 {
    margin-bottom: 12px;
    font-size: 14px;
    font-weight: 600;
    color: var(--link-color);
    letter-spacing: 2px;
    text-transform: uppercase;
}

a {
    color: var(--link-color);
    transition: .2s ease-in-out 0s;
}

.section_main a {
    text-decoration: underline;
}

.rounded.content-image img {
    border-radius: var(--border-radius);
    overflow: hidden;
}

a:focus,
a:active,
a:hover {
    color: var(--link-color-hover);
    transition: .2s ease-in-out 0s;
}

button.submit,
a.more {
    display: inline-block;
    margin-right: 24px;
    background: var(--link-color);
    border: 1px solid var(--link-color);
    color: var(--color-white);
    min-width: 170px;
    line-height: 42px;
    padding: 0 30px;
    font-weight: 600;
    font-size: 16px;
    text-align: center;
    border-radius: 6px;
    transition: .2s ease-in-out 0s;
    box-shadow: 0 5px 10px var(--shadow-color);
    text-decoration: none;
}

a.more.secondary {
    background: var(--color-white);
    border: 1px solid var(--link-color-hover);
    color: var(--link-color-hover);
    transition: .2s ease-in-out 0s;
    box-shadow: none;
}

button.submit:focus,
button.submit:active,
button.submit:hover,
a.more:focus,
a.more:active,
a.more:hover {
    background: var(--link-color-hover);
    color: var(--color-white);
    border-color: var(--link-color-hover);   
    text-decoration: none;
    transition: .2s ease-in-out 0s;
    box-shadow: none;
}

a.more.secondary:focus,
a.more.secondary:active,
a.more.secondary:hover {
    background: var(--link-color-hover);
    color: var(--color-white);
    border-color: var(--link-color-hover);    
    transition: .2s ease-in-out 0s;
    box-shadow: none;
}

.round {
    border-radius: 50%;
    overflow: hidden;
}

.small {
    max-width: 180px;
    margin-bottom: 2em;
}

.small + .headline-box h6  {
    display: block;
    line-height: 1.75; 
}

/* Input/Button */

label {
    width: 90%;
}

.widget-select,
.widget-text {
    /*position: relative;*/
    margin-bottom: 1rem;
}

.widget label {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    color: var(--link-color-hover);
}

.widget-checkbox input {
    float: left;
    margin-right: 1rem;
}

.widget-checkbox label {
    position: static;
    display: inline-block;    
    padding-top: 7px;
    font-size: 14px;
    color: var(--color-placeholder);
}

option,
select {
    width: 100%;
    color: var(--color-placeholder);
    
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="file"],
input[type="password"],
input[type="file"],
input[type="radiobutton"],
input[type="checkbox"], 
select,
textarea {
    padding: 0 16px;
    background: var(--input-bg-color);
    line-height: 54px;
    border: 1px solid var(--input-bg-color);
    border-radius: 8px;
    box-shadow: none;
    color: var(--text-color);
}

input[type="checkbox"] {
    height: 54px;
    width: 54px;
}

input[type="text"]:active,
input[type="text"]:focus,
input[type="email"]:active,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="tel"]:active,
input[type="file"]:active,
input[type="file"]:focus,
input[type="password"]:active,
input[type="password"]:focus,
input[type="file"]:active,
input[type="file"]:focus,
input[type="radiobutton"]:active,
input[type="radiobutton"]:focus,
input[type="checkbox"]:active,
input[type="checkbox"]:focus,
select:active,
select:focus,
textarea:active,
textarea:active {
    border: 1px solid var(--link-color-hover);
    background: var(--color-white);
}

select {
    background: var(--input-bg-color) url('../img/arrow-down.svg') no-repeat scroll 97.5% center;
    background-size: 20px 20px;
}

.widget.middle select {
    background: var(--input-bg-color) url('../img/arrow-down.svg') no-repeat scroll 95% center;
    background-size: 20px 20px;
}

input[type="checkbox"]:checked {
    background: var(--input-bg-color) url('../img/icon-check.svg') no-repeat scroll center center;
    background-size: 30px 30px;
}

.widget.middle {
    width: 49%;
    margin-right: 2%;
    float: left;
}

.widget.middle:nth-of-type(2n+2) {
    margin-right: 0;
}

.widget-explanation,
.ce_form button {
    margin-top: 2rem;
}

.widget-explanation {
    color: #AAA;
    font-size: 12px;
    letter-spacing: .025rem;
}

/* Header */

.section_header {
    position: relative;
    max-width: 1480px;
    display: block;
    margin: 0 auto;
}

/* @todo - smooth einblenden, mit Background */

.header_fixed .section_header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 80px;
    z-index: 1;
}

.header_fixed .section_header:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 50px;
    background: linear-gradient(180deg, var(--color-white) 50%, transparent 75%);
    z-index: 2;
}

.header_fixed .section_header .inside {
    margin-top: 10px;
    background: var(--color-white);
    border-radius: 20px;
    box-shadow: 0 5px 20px rgba(0,0,0,.05);
    z-index: 3;
}

.header_fixed .mod_branding.header-large,
.header-small {
    display: none;
}

.header_fixed .mod_branding.header-small {
    display: inline-block;
    transition: .2s ease-in-out 0s;
    margin-top: 8px;
}

.header_fixed .mod_branding {
    padding-top: 0;
    transition: .2s ease-in-out 0s;
}

/*  Section Footer */

footer {
    position: relative;
    overflow: hidden;
}

footer:before {
    content: '';
    position: absolute;
    bottom: 0;
    left: -110px;
    width: 150px;
    height: 90%;
    background: var(--highlight-color);
    transform: rotate(-5deg);
    z-index: 0;
}

footer:after {
    content: '';
    position: absolute;
    bottom: -70px;
    left: -10%;
    right: -10%;
    width: 150%;
    height: 420px;
    background: var(--highlight-color);
    transform: rotate(-4deg);
    z-index: 0;
}

footer .nav_wrapper {
    position: relative;
    max-width: 1400px;
    margin: 0 auto;
    z-index: 1;
}

footer .mod_branding.footer,
footer .mod_navigation_footer {
    float: left;
}

footer .mod_branding.footer {
    display: block;
}

footer .mod_navigation_footer {
    position: relative;
    margin-left: 80px;
    margin-top: 120px;
    margin-bottom: 40px;
    z-index: 1;
}

footer .mod_navigation_footer h4,
footer .mod_navigation_footer a,
footer .mod_navigation_footer strong {
    color: var(--color-white);
}

footer .mod_navigation_footer h4 {
    margin-bottom: 10px;
    padding-bottom: 10px;
    font-size: 18px;
    font-weight: 600;
    border-bottom: 1px solid var(--line-color);
}

footer li {
    line-height: 1.25;
}

footer .mod_navigation_footer a,
footer .mod_navigation_footer strong {
    font-size: 14px;
    line-height: 24px;
}

footer .mod_navigation_footer strong {
    font-weight: 400;
}

footer .mod_navigation_footer strong,
footer .mod_navigation_footer a:hover,
footer .mod_navigation_footer a:focus,
footer .mod_navigation_footer a:active {
    text-decoration: underline;
}

.layout_special footer .mod_branding.footer {
    position: relative;
    z-index: 1;   
}

.layout_special footer .inside:after,
.layout_special footer:before,
.layout_special footer:after {
    content: none;
}

.layout_special footer {
    background: var(--highlight-color);
}

.layout_special footer .mod_navigation_footer {
    margin-top: 70px;
}

.layout_special footer .mod_branding.footer.margin-top-l {
    margin-top: 50px !important;
}

/* Anschrift/Öffnungszeiten */

.mod_opening {
    margin-left: 20px;
    padding-left: 60px;
    border-left: 1px solid var(--line-color);
}

.mod_opening h5 {
    font-weight: 500;
    margin-bottom: 20px;
}

.mod_opening p strong {
    color: var(--highlight-color);
}

.mod_opening table {
    margin-bottom: 10px;
}

.mod_opening tbody tr,
.mod_opening tbody tr:nth-child(odd) {
    background: #FFF;
    border-left: none;
    border-right: none;
}

/* Main Navigation */

.mod_navigation_main {
    width: 37.857143%;
    float: left;
    margin-top: 100px;
}

.header_fixed .mod_navigation_main {
    margin-top: 20px;
}

.mod_navigation_main.left {
    text-align: right;
}

.mod_navigation_main.right {
    text-align: left;
}

.mod_navigation_main > .level_1 > li {
    padding: 0 20px;
    position: relative;
}

.mod_navigation_main > .level_1 > li > a,
.mod_navigation_main > .level_1 > li > strong {
    line-height: 62px;
    font-weight: 500;
}

.mod_navigation_main a {
    color: var(--headline-color);
}

.mod_navigation_main strong.active,
.mod_navigation_main a:hover {
    color: var(--link-color-hover);
    text-decoration: underline;
}

.mod_navigation_main.right .area_termin a {
    display: inline-block;
    padding: 0 20px;
    line-height: 40px;
    background: var(--link-color);
    border: 1px solid var(--link-color);
    color: var(--color-white);
    font-weight: 500;
    text-align: center;
    border-radius: var(--button-border-radius);
    box-shadow: 0 5px 10px var(--shadow-color);
    transition: .2s ease-in-out 0s;
}

.header_fixed .mod_navigation_main.right .area_termin a {
    box-shadow: none;
}

.mod_navigation_main.right .area_termin a:hover,
.mod_navigation_main.right .area_termin a:active,
.mod_navigation_main.right .area_termin a:focus {
    text-decoration: none;
    background: var(--link-color-hover);
    transition: .2s ease-in-out 0s;
    box-shadow: none;
}

.mod_navigation_main.left .level_2 {
    /*background: var(--color-white);*/
    padding: 0;
}

.mod_navigation_main.left .level_3 {
    display: none;
}

.mod_navigation_main .level_2 {
    position: absolute;
    top: 62px;
    left: -10px;
    margin-top: 0;
    background: var(--submenu-bg-color);
    background: #FFF;
    box-shadow: 0 25px 35px var(--shadow-submenu);
    /*border-radius: var(--submenu-border-radius);*/
    text-align: left;
    min-width: 250px;
}

.mod_navigation_main .submenu.area_services .level_2 {
    min-width: 370px;
}

.mod_navigation_main .level_2 li {
    display: block;
    position: relative;
}

.mod_navigation_main .level_2 li a,
.mod_navigation_main .level_2 li strong {
    display: block;
    color: var(--text-color);
    font-weight: 400;
    font-size: 16px;
    line-height: 1.325;
    padding: 14px 30px;
    border-bottom: 1px solid var(--line-color);
}

.mod_navigation_main .level_2 li:last-child a,
.mod_navigation_main .level_2 li:last-child strong {
    border-bottom: none;
}

.mod_navigation_main .level_2 li:hover a,
.mod_navigation_main .level_2 li a:active,
.mod_navigation_main .level_2 li a:focus,
.mod_navigation_main .level_2 li strong {
    text-decoration: none;
    background: var(--link-color-hover);
    color: var(--color-white);
}

/* Branding */

.mod_branding {
    width: 24.285714%;
    float: left;
    padding-top: 30px;
}

.mod_branding img {
    text-align: center;
    margin: 0 auto;
}

.header_fixed .mod_branding {
    display: none;
}

/* detail */

.detail_without {
    padding-left: 36px;
}

.detail.content-text .rte {
    position: relative;
    padding-left: 40px;
}

.detail.content-text .rte:before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    max-height: 60px;
    background: #fabd68;
}

.detail_without.content-text .rte {
    background: transparent;
}

.detail.content-text + .ce_rsce_dk_button_second {
    padding-left: 40px;
}

/* Inhaltsbreiten */

.width-l {
    max-width: 900px;
}

.width-m {
    max-width: 600px;
}

.width-s {
    max-width: 300px;
}

.width-xs {
    max-width: 100px;
}

/* section main */

.section_main {
    margin-top: 0;
}

.header_fixed .section_main {
    margin-top: 266px;
}

/* Ticker */

.mod_ticker {
    background: linear-gradient(to right, var(--highlight-color) 50%, #f9ba61 100%);
    color: var(--color-white);
}

.mod_ticker p {
    font-size: 14px;
    line-height: 40px;
}

.mod_ticker.content-text .rte {
    position: relative;
    display: block;
    max-width: 1400px;
    margin: 0 auto;
}

.mod_ticker .close_button {
    position: absolute;
    top: 0;
    right: 0;
    width: 40px;
    height: 40px;
    color: rgba(255,255,255,.75);
    /*border: 1px solid var(--line-color);*/
    /*background: rgba(255,255,255,.125);*/
    text-align: center;
    line-height: 40px;
    transition: .2s ease-in-out 0s;
}

.mod_ticker .close_button:hover {
    background: #e84673;
    transition: .2s ease-in-out 0s;
}

/* Fixed elements */

.mod_fixed_elements a {
    position: fixed;
    right: 0;
    top: 120px;
    z-index: 1;
    width: 80px;
    height: 80px;
    padding: 15px;
    text-align: center;
    font-size: 10px;
    background: var(--highlight-color);
    color: var(--color-white);
    border-top-left-radius: var(--border-radius);
    border-bottom-left-radius: var(--border-radius);
    box-shadow: 0 5px 10px var(--shadow-submenu);
    transition: .2s ease-in-out 0s;
}

.mod_fixed_elements a.phone {
    top: 210px;
}

.mod_fixed_elements a:hover {
    background: var(--highlight-color-hover);
    transition: .2s ease-in-out 0s;
}

/* Counter */

.counter_wrapper .rs-column {
    width: 33.333333333%;
    margin-right: 0;
}

.counter_wrapper p {
    line-height: 1;
    margin-bottom: 0;
}

.counter_wrapper p em {
    font-size: 48px;
    font-weight: 700;
    font-style: normal;
    background: -webkit-linear-gradient(#fabd68, #e84673);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.counter_wrapper strong {
    font-size: 72px;
    font-weight: 700;
    margin-bottom: 0;
    background: -webkit-linear-gradient(#fabd68, #e84673);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.counter_wrapper h5 {
    margin: 0 0 12px 0;
    color: #232323;
    font-size: 30px;
    font-weight: 700;
}

.counter_wrapper .rs-column .counter {
    transition: .1s ease-in-out .025s;
}

.counter_wrapper .rs-column .counter:hover {
    cursor: pointer;
    background: var(--highlight-color-hover);
    border-radius: 8px;
    transition: .1s ease-in-out 0s;
}

.counter_wrapper .rs-column .counter p,
.counter_wrapper .rs-column .counter p em,
.counter_wrapper .rs-column .counter strong,
.counter_wrapper .rs-column .counter h5 {
    transition: .1s ease-in-out .025s;
}

.counter_wrapper .rs-column .counter:hover p,
.counter_wrapper .rs-column .counter:hover p em,
.counter_wrapper .rs-column .counter:hover strong,
.counter_wrapper .rs-column .counter:hover h5 {
    color: var(--color-white);
    -webkit-background-clip: transparent;
    -webkit-text-fill-color: var(--color-white);
    transition: .1s ease-in-out 0s;
}

.counter {
    padding-bottom: 28px;
}

.counter.one,
.counter.two {
    border-right: 1px solid var(--line-color);
}

.counter a {
    text-decoration: none;
    color: #232323;
}

/* Heroshot */

.heroshot.content-image {
    max-height: 560px;
    border-radius: var(--border-radius);
    overflow: hidden;
}

.heroshot img {
    display: block;
    width: 100%;
}

/* Image-Boxes Leistungen Übersicht */

.image_boxes.services .image_container {
    max-width: 15%;
    margin-right: 3%;
    float: left;
    border-radius: var(--border-radius);
    overflow: hidden;
}

.image_boxes.services .wrapper {
    padding-top: 2em;
    max-width: 100%;
}

/* Vita Tags */

.mod_vita_tags ul {
    list-style-type: none;
    padding: 0;
}

.mod_vita_tags li {
    display: inline-block;
    border-radius: var(--border-radius);
    background: var(--highlight-color);
    color: var(--color-white);
    line-height: 40px;
    padding: 0 18px;
    font-size: 14px;
    font-weight: 500;
    text-align: center;
    margin-right: 12px;
    margin-bottom: 10px;
}

/* team columns */

.rs-columns.centered .rs-column {
    width: 25%;
    margin: 0 auto;
}

@media only screen and (max-width: 900px) {
    .rs-columns.centered .rs-column {
        width: 50%;
    }
}

@media only screen and (max-width: 600px) {
    .rs-columns.centered .rs-column {
        width: 100%;
    }
}

/* moblie Menu */

.mod_mmenu {
    display: none;
}

/* Copyright */

#copyright {
    background: var(--copyright-color);
}

#copyright .inside {
    max-width: 1440px;
    padding: 0 20px;
    margin: 0 auto;
    text-align: right;
    opacity: .6;
}

#copyright p {
    line-height: 40px;
}

#copyright p {
    margin-bottom: 0;
}

#copyright p,
#copyright a {
    color: var(--color-white);
    font-size: 12px;
    font-weight: 200;
}

.contao-cookiebar .highlight .success {
    background: var(--link-color);
    border-color: var(--link-color);
}

.contao-cookiebar .highlight .success:hover {
    background: var(--link-color-hover);
    border-color: var(--link-color-hover);
}

/* Fixes nach Onlinestellung */

.display .ce_rs_column_start.-large-col-5-3:after {
    content: '';
    /*
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    */
    display: block;
    width: 100%;
    height: 100%;
    background: #FFFFFF;
    background: linear-gradient(90deg,rgba(255, 255, 255, 1) 50%, rgba(255, 255, 255, 0) 100%);
    z-index: 0;
}

@media only screen and (max-width: 1700px) {
    .display .centered-wrapper-background {
        background-position: 110% 50% !important;
    }
}

@media only screen and (max-width: 1600px) {
    .display .centered-wrapper-background {
        background-position: 120% 50% !important;
    }
}

@media only screen and (max-width: 1500px) {
    .display .centered-wrapper-background {
        background-position: 130% 50% !important;
    }
}

@media only screen and (max-width: 1400px) {
    .display .centered-wrapper-background {
        background-position: 140% 50% !important;
    }
}