/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.1.5
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* ===== Scroll-Back Header ===== */

#navbarcontainer {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	z-index: 1000 !important;
	background: transparent !important;
}

#navbarcontainer::before {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	background: var(--e-global-color-primary) !important;
	opacity: 0 !important;
	transition: opacity 0.25s ease-out !important;
	z-index: -1 !important;
}

#navbarcontainer.header-sticky::before,
body.menu-active #navbarcontainer::before {
	opacity: 1 !important;
	transition-duration: 0s !important;
}

#navbarcontainer.header-sticky {
	position: fixed !important;
}

.admin-bar #navbarcontainer {
	top: 32px !important;
}

#menucontainer {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	z-index: 999 !important;
	background: var(--e-global-color-primary) !important;
	clip-path: inset(0 0 100% 0) !important;
	transition: clip-path 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
	max-height: 100vh !important;
	max-height: 100dvh !important;
	overflow-y: auto !important;
	overscroll-behavior: contain;
}

#menucontainer.menu-open {
	clip-path: inset(0 0 0 0) !important;
}

body.menu-active .hpc-booking-bar {
	display: none !important;
}

/* Hero-Logo: Navbar-Logo Base-Positioning */
#navbarlogo {
	position: relative;
	translate: 0 0;
	scale: 1;
}

/* Menu offen: Logo zurueck in Navbar (liegt sonst ueber dem Menu) */
body.menu-active #navbarlogo {
	translate: 0 0;
	scale: 1;
}


/* ===== Accent Notes (Bewertungszahlen etc.) ===== */

.accentnotes .elementor-icon-list-text > span {
	font-family: var(--e-global-typography-primary-font-family), Sans-serif;
	font-size: 1.8em;
	line-height: 1;
}


@media (max-width: 1024px) {
	.accentnotes .elementor-icon-list-items.elementor-inline-items {
		flex-direction: column;
		align-items: center;
		gap: 4px;
	}
	.accentnotes .elementor-inline-items .elementor-icon-list-item {
		margin: 0;
	}
	.accentnotes .elementor-inline-items .elementor-icon-list-item::after {
		display: none;
	}
}

@media (max-width: 430px) {
	.accentnotes .elementor-icon-list-item:first-child {
		display: none;
	}
}


/* ===== Navbar Info-Liste: Slide + Fade beim Scrollen ===== */

/* Base-State: Transition für das EINBLENDEN (zurück nach oben) */
#navbarcontainer .navbarinfolist .elementor-icon-list-text {
	max-width: 300px;
	opacity: 1;
	overflow: hidden;
	white-space: nowrap;
	padding-inline-start: 5px;
	transition: max-width 0.6s cubic-bezier(0.22, 1, 0.36, 1),
	            padding-inline-start 0.5s cubic-bezier(0.22, 1, 0.36, 1),
	            opacity 0.4s ease 0.2s !important;
}

/* Away-State: Info-Text ausblenden sobald gescrollt */
#navbarcontainer.header-away .navbarinfolist .elementor-icon-list-text {
	max-width: 0 !important;
	opacity: 0 !important;
	padding-inline-start: 0 !important;
	pointer-events: none;
	transition: opacity 0.15s ease,
	            max-width 0.25s cubic-bezier(0.2, 0, 0, 1) 0.05s,
	            padding-inline-start 0.25s ease 0.05s !important;
}

/* Mehr Abstand zwischen Info-Items (auch auf Desktop fuer 2-zeiliges Layout) */
#navbarcontainer .navbarinfolist .elementor-icon-list-items {
	gap: 12px;
}

/* Mobile: nur Text ausblenden, Icons enger zusammen */
@media (max-width: 767px) {
	#navbarcontainer .navbarinfolist .elementor-icon-list-text {
		display: none !important;
	}
	#navbarcontainer .navbarinfolist .elementor-icon-list-items {
		gap: 4px;
	}
}


/* ===== Typografie ===== */

b, strong {
	font-weight: 600;
	font-family: "Crimson Pro Semibold", serif;
}

.elementor-widget-text-editor p:last-child,
.elementor-widget-theme-post-content p:last-child {
	margin-bottom: 0;
}

blockquote {
	max-width: 700px;
	margin-left: auto;
	margin-right: auto;
	line-height: calc(1em + 0.45em);
}


/* ===== Punkt-Trenner im Nav-Menü ===== */

