/* Utility Klassen für Elementor / Royal Addons */
.haried-bg-light { background: var(--haried-color-surface-alt); }
.haried-bg-dark { background: var(--haried-color-primary); color: var(--haried-color-white); }
.haried-text-light, .haried-text-light * { color: var(--haried-color-white) !important; }
.haried-shadow { box-shadow: var(--haried-shadow-card); }
.haried-radius { border-radius: var(--haried-radius-md); overflow: hidden; }
.haried-radius-lg { border-radius: var(--haried-radius-lg); overflow: hidden; }
.haried-border { border: 1px solid var(--haried-color-border); }
.haried-max-width { width: var(--haried-container); max-width: calc(100vw - 40px); margin-left: auto; margin-right: auto; }
.haried-max-width-narrow { width: var(--haried-container-narrow); max-width: calc(100vw - 40px); margin-left: auto; margin-right: auto; }
.haried-p-0 { padding: 0 !important; }
.haried-overlap-top { margin-top: -72px; position: relative; z-index: 2; }
.haried-icon-chip {
	display: inline-flex;
	align-items: flex-start;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 16px;
	background: rgba(17, 59, 134, 0.08);
	color: var(--haried-color-primary);
}
.haried-section-title-center {
	text-align: center;
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
}
.haried-section-title-center .haried-divider {
	margin-left: auto;
	margin-right: auto;
}




/* v1.1.4 Elementor boxed width hard override */
.haried-container.e-con-boxed,
.haried-narrow.e-con-boxed,
.haried-hero__grid.e-con-boxed,
.haried-split.e-con-boxed,
.haried-contact-panel.e-con-boxed,
.haried-cta-band__layout.e-con-boxed,
.haried-site-header.e-con-boxed {
	--container-max-width: var(--haried-container) !important;
}

.haried-narrow.e-con-boxed {
	--container-max-width: var(--haried-container-narrow) !important;
}

.haried-container.e-con-boxed > .e-con-inner,
.haried-hero__grid.e-con-boxed > .e-con-inner,
.haried-split.e-con-boxed > .e-con-inner,
.haried-contact-panel.e-con-boxed > .e-con-inner,
.haried-cta-band__layout.e-con-boxed > .e-con-inner,
.haried-site-header.e-con-boxed > .e-con-inner {
	width: var(--haried-container) !important;
	max-width: var(--haried-container) !important;
}

.haried-narrow.e-con-boxed > .e-con-inner {
	width: var(--haried-container-narrow) !important;
	max-width: var(--haried-container-narrow) !important;
}

/* -------------------------------------------------
   Elementor compatibility fixes v1.1.1
   - Boxed container layouts work on .e-con-inner
   - Widget wrapper classes correctly style Elementor content
   - Buttons inherit HARIED styling even when class sits on widget wrapper
-------------------------------------------------- */

.haried-container.e-con-boxed > .e-con-inner,
.haried-narrow.e-con-boxed > .e-con-inner {
	width: var(--haried-container);
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}

.haried-narrow.e-con-boxed > .e-con-inner {
	width: var(--haried-container-narrow);
}

.haried-hero__grid.e-con-boxed > .e-con-inner {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr);
	gap: clamp(32px, 5vw, 64px);
	align-items: flex-start;
}

.haried-split.e-con-boxed > .e-con-inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(360px, 0.95fr);
	gap: clamp(24px, 4vw, 56px);
	align-items: flex-start;
}

.haried-split.is-reversed.e-con-boxed > .e-con-inner {
	grid-template-columns: minmax(360px, 0.95fr) minmax(0, 1fr);
}

.haried-split.is-reversed.e-con-boxed > .e-con-inner > :first-child {
	order: 2;
}

.haried-service-grid.e-con-boxed > .e-con-inner {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem;
}

.haried-cta-band__layout.e-con-boxed > .e-con-inner {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) auto;
	gap: 2rem;
	align-items: flex-start;
}

.haried-contact-panel.e-con-boxed > .e-con-inner {
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(320px, 1.05fr);
	gap: clamp(24px, 4vw, 44px);
}

.haried-hero .haried-eyebrow,
.haried-page-hero .haried-eyebrow,
.haried-cta-band .haried-eyebrow {
	background: rgba(255, 255, 255, 0.08);
	color: #9fc3ff;
}

