/*
 Theme Name:   Divi Child
 Description:  factor|P
 Author:       Tobias Both
 Template:     Divi
 Version:      2.6.1
*/

/****************************************************************
************************ 1. BASE RULES **************************
****************************************************************/

/* fonts */
@font-face {
    font-family: 'open_sansregular';
    src: url('/wp-content/themes/Divi-child/fonts/open-sans/OpenSans-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: auto;
}

:root {
    /* colors */
    --c-black: #000;
    --c-gray-dark: #535d60;    
    --c-gray-light: #d3d8d9;
    --c-gray-lighter: #f2f2f2;
    --c-red: #a81430;
    
    /* fonts */
    --f-primary: 'open_sansregular';
}

/* body */
body {
    font-family: var(--f-primary);
}

#page-container {
    overflow-x: hidden !important;
}

/* headlines */
h1,h2,h3,h4,h5,h6 {
    font-family: var(--f-primary);
    color:var(--c-gray-dark);
}
/* 1.250 Major Third*/
h1 {font-size:3.052em;}
h2 {font-size:2.441em;}
h3 {font-size:1.953em;}
h4 {font-size:1.563em;}
h5 {font-size:1.25em;}
h6 {font-size:1em;}

/* Paragraphs */
.et_pb_blurb_content p:last-of-type {
    padding-bottom:1rem !important;
}

/* Lists */
.et_pb_module ul {
    list-style-type: none !important;
    /*margin-top:1rem;*/
}
.et_pb_module ul ul {padding-left: 1rem;}
.et_pb_module ul ul li::before {left:1rem;}
.et_pb_module ul li {
    line-height: 1.5em;
    padding-bottom:5px;
}
.et_pb_module ul li::before {
    content:"\f0da";
    left: 0;
    color:var(--c-red);
}
.et_pb_module ol ul {padding-left:1rem;}

/* has fontawesome icon */  
.et_pb_module ul li::before, .bf-location-headline::before, .bf-btn-secondary:after {
    font-family: "Font Awesome 5 Free"; 
    font-weight:900;
    position:absolute;
}

/****************************************************************
*********************** 2. LAYOUT RULES *************************
****************************************************************/

/* 
****************************
header & navigation 
****************************
*/

/* primary navigation */

/* Adjust Menu height */
@media only screen and (min-width: 981px){
    .et_header_style_left #et-top-navigation nav>ul>li>a, 
    .et_header_style_split #et-top-navigation nav>ul>li>a {
        font-weight:600;
        padding-bottom: 25px !important;
    }
}
@media only screen and (min-width: 981px){
    .et_header_style_left #et-top-navigation, .et_header_style_split #et-top-navigation {
        padding: 55px 0 0 0 !important;
    }
}

/* Add top-border to header*/
#main-header {
    border-top:3px solid var(--c-gray-dark);
    box-shadow:none;
}
@media (max-width:1330px) {
    #main-header {margin-bottom:15px;}
}

/* Adjust menu and submenu */
.nav li ul {width:280px;}
#top-menu li li a {
    font-size:1em; 
    width:240px;
    border-bottom:1px solid var(--c-gray-light);
    transition: none;
    line-height:1.5rem;
}
#top-menu-nav>ul>li>a {transition: none !important;}
#top-menu-nav>ul>li>a:hover {
    color:var(--c-red) !important;
    opacity: 1;
}
#top-menu li li a:hover {
    background: var(--c-red);
    color: #fff;
    opacity:1;
}
.nav li li ul {left: 280px;}

@media (min-width:1330px) {
    #top-menu li .menu-item-has-children>a:first-child:after {
        content:"5" !important;
    }   
}

/* Menu Breakpoint Adaption */
@media (max-width: 1330px) {
    #et_mobile_nav_menu {display: block;}
    #top-menu {display: none;}
 }
@media (min-width: 980px) and (max-width:1330px) {
    #et_top_search {margin: 9px 0 0 22px;}
}

/* Mobile menu adaption */
.et_mobile_menu {margin-top:12px;}