.pointdiv .elementor-nav-menu--main .menu-item + .menu-item {
	display: flex;
	align-items: center;
}

.pointdiv .elementor-nav-menu--main .menu-item + .menu-item::before {
	content: "·";
	margin-right: 0.2em;
	margin-left: 0.2em;
	color: var(--e-global-color-59989b6);
	pointer-events: none;
	line-height: 1;
}


/* ===== Button — Text mit Unterstrich ===== */

.elementor-button-info .elementor-button,
.elementor-button-info .elementor-button.elementor-button-link {
	background: transparent;
	border: none;
	box-shadow: none;
	padding: 0;
	font-family: var(--e-global-typography-ddb5a9e-font-family), serif;
	font-weight: var(--e-global-typography-ddb5a9e-font-weight);
	font-size: var(--e-global-typography-ddb5a9e-font-size);
	text-transform: var(--e-global-typography-ddb5a9e-text-transform);
	line-height: var(--e-global-typography-ddb5a9e-line-height);
	color: var(--e-global-color-text);
	text-decoration: underline;
	text-decoration-color: currentColor;
	text-underline-offset: 4px;
	text-decoration-thickness: 1px;
}

.elementor-button-info .elementor-button:hover,
.elementor-button-info .elementor-button.elementor-button-link:hover {
	color: var(--e-global-color-accent);
	text-decoration-color: currentColor;
	text-decoration-thickness: 1.5px;
}


/* ===== Button — Text mit Unterstrich (dunkler Hintergrund) ===== */

.elementor-button-success .elementor-button,
.elementor-button-success .elementor-button.elementor-button-link {
	background: transparent;
	border: none;
	box-shadow: none;
	padding: 0;
	font-family: var(--e-global-typography-ddb5a9e-font-family), serif;
	font-weight: var(--e-global-typography-ddb5a9e-font-weight);
	font-size: var(--e-global-typography-ddb5a9e-font-size);
	text-transform: var(--e-global-typography-ddb5a9e-text-transform);
	line-height: var(--e-global-typography-ddb5a9e-line-height);
	color: var(--e-global-color-1e65a15);
	text-decoration: underline;
	text-decoration-color: currentColor;
	text-underline-offset: 4px;
	text-decoration-thickness: 1px;
}

.elementor-button-success .elementor-button:hover,
.elementor-button-success .elementor-button.elementor-button-link:hover {
	color: var(--e-global-color-accent);
	text-decoration-color: currentColor;
	text-decoration-thickness: 1.5px;
}


/* ===== Elementor — Transitions/Animationen deaktivieren ===== */
/* #menucontainer bleibt davon unberührt (ID > Wildcard)
   .elementor-location-header braucht explizite Ausnahme */

.elementor *,
.elementor *::before,
.elementor *::after {
	transition: none !important;
	animation: none !important;
}

/* #navbarcontainer hat ID-Spezifität, braucht keine extra Ausnahme */

/* Popups: Headings nicht uppercase */
.elementor-location-popup .elementor-heading-title {
	text-transform: none !important;
}

/* Gallery-Carousel: Einblendung nach JS-Init */
.hpc-gallery-carousel {
	transition: opacity 0.3s ease !important;
}

/* Swiper-Carousel braucht Transitions fuer Slide-Animation */
.hpc-gallery-carousel .swiper-wrapper {
	transition: transform var(--swiper-transition-duration, 300ms) ease !important;
}

/* Gallery-Carousel Pfeile brauchen Transition fuer Hover + Disabled-Ausblendung */
.hpc-gallery-carousel .hpc-carousel-prev,
.hpc-gallery-carousel .hpc-carousel-next {
	transition: color 0.3s ease, opacity 0.3s ease !important;
}

/* Newsletter-Button braucht Transition fuer Hover */
.hpc-newsletter__button {
	transition: background 0.2s ease !important;
}

/* Info-Button / Success-Button (Text mit Unterstrich) braucht Transition fuer Hover */
.elementor-button-info a.elementor-button,
.elementor-button-info a.elementor-button.elementor-button-link,
.elementor-button-success a.elementor-button,
.elementor-button-success a.elementor-button.elementor-button-link {
	transition: color 0.2s ease, text-decoration-color 0.2s ease !important;
}

/* Hero-Button braucht Transition fuer Hover */
.hpc-hero__button-wrap a.elementor-button {
	transition: color 0.2s ease, text-decoration-color 0.2s ease !important;
}