.haried-hero .haried-eyebrow .elementor-widget-container,
.haried-page-hero .haried-eyebrow .elementor-widget-container,
.haried-cta-band .haried-eyebrow .elementor-widget-container {
	color: inherit;
}

.haried-hero .haried-eyebrow p,
.haried-page-hero .haried-eyebrow p,
.haried-cta-band .haried-eyebrow p {
	margin: 0;
	color: inherit !important;
}

.haried-hero .haried-eyebrow::before,
.haried-page-hero .haried-eyebrow::before,
.haried-cta-band .haried-eyebrow::before {
	background: #5da8ff;
	box-shadow: 0 0 0 6px rgba(93, 168, 255, 0.12);
}

.haried-divider .elementor-divider {
	padding-block-start: 0 !important;
	padding-block-end: 0 !important;
}

.haried-divider .elementor-divider-separator {
	width: 120px !important;
	max-width: 120px !important;
	margin: 0 !important;
	border-top-width: 3px !important;
	border-color: var(--haried-color-accent) !important;
}

.haried-hero .haried-hero__title .elementor-heading-title,
.haried-hero .elementor-widget-heading.haried-hero__title .elementor-heading-title {
	color: var(--haried-color-white) !important;
	text-shadow: 0 6px 24px rgba(0, 10, 51, 0.25);
}

.haried-hero .haried-hero__lead p,
.haried-page-hero .elementor-widget-text-editor p,
.haried-cta-band .elementor-widget-text-editor p {
	color: rgba(255, 255, 255, 0.88) !important;
}

.haried-hero__panel .elementor-widget-heading .elementor-heading-title,
.haried-hero__panel .elementor-heading-title {
	color: var(--haried-color-white) !important;
}

.haried-hero__panel .elementor-widget-text-editor p {
	color: rgba(255, 255, 255, 0.84) !important;
}

.haried-list-check.elementor-widget-icon-list .elementor-icon-list-items {
	margin: 0;
	padding: 0;
}

.haried-list-check.elementor-widget-icon-list .elementor-icon-list-item {
	align-items: flex-start;
}

.haried-list-check.elementor-widget-icon-list .elementor-icon-list-text {
	color: inherit;
	padding-left: 0.15rem;
}

.haried-hero .haried-list-check.elementor-widget-icon-list .elementor-icon-list-text,
.haried-page-hero .haried-list-check.elementor-widget-icon-list .elementor-icon-list-text,
.haried-cta-band .haried-list-check.elementor-widget-icon-list .elementor-icon-list-text,
.haried-hero__panel .haried-list-check.elementor-widget-icon-list .elementor-icon-list-text {
	color: rgba(255, 255, 255, 0.88) !important;
}

.haried-list-check.elementor-widget-icon-list .elementor-icon-list-icon,
.haried-list-check.elementor-widget-icon-list .elementor-icon-list-icon i,
.haried-list-check.elementor-widget-icon-list .elementor-icon-list-icon svg {
	color: var(--haried-color-accent) !important;
	fill: var(--haried-color-accent) !important;
}

.haried-hero .haried-eyebrow {
	padding: 0.34rem 0.72rem;
	font-size: 0.78rem;
	letter-spacing: 0.08em;
}

.haried-hero .haried-eyebrow .elementor-widget-container {
	padding: 0 !important;
}

.haried-hero .haried-divider {
	margin: 0.75rem 0 0.9rem;
}

.haried-hero .haried-hero__title,
.haried-hero .elementor-widget-heading.haried-hero__title {
	max-width: 10.4ch;
}

.haried-hero .haried-hero__title .elementor-heading-title,
.haried-hero .elementor-widget-heading.haried-hero__title .elementor-heading-title {
	font-size: clamp(2.35rem, 3.7vw, 3.95rem) !important;
	line-height: 0.98;
	letter-spacing: -0.035em;
	margin-bottom: 0;
}

.haried-hero .haried-hero__lead {
	max-width: 42ch;
}

.haried-hero .haried-hero__lead p {
	font-size: clamp(0.98rem, 1.05vw, 1.05rem);
	line-height: 1.6;
	max-width: 42ch;
	margin-bottom: 0;
}

