/**
 * Theme Name:     Hello Elementor Child
 * Author:         Elementor Team
 * Template:       hello-elementor
 * Text Domain:	   hello-elementor-child
 * Description:    Hello Elementor is a lightweight and minimalist WordPress theme that was built specifically to work seamlessly with the Elementor site builder plugin. The theme is free, open-source, and designed for users who want a flexible, easy-to-use, and customizable website. The theme, which is optimized for performance, provides a solid foundation for users to build their own unique designs using the Elementor drag-and-drop site builder. Its simplicity and flexibility make it a great choice for both beginners and experienced Web Creators.
 */



/* Formular Styling */

.elementor-element .gform-theme--foundation form {  
	--gf-color-primary: var( --e-global-color-secondary );
	--gf-ctrl-size: 52px;
	--gf-ctrl-radius: 12px;
	--gf-ctrl-file-zone-radius: 12px;
	--gf-ctrl-textarea-radius: 12px 12px 2px 12px;
	--gf-ctrl-border-color: #757575; 
	--gf-ctrl-border-width: 1px;
	--gf-ctrl-font-size: 1rem;
	--gf-ctrl-font-weight: normal;
	--gf-ctrl-padding-x: 1rem;
	--gf-ctrl-padding-y: 0.75rem;
	--gf-ctrl-shadow: 0;
	--gf-ctrl-line-height: 1;

	--gf-ctrl-label-font-size-secondary: 1.125rem;
	--gf-ctrl-label-font-size-primary: 1.125rem;
	--gf-ctrl-label-font-weight-secondary: 600;
	--gf-ctrl-label-font-weight-primary: 600;

	--gf-ctrl-btn-bg-color-primary: var( --e-global-color-secondary );
	--gf-ctrl-btn-bg-color-hover-primary: var( --e-global-color-secondary );
	--gf-ctrl-btn-color-secondary: #fff;
	--gf-ctrl-btn-border-color-secondary: var( --e-global-color-text );
	--gf-ctrl-btn-bg-color-secondary: var( --e-global-color-text );
	--gf-ctrl-btn-bg-color-hover-secondary: var( --e-global-color-text );
	--gf-ctrl-btn-color-hover-secondary: #fff;
	

	--gf-ctrl-btn-radius: 1rem;
	--gf-ctrl-btn-padding-y: 1rem;
	--gf-ctrl-btn-padding-x: 1.5rem;
	--gf-ctrl-btn-font-size: 1rem;

	--gf-ctrl-checkbox-check-radius: .25rem;
	--gf-ctrl-desc-font-size: 1rem;

	--gf-ctrl-bg-color-focus: #fff;
	--gf-ctrl-border-color-focus: var( --e-global-color-primary );
	--gf-ctrl-color-focus: var( --e-global-color-primary );
	--gf-ctrl-outline-color-focus: var( --e-global-color-primary );
	--gf-ctrl-outline-width-focus: 2px;
	--gf-ctrl-outline-offset: 0;
	
	/* Farben */
	--gf-color-in-ctrl-primary: var( --e-global-color-primary );
	--gf-ctrl-accent-color: var( --e-global-color-primary );
	--gf-color-in-ctrl-primary: var( --e-global-color-primary );
	--gf-field-pg-prog-bar-bg-color-blue: var( --e-global-color-secondary );
	--gf-ctrl-choice-check-color: var( --e-global-color-primary );
	--gf-ctrl-file-zone-icon-color: var( --e-global-color-secondary );
	
	--gf-ctrl-btn-bg-color-ctrl: var( --e-global-color-secondary );
	--gf-ctrl-btn-bg-color-disabled-ctrl: var( --e-global-color-primary );
	--gf-ctrl-btn-bg-color-disabled-primary: var( --e-global-color-primary );
	--gf-ctrl-btn-bg-color-focus-ctrl: var( --e-global-color-text );
	--gf-ctrl-btn-bg-color-focus-primary: var( --e-global-color-secondary );
	--gf-ctrl-btn-bg-color-hover-ctrl: var( --e-global-color-secondary );
}

.gform-theme--framework .gfield--type-choice .gchoice, .gform-theme--framework .gfield--type-choice .ginput_container_consent {
	align-items:center;
}

.elementor-element .gform_page .kommentar {
	color: var( --e-global-color-primary );
}

.elementor-shortcode .gform_wrapper .gform-theme-button:hover,
.elementor-shortcode .gform_wrapper .gform-theme-button:focus-visible {
	text-decoration: underline!important;
}

