/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Tom Usborne
 Author URI:   https://tomusborne.com
 Template:     generatepress
 Version:      0.1
*/

/* #GENERAL */

body{ overflow-x: hidden;}
a {
  transition: .3s ease-in-out;
}
ul.wp-block-list {
  margin-left: 20px;
  display: flex;
  flex-direction: column;
  row-gap: 20px;
}
.entry-content > div:last-child {
  margin-bottom: 0 !important;
}
.default__button {
  background-color: transparent !important;
  color: #BC280A !important;
  position: relative;
  border: 1px solid #BC280A;
  box-sizing: border-box;
  transition: border-color .3s ease-in-out, color .3s ease-in-out, box-shadow .3s ease-in-out, font-weight .3s ease-in-out;
}
.default__button:hover {
  border-color: #BC280A;
  box-shadow: inset 0 0 0 1px #BC280A;
  font-weight: 600; 
}
.default__button::before {
  content: attr(data-text);
  font-weight: 600;
  visibility: hidden;
  height: 0;
  overflow: hidden;
  display: block;
  transition: .3s ease-in-out;
}
.transparent-btn {
  border: 1px solid #FFF !important;
  background-color: transparent !important;
  color: #FFF !important;
}
.transparent-btn:hover {
  border-color: #FFF !important;
  box-shadow: inset 0 0 0 1px #FFF !important;
}
.blue-btn {
  border: 1px solid var(--global-color-7) !important;
  background-color: transparent !important;
  color: var(--global-color-7) !important;
}
.blue-btn:hover {
  border-color: var(--global-color-7) !important;
  box-shadow: inset 0 0 0 1px var(--global-color-7) !important;
}
.wp-block-paragraph:last-child,
.gb-text:last-child {
  margin-bottom: 0;
}


/* HEADER and FOOTER */
.site-header {
  background: #FFF !important;
  box-shadow: 0 0 8px 0 rgba(32, 33, 36, 0.12);
}
#sticky-navigation .sticky-navigation-logo img {
  padding: 0;
}
#sticky-navigation .inside-navigation {
  padding: 40px 40px 40px 40px;
}
.main-navigation .main-nav > ul {
  gap: 56px;
}
.main-navigation .main-nav > ul > li > a {
  padding: 12px 16px;
  background-color: var(--contrast-3);
  line-height: 16px !important;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: .3s ease-in-out;
}
.main-navigation .main-nav > ul > li > a:hover,
.main-navigation .main-nav > ul > li.current-menu-item > a {
  background-color: #E5E5E5;
}
.main-navigation .main-nav > ul > li.current-menu-item > a{
  font-weight: 600;
}
.main-navigation .main-nav ul li.menu-item-has-children>a {
  padding-right: 16px;
}
.menu-item-has-children .dropdown-menu-toggle {
  padding-right: 0;
  padding-left: 16px;
}
.menu-item-has-children .dropdown-menu-toggle .custom-menu-arrow {
  transition: transform .25s ease-in-out;
  transform-origin: center;
}
.menu-item-has-children:hover > a .dropdown-menu-toggle .custom-menu-arrow,
.menu-item-has-children:focus-within > a .dropdown-menu-toggle .custom-menu-arrow,
.menu-item-has-children.sfHover > a .dropdown-menu-toggle .custom-menu-arrow,
.menu-item-has-children > a .dropdown-menu-toggle[aria-expanded="true"] .custom-menu-arrow,
.menu-item-has-children .dropdown-menu-toggle.toggled-on .custom-menu-arrow {
  transform: rotate(180deg);
}