/* Booking Bar braucht Transitions fuer Hover */
.hpc-booking-bar__field {
	transition: background 0.15s ease !important;
}
.hpc-booking-bar__button {
	transition: background 0.2s ease !important;
}
.hpc-cal__day {
	transition: background 0.1s ease !important;
}

/* Booking Bar Lade-Animationen (Slide-up + Stagger + Button-Pulse) */
@media (prefers-reduced-motion: no-preference) {
	.hpc-booking-bar,
	.hpc-booking-bar::before {
		animation: hpc-bb-slide-up 900ms cubic-bezier(0.16, 1, 0.3, 1) 500ms both !important;
	}
	.hpc-booking-bar > * {
		animation: hpc-bb-fade-in 600ms cubic-bezier(0.22, 1, 0.36, 1) both !important;
	}
	.hpc-booking-bar__field[data-field="checkin"]  { animation-delay: 1100ms !important; }
	.hpc-booking-bar__field[data-field="checkout"] { animation-delay: 1200ms !important; }
	.hpc-booking-bar__button                       { animation-delay: 1300ms !important; }
	.hpc-booking-bar__tagline                      { animation-delay: 1400ms !important; }

	.hpc-booking-bar__button {
		animation: hpc-bb-fade-in 600ms cubic-bezier(0.22, 1, 0.36, 1) 1300ms both,
				   hpc-bb-button-pulse 800ms ease-in-out 2400ms 2 !important;
	}
}

/* Timeline braucht Transitions fuer Scroll-Animationen */
.hpc-timeline__fade {
	transition: opacity 0.5s ease, transform 1s cubic-bezier(0.22, 1, 0.36, 1) !important;
}
.hpc-timeline__entry:first-child .hpc-timeline__fade {
	transition-delay: 0.3s !important;
}
.hpc-timeline__year {
	transition: background-color 0.25s ease, color 0.25s ease !important;
}

/* Image Hover: Overlay Transition
   Base = mouse-out (mittel), :hover = mouse-in (langsam) */
.elementor-widget-image a::after,
a.e-con .elementor-widget-image::after,
.e-gallery-item::after {
	transition: opacity 0.35s ease-out !important;
}
.elementor-widget-image a:hover::after,
a.e-con:hover .elementor-widget-image::after,
.e-gallery-item:hover::after {
	transition: opacity 0.5s ease-out !important;
}

/* Post-Navigation Pfeile brauchen Transition fuer Hover */
.elementor-post-navigation .post-navigation__arrow-wrapper {
	transition: color 0.3s ease !important;
}


/* ===== Swiper Nav-Pfeile (global) ===== */
.elementor-swiper-button {
	width: 42px !important;
	height: 42px !important;
	border-radius: 50%;
	background: var(--e-global-color-1e65a15) !important;
	color: var(--e-global-color-primary) !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	padding: 14px !important;
	transition: color 0.3s ease !important;
}

.elementor-swiper-button i,
.elementor-swiper-button svg.e-font-icon-svg {
	display: none !important;
}

.elementor-swiper-button::after {
	content: '' !important;
	display: block;
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	background: currentColor;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}

.elementor-swiper-button-prev::after {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 500 500' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform='translate(500,8.96) scale(-0.96415,0.96415)'%3E%3Cpolygon points='268.58 0 233.18 35.41 422.73 224.96 0 224.96 0 275.04 422.73 275.04 233.18 464.59 268.58 500 518.58 250 268.58 0'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 500 500' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform='translate(500,8.96) scale(-0.96415,0.96415)'%3E%3Cpolygon points='268.58 0 233.18 35.41 422.73 224.96 0 224.96 0 275.04 422.73 275.04 233.18 464.59 268.58 500 518.58 250 268.58 0'/%3E%3C/g%3E%3C/svg%3E");
}

.elementor-swiper-button-next::after {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 500 500' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform='translate(0,8.96) scale(0.96415)'%3E%3Cpolygon points='268.58 0 233.18 35.41 422.73 224.96 0 224.96 0 275.04 422.73 275.04 233.18 464.59 268.58 500 518.58 250 268.58 0'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 500 500' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform='translate(0,8.96) scale(0.96415)'%3E%3Cpolygon points='268.58 0 233.18 35.41 422.73 224.96 0 224.96 0 275.04 422.73 275.04 233.18 464.59 268.58 500 518.58 250 268.58 0'/%3E%3C/g%3E%3C/svg%3E");
}