@media (min-width: 640px) {
  .gform-theme--foundation .gform_fields {
    -moz-column-gap: 2.5rem;
    column-gap: 2.5rem;
  }
}

/* Button styles */

.icon-button .elementor-button .elementor-button-content-wrapper,
.elementor-button .elementor-button-content-wrapper {
	display: flex;
	align-items: center;
}

.icon-button .elementor-button .elementor-button-icon svg, 
.elementor-button .elementor-button-icon svg {
	width: 1.5rem
}

.elementor-icon-wrapper {
	line-height: 1;
}

.elementor-element > .elementor-button > .elementor-button-content-wrapper .elementor-button-text, 
.gform-theme-button {
	position: relative;
	display: flex;
}

.elementor-element > .elementor-button > .elementor-button-content-wrapper .elementor-button-text::after, 
.gform-theme-button::after {
	position: absolute;
	height: 1px;
	background-color: #fff;
	content: "";
	bottom: -2px;
	left: 0;
	width: 0;
	transition: width .2s ease;
}

.elementor-element > .elementor-button:hover > .elementor-button-content-wrapper .elementor-button-text::after,
.gform-theme-button:hover::after {
	width: 100%;
}

/* Logo Breite */

.elementor-5595 .elementor-element.elementor-element-7c3f47e.elementor-element {
  min-width: 350px;
}

.overflow-carousel .swiper {
	overflow: visible;
}

.swiper-container:not(.swiper-container-initialized) > .swiper-wrapper, .swiper:not(.swiper-initialized) > .swiper-wrapper {
  overflow: visible;
}

body {
	overflow-x: hidden;
}

.tag {
	backdrop-filter: blur(20px);
}

.scroll-container {
	overflow: visible;
	will-change: transform;
	transition: transform 0.2s ease; /* Smooth transition for transform */
}

.panel {
	will-change: transform;
	aspect-ratio: 1.5;
	transition: background-size 0.2s ease;
}
    
.panel:hover {
	background-size: 130% !important;
	transition: 0.2s;
}

.overflow-hidden {
	overflow: hidden;
}

.sticky-section {
	transition: position 0.2s ease; /* Smooth transition for position change */
}

/* onpage nav buttons */

.elementor-shortcode .btn-secondary {
	border: 1px solid;
	border-color: var( --e-global-color-secondary );
	background-color: #fff;
	font-family: var( --e-global-typography-primary-font-family ), Sans-serif;
	font-size: var( --e-global-typography-primary-font-size );
	font-weight: var( --e-global-typography-primary-font-weight );
	color: var( --e-global-color-secondary );	
	border-radius: 1rem 1rem 1rem 1rem;
	padding: 0.75rem 1rem 0.75rem 1rem;
}

.elementor-shortcode .btn-secondary:hover, .elementor-shortcode .btn-secondary.active {
	background-color: var( --e-global-color-secondary );
	color: #fff;
}

/* check List styling */

.checklist-container ul:not([class]) {
	list-style: none;
	padding-left: 0;
	margin: 1.5rem 0;
}

.checklist-container ul:not([class]) li {
	position: relative;
	margin-bottom: 1rem;
	padding-top: 3px;
	padding-left: 42px;
}

.checklist-container ul:not([class]) li::before {
	position: absolute;
	left: 0;
	top: 0;
	content: "";
	width: 32px;
	height: 32px;
	border-radius: 16px;
	background: center center no-repeat var( --e-global-color-secondary );
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23ffffff' viewBox='0 0 256 256'%3E%3Cpath d='M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z'%3E%3C/path%3E%3C/svg%3E");
}

/* Normal list styling */

ul:not([class]), 
ul.acf-repeater-list {
  list-style: none;
  padding-left: 0;
  margin: 1.5rem 0 2.5rem 0;
}

ul:not([class]) li,
ul.acf-repeater-list li{
  position: relative;
  padding-left: 1.5rem;
  margin-bottom: 1rem;
}

ul:not([class]) li::before,
ul.acf-repeater-list li::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 4px;
  background-color: var( --e-global-color-secondary );
  position: absolute;
  left: 0.25em;
  top: 0.5em;
}

.elementor-widget-n-accordion .e-n-accordion ul:not([class]) li::before {
	background-color: #fff;
}

/* margin for headlines in editor block */
.elementor-widget-theme-post-content h2:not(:first-child),
.elementor-widget-theme-post-content h3:not(:first-child),
.elementor-widget-text-editor h2:not(:first-child),
.elementor-widget-text-editor h3:not(:first-child) {
	margin-top: 2.5rem;
}