.haried-hero__content {
	align-self: center;
}

.haried-hero__panel {
	align-self: center;
}

.haried-hero__panel .elementor-widget-heading .elementor-heading-title,
.haried-hero__panel .elementor-heading-title {
	font-size: clamp(1.55rem, 1.8vw, 2.45rem) !important;
	line-height: 1.02;
	max-width: 8ch;
	margin-bottom: 0.35rem;
}

.haried-hero__panel .elementor-widget-text-editor p {
	margin-bottom: 0.7rem;
}

.haried-hero__panel .haried-list-check.elementor-widget-icon-list .elementor-icon-list-items {
	display: grid;
	gap: 0.32rem;
}

.haried-hero__panel .haried-list-check.elementor-widget-icon-list .elementor-icon-list-item {
	margin: 0;
}

.haried-hero__actions {
	align-items: flex-start;
}

.haried-hero__content > .elementor-widget:not(:last-child) {
	margin-bottom: 0.35rem;
}

.haried-hero__content > .haried-hero__actions {
	margin-top: 0.9rem;
}

.haried-hero__panel > .elementor-widget:not(:last-child) {
	margin-bottom: 0.45rem;
}

.haried-hero__panel .haried-list-check.elementor-widget-icon-list .elementor-icon-list-text {
	font-size: 0.96rem;
}


.elementor-widget-button.haried-button {
	display: inline-block;
	min-height: 0;
	padding: 0;
	background: transparent;
	box-shadow: none;
	border: 0;
}

.elementor-widget-button.haried-button .elementor-widget-container {
	background: transparent;
}

.elementor-widget-button.haried-button .elementor-button {
	display: inline-flex;
	align-items: flex-start;
	justify-content: center;
	gap: 0.7rem;
	min-height: 46px;
	padding: 0.82rem 1.28rem;
	border: 0;
	border-radius: var(--haried-radius-pill);
	background: linear-gradient(135deg, var(--haried-color-primary) 0%, #113b86 100%) !important;
	box-shadow: 0 10px 22px rgba(0, 10, 51, 0.18) !important;
	color: var(--haried-color-white) !important;
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	transition: transform var(--haried-transition), box-shadow var(--haried-transition), opacity var(--haried-transition);
}

.elementor-widget-button.haried-button .elementor-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 16px 32px rgba(0, 10, 51, 0.26) !important;
	color: var(--haried-color-white) !important;
}

.elementor-widget-button.haried-button.is-secondary .elementor-button {
	background: var(--haried-color-white) !important;
	box-shadow: inset 0 0 0 1px rgba(0, 10, 51, 0.14), 0 10px 22px rgba(0, 10, 51, 0.08) !important;
	color: var(--haried-color-primary) !important;
}

.elementor-widget-button.haried-button.is-secondary .elementor-button:hover {
	color: var(--haried-color-primary) !important;
}

.haried-hero__actions > .elementor-widget-button.haried-button {
	width: auto;
	flex: 0 0 auto;
}

.haried-site-header .haried-nav-cta.elementor-widget-button,
.haried-site-header .haried-nav-cta .elementor-widget-container {
	background: transparent;
	box-shadow: none;
	padding: 0;
}