.elementor-swiper-button:hover {
	color: var(--e-global-color-accent) !important;
}

.elementor-swiper-button.swiper-button-disabled {
	opacity: 0 !important;
	pointer-events: none;
}

/* Lightbox: Pfeile sofort sichtbar (kein carousel-visible Parent) */
.elementor-lightbox .elementor-swiper-button {
	animation: none !important;
	opacity: 1 !important;
}

.elementor-lightbox .elementor-swiper-button-prev {
	left: 5px !important;
}

.elementor-lightbox .elementor-swiper-button-next {
	right: 5px !important;
}

@media (max-width: 767px) {
	.elementor-swiper-button {
		width: 36px !important;
		height: 36px !important;
		padding: 11px !important;
	}

	.elementor-swiper-button::after {
		width: 14px;
		height: 14px;
	}
}


/* ===== FAQ Nested Accordion ===== */

.e-n-accordion .e-n-accordion-item {
	border-top: 1px solid var(--e-global-color-4bfc3ab);
}

.e-n-accordion .e-n-accordion-item:last-child {
	border-bottom: 1px solid var(--e-global-color-4bfc3ab);
}

.e-n-accordion .e-n-accordion-item-title {
	padding: 22px 0;
	cursor: pointer;
	list-style: none;
}

.e-n-accordion .e-n-accordion-item-title::-webkit-details-marker,
.e-n-accordion .e-n-accordion-item-title::marker {
	display: none;
	content: "";
}


.e-n-accordion .e-n-accordion-item-title-icon {
	flex-shrink: 0;
	transition: transform 0.3s ease !important;
}

.e-n-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-icon {
	transform: rotate(135deg);
}

.e-n-accordion .e-n-accordion-item-title-icon svg {
	width: 11px;
	height: 11px;
	fill: var(--e-global-color-primary);
}

.e-n-accordion .e-n-accordion-item > [role="region"] {
	padding: 0 0 18px 0;
}


/* ===== Heading-Widgets: weniger Abstand nach unten ===== */

.elementor-widget-heading {
	margin-bottom: -8px !important;
}


/* ===== Eyebrow (kleine Zeile ueber Heading) ===== */

.eyeb {
	margin-bottom: -10px !important;
}

.eyeb .elementor-heading-title {
	color: var(--e-global-color-eecd621) !important;
}

/* ===== Tags ===== */

.tag ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 11px;
}

.tag ul li {
	padding: 6px 6px;
	background: var(--e-global-color-767dbc8);
	font-family: var(--e-global-typography-22ceed3-font-family), Sans-serif;
	font-size: var(--e-global-typography-22ceed3-font-size);
	line-height: var(--e-global-typography-22ceed3-line-height);
	border-radius: 2px;
}

/* Post-Info Widget: Elementor-Spezifitaet ueberschreiben */
.tag.elementor-widget-post-info ul.elementor-inline-items {
	margin: 0;
}

.tag.elementor-widget-post-info ul.elementor-inline-items li.elementor-inline-item {
	margin: 0;
	padding: 6px 6px;
	font-family: var(--e-global-typography-22ceed3-font-family), Sans-serif;
	font-size: var(--e-global-typography-22ceed3-font-size);
	line-height: var(--e-global-typography-22ceed3-line-height);
}

.tag.elementor-widget-post-info .elementor-icon-list-text {
	font-size: inherit;
	line-height: inherit;
}



/* ===== Bildformate ===== */

.image32 img {
	aspect-ratio: 3 / 2;
	object-fit: cover;
	width: 100%;
	height: auto;
}

.image23 img {
	aspect-ratio: 2 / 3;
	object-fit: cover;
	width: 100%;
	height: auto;
}


/* ===== Loop-Karussell (Unterkunft etc.) ===== */

/* Swiper braucht Transition fuer Slide-Animation (Transition-Kill Ausnahme) */
.elementor-widget-loop-carousel .swiper-wrapper {
	transition: transform var(--swiper-transition-duration, 300ms) ease !important;
}

/* --img-h wird per JS gesetzt (tatsaechliche Bildhoehe) */
.elementor-widget-loop-carousel .elementor-swiper-button {
	top: 0 !important;
	transform: none !important;
	margin-top: var(--img-h-half, 50%);
}

.elementor-widget-loop-carousel .elementor-swiper-button-prev {
	left: 5px !important;
}

.elementor-widget-loop-carousel .elementor-swiper-button-next {
	right: 5px !important;
}


