/* ==========================================================================
   Motion — Flavius-inspired (fade + translateY, scroll-triggered)
   ========================================================================== */

:root {
	--motion-duration-fast: 0.3s;
	--motion-duration-base: 0.7s;
	--motion-duration-slow: 1s;
	--motion-duration-reveal: 1.1s;
	--motion-ease-out: cubic-bezier(0.25, 0.1, 0.25, 1);
	--motion-ease-reveal: cubic-bezier(0.22, 1, 0.36, 1);
	--motion-distance-sm: 10px;
	--motion-distance-md: 18px;
	--motion-stagger: 0.04s;
}

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

[data-reveal] {
	opacity: 0;
	transform: translate3d(0, var(--motion-distance-md), 0);
	transition:
		opacity var(--motion-duration-reveal) var(--motion-ease-reveal),
		transform var(--motion-duration-reveal) var(--motion-ease-reveal);
	transition-delay: var(--reveal-delay, 0s);
	will-change: opacity, transform;
}

[data-reveal="sm"] {
	transform: translate3d(0, var(--motion-distance-sm), 0);
}

[data-reveal="fade"] {
	transform: translate3d(0, 8px, 0);
}

[data-reveal].is-visible {
	opacity: 1;
	transform: translate3d(0, 0, 0);
	will-change: auto;
}

/* --------------------------------------------------------------------------
   Hero — page load sequence
   -------------------------------------------------------------------------- */

.hero__media img {
	opacity: 0;
	transform: scale(1.06);
	transition:
		opacity 1.1s var(--motion-ease-out),
		transform 1.2s var(--motion-ease-out);
	transition-delay: 0s;
}

.hero .hero__tagline-line {
	opacity: 0;
	transform: translate3d(0, var(--motion-distance-sm), 0);
	transition:
		opacity var(--motion-duration-base) var(--motion-ease-out),
		transform var(--motion-duration-base) var(--motion-ease-out);
}

body.home .site-header__logo {
	opacity: 0;
	transform: translate3d(0, var(--motion-distance-sm), 0);
	transition:
		opacity var(--motion-duration-base) var(--motion-ease-out),
		transform var(--motion-duration-base) var(--motion-ease-out);
	transition-delay: 0.25s;
}

body.home .site-header__time,
body.home .site-header__actions {
	opacity: 0;
	transform: none;
	transition: opacity var(--motion-duration-base) var(--motion-ease-out);
}

body.home .site-header__time {
	transition-delay: 0.42s;
}

body.home .site-header__actions {
	transition-delay: 0.56s;
}

.hero .hero__tagline-line:nth-child(1) {
	transition-delay: 0.72s;
}

.hero .hero__tagline-line:nth-child(2) {
	transition-delay: 0.88s;
}

.hero .hero__tagline-line:nth-child(3) {
	transition-delay: 1.04s;
}

body.is-page-loaded .hero__media img {
	opacity: 1;
	transform: scale(1);
}