.haried-site-header .haried-nav-cta.elementor-widget-button .elementor-button {
	border-radius: var(--haried-radius-pill);
	background: linear-gradient(135deg, var(--haried-color-primary) 0%, #113b86 100%) !important;
	color: var(--haried-color-white) !important;
	font-weight: 700;
	box-shadow: 0 10px 24px rgba(0, 10, 51, 0.18) !important;
}

.haried-site-header .haried-nav-cta.elementor-widget-button .elementor-button:hover {
	transform: translateY(-2px);
	color: var(--haried-color-white) !important;
}


@media (max-width: 1280px) {
	.haried-hero__grid.e-con-boxed > .e-con-inner {
		grid-template-columns: minmax(0, 1fr);
		align-items: start;
	}

	.haried-hero__grid.e-con-boxed > .e-con-inner > .haried-hero__content {
		max-width: min(820px, 100%);
	}

	.haried-hero__grid.e-con-boxed > .e-con-inner > .haried-hero__panel {
		max-width: min(620px, 100%);
		justify-self: start;
		margin-top: 0.2rem;
	}

	.haried-hero .haried-hero__title .elementor-heading-title,
	.haried-hero .elementor-widget-heading.haried-hero__title .elementor-heading-title {
		font-size: clamp(2.2rem, 4vw, 3.4rem) !important;
	}
}

@media (max-width: 1200px) {
	.haried-service-grid.e-con-boxed > .e-con-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 1024px) {
	.haried-hero__grid.e-con-boxed > .e-con-inner,
	.haried-split.e-con-boxed > .e-con-inner,
	.haried-split.is-reversed.e-con-boxed > .e-con-inner,
	.haried-contact-panel.e-con-boxed > .e-con-inner,
	.haried-cta-band__layout.e-con-boxed > .e-con-inner {
		grid-template-columns: 1fr;
	}

	.haried-split.is-reversed.e-con-boxed > .e-con-inner > :first-child {
		order: initial;
	}
}

@media (max-width: 1024px) {
	.haried-hero {
		padding: 50px 0 42px;
	}

	.haried-hero .haried-hero__title,
	.haried-hero .elementor-widget-heading.haried-hero__title {
		max-width: none;
	}

	.haried-hero__panel .elementor-widget-heading .elementor-heading-title,
	.haried-hero__panel .elementor-heading-title {
		max-width: none;
	}
}

@media (max-width: 767px) {
	.haried-hero__actions > .elementor-widget-button.haried-button {
		width: 100%;
	}

	.haried-hero__actions > .elementor-widget-button.haried-button .elementor-button {
		width: 100%;
	}

	.haried-service-grid.e-con-boxed > .e-con-inner {
		grid-template-columns: 1fr;
	}
}


/* v1.1.7 footer fixes */
.haried-site-footer .haried-footer-grid,
.haried-site-footer .haried-footer-grid.e-con,
.haried-site-footer .haried-footer-grid > .e-con-inner {
	display: grid;
	grid-template-columns: minmax(240px, 1.2fr) repeat(3, minmax(0, 0.9fr));
	gap: clamp(28px, 3vw, 44px);
	align-items: start;
}

.haried-site-footer .haried-footer-col {
	min-width: 0;
	gap: 0.8rem;
	align-content: start;
}

.haried-site-footer .haried-footer-title .elementor-heading-title,
.haried-site-footer .haried-footer-heading .elementor-heading-title {
	font-size: clamp(1.5rem, 1.8vw, 2.15rem) !important;
	line-height: 1.05 !important;
	letter-spacing: -0.02em !important;
	margin: 0 0 0.65rem !important;
	color: #69c0ff !important;
}

.haried-site-footer .haried-footer-title .elementor-heading-title {
	font-size: clamp(1.7rem, 2vw, 2.4rem) !important;
}

.haried-site-footer .haried-footer-text p,
.haried-site-footer .haried-footer-link,
.haried-site-footer .haried-footer-links .elementor-icon-list-text,
.haried-site-footer .haried-footer-meta p,
.haried-site-footer .haried-footer-meta-link .elementor-icon-list-text {
	font-size: 0.98rem !important;
	line-height: 1.7 !important;
}

.haried-site-footer .haried-footer-links .elementor-icon-list-items,
.haried-site-footer .haried-footer-contact-list .elementor-icon-list-items {
	display: grid;
	gap: 0.55rem;
	padding: 0;
	margin: 0;
}

.haried-site-footer .haried-footer-links .elementor-icon-list-item,
.haried-site-footer .haried-footer-contact-list .elementor-icon-list-item,
.haried-site-footer .haried-footer-meta-link .elementor-icon-list-item {
	margin: 0;
}

.haried-site-footer .haried-footer-links .elementor-icon-list-icon,
.haried-site-footer .haried-footer-contact-list .elementor-icon-list-icon,
.haried-site-footer .haried-footer-meta-link .elementor-icon-list-icon {
	display: none !important;
}

.haried-site-footer .haried-footer-links a,
.haried-site-footer .haried-footer-contact-list a,
.haried-site-footer .haried-footer-meta-link a {
	color: rgba(255,255,255,0.82) !important;
	text-decoration: none;
}

.haried-site-footer .haried-footer-links a:hover,
.haried-site-footer .haried-footer-contact-list a:hover,
.haried-site-footer .haried-footer-meta-link a:hover {
	color: #69c0ff !important;
}

.haried-site-footer .haried-footer-legal {
	margin-top: clamp(24px, 3vw, 36px);
	padding-top: 1rem;
	border-top: 1px solid rgba(255,255,255,0.12);
}

.haried-site-footer .haried-footer-legal__inner,
.haried-site-footer .haried-footer-legal__inner.e-con,
.haried-site-footer .haried-footer-legal__inner > .e-con-inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 1rem 1.5rem;
}