/* ===== Links in Fliesstext ===== */

.elementor-widget-text-editor a {
	text-decoration: underline;
	text-decoration-color: var(--e-global-color-5f01480);
	text-underline-offset: 3px;
}

.elementor-widget-text-editor a:hover {
	color: var(--e-global-color-accent);
	text-decoration-color: var(--e-global-color-accent);
}


/* ===== Image Hover (Overlay) ===== */

.elementor-widget-image a {
	position: relative;
	display: block;
}

.elementor-widget-image a::after,
a.e-con .elementor-widget-image::after,
.e-gallery-item::after {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.15);
	opacity: 0;
	z-index: 1;
	pointer-events: none;
}
.elementor-widget-image a:hover::after,
a.e-con:hover .elementor-widget-image::after,
.e-gallery-item:hover::after {
	opacity: 1;
}

.elementor-widget-image a img,
.elementor-widget-image a picture,
a.e-con .elementor-widget-image img,
a.e-con .elementor-widget-image picture {
	display: block;
}


/* ===== Wordlist (inline Begriffe mit Abstand) ===== */

.wordlist {
	list-style: none;
	margin: 0;
}

.wordlist ul {
	padding: 0;
}

.wordlist li {
	list-style: none;
	margin-bottom: 0.75em;
}

.maxp {
	max-width: 768px !important;
}


/* ===== Section Spacing ===== */

.sp {
	padding-top: 80px !important;
	padding-bottom: 80px !important;
}
.spt { padding-top: 80px !important; padding-bottom: 20px !important; }
.spb { padding-bottom: 80px !important; }

.sp-sm {
	padding-top: 40px !important;
	padding-bottom: 40px !important;
}
.spt-sm { padding-top: 40px !important; }
.spb-sm { padding-bottom: 40px !important; }

@media (max-width: 1024px) {
	.sp {
		padding-top: 60px !important;
		padding-bottom: 60px !important;
	}
	.spb { padding-bottom: 60px !important; }
	.sp-sm {
		padding-top: 30px !important;
		padding-bottom: 30px !important;
	}
	.spt-sm { padding-top: 30px !important; }
	.spb-sm { padding-bottom: 30px !important; }
}

@media (max-width: 767px) {
	.sp {
		padding-top: 40px !important;
		padding-bottom: 40px !important;
	}
	.spb { padding-bottom: 40px !important; }
	.sp-sm {
		padding-top: 24px !important;
		padding-bottom: 24px !important;
	}
	.spt-sm { padding-top: 24px !important; }
	.spb-sm { padding-bottom: 24px !important; }
}


/* ===== Sticky Content (natives CSS sticky) ===== */

.sticky-content {
	position: sticky !important;
	top: 120px !important;
	align-self: flex-start !important;
}

@media (max-width: 767px) {
	.sticky-content {
		position: static !important;
		align-self: auto !important;
	}
}


/* ===== Stagger Up (Scroll-Reveal) ===== */