body.home.is-page-loaded .hero .hero__tagline-line,
body.home.is-page-loaded .site-header__time,
body.home.is-page-loaded .site-header__actions {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

body.home.is-page-loaded .site-header__logo {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

/* --------------------------------------------------------------------------
   Navigation — scaling hamburger (CSS), see main.js initMenu
   -------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------
   Link & card hover
   -------------------------------------------------------------------------- */

.book-card {
	transition: opacity var(--motion-duration-fast) var(--motion-ease-out);
}

.book-card__thumb img,
.team-card__photo img {
	transition: transform 0.5s var(--motion-ease-out);
}

.book-card:not(.book-card--footer):hover .book-card__thumb img {
	transform: scale(1.03);
}

/* --------------------------------------------------------------------------
   Reduced motion
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	.team-modal,
	.team-modal__backdrop,
	.team-modal__dialog,
	.store-locator-modal,
	.store-locator-modal__backdrop,
	.store-locator-modal__dialog {
		transition: none !important;
	}

	.team-modal:not(.is-open) .team-modal__dialog {
		transform: none;
	}

	[data-reveal] {
		opacity: 1;
		transform: none;
		transition: none;
	}

	html.has-page-transition-enter .transition__panel {
		opacity: 0;
	}

	.section__rule,
	.about-reasons__rule,
	.about-reviews__rule,
	.service-item__rule-base,
	.service-item__rule-hover,
	.booking-item__rule,
	.gallery-grid__rule,
	.careers-faq__rule,
	.careers-benefits-row__rule,
	.careers-benefits-table__rule,
	.careers-day-carousel__rule,
	.careers-day-carousel__slide-rule,
	.careers-profile__rule,
	.about-history__list::before,
	.about-history__item::after,
	.service-pricing__item::before,
	.service-pricing__item:last-child::after {
		transform: none;
		transition: none;
	}

	.service-item__rule-base {
		transform: scaleX(1);
	}

	.service-item__rule-hover {
		transform: scaleX(0);
	}

	.service-item--link:hover .service-item__rule-hover,
	.service-item--link:focus-visible .service-item__rule-hover {
		transform: scaleX(1);
	}

	.hero__media img,
	.hero .hero__tagline-line,
	.site-header,
	.site-header__time,
	.site-header__logo,
	.site-header__actions,
	.site-header__menu-toggle,
	.site-header__surface,
	.site-header__logo img,
	.site-footer,
	.careers-apply-timeline__item,
	.careers-apply-timeline__marker,
	.careers-apply-timeline__fill,
	.careers-apply-timeline__num {
		transition: none;
	}

	.site-header.is-solid .site-header__logo img {
		width: clamp(120px, 11.8vw, 175px);
	}
	.site-header .i-icon--light {
		transition: none;
	}
	.careers-showcase__marquee-track {
		animation: none;
		transform: none;
	}

	.careers-cta-button__slot-track {
		transition: none;
	}

	.careers-cta-button:hover .careers-cta-button__slot-track,
	.careers-cta-button:focus-visible .careers-cta-button__slot-track {
		transform: none;
	}

	.text-link__slot-track {
		transition: none;
	}

	.text-link--slot:hover .text-link__slot-track,
	.text-link--slot:focus-visible .text-link__slot-track {
		transform: none;
	}

	.careers-showcase__fan-card {
		transform:
			translate3d(-50%, -50%, 0)
			translate3d(calc(var(--fan-x, 0) * 1px), calc(var(--fan-y, 0) * 1px), 0)
			rotate(calc(var(--fan-r, 0) * 1deg))
			scale(var(--fan-s, 1)) !important;
	}

	html.has-cursor-stalker [data-cursor-zone] [data-cursor-target] {
		cursor: auto;
	}

	html.has-cursor-stalker .booking-item__link {
		position: static;
		width: auto;
		height: auto;
		margin: 32px 0 0;
		overflow: visible;
		clip: auto;
		white-space: normal;
	}

	.cursor-stalker {
		display: none;
	}

	.back-to-top,
	.book-card__thumb img,
	.team-card__photo img {
		transition: none;
		transform: none;
	}

	.services__media-image {
		transition: none;
	}

	.booking-item__hover-tile {
		transition: none;
		transform: translateY(-101%);
	}

	.booking-item:hover .booking-item__hover-tile,
	.booking-item.is-cursor-target .booking-item__hover-tile {
		transform: translate(0, 0);
	}

	.site-header.is-solid .site-header__surface,
	body:not(.home) .site-header__surface {
		transform: translate3d(0, 0, 0);
	}

	body.is-page-loaded .hero__media img {
		opacity: 1;
		transform: none;
	}

	body.home.is-page-loaded .hero .hero__tagline-line,
	body.home.is-page-loaded .site-header__time,
	body.home.is-page-loaded .site-header__actions,
	body.home.is-page-loaded .site-header__logo {
		opacity: 1;
		transform: none;
	}
}
