/*-------------------------------------------------------------------------
  Motion — scroll reveals + shared hover dynamics
-------------------------------------------------------------------------*/

:root {
	--wpw-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
	--wpw-motion-fast: 0.2s;
	--wpw-motion: 0.45s;
	--wpw-motion-slow: 0.7s;
}

/* Scroll reveal
-------------------------------------------------------------------------*/

html.wpw-js [data-wpw-reveal] {
	opacity: 0;
	transform: translate3d(0, 1.15rem, 0);
	transition:
		opacity var(--wpw-motion-slow) var(--wpw-ease-out),
		transform var(--wpw-motion-slow) var(--wpw-ease-out);
	will-change: opacity, transform;
}

html.wpw-js [data-wpw-reveal].is-inview {
	opacity: 1;
	transform: none;
	will-change: auto;
}

html.wpw-js [data-wpw-reveal="fade"] {
	transform: none;
}

html.wpw-js [data-wpw-reveal="left"] {
	transform: translate3d(-1rem, 0, 0);
}

html.wpw-js [data-wpw-reveal="right"] {
	transform: translate3d(1rem, 0, 0);
}

html.wpw-js [data-wpw-reveal].is-inview[data-wpw-reveal="left"],
html.wpw-js [data-wpw-reveal].is-inview[data-wpw-reveal="right"] {
	transform: none;
}

/* Stagger children inside a reveal group */
html.wpw-js [data-wpw-reveal-stagger] > * {
	opacity: 0;
	transform: translate3d(0, 0.9rem, 0);
	transition:
		opacity var(--wpw-motion) var(--wpw-ease-out),
		transform var(--wpw-motion) var(--wpw-ease-out);
}

html.wpw-js [data-wpw-reveal-stagger].is-inview > *:nth-child(1) { transition-delay: 0.02s; }
html.wpw-js [data-wpw-reveal-stagger].is-inview > *:nth-child(2) { transition-delay: 0.07s; }
html.wpw-js [data-wpw-reveal-stagger].is-inview > *:nth-child(3) { transition-delay: 0.12s; }
html.wpw-js [data-wpw-reveal-stagger].is-inview > *:nth-child(4) { transition-delay: 0.17s; }
html.wpw-js [data-wpw-reveal-stagger].is-inview > *:nth-child(5) { transition-delay: 0.22s; }
html.wpw-js [data-wpw-reveal-stagger].is-inview > *:nth-child(6) { transition-delay: 0.27s; }
html.wpw-js [data-wpw-reveal-stagger].is-inview > *:nth-child(7) { transition-delay: 0.32s; }
html.wpw-js [data-wpw-reveal-stagger].is-inview > *:nth-child(8) { transition-delay: 0.37s; }
html.wpw-js [data-wpw-reveal-stagger].is-inview > *:nth-child(n + 9) { transition-delay: 0.4s; }

html.wpw-js [data-wpw-reveal-stagger].is-inview > * {
	opacity: 1;
	transform: none;
}

/* Shared button lift
-------------------------------------------------------------------------*/

.wpw-btn,
.wpw-header__cta-link,
.wpw-kalender__btn,
.wpw-waterpolo-online__button,
.wpw-documents__button,
.wpw-activity-registration__button {
	transition:
		background-color var(--wpw-motion-fast) ease,
		color var(--wpw-motion-fast) ease,
		border-color var(--wpw-motion-fast) ease,
		transform var(--wpw-motion-fast) var(--wpw-ease-out),
		box-shadow var(--wpw-motion-fast) ease;
}

.wpw-btn:hover,
.wpw-btn:focus-visible,
.wpw-header__cta-link:hover,
.wpw-header__cta-link:focus-visible,
.wpw-kalender__btn:hover,
.wpw-kalender__btn:focus-visible,
.wpw-waterpolo-online__button:hover,
.wpw-waterpolo-online__button:focus-visible,
.wpw-documents__button:hover,
.wpw-documents__button:focus-visible,
.wpw-activity-registration__button:hover,
.wpw-activity-registration__button:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 8px 18px color-mix(in srgb, var(--wpw-color-dark) 14%, transparent);
}

.wpw-btn .wpw-btn__arrow,
.wpw-header__cta-link .wpw-btn__arrow {
	display: inline-block;
	transition: transform var(--wpw-motion-fast) var(--wpw-ease-out);
}

.wpw-btn:hover .wpw-btn__arrow,
.wpw-btn:focus-visible .wpw-btn__arrow {
	transform: translateX(3px);
}

/* Header nav underline
-------------------------------------------------------------------------*/

.wpw-nav__list > .menu-item > a {
	position: relative;
	transition: color var(--wpw-motion-fast) ease;
}

.wpw-nav__list > .menu-item > a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.35rem;
	height: 2px;
	border-radius: 1px;
	background: var(--wpw-color-primary);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform var(--wpw-motion) var(--wpw-ease-out);
}

.wpw-nav__list > .menu-item > a:hover::after,
.wpw-nav__list > .menu-item > a:focus-visible::after,
.wpw-nav__list > .menu-item.current-menu-item > a::after,
.wpw-nav__list > .menu-item.current-menu-ancestor > a::after,
.wpw-nav__list > .menu-item.current-menu-parent > a::after {
	transform: scaleX(1);
}

@media (max-width: 991px) {
	.wpw-nav__list > .menu-item > a::after {
		display: none;
	}
}

/* Submenu enter
-------------------------------------------------------------------------*/

.wpw-nav__list .sub-menu {
	opacity: 0;
	transform: translateX(-50%) translateY(0.4rem);
	transition:
		opacity var(--wpw-motion-fast) ease,
		transform var(--wpw-motion) var(--wpw-ease-out);
	pointer-events: none;
}

