/* ADELI Navigation 1.0.1 */

.anv {
	--anv-ink: #070C2B;
	--anv-cyan: #21C8DE;
	--anv-cyan-light: #A6EBF3;
	--anv-line: rgba(7, 12, 43, .14);
	--anv-font: neue-haas-unica, "Neue Haas Unica", "Helvetica Neue", Arial, sans-serif;
	--anv-ease: cubic-bezier(.22, .8, .24, 1);

	display: flex; align-items: stretch; justify-content: flex-end;
	width: 100%; min-height: 44px;
	font-family: var(--anv-font) !important;
	contain: inline-size; /* Leiste darf die Elementor-Spalte nicht aufdehnen */
}
.anv *, .anv *::before, .anv *::after,
.anv-portal *, .anv-portal *::before, .anv-portal *::after { box-sizing: border-box; }

.anv-btn {
	-webkit-appearance: none !important; appearance: none !important;
	background: none !important; border: 0 !important; box-shadow: none !important;
	margin: 0 !important; padding: 0 !important; border-radius: 0 !important; min-height: 0 !important;
	color: inherit !important; font: inherit !important; letter-spacing: inherit !important; text-transform: none !important; text-align: left !important;
	cursor: pointer; -webkit-tap-highlight-color: transparent !important;
}
.anv-btn:focus { outline: none !important; }
.anv :focus-visible, .anv-portal :focus-visible { outline: 2px solid var(--anv-cyan); outline-offset: 3px; border-radius: 2px; }

/* =========================================================================
   Desktop – Maße und Farben 1:1 vom bisherigen JetMenu übernommen
   ====================================================================== */

.anv-desk { display: flex; min-width: 0; }
.anv-list {
	display: flex; align-items: stretch; flex-wrap: nowrap;
	min-height: 58px; margin: 0 !important; padding: 0 !important; list-style: none !important;
}
.anv-item {
	position: relative;
	display: flex; align-items: center; gap: 5px;
	margin: 0; padding: 0 10px; list-style: none;
	white-space: nowrap;
}
.anv-item::before, .anv-item::marker { content: none; }
.anv-item:last-child { padding-right: 0; }

.anv-link {
	display: inline-flex; align-items: center;
	color: var(--anv-ink) !important; text-decoration: none !important;
	font-family: var(--anv-font) !important; font-size: 15px !important; font-weight: 400 !important; line-height: 1.5 !important; letter-spacing: normal !important;
}
.anv-ic {
	display: inline-flex !important; align-items: center !important; justify-content: center !important;
	width: 18px !important; height: 28px !important; color: var(--anv-ink) !important;
}
.anv-circ { display: block; width: 16px; height: 16px; fill: currentColor; transition: fill .2s, color .2s, transform .3s var(--anv-ease); }
.anv-item:hover > .anv-ic, .anv-item.is-open > .anv-ic { color: var(--anv-cyan) !important; }

/* Button-Menüpunkt („ADELI Cybertherapy“) */
.anv-item--button { padding: 0 0 0 10px; }
.anv-item--button > .anv-link {
	position: relative; isolation: isolate;
	height: 35px; padding: 0 20px 1px;
	border-radius: 30px; background: var(--anv-cyan);
}
.anv-item--button > .anv-link { overflow: hidden; }
.anv-item--button > .anv-link::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background-image: linear-gradient(90deg, var(--anv-cyan), var(--anv-cyan-light));
	transform: translateX(0); will-change: transform;
	transition: transform 400ms ease-in-out; /* wie bisher: Verlauf gleitet beim Hover weg */
}
.anv-item--button > .anv-link:hover::before,
.anv-item--button > .anv-link:focus-visible::before { transform: translateX(100%); }

/* Mega-Menü – Maße 1:1 von den bisherigen JetMenu-Vorlagen übernommen */
.anv-mega {
	position: absolute; top: 100%; left: 0; z-index: 999;
	width: 100vw;
	padding-top: 19px; /* transparenter Abstand bis zur Unterkante des Headers */
	opacity: 0; visibility: hidden;
	transition: opacity .3s cubic-bezier(.48, .01, .5, .99), visibility 0s linear .3s;
	white-space: normal; cursor: default;
}
.anv-item.is-open > .anv-mega {
	opacity: 1; visibility: visible;
	transition: opacity .3s cubic-bezier(.48, .01, .5, .99), visibility 0s;
}
.anv-mega__panel {
	padding: 55px 0 25px;
	background: #fff;
	box-shadow: 0 16px 14px rgba(0, 0, 0, .04);
	font-family: var(--anv-font) !important; color: var(--anv-ink);
}
.anv-mega__wrap { max-width: 1280px; margin: 0 auto; }