/* Make Links clickable on mobile */
#main-header .et_mobile_menu .menu-item-has-children > a { background-color: transparent; position: relative; }
#main-header .et_mobile_menu .menu-item-has-children > a:after { font-family: 'ETmodules'; text-align: center; speak: none; font-weight: normal; font-variant: normal; text-transform: none; -webkit-font-smoothing: antialiased; position: absolute; }
#main-header .et_mobile_menu .menu-item-has-children > a:after { font-size: 16px; content: '\3b'; top: 13px; right: 10px; }
#main-header .et_mobile_menu .menu-item-has-children.visible > a:after { content: '\4d'; }
#main-header .et_mobile_menu ul.sub-menu { display: none !important; visibility: hidden !important;  transition: all 1.5s ease-in-out;}
#main-header .et_mobile_menu .visible > ul.sub-menu { display: block !important; visibility: visible !important; }

#main-header .et_mobile_menu .always-visitable {
    position: relative;
}
#main-header .et_mobile_menu .always-visitable .hover-link {
    position: absolute;
    top: 0; left: 0; bottom: 0;
    right: 60px; /* right area continues to expand or collapse */
}

/* Logo */
#logo {
    max-height:100%;
    margin-bottom:20px;
    margin-left:-4px;
}
@media (max-width: 1330px){
    .et_header_style_left #logo {max-width: 100%; margin-bottom: 15px;}
    .et_header_style_left .mobile_menu_bar {padding-bottom:0;}
}

/* Sidebar */
@media (min-width:981px) {
    .bf-sidebar {
        border-left:1px solid #e2e5e6;
        padding-left:30px;
    }
}
@media (max-width:980px){
    .bf-sidebar .et_pb_module {
        float:left;
        padding-right:20px !important;
    }
}


/*** Take out the divider line between content and sidebar ***/
#main-content .container:before {background: none;}
 
/*** Expand the content area to fullwidth ***/
@media (min-width: 981px){
#left-area {
    width: 100% !important;
    padding: 23px 0px 0px !important;
    float: none !important;
}
}

/* 
****************************
footer
****************************
*/

#footer-bottom {padding:0 0 5px 0;}
#footer-bottom .container {
    border-top: 1px solid #dddfdf;
    padding-top: 5px;
}

/* infoline */
.bf-infoline-text, .bf-infoline-menu {
    width:100%;
    float:right; 
    text-align: left;
    padding:10px 0;
}

.bf-infoline-text p, .bf-legal-menu ul li a {
    color:var(--c-gray-dark);
    font-size:12px;
    text-transform:uppercase;
}
.bf-legal-menu ul li a:hover {
    color:var(--c-red);
}

.bf-legal-menu ul li {
    display: inline-block;
    padding-right:1.5em;
}

@media (min-width:1024px) {
    .bf-infoline-text, .bf-infoline-menu {
        width:50%;
    }
    .bf-infoline-text {float:right; text-align: right;}
    .bf-infoline-menu {float:left; text-align: left;}
}

/****************************************************************
*********************** 3. MODULES RULES ************************
****************************************************************/

/*  

Alle kleineren, eigenständigen Komponenten wie Slider, Kontaktformular, Kacheln, etc. inklusive aller pseudo-klassen und media-queries.

/* Buttons */
.button {
    color:#fff;
    background: var(--c-red);
    border-radius: 3px;
    border:0;
    cursor: pointer;
}
.bf-btn-secondary {
    color:#fff;
    border:1px solid #fff;
    padding:2px 6px;
    font-size:13px;
    text-transform:uppercase;
    line-height: 1.5em;
}
.bf-btn-secondary:after {
    content:"\f105";
    position: relative;
    right: 0;
    margin-left:6px;
    padding:5px 0px 5px 6px;
    border-left:1px solid #fff;
}
.et_pb_scroll_top.et-pb-icon {
    background:rgba(0,0,0,0.8) !important;
    border-radius:3px;
    padding:11px;
    margin-right:21px;
    z-index:1000;
}
.et_pb_scroll_top:before {
    content:;
}
.et_pb_scroll_top.et-visible {
    webkit-animation: fadeInBottom 1s 1 cubic-bezier(.77,0,.175,1);
    -moz-animation: fadeInBottom 1s 1 cubic-bezier(.77,0,.175,1);
    -o-animation: fadeInBottom 1s 1 cubic-bezier(.77,0,.175,1);
    animation: fadeInBottom 1s 1 cubic-bezier(.77,0,.175,1);
}
.et_pb_scroll_top.et-hidden {
    webkit-animation: fadeOutTop 1s 1 cubic-bezier(.77,0,.175,1);
    -moz-animation: fadeOutTop 1s 1 cubic-bezier(.77,0,.175,1);
    -o-animation: fadeOutTop 1s 1 cubic-bezier(.77,0,.175,1);
    animation: fadeOutTop 1s 1 cubic-bezier(.77,0,.175,1);
}