/* Keep arrow down when submenu is actually open on touch/mobile. */
.menu-item-has-children > a .dropdown-menu-toggle[aria-expanded="true"] .custom-menu-arrow,
.menu-item-has-children .dropdown-menu-toggle.toggled-on .custom-menu-arrow {
  transform: rotate(0deg);
}
.main-navigation:not(.toggled) ul li:hover>ul {
  background: #F5F5F5;
  box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.12);
}
.main-navigation .main-nav ul ul li a {
  padding: 24px 16px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.main-navigation .main-nav ul ul li a:after {
  content: "";
  width: 25px;
  height: 13px;
  flex: 0 0 25px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='25' height='13' viewBox='0 0 25 13' fill='none'%3E%3Cpath d='M18 0.353546L24 6.35355L18 12.3535' stroke='%234D4D50'/%3E%3Cpath d='M24 6.35355L0 6.35355' stroke='%234D4D50'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: 25px 13px;
}
.main-navigation .main-nav ul ul li:hover > a:after,
.main-navigation .main-nav ul ul li:focus-within > a:after,
.main-navigation .main-nav ul ul li.sfHover > a:after,
.main-navigation .main-nav ul ul li.current-menu-item > a:after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='25' height='13' viewBox='0 0 25 13' fill='none'%3E%3Cpath d='M18 0.353546L24 6.35355L18 12.3535' stroke='%23004E71'/%3E%3Cpath d='M24 6.35355L0 6.35355' stroke='%23004E71'/%3E%3C/svg%3E");
}
.main-navigation .main-nav ul ul li:last-child a:before {
  display: none;
}
.main-navigation .main-nav ul ul li a:before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='1' viewBox='0 0 280 1' fill='none'%3E%3Cpath d='M0 0.5L280 0.5' stroke='%23E5E5E5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: 100%;
}
#menu-footer-menu {
  margin:0;
  padding:0;
  list-style:none;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  column-gap: 24px;
  row-gap: 10px;
}
#menu-footer-menu li a {
  color: var(--contrast);
  transition: .3s ease-in-out;
  position: relative;
}
#menu-footer-menu li a:hover,
#menu-footer-menu li.current-menu-item a,
.footer-links .wp-block-paragraph a:hover,
.main-menu ul li a:hover,
.main-menu ul li.current-menu-item a {  
  color: var(--accent);
}
.footer-links .wp-block-paragraph a,
.main-menu ul li a {
  text-decoration-line: underline;
  text-decoration-style: solid;
  text-decoration-skip-ink: auto;
  text-decoration-thickness: auto;
  color: var(--contrast);
  position: relative;
}
.main-menu ul {
  margin: 0;
  padding: 0;
  list-style: none;
  row-gap: 20px;
  display: flex;
  flex-direction: column;
}
.footer-partner-posts {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.footer-partner-post a img {
  transition: .3s ease-in-out;
  height: 40px;
  object-fit: contain;
  width: auto;
}
.footer-partner-post a:hover img {
  transform: scale(1.05);
}
.legal-pages h1 {
  margin-bottom: 40px;
}
.legal-pages h2 {
  margin-top: 40px;
  margin-bottom: 20px;
}
.legal-pages h3 {
  margin-top: 30px;
  margin-bottom: 20px;
} 
.page-numbers {
  padding: 0 !important;
  font-size: 18px !important;
  border: 0 !important;
  background-color: transparent !important;
}
.page-numbers.current {
  font-weight: 600 !important;
  color: var(--accent) !important;
}
a.page-numbers:hover {
  color: var(--accent) !important;
}
/* #ERROR404 */
.error404 #page{
  height:750px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.error404 .inside-article{ 
  padding-top: 0;
  padding-bottom: 0;
  background-color: var(--contrast-3);
}
.error-buttons {
  margin-top: 30px;
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  justify-content: center;
}
.error-buttons a {
  position: relative;
  border-radius: 0;
  border: 1px solid #BC280A;
  box-sizing: border-box;
  transition: border-color .3s ease-in-out, color .3s ease-in-out, box-shadow .3s ease-in-out, font-weight .3s ease-in-out;
}
.error-buttons a::before {
  content: attr(data-text);
  font-weight: 600;
  visibility: hidden;
  height: 0;
  overflow: hidden;
  display: block;
  transition: .3s ease-in-out;
}
.error-buttons a:hover {
  font-weight: 600;
  border-color: #BC280A;
  box-shadow: inset 0 0 0 1px #BC280A; 
}
.title-404 {
  font-weight: 600;
  font-size: 200px;
  line-height: 200px;
  margin-bottom: 30px;
  color: var(--accent);
}
.error404 h2.entry-title {
  font-size: 60px;
  line-height: 60px;
}
/* #ERROR404 */

.homeintrowrapper,
.full-img-intro {
  backdrop-filter: blur(20px);
}
.homeintrowrapper {
  width: 100% !important;
}
.hero-link a,
.hero-link .gb-shape {
    transition: all 0.3s ease;
}
.hero-link:hover .gb-shape {
  transform: translateX(6px);
}
.hero-link:hover a {
  transform: translateX(2px);
  font-weight: 600;
}
.dienstleisungen-box h3,
.dienstleisungen-box h3 a {
  hyphens: auto;
}
.fullimagewrapper {
  position: relative;
  width: 100%  !important;
}
.full-img-intro {
  position: relative;
}
.full-img-intro::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  right: 100%;
  /* width: 100vw; */
  width: calc((100vw - 100%) / 2);
  background: rgba(0, 78, 113, 0.8);
  backdrop-filter: blur(20px);
  z-index: -1;
}
.dc__subpages_intro {
  background: linear-gradient(
      to bottom,
      #F5F5F5 0%,
      #F5F5F5 65%,
      #FFFFFF 65%,
      #FFFFFF 100%
  );
}
.ancor-links {
  color: var(--contrast) !important;
}
.gform_heading {
  display: none !important;
}
.gform-theme--foundation .gform_fields {
  row-gap: 8px !important;
  column-gap: 8px !important;
}
body .ginput_container_select select {
  display: flex !important;
  align-items: center !important;
  width: 100%;
}
body .gfield input[type="text"],
body .gfield textarea,
body .gfield input[type="email"],
body .gfield input[type="tel"],
body .gfield select {
  border-bottom: 0 !important;
  font-family: var(--gp-font--public-sans) !important;
  font-weight: 300 !important;
}
body .gfield input::placeholder {
  font-family: var(--gp-font--public-sans) !important;
  font-weight: 300 !important;
  font-size: 16px !important;  
}
body .gfield input[type="text"],
body .gfield select,
body .gfield input[type="email"],
body .gfield input[type="tel"] {
  height: 40px !important;
  font-size: 16px !important;
  padding: 10px 16px !important;
  line-height: 24px !important;
  color: var(--contrast) !important;
}
body .gfield textarea {
  font-size: 16px !important;
  line-height: 24px !important;
  padding: 10px 16px !important;
}
body .gfield textarea::placeholder {
  font-size: 24px !important;
  font-weight: 300 !important;
  line-height: 32px !important;
  color: #F5F5F5 !important;
}
body .gfield input:hover,
body .gfield input:focus {
  background-color: #fff !important;
}
.gform-theme--orbital select {
  &:has(option:not([hidden]):checked) {
      color: var(--contrast) !important;
  }
}
body .gform-footer.gform_footer .gform_button.button {
  font-family: var(--gp-font--public-sans) !important;
  background-color: transparent !important;
  color: #BC280A !important;
  position: relative !important;
  border: 1px solid #BC280A !important;
  box-sizing: border-box !important;
  width: 200px !important;
  height: 40px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 16px !important;
  font-weight: 300 !important;
  line-height: 16px !important;
  transition: border-color .3s ease-in-out, color .3s ease-in-out, box-shadow .3s ease-in-out;
}
body .gform-footer.gform_footer .gform_button.button:hover {
  border-color: #BC280A !important;
  box-shadow: inset 0 0 0 1px #BC280A !important;
}
.overview-image {
  overflow: hidden;
}
.overview-content {
  backdrop-filter: blur(20px);
}
.overview-content .team-members.with-info .team-member {
  background-color: var(--global-color-8);
}
.overview-content .team-members.with-info .team-member-header {
  color: var(--global-color-7);
}
.overview-content .team-members.with-info .team-member-contact a {
  color: #fff;
}
.overview-content .team-members.with-info .team-member-contact a:after {
  background-color: #fff;
}
.leistungen-box p {
  hyphens: auto;
}
.news-blog a,
.news-blog a img {
  transition: all 0.3s ease-in-out;
}