.anv-mega__cols {
	display: grid; grid-template-columns: repeat(var(--anv-cols, 3), minmax(0, 1fr)); gap: 32px;
}
.anv-mega__col { min-width: 0; }
.anv-mega__col:not(:last-child) { padding-right: 32px; border-right: 1px solid #B8BFCC; }
.anv-mega__title {
	padding-bottom: 16px; margin: 0;
	font-size: 11px !important; font-weight: 600 !important; line-height: 11px !important;
	letter-spacing: 1px !important; text-transform: uppercase !important;
	color: var(--anv-ink) !important;
}
.anv-mega__list { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.anv-mega__list li { margin: 0; padding: 0; list-style: none; }
.anv-mega__list li::before, .anv-mega__list li::marker { content: none; }
.anv-mega__link {
	position: relative; display: block;
	padding: 13px 34px 14px 0;
	border-bottom: 1px solid #C8D4E0;
	color: var(--anv-ink) !important; text-decoration: none !important;
	font-size: 18px !important; font-weight: 400 !important; line-height: 18px !important; letter-spacing: normal !important;
	transition: color .2s ease;
}
.anv-mega__link .anv-arrow {
	position: absolute; right: 0; top: 19px;
	width: 20px; height: 7.44px; margin-right: 0;
	fill: #4F545D;
	transition: fill .2s, margin-right .2s;
}
.anv-mega__link:hover, .anv-mega__link:focus-visible, .anv-mega__link[aria-current="page"] { color: var(--anv-cyan) !important; }
.anv-mega__link:hover .anv-arrow, .anv-mega__link:focus-visible .anv-arrow { fill: var(--anv-cyan); margin-right: 10px; }

/* Button-Zeile („Das diagnostische Zentrum“) */
.anv-mega__cta { display: flex; justify-content: flex-end; gap: 32px; padding-top: 24px; height: 66px; }
.anv-mega__pill {
	position: relative; overflow: hidden; isolation: isolate;
	display: inline-block; align-self: flex-start;
	padding: 11px 21px 10px 25px; border-radius: 30px;
	background: var(--anv-cyan);
	color: var(--anv-ink) !important; text-decoration: none !important;
	font-size: 15px !important; font-weight: 400 !important; line-height: 15px !important;
}
.anv-mega__pill::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background-image: linear-gradient(90deg, var(--anv-cyan), var(--anv-cyan-light));
	transition: transform 400ms ease-in-out;
}
.anv-mega__pill:hover::before, .anv-mega__pill:focus-visible::before { transform: translateX(100%); }

/* Fußzeile */
.anv-mega__foot {
	display: flex; justify-content: space-between; align-items: flex-start; gap: 32px;
	height: 24px; margin-top: 67px;
}
.anv-mega__foot.has-cta { margin-top: 15px; }
.anv-mega__footlink {
	display: inline-block; padding: 7px 0 4px;
	color: var(--anv-ink) !important; text-decoration: none !important;
	font-size: 13px !important; font-weight: 500 !important; line-height: 13px !important;
	transition: color .2s;
}
.anv-mega__footlink:hover, .anv-mega__footlink:focus-visible { color: var(--anv-cyan) !important; text-decoration: underline !important; }
.anv-mega__copy {
	display: block; margin-left: auto;
	color: #4F545D !important;
	font-size: 11px !important; font-weight: 400 !important; line-height: 24px !important;
}

/* Einfaches Dropdown (Menüpunkte mit Unterpunkten ohne Vorlage) */
.anv-drop {
	position: absolute; top: 100%; left: 0; z-index: 999;
	min-width: 300px; padding: 18px 30px 22px;
	background: #fff; box-shadow: 0 16px 14px rgba(0, 0, 0, .04);
	opacity: 0; visibility: hidden; transform: translateY(-4px);
	transition: opacity .25s ease, transform .3s var(--anv-ease), visibility 0s linear .3s;
	white-space: normal;
}
.anv-item.is-open > .anv-drop { opacity: 1; visibility: visible; transform: none; transition: opacity .25s ease, transform .3s var(--anv-ease), visibility 0s; }
.anv-drop ul { list-style: none; margin: 0; padding: 0; }
.anv-drop a {
	display: flex; align-items: center; justify-content: space-between; gap: 24px;
	padding: 12px 0; border-bottom: 1px solid var(--anv-line);
	color: var(--anv-ink) !important; text-decoration: none !important; font-size: 18px !important; line-height: 1.2 !important;
}
.anv-drop .anv-arrow { width: 22px; height: 8px; fill: currentColor; transition: transform .2s var(--anv-ease); }
.anv-drop a:hover .anv-arrow { transform: translateX(3px); }

/* =========================================================================
   Burger
   ====================================================================== */

.anv-trigger {
	display: inline-flex !important; align-items: center !important; justify-content: center !important;
	align-self: center !important;
	width: 44px !important; height: 44px !important; margin-right: -8px !important;
	color: var(--anv-cyan) !important;
}
.anv-burger { position: relative; display: block; width: 26px; height: 20px; }
.anv-burger span { position: absolute; left: 0; width: 100%; height: 3px; border-radius: 2px; background: currentColor; }
.anv-burger span:nth-child(1) { top: 0; }
.anv-burger span:nth-child(2) { top: 8.5px; }
.anv-burger span:nth-child(3) { top: 17px; }

/* Umschalten (per JS, inkl. „passt nicht in den Header“) */
.anv.anv--compact .anv-trigger { display: inline-flex !important; }
.anv.anv--compact .anv-desk { position: absolute !important; visibility: hidden; pointer-events: none; opacity: 0; right: 0; }
.anv.anv--wide .anv-trigger { display: none !important; }
.anv.anv--wide .anv-desk { display: flex !important; }

/* =========================================================================
   Slide-Out (wird per JS an <body> gehängt)
   ====================================================================== */

.anv-portal {
	--anv-ink: #070C2B;
	--anv-cyan: #21C8DE;
	--anv-cyan-light: #A6EBF3;
	--anv-line: rgba(7, 12, 43, .12);
	--anv-font: neue-haas-unica, "Neue Haas Unica", "Helvetica Neue", Arial, sans-serif;
	--anv-ease: cubic-bezier(.22, .8, .24, 1);

	position: fixed; inset: 0; z-index: 999999;
	visibility: hidden; pointer-events: none;
	transition: visibility 0s linear .5s;
	font-family: var(--anv-font) !important; color: var(--anv-ink); line-height: 1.3 !important;
}
.anv-portal.is-open { visibility: visible; pointer-events: auto; transition: visibility 0s; }

.anv-overlay {
	position: absolute; inset: 0;
	background: rgba(7, 12, 43, .35);
	-webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
	opacity: 0; transition: opacity .4s ease;
}
.anv-portal.is-open .anv-overlay { opacity: 1; }

.anv-panel {
	position: absolute; top: 0; right: 0; bottom: 0;
	width: min(480px, 100%); height: 100vh; height: 100dvh;
	display: flex; flex-direction: column;
	background: #fff;
	overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
	padding: 0 24px calc(28px + env(safe-area-inset-bottom));
	transform: translateX(100%);
	transition: transform .5s var(--anv-ease);
	box-shadow: 0 0 40px rgba(7, 12, 43, .08);
}
.anv-portal.is-open .anv-panel { transform: none; }

.anv-head {
	position: sticky; top: 0; z-index: 2;
	display: flex; justify-content: flex-end; align-items: center;
	min-height: 76px; padding-top: env(safe-area-inset-top);
	background: #fff; flex: 0 0 auto;
}
.anv-close {
	width: 44px !important; height: 44px !important; margin-right: -10px !important;
	display: inline-flex !important; align-items: center !important; justify-content: center !important;
	color: var(--anv-ink) !important;
	transition: transform .3s var(--anv-ease), color .2s;
}
.anv-close svg { width: 24px !important; height: 24px !important; }
.anv-close:hover { transform: rotate(90deg) !important; color: var(--anv-cyan) !important; }

.anv-mnav { display: flex; flex-direction: column; flex: 1 0 auto; }
.anv-mlist { list-style: none !important; margin: 0 !important; padding: 0 !important; border-top: 1px solid var(--anv-line); }
.anv-mitem { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--anv-line); }
.anv-mitem::before, .anv-mitem::marker { content: none; }