/* Main Menu Dropdown */

.sub-menu.elementor-nav-menu--dropdown {
	min-width: 100%!important;
	padding-top: .75rem!important;
	padding-bottom: .75rem!important;
}

/* Card hover */

.elementor-element.card svg {
	transition: transform .3s ease;
}

.elementor-element.card:hover svg {
	transform: rotate(-45deg);
}

.elementor-element.card-img {
	aspect-ratio: 410 / 245;
	overflow: hidden;
	position: relative;
}

.elementor-element.card-img .elementor-widget-image img {
	width: 100%;
	height: 100%;
	max-width: 100%;
	object-fit: cover;
	object-position: center center;
	transition: transform 0.5s ease;
}

a.card:hover .card-img .elementor-widget-image img {
	transform: scale(110%);
}

/* Kenburnes Effect for Header Images */

.kenimage {
	aspect-ratio: 600 / 220;
}

.kenimage > .elementor-element {
	height: 100%;
}

.kenimage img {
  transform-origin: center center;
  animation: kenburns 40s infinite alternate;
  animation-timing-function: cubic-bezier(0.37, 0, 0.63, 1);
  will-change: transform;
  object-fit: cover;
  object-position: center center;
  width: 100%;
  height: 100%;
  max-width: 100%;
}

@keyframes kenburns {
  0% {
    transform: scale(1) translateX(0%)
        translateY(0%);
  }
  50% {
    transform: scale(1.2) translateX(5%) translateY(5%);
  }
  100% {
    transform: scale(1) translateX(0%)
        translateY(0%);
  }
}

/* Carousel fix for mobile 
.swiper {
	overflow: visible!important;
}
*/

@media (max-width: 768px) {
	.e-con.e-con > .e-con-inner > .elementor-element.overflow-carousel {
		max-width: unset;
	}
}

/* Link effect for sticky contact on home page */

.contact-links .elementor-icon-list-items a .elementor-icon-list-text {
	position: relative;
	display: flex;
}

.contact-links .elementor-icon-list-items a .elementor-icon-list-text::after {
	position: absolute;
	height: 2px;
	background-color: #fff;
	content: "";
	bottom: -2px;
	left: 0;
	width: 0;
	transition: width .2s ease;
}

.contact-links .elementor-icon-list-items a:hover .elementor-icon-list-text::after {
	width: 100%;
}

/* Mobile Nav font fix */

.elementor-element .mobile-nav nav.elementor-nav-menu__container ul.elementor-nav-menu > li.menu-item > a.elementor-item {
	font-size: 1.5rem;
}

.elementor-element .mobile-nav nav.elementor-nav-menu__container ul.elementor-nav-menu > li.menu-item > .elementor-nav-menu--dropdown li a.elementor-sub-item{
	line-height: 1.4
}

/* Velux iframe */

.velux-frame {
	height: 800px;
}

@media (max-width: 500px) {
	.velux-frame {
		height: 900px;
	}
}

@media (min-width: 1024px) {
	.velux-frame {
		height: 650px;
	}
}

@media (min-width: 1500px) {
	.velux-frame {
		height: 600px;
	}
}

/* Swiper pagination fix */

.elementor-widget-n-carousel .swiper-pagination-clickable .swiper-pagination-bullet,
.elementor-image-carousel-wrapper .swiper-pagination-clickable .swiper-pagination-bullet {
	border: 1px solid var( --e-global-color-text );
	opacity: 1;
	background-color: transparent;
}

.elementor-widget-n-carousel .swiper-pagination-clickable .swiper-pagination-bullet.swiper-pagination-bullet-active {
	background-color: var( --e-global-color-text );
}

/* Lenis Optimierungen */

html.lenis, html.lenis body {
  height: auto !important;
}

.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}

/* Instagram Feed */

#sb_instagram #sbi_load .sbi_load_btn, 
#sb_instagram .sbi_photo_wrap {
  overflow: hidden;
  border-radius: 24px;
}

/* Bildformate */

.elementor-element .e-con-inner .image-formatted-square {
	aspect-ratio: 1 / 1;
	overflow: hidden;
	position: relative;
}

.elementor-element .e-con-inner .image-formatted-square img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Fix für H1 Überschriften mobil */

@media (max-width: 767px) {
	.elementor-element h1.elementor-heading-title {
		hyphens: auto;
	}
}