.haried-site-footer .haried-footer-legal__copy {
	justify-self: start;
}

.haried-site-footer .haried-footer-legal__links {
	justify-self: end;
	margin-left: auto;
}

.haried-site-footer .haried-footer-meta-link .elementor-icon-list-items {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 0.8rem 1.2rem;
	padding: 0;
	margin: 0;
}

.haried-site-footer .haried-footer-meta-link .elementor-icon-list-text {
	font-size: 0.92rem !important;
	color: rgba(255,255,255,0.74) !important;
}

.haried-site-footer .haried-footer-meta-link a:hover .elementor-icon-list-text {
	color: #69c0ff !important;
}

@media (max-width: 1024px) {
	.haried-site-footer .haried-footer-grid,
	.haried-site-footer .haried-footer-grid > .e-con-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.haried-site-footer .haried-footer-grid,
	.haried-site-footer .haried-footer-grid > .e-con-inner,
	.haried-site-footer .haried-footer-legal__inner,
	.haried-site-footer .haried-footer-legal__inner > .e-con-inner {
		grid-template-columns: 1fr;
	}
	.haried-site-footer .haried-footer-legal__links,
	.haried-site-footer .haried-footer-legal__copy {
		justify-self: start;
		margin-left: 0;
	}
	.haried-site-footer .haried-footer-meta-link .elementor-icon-list-items {
		justify-content: flex-start;
	}
}


/* v1.1.8 hero panel title wrap fix */
.haried-hero__panel .elementor-widget-heading .elementor-heading-title,
.haried-hero__panel .elementor-heading-title {
	max-width: 12ch !important;
	white-space: normal;
	word-break: normal;
	overflow-wrap: normal;
	hyphens: none;
	text-wrap: balance;
}

@media (min-width: 1025px) {
	.haried-hero__panel {
		max-width: 500px;
	}
}


/* v1.2.0 split content refinement */
.haried-split__content {
	max-width: 700px;
	min-width: 0;
}

.haried-split__content .haried-eyebrow {
	margin-bottom: 0.5rem;
}

.haried-split__content .haried-divider {
	margin: 0.8rem 0 1.2rem;
}

.haried-split__content .elementor-widget-heading .elementor-heading-title,
.haried-split__content .elementor-heading-title {
	max-width: 12ch;
	font-size: clamp(2.35rem, 3.35vw, 4.1rem) !important;
	line-height: 0.98 !important;
	letter-spacing: -0.035em !important;
	text-wrap: balance;
	margin: 0 0 1rem !important;
}

.haried-split__content .elementor-widget-text-editor p {
	max-width: 58ch;
	font-size: clamp(1rem, 1.05vw, 1.08rem) !important;
	line-height: 1.72 !important;
	color: var(--haried-color-text) !important;
	margin-bottom: 0;
}

.haried-split__content .elementor-widget-text-editor p + p {
	margin-top: 1.15rem;
}

@media (max-width: 1024px) {
	.haried-split__content .elementor-widget-heading .elementor-heading-title,
	.haried-split__content .elementor-heading-title {
		max-width: 13ch;
		font-size: clamp(2rem, 4.8vw, 3.1rem) !important;
	}
}

@media (max-width: 767px) {
	.haried-split__content .elementor-widget-heading .elementor-heading-title,
	.haried-split__content .elementor-heading-title {
		max-width: 100%;
		font-size: clamp(1.9rem, 8vw, 2.6rem) !important;
		line-height: 1.02 !important;
	}

	.haried-split__content .elementor-widget-text-editor p {
		max-width: 100%;
	}
}