.anv-mrow {
	display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 16px !important;
	width: 100% !important; min-height: 64px !important; padding: 14px 0 !important;
	color: var(--anv-ink) !important; text-decoration: none !important;
	font-family: var(--anv-font) !important; font-size: 24px !important; font-weight: 400 !important; line-height: 1.2 !important; letter-spacing: -.01em !important;
}
.anv-mrow .anv-circ { width: 24px !important; height: 24px !important; flex: 0 0 auto !important; }
.anv-mtoggle[aria-expanded="true"] .anv-circ { transform: rotate(180deg) !important; fill: var(--anv-cyan) !important; }
.anv-mitem.is-current > .anv-mrow > span,
.anv-mitem.is-current > a.anv-mrow > span { box-shadow: inset 0 -2px 0 var(--anv-cyan) !important; }

/* Akkordeon */
.anv-msub { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .4s var(--anv-ease); }
.anv-msub__inner { min-height: 0; overflow: hidden; }
.anv-mitem.is-open > .anv-msub { grid-template-rows: 1fr; }
.anv-mitem.is-open > .anv-msub > .anv-msub__inner { padding-bottom: 24px; }

.anv-mgroup { margin-top: 18px; }
.anv-mlink--overview + .anv-mgroup { margin-top: 22px; }
.anv-mgroup__title {
	margin-bottom: 4px;
	font-size: 11px !important; font-weight: 600 !important; line-height: 1.4 !important; letter-spacing: .14em !important; text-transform: uppercase !important;
	color: var(--anv-ink);
}
.anv-mlink {
	display: flex; align-items: center; justify-content: space-between; gap: 20px;
	min-height: 48px; padding: 12px 0;
	border-bottom: 1px solid var(--anv-line);
	color: var(--anv-ink) !important; text-decoration: none !important;
	font-size: 17px !important; font-weight: 400 !important; line-height: 1.3 !important;
}
.anv-mlink--overview { margin-top: 2px; font-weight: 500 !important; }
.anv-arrow { display: block; flex: 0 0 auto; width: 22px; height: 8px; fill: currentColor; transition: transform .2s var(--anv-ease), fill .2s; }
.anv-mlink:hover .anv-arrow, .anv-mextra:hover .anv-arrow { transform: translateX(3px); fill: var(--anv-cyan); }
.anv-mlink[aria-current="page"] > span { box-shadow: inset 0 -2px 0 var(--anv-cyan); }