.stagger-up > .elementor-element,
.stagger-up > .e-con-inner > .elementor-element,
.stagger-up .elementor-loop-container.swiper > .swiper-wrapper > .swiper-slide,
.stagger-up .elementor-loop-container:not(.swiper) > * {
	opacity: 0 !important;
	transform: translateY(48px) !important;
	transition: opacity 0.5s ease-out,
	            transform 0.8s cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.stagger-up.stagger-revealed > .elementor-element,
.stagger-up.stagger-revealed > .e-con-inner > .elementor-element,
.stagger-up.stagger-revealed .elementor-loop-container.swiper > .swiper-wrapper > .swiper-slide,
.stagger-up.stagger-revealed .elementor-loop-container:not(.swiper) > * {
	opacity: 1 !important;
	transform: translateY(0) !important;
	transition-delay: calc(var(--stagger-i, 0) * 0.3s) !important;
}

/* Mobile: per-child reveal (Widget-Elemente + Loop Grid Items, nicht Swiper-Slides) */
@media (max-width: 767px) {
	.stagger-up.stagger-revealed > .elementor-element,
	.stagger-up.stagger-revealed > .e-con-inner > .elementor-element,
	.stagger-up.stagger-revealed .elementor-loop-container:not(.swiper) > * {
		opacity: 0 !important;
		transform: translateY(48px) !important;
	}
	.stagger-up.stagger-revealed > .elementor-element.stagger-child-revealed,
	.stagger-up.stagger-revealed > .e-con-inner > .elementor-element.stagger-child-revealed,
	.stagger-up.stagger-revealed .elementor-loop-container:not(.swiper) > .stagger-child-revealed {
		opacity: 1 !important;
		transform: translateY(0) !important;
		transition-delay: 0s !important;
	}
}

/* Carousel-Pfeile: einmal einblenden mit Verzoegerung bei Sichtbarkeit */
@keyframes fade-in-arrow {
	from { opacity: 0; }
	to   { opacity: 1; }
}
.elementor-swiper-button,
.hpc-carousel-prev,
.hpc-carousel-next {
	animation: fade-in-arrow 0.3s ease 0.3s both !important;
	animation-play-state: paused !important;
}
.carousel-visible .elementor-swiper-button,
.carousel-visible .hpc-carousel-prev,
.carousel-visible .hpc-carousel-next,
.stagger-up.stagger-revealed .elementor-swiper-button,
.stagger-up.stagger-revealed .hpc-carousel-prev,
.stagger-up.stagger-revealed .hpc-carousel-next {
	animation-play-state: running !important;
}
.stagger-up.stagger-revealed .elementor-swiper-button-next,
.stagger-up.stagger-revealed .hpc-carousel-next {
	animation-delay: 1.2s !important;
}
.elementor-swiper-button.swiper-button-disabled,
.hpc-carousel-prev.swiper-button-disabled,
.hpc-carousel-next.swiper-button-disabled {
	animation: none !important;
	opacity: 0 !important;
}

/* Editor: stagger deaktivieren */
.elementor-editor-active .stagger-up > .elementor-element,
.elementor-editor-active .stagger-up > .e-con-inner > .elementor-element,
.elementor-editor-active .stagger-up .elementor-loop-container.swiper > .swiper-wrapper > .swiper-slide,
.elementor-editor-active .stagger-up .elementor-loop-container:not(.swiper) > * {
	opacity: 1 !important;
	transform: none !important;
	transition: none !important;
}


/* ===== Elementor Button Text links ausrichten ===== */

span.elementor-button-text {
	text-align: left;
}

/* ===== Elementor Buttons ohne Link ausblenden ===== */

.elementor-widget-button a.elementor-button:not([href]) {
	display: none;
}


/* ===== Simple Content (.simplecontent) ===== */

.simplecontent h2,
.simplecontent h3,
.simplecontent h4 {
	text-transform: none !important;
}

.simplecontent h2 {
	margin-top: 2.5em !important;
	margin-bottom: 0.6em !important;
}

.simplecontent h3 {
	margin-top: 1.8em !important;
	margin-bottom: 0.4em !important;
}

.simplecontent h4 {
	margin-top: 1.2em !important;
	margin-bottom: 0.3em !important;
}

.simplecontent h2:first-of-type {
	margin-top: 0 !important;
}

.simplecontent p {
	margin-bottom: 1em;
}

.simplecontent ul,
.simplecontent ol {
	padding-left: 1.25em;
	margin-bottom: 1em;
}

.simplecontent li {
	margin-bottom: 0.4em;
}

.simplecontent address {
	font-style: normal;
	margin-bottom: 1em;
}

.simplecontent blockquote {
	margin: 2em 0;
	padding: 1.2em 1.5em;
	border-left: 3px solid var(--e-global-color-accent);
	font-style: italic;
}

.simplecontent a:hover {
	text-decoration-color: currentColor;
}


/* ===== Post-Navigation Pfeile ===== */
.elementor-post-navigation .post-navigation__arrow-wrapper {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--e-global-color-1e65a15);
	color: var(--e-global-color-primary);
	display: flex;
	align-items: center;
	justify-content: center;
}

.elementor-post-navigation .post-navigation__arrow-wrapper svg {
	display: none;
}

.elementor-post-navigation .post-navigation__arrow-wrapper::after {
	content: '';
	display: block;
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	background: currentColor;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}

.elementor-post-navigation .post-navigation__arrow-prev::after {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 500 500' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform='translate(500,8.96) scale(-0.96415,0.96415)'%3E%3Cpolygon points='268.58 0 233.18 35.41 422.73 224.96 0 224.96 0 275.04 422.73 275.04 233.18 464.59 268.58 500 518.58 250 268.58 0'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 500 500' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform='translate(500,8.96) scale(-0.96415,0.96415)'%3E%3Cpolygon points='268.58 0 233.18 35.41 422.73 224.96 0 224.96 0 275.04 422.73 275.04 233.18 464.59 268.58 500 518.58 250 268.58 0'/%3E%3C/g%3E%3C/svg%3E");
}