/* Headlines */
.bf-headline-first--underlined .et_pb_module_header {
    border-bottom: 1px solid #d3d8d9;
    margin-bottom:30px;
}
.bf-headline .et_pb_module_header {margin-bottom: 10px;}


/* Cards */

.bf-card-holder {overflow:hidden !important;}

@media (min-width:980px) {
    .bf-card-primary {
        background-position: 0px 0px !important;
        background-size:calc(100% + 10px) !important;
        transition: 350ms ease;
    }
    .bf-card-primary:hover {background-position-x: -10px !important;}
}
@media (max-width:425px) {
    .bf-card-primary {
        height: 300px;
    }
}

.bf-card-primary:after {
    content: "";
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    background:#2f3238;
    opacity:0.2;
    z-index:-1;
    transition: 350ms ease;
    pointer-events:none !important;
}
.bf-card-primary:hover:after {opacity: 0.6;}

.bf-card-primary .et_pb_blurb .et_pb_module_header {margin-bottom:10px; position: relative;}
.bf-card-primary .et_pb_blurb .et_pb_module_header:after {
    content:"";
    height: 3px;
    background: #fff;
    width:0%;
    position: absolute;
    bottom: 0;
    left: 0;
    transition: 350ms ease;
}
.bf-card-primary:hover .et_pb_blurb .et_pb_module_header:after {
    width:100%;
}
.bf-card-primary .et_pb_blurb .et_pb_blurb_description {
    transform: translate(100%);
    opacity: 0;
    transition: 350ms ease;
}
.bf-card-primary:hover .et_pb_blurb .et_pb_blurb_description {
    transform: translate(0%);
    opacity: 1;
}


/* Slider */
.et-pb-controllers {
    padding-right:40px;
    text-align: right;
}
.et-pb-controllers a {
    width:10px; height: 10px;
    text-indent:9999px;
    border-radius:0;
}

/* Contact Form 7 */
.form-row {width: 100%; padding:10px 0;}
.form-row p {
    margin-bottom:12px;
    padding-bottom:0px;
    color:#1A222F;
    font-weight:600;
}
.column-half, .column-quarter {
    float: left;
	position: relative;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}