.anv-mextras { margin-top: 18px; display: flex; flex-direction: column; gap: 4px; }
.anv-mextra {
	display: inline-flex; align-items: center; gap: 14px; align-self: flex-start;
	padding: 8px 0;
	color: var(--anv-ink) !important; text-decoration: none !important;
	font-size: 15px !important; font-weight: 500 !important; line-height: 1.3 !important;
}

/* Verlaufs-Button(s) */
.anv-mbuttons { margin-top: auto; padding-top: 32px; display: flex; flex-direction: column; gap: 10px; }
.anv-pill {
	position: relative; isolation: isolate;
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	height: 54px; padding: 0 26px;
	border-radius: 30px; background: var(--anv-cyan);
	color: var(--anv-ink) !important; text-decoration: none !important;
	font-size: 17px !important; font-weight: 400 !important;
}
.anv-pill::before {
	content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit;
	background-image: linear-gradient(90deg, var(--anv-cyan), var(--anv-cyan-light));
}
.anv-pill:hover .anv-arrow { transform: translateX(3px); }

/* Zusatzlinks unten */
.anv-mmeta {
	list-style: none !important; margin: 24px 0 0 !important; padding: 0 !important;
	display: flex; flex-wrap: wrap; gap: 4px 22px;
}
.anv-mbuttons + .anv-mmeta { margin-top: 20px !important; }
.anv-mlist + .anv-mmeta { margin-top: auto !important; padding-top: 32px !important; }
.anv-mmeta li { margin: 0; padding: 0; list-style: none; }
.anv-mmeta li::before, .anv-mmeta li::marker { content: none; }
.anv-mmeta a {
	display: inline-block; padding: 8px 0;
	color: rgba(7, 12, 43, .7) !important; text-decoration: none !important;
	font-size: 14px !important; line-height: 1.3 !important;
}
.anv-mmeta a:hover { color: var(--anv-ink) !important; }

/* Einblenden */
.anv-mitem, .anv-mbuttons, .anv-mmeta {
	opacity: 0; transform: translateX(20px);
	transition: opacity .3s ease, transform .5s var(--anv-ease);
}
.anv-portal.is-open .anv-mitem,
.anv-portal.is-open .anv-mbuttons,
.anv-portal.is-open .anv-mmeta {
	opacity: 1; transform: none;
	transition-delay: calc(.1s + var(--i, 0) * .04s);
}

html.anv-locked, html.anv-locked body { overflow: hidden !important; }

@media (prefers-reduced-motion: reduce) {
	.anv *, .anv-portal * { transition-duration: 0s !important; transition-delay: 0s !important; }
}