.elementor-post-navigation .post-navigation__arrow-next::after {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 500 500' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform='translate(0,8.96) scale(0.96415)'%3E%3Cpolygon points='268.58 0 233.18 35.41 422.73 224.96 0 224.96 0 275.04 422.73 275.04 233.18 464.59 268.58 500 518.58 250 268.58 0'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 500 500' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform='translate(0,8.96) scale(0.96415)'%3E%3Cpolygon points='268.58 0 233.18 35.41 422.73 224.96 0 224.96 0 275.04 422.73 275.04 233.18 464.59 268.58 500 518.58 250 268.58 0'/%3E%3C/g%3E%3C/svg%3E");
}

.elementor-post-navigation .post-navigation__arrow-wrapper:hover {
	color: var(--e-global-color-accent);
}

@media (max-width: 767px) {
	.elementor-post-navigation .post-navigation__arrow-wrapper {
		width: 36px;
		height: 36px;
	}

	.elementor-post-navigation .post-navigation__arrow-wrapper::after {
		width: 14px;
		height: 14px;
	}
}


/* ===== Focus-Visible States (A11y) ===== */

.hpc-booking-bar__field:focus-visible,
.hpc-booking-bar__button:focus-visible,
.hpc-cal__nav:focus-visible,
.hpc-cal__day:focus-visible,
.hpc-newsletter__input:focus-visible,
.hpc-newsletter__checkbox:focus-visible,
.hpc-gallery-carousel .hpc-carousel-prev:focus-visible,
.hpc-gallery-carousel .hpc-carousel-next:focus-visible,
.hpc-newsletter__button:focus-visible,
.hpc-menu-toggle:focus-visible,
.hpc-menu a:focus-visible {
	outline: 2px solid var(--e-global-color-primary) !important;
	outline-offset: 2px !important;
}


/* ===== Vergleichstabelle (.vergleich) ===== */

.vergleich table {
	width: 100%;
	border-collapse: collapse;
}

.vergleich col.kriterium { width: 33%; }
.vergleich col.spalte { width: 33%; }

.vergleich th,
.vergleich td {
	padding: 0.5em 0.75em 2em 0;
	border: none;
	border-top: 1px solid var(--e-global-color-4bfc3ab);
	text-align: left;
	vertical-align: top;
	background: transparent;
}

.vergleich table thead:first-child tr:first-child th,
.vergleich table colgroup + thead tr:first-child th {
	border-top: none;
	border-block-start: none;
	padding-top: 0;
	padding-bottom: 1em;
}

/* Zebra-Stripe Reset (Elementor/Theme setzt manchmal odd-Rows) */
.vergleich tbody > tr:nth-child(odd) > td,
.vergleich tbody > tr:nth-child(odd) > th,
.vergleich tbody tr:hover > td,
.vergleich tbody tr:hover > th {
	background-color: transparent;
}


@media (max-width: 767px) {
	.vergleich,
	.vergleich table,
	.vergleich tbody {
		display: block;
		width: 100%;
	}

	.vergleich thead { display: none; }
	.vergleich colgroup { display: none; }

	.vergleich tbody tr {
		display: grid;
		grid-template-columns: 1fr 1fr;
		border-top: 1px solid var(--e-global-color-4bfc3ab);
		padding: 1em 0;
	}

	.vergleich td {
		border: none;
		padding: 0.25em 0.5em;
	}

	/* Kriterium auf Mobile ausblenden (kommt via data-kriterium) */
	.vergleich td:first-child {
		display: none;
	}

	.vergleich td[data-label] {
		display: flex;
		flex-direction: column;
		padding-left: 0;
	}

	/* Label (bold, oben) */
	.vergleich td[data-label]::before {
		content: attr(data-label);
		font-weight: 600;
		order: -2;
	}

	/* Kriterium (normal, zwischen Label und Wert) */
	.vergleich td[data-kriterium]::after {
		content: attr(data-kriterium);
		order: -1;
		margin-bottom: 0.25em;
	}
}

/* ===== Footer Grid Mobile ===== */

@media (max-width: 767px) {
	.elementor-21 .elementor-element-1279e99 > .e-con:first-child {
		grid-column: 1 / -1;
	}
}