/*
 * Sanfte Übergänge: Handy-Menü (auf und zu), Untermenü am PC, FAQ, Formular-Schritte,
 * Cookie-Einstellungen und Seitenwechsel. Bei „Bewegung reduzieren“ (Systemeinstellung) aus.
 */
@media (prefers-reduced-motion: no-preference) {

	@keyframes ns-menu-rein {
		from { opacity: 0; transform: translateX(32px); }
		to { opacity: 1; transform: none; }
	}

	@keyframes ns-menu-raus {
		from { opacity: 1; transform: none; }
		to { opacity: 0; transform: translateX(32px); }
	}

	@keyframes ns-hoch {
		from { opacity: 0; transform: translateY(14px); }
		to { opacity: 1; transform: none; }
	}

	@keyframes ns-blende {
		from { opacity: 0; }
		to { opacity: 1; }
	}

	@keyframes ns-zoom {
		from { opacity: 0; transform: translateY(12px) scale(0.98); }
		to { opacity: 1; transform: none; }
	}

	/* Handy-Menü: gleitet von rechts herein, Einträge erscheinen nacheinander */
	body .wp-block-navigation__responsive-container.is-menu-open {
		animation: ns-menu-rein 0.45s cubic-bezier(0.22, 1, 0.36, 1) both;
	}

	body .wp-block-navigation__responsive-container.is-menu-open.ns-schliesst {
		animation: ns-menu-raus 0.26s cubic-bezier(0.4, 0, 1, 1) both;
	}

	body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
		animation: ns-hoch 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
	}

	body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(1) { animation-delay: 0.08s; }
	body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(2) { animation-delay: 0.14s; }
	body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(3) { animation-delay: 0.2s; }
	body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(4) { animation-delay: 0.26s; }
	body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(5) { animation-delay: 0.32s; }
	body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(n+6) { animation-delay: 0.38s; }

	body .wp-block-navigation__responsive-container-close {
		transition: transform 0.25s ease;
	}

	body .wp-block-navigation__responsive-container-close:hover {
		transform: rotate(90deg);
	}

	/* Untermenü „Leistungen“ am PC: weich einblenden */
	@media (min-width: 782px) {
		body .wp-block-navigation .has-child > .wp-block-navigation__submenu-container {
			transform: translateY(8px);
			transition: opacity 0.22s ease, transform 0.22s ease;
		}

		body .wp-block-navigation .has-child:hover > .wp-block-navigation__submenu-container,
		body .wp-block-navigation .has-child:focus-within > .wp-block-navigation__submenu-container,
		body .wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
			transform: none;
		}
	}

	/* FAQ: Antworten klappen weich auf (moderne Browser), sonst blenden sie ein */
	details.wp-block-details {
		interpolate-size: allow-keywords;
	}

	details.wp-block-details::details-content {
		block-size: 0;
		overflow: hidden;
		transition: block-size 0.35s cubic-bezier(0.22, 1, 0.36, 1), content-visibility 0.35s allow-discrete;
	}

	details.wp-block-details[open]::details-content {
		block-size: auto;
	}

	details.wp-block-details[open] > :not(summary) {
		animation: ns-blende 0.35s ease both;
	}

	/* Anfrageformular: jeder Schritt gleitet sanft herein */
	.nsa-form.is-stepped .nsa-step:not([hidden]) {
		animation: ns-hoch 0.38s cubic-bezier(0.22, 1, 0.36, 1) both;
	}

	/* Cookie-Einstellungen */
	.nsc-dialog[open] {
		animation: ns-zoom 0.3s cubic-bezier(0.22, 1, 0.36, 1) both;
	}

	.nsc-dialog[open]::backdrop {
		animation: ns-blende 0.3s ease both;
	}

	/* Seitenwechsel innerhalb der Website: weiche Überblendung (Chrome, Edge, Safari) */
	@view-transition {
		navigation: auto;
	}

	::view-transition-old(root),
	::view-transition-new(root) {
		animation-duration: 0.28s;
	}
}