.wpw-nav__list .menu-item-has-children:hover > .sub-menu,
.wpw-nav__list .menu-item-has-children:focus-within > .sub-menu,
.wpw-nav__list .menu-item-has-children.is-open > .sub-menu {
	display: block;
	opacity: 1;
	transform: translateX(-50%) translateY(0);
	pointer-events: auto;
}

@media (max-width: 991px) {
	.wpw-nav__list .sub-menu {
		opacity: 1;
		transform: none;
		pointer-events: auto;
		transition: none;
	}
}

/* Cards & interactive surfaces
-------------------------------------------------------------------------*/

.wpw-team-card,
.wpw-news-card,
.wpw-activity-card,
.wpw-training-card,
.wpw-kalender__card,
.wpw-inschrijven__card,
.woocommerce ul.products li.product {
	transition:
		transform var(--wpw-motion) var(--wpw-ease-out),
		box-shadow var(--wpw-motion) ease,
		border-color var(--wpw-motion-fast) ease;
}

.wpw-team-card:hover,
.wpw-team-card:focus-within,
.wpw-news-card:hover,
.wpw-news-card:focus-within,
.wpw-activity-card:hover,
.wpw-activity-card:focus-within,
.wpw-training-card:hover,
.wpw-training-card:focus-within,
.wpw-kalender__card:hover,
.wpw-kalender__card:focus-within,
.wpw-inschrijven__card:hover,
.woocommerce ul.products li.product:hover,
.woocommerce ul.products li.product:focus-within {
	transform: translateY(-4px);
}

.wpw-kalender__card {
	transition:
		transform var(--wpw-motion) var(--wpw-ease-out),
		box-shadow var(--wpw-motion) ease,
		border-color var(--wpw-motion-fast) ease,
		background-color var(--wpw-motion-fast) ease;
}

.wpw-kalender__card:hover {
	box-shadow: 0 10px 24px color-mix(in srgb, var(--wpw-color-dark) 10%, transparent);
	border-color: color-mix(in srgb, var(--wpw-color-primary) 35%, transparent);
}

.wpw-training-card:hover {
	box-shadow: 0 10px 24px color-mix(in srgb, var(--wpw-color-dark) 10%, transparent);
	border-color: color-mix(in srgb, var(--wpw-color-primary) 28%, transparent);
}

.wpw-sponsor {
	transition: opacity var(--wpw-motion-fast) ease, transform var(--wpw-motion) var(--wpw-ease-out);
}

a.wpw-sponsor:hover,
a.wpw-sponsor:focus-visible {
	transform: translateY(-3px);
}

/* Trial CTA presence
-------------------------------------------------------------------------*/

.wpw-trial__icon {
	transition: transform var(--wpw-motion-slow) var(--wpw-ease-out);
}

.wpw-trial:hover .wpw-trial__icon {
	transform: translateY(-3px) scale(1.04);
}

.wpw-trial__actions .wpw-btn {
	transition:
		background-color var(--wpw-motion-fast) ease,
		color var(--wpw-motion-fast) ease,
		border-color var(--wpw-motion-fast) ease,
		transform var(--wpw-motion-fast) var(--wpw-ease-out),
		box-shadow var(--wpw-motion-fast) ease;
}

/* Footer social pop
-------------------------------------------------------------------------*/

.wpw-footer__social-link,
.wpw-footer .wpw-social__link,
.wpw-contact__social .wpw-social__link {
	transition:
		color var(--wpw-motion-fast) ease,
		border-color var(--wpw-motion-fast) ease,
		transform var(--wpw-motion-fast) var(--wpw-ease-out);
}

.wpw-footer__social-link:hover,
.wpw-footer__social-link:focus-visible,
.wpw-footer .wpw-social__link:hover,
.wpw-footer .wpw-social__link:focus-visible,
.wpw-contact__social .wpw-social__link:hover,
.wpw-contact__social .wpw-social__link:focus-visible {
	transform: translateY(-2px);
}

@media (prefers-reduced-motion: reduce) {
	html.wpw-js [data-wpw-reveal],
	html.wpw-js [data-wpw-reveal-stagger] > *,
	.wpw-btn,
	.wpw-header__cta-link,
	.wpw-kalender__btn,
	.wpw-waterpolo-online__button,
	.wpw-documents__button,
	.wpw-activity-registration__button,
	.wpw-nav__list > .menu-item > a,
	.wpw-nav__list > .menu-item > a::after,
	.wpw-nav__list .sub-menu,
	.wpw-team-card,
	.wpw-news-card,
	.wpw-activity-card,
	.wpw-training-card,
	.wpw-kalender__card,
	.wpw-inschrijven__card,
	.woocommerce ul.products li.product,
	.wpw-sponsor,
	.wpw-trial__icon,
	.wpw-footer__social-link,
	.wpw-footer .wpw-social__link,
	.wpw-contact__social .wpw-social__link {
		transition: none !important;
		transform: none !important;
		opacity: 1 !important;
	}

	.wpw-btn:hover,
	.wpw-header__cta-link:hover,
	.wpw-kalender__btn:hover,
	.wpw-team-card:hover,
	.wpw-news-card:hover,
	.wpw-activity-card:hover,
	.wpw-training-card:hover,
	.wpw-kalender__card:hover,
	.wpw-inschrijven__card:hover,
	.woocommerce ul.products li.product:hover,
	a.wpw-sponsor:hover,
	.wpw-trial:hover .wpw-trial__icon {
		transform: none !important;
		box-shadow: none;
	}
}