.column-half {width:100%;}
.column-quarter {width:50%;}
.form-col-left {padding:0 10px 20px 0;}
.form-col-right {padding:0 0 20px 10px;}
span.wpcf7-list-item {margin-left:0 !important;}
.clearfix:after {
    content: "";
    display: table;
    clear: both;
}
.wpcf7 input[type="text"], 
.wpcf7 input[type="email"], 
.wpcf7 textarea, 
.wpcf7 input[type="tel"], 
.wpcf7 select {
	width: 100%;
    font-size:21px;
	padding: 14px;
	background:#fff;
    border:0;
	-webkit-box-sizing: border-box;
	 -moz-box-sizing: border-box;
	      box-sizing: border-box;
}
label .wpcf7-list-item-label {font-size: 16px; color:#666 !important;}
.wpcf7 input:focus, 
.wpcf7 textarea:focus{
    -webkit-box-shadow:inset 0px 0px 0px 3px #C3AE95;
    -moz-box-shadow:inset 0px 0px 0px 3px #C3AE95;
    box-shadow:inset 0px 0px 0px 3px #C3AE95;
}
.wpcf7 textarea {height:256px;}
.wpcf7-submit{
	display:block !important;
    font-size:18px;
    width:100%;
    text-transform:uppercase;
	background: #C3AE95;
	color: #fff;
	border: none;
	padding:16px;
	cursor: pointer;
    font-weight:600;
}
.wpcf7-submit:hover{
	background:#B5A08F;
    -webkit-transition: background 200ms ease-in-out; /* Firefox */
    -moz-transition: background 200ms ease-in-out; /* WebKit */
    -o-transition: background 200ms ease-in-out; /* Opera */
    transition: background 200ms ease-in-out; /* Standard */
}
span.wpcf7-not-valid-tip{
	text-shadow: none;
	font-size: 14px;
	color: #D24335;
	background: transparent;
	padding: 5px;
}
div.wpcf7-validation-errors { 
	text-shadow: none;
	border: transparent;
	background: #FFE29E;
	padding: 20px;
	color: #9C6533;
	text-align: center;
	margin-top: 50px !important;
	font-size: 16px;
}
div.wpcf7-mail-sent-ok{
	text-align: center;
	text-shadow: none;
	padding: 20px;
	font-size: 16px;
	background: #8EDA89;
	border-color: #8EDA89;
	color: #fff;
	margin-top: 50px !important;
}
.ssl-info {font-size:16px;}
.ssl-info .lnr {color:#0D8A74;}

@media (max-width:1500px) { 
    .form-column-half {width:100% !important;}
}
@media (max-width:660px) {
    .et_pb_text .form-row column-quarter.form-col-right.senden-button {width:100% !important;}
}
@media (max-width:425px) {
    .wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 textarea, .wpcf7 input[type="tel"], .wpcf7 select {font-size:16px;}
}

/* Location Modul */
.bf-location .et_pb_module_header {
    padding-bottom:1.25rem;
}
.bf-location-headline {
    font-size: 1em !important;
    font-weight: bold;
    color: #000;
    padding-bottom:.5rem;
}

.bf-location-headline::before {
    content:"\f0da";
    left: 0;
    color:var(--c-red);
    position: relative !important;
    margin-right: .5rem;
}

/* Accordeon Modul */
.et_pb_toggle_title:before{
    content:"\33" !important;
    right: 0 !important;
}
.et_pb_toggle_open .et_pb_toggle_title:before {
    content:"\4d" !important;
}

/* Search Page */
.search #main-content .container {
    padding-top:0;
}
.search #main-content .container:before, .search .post-meta {display: none;}
.search .bf-header-img {margin-bottom:40px;}
.bf-search-hits {padding-bottom:2rem !important;}

/* Job Modul / Stellenangebote */
.job_listings li:before, 
.job_listings .company_logo, 
.single-job_listing #main-content .container:before, 
.single_job_listing .company, 
.job-listing-meta {
    display: none;
}

.job_listings .position {padding: 0 !important;}
ul.job_listings {padding:0;}
ul.job_listings li.job_listing:nth-last-of-type(odd) a {background: #f7f7f7;}
ul.job_listings li.job_listing a div.position {width:50% !important;}
ul.job_listings li.job_listing a div.position .company strong {font-weight: normal;}
ul.job_listings li.job_listing a {padding:1em 1em 1em 1em;}
ul.job_listings li.job_listing a .meta li.date {font-size:12px;}
ul.job_listings li.job_listing a .meta {width:25% !important;}
.single-job_listing h1.entry-title {border-bottom:1px solid #d3d8d9; margin:40px 0 30px 0; line-height: 1.3em;}
@media (max-width:425px) {
    .single-job_listing h1.entry-title {
        font-size:1.9em;
    }
}
.single-job_listing #main-content .container {padding-top:0;}

.search_submit input {
    border:0;
    padding:10px;
    border-radius:3px;
    cursor: pointer;
}