@media (min-width:1025px) and (max-width: 1300px) {
  .footer-grid {
      column-gap: 50px !important;
  }
  .dc__subpages_intro .gb-element-2457b4de {
    column-gap: 20px !important;
  }
  .dc__subpages_intro .gb-media-366e5270 {
    max-width: 100% !important;
  }
}

@media (min-width:1025px) and (max-width: 1200px) {
  .dc__subpages_intro {
    background: linear-gradient(
        to bottom,
        #F5F5F5 0%,
        #F5F5F5 70%,
        #FFFFFF 70%,
        #FFFFFF 100%
    );
  }
}

@media (max-width:1024px) {  
  .dc__subpages_intro {
    background: #F5F5F5;
  }
  /* #MOBILE MENU */
  /* SOCIALS STYLE */
  .slideout-socials {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .mobile-menu-info .slideout-socials a {
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease-in-out;
  }
  .mobile-menu-info .slideout-socials a img {
    width: 20px;
    height: 20px;
    transition: transform 0.3s ease-in-out;
  }
  .mobile-menu-info .slideout-socials a:hover img {
    transform: scale(1.2);
  }

  /* #TOP MENU STYLE*/
  .slideout-menu-info {
    width: 100%;
    padding-bottom: 20px;
    display: flex;
    flex-direction: column;
    row-gap: 30px;
  }
  .slideout-top-menu-wrapper .slideout-top-menu ul {
    width: 100%;
    display: flex !important;
    flex-direction: column;
    align-items: baseline;
    row-gap: 15px;
  }
  .slideout-top-menu-wrapper .slideout-top-menu ul li a {
    font-size: 16px;
    line-height: 1.2;
  }
  .slideout-top-menu-wrapper .slideout-top-menu ul li a:hover,
  .slideout-top-menu-wrapper .slideout-top-menu ul li.current-menu-item a {
    color: var(--accent);
  }


  /* SUBMENU STYLE */
  #generate-slideout-menu.do-overlay .slideout-menu li, 
  .slideout-navigation.do-overlay .inside-navigation {
    text-align: left !important;
  }
  #generate-slideout-menu .main-nav>ul {
    row-gap: 20px;
    padding-top: 20px;
    position: relative;
  }
  #generate-slideout-menu .main-nav>ul:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: var(--accent);
  }
  #generate-slideout-menu .menu-item-has-children .dropdown-menu-toggle {
    border: none;
    padding: 0;
    margin: 0 0 0 5px;
  }
  #generate-slideout-menu .slideout-menu li {
    margin: 0;
  }
  .slideout-navigation .main-nav > ul> li > a {
    width: 100%;
  }
  #generate-slideout-menu.main-navigation .main-nav ul ul {
    top: 5px !important;
  }
  .slideout-navigation .main-nav ul li a {
    padding: 0;
  }
  .slideout-navigation .menu-item-has-children .dropdown-menu-toggle,
  .slideout-navigation .main-nav ul li a {
    line-height: 1.2;
  }
  #generate-slideout-menu .main-nav ul ul {
    border-bottom: 0;
    background-color: var(--base-3);
  }
  .slideout-navigation .main-nav ul ul li a {
    padding: 8px 5px;
    width: 100%;
  }
  #generate-slideout-menu .menu-item-has-children .dropdown-menu-toggle svg {
    width: 16px;
    height: 16px;
    top: 0;
  }
  .main-navigation .main-nav ul ul  {
    margin-left: 5px;
  }
  .main-navigation .main-nav ul ul li {
    border-bottom: 1px solid #E5E5E5;
  }
  .main-navigation .main-nav ul ul li a {
    padding-left: 0;
  }
  .main-navigation .main-nav ul ul li a:before {
    display: none;
  }

  /* HEADER STYLE */
  .admin-bar #generate-slideout-menu {
    padding-top: 32px;
  }
  .slideout-menu-logo a.slideout-logo {
    position: absolute;
    top: 40px;
    margin-left: 0;
  }
  .slideout-menu-logo a.slideout-logo img {
    padding: 0;
  }
  #generate-slideout-menu .main-nav {
    padding-top: var(--header-height) !important;
    min-width: 100% !important;
  }
  .slideout-navigation.do-overlay .inside-navigation {
    padding: 0 40px!important;
    justify-content: space-between;
    align-items: unset;
    position: relative;
    height: 100%;
    max-width: 100% !important;
  }
  .slideout-navigation.do-overlay .slideout-exit {
    position: absolute !important;
    z-index: 9999999;
    padding: 0 !important;
    right: 40px !important;
    line-height: 24px;
    width: 24px !important;
    height: var(--header-height);
  }
  .has-inline-mobile-toggle .main-navigation .menu-toggle {
    padding: 0;
    background: transparent;
    line-height: 24px;
    height: 24px;
    width: 24px;
  }
  .has-inline-mobile-toggle .main-navigation .menu-toggle svg,
  .slideout-navigation.do-overlay .slideout-exit svg {
    height: 24px;
    width: 24px;
    top: 0;
  }
  .has-inline-mobile-toggle #site-navigation.toggled {
    margin: 0;
  }
  #sticky-navigation .inside-navigation.grid-container {
    padding: 20px 40px !important;
  }
  #sticky-navigation .navigation-branding {
    margin-left: 0 !important;
    z-index: 999999 ;
  }
  #sticky-navigation .navigation-branding img {
    padding: 0;
  }
  .main-navigation .main-nav > ul > li > a {
    padding: 0px 0px;
    background-color: var(--base-3);
    height: auto;
  }
  .main-navigation .main-nav ul li.menu-item-has-children>a {
    padding-right: 0px;
  }
  .main-navigation .main-nav > ul > li > a:hover, 
  .main-navigation .main-nav > ul > li.current-menu-item > a {
    background-color: transparent;
  }
  /* #MOBILE MENU */
  .title-404 {
    font-size: 150px;
    line-height: 150px;
  }
  .error404 h2.entry-title {
    font-size: 50px;
    line-height: 50px;
  }
  #generate-slideout-menu .menu-item-has-children .dropdown-menu-toggle {
    line-height: 20px;
    display: flex;
    align-items: center;
  }
  .main-navigation:not(.toggled) ul li:hover>ul {
    box-shadow: none;
  }
  body .gfield textarea::placeholder {
    font-size: 20px !important;
    line-height: 24px !important;
  }
  ul.wp-block-list {
    row-gap: 10px;
  }
   .gfield_label.gform-field-label {
    display: inline-block !important;
  }
}

@media (max-width:850px) { 
  .dienstleisungen-box h3,
  .dienstleisungen-box h3 a {
    max-width: 140px;
  }
}

@media (max-width:768px) { 
  #field_1_9 {
    display: none !important;
  }
  body #gform_1 .gfield input.medium {
    inline-size: 100% !important;
  }
  body .gfield textarea::placeholder {
    font-size: 16px !important;
    line-height: 24px !important;
  }
  .dienstleisungen-box h3,
  .dienstleisungen-box h3 a {
    max-width: 100%;
  }
  .admin-bar #generate-slideout-menu {
    padding-top: 46px;
  }
  .slideout-menu-logo a.slideout-logo {
    top: 20px;
  }
  .main-menu ul {
    row-gap: 15px;
  }
  /* #MOBILE MENU */
  #sticky-navigation .inside-navigation.grid-container {
    padding: 20px 20px !important;
  }
  .slideout-navigation.do-overlay .inside-navigation {
    padding: 0 20px!important;
  }
  .slideout-navigation.do-overlay .slideout-exit {
    right: 20px !important;
  }
  /* #MOBILE MENU */

  /* #ERROR404 */
  .error404 h2.entry-title {
    font-size: 30px;
    line-height: 30px;
  }
  .title-404 {
    font-size: 80px;
    line-height: 80px;
    margin-bottom: 20px;
  }
  .error404 #page {
    padding: 40px 20px;
    height:100%;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .error-buttons {
    gap: 10px;
  }
  /* #ERROR404 */
  .dc__slider_content  > div {
    grid-template-columns: 1fr !important;
  }
  .dc__slider_content  > div > div:first-child {
    grid-row: 2 !important;
  }
  .homeintrowrapper {
    width: auto !important;
  }
  .separate-containers .inside-article {
    padding-top: 0 !important;
  }
  .homeinnerintrowrapper.homeintrowrapper {
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  .leistungen-box p {
    font-size: 16px !important;
  }
  #gform_wrapper_2 #field_2_9 {
    display: none !important;
  }
}
