/* ==========================================================================
   Oasis — κίνηση χωρίς JavaScript.
   Όλα είναι progressive enhancement: όπου δεν υποστηρίζονται, η σελίδα
   εμφανίζεται κανονικά. Τίποτα δεν κρύβει περιεχόμενο πριν το πρώτο paint.
   ========================================================================== */

@media (prefers-reduced-motion: no-preference) {

	/* 1. Μεταβάσεις ανάμεσα στις σελίδες (Chrome/Edge 126+, Safari 18.2+). */
	@view-transition { navigation: auto; }
	::view-transition-old(root) { animation: oasis-vt-out .22s ease both; }
	::view-transition-new(root) { animation: oasis-vt-in .32s ease both; }
	::view-transition-group(*) { animation-duration: .38s; animation-timing-function: cubic-bezier(.2, .8, .2, 1); }
	/* Ο header μένει σταθερός, δεν «αναβοσβήνει». */
	.oasis-site-header { view-transition-name: oasis-header; }
	::view-transition-group(oasis-header) { animation: none; }

	@keyframes oasis-vt-out { to { opacity: 0; transform: translateY(-6px); } }
	@keyframes oasis-vt-in { from { opacity: 0; transform: translateY(10px); } }

	/* 2. Reveal on scroll (scroll-driven animations — Chrome/Edge, Safari 26). */
	@supports (animation-timeline: view()) {
		.oasis-card,
		.oasis-zig,
		.oasis-catcard,
		.oasis-catrow,
		.oasis-guide,
		.oasis-guide-main,
		.oasis-featured,
		.oasis-result,
		.oasis-feature,
		.oasis-cta-wrap,
		.oasis-posts__cta,
		.oasis-head,
		.wp-block-quote.is-style-oasis-testimonial,
		.oasis-prose > .wp-block-image,
		.oasis-prose > .wp-block-group,
		.oasis-prose > .wp-block-table {
			animation: oasis-reveal linear both;
			animation-timeline: view();
			animation-range: entry 0% entry 55%;
		}
		/* Το zig-zag: κάρτα και εικόνα με μικρή διαφορά. */
		.oasis-zig__card { animation: oasis-slide-in linear both; animation-timeline: view(); animation-range: entry 10% entry 70%; }
		.oasis-zig.is-reverse .oasis-zig__card { animation-name: oasis-slide-in-rev; }

		/* 3. Μπάρα προόδου ανάγνωσης στα άρθρα. */
		body.single-post::before {
			content: "";
			position: fixed;
			z-index: 1000;
			top: var(--wp-admin--admin-bar--height, 0px);
			left: 0;
			width: 100%;
			height: 3px;
			background: linear-gradient(90deg, var(--wp--preset--color--brand), var(--wp--preset--color--cyan));
			transform-origin: 0 50%;
			animation: oasis-progress-bar linear both;
			animation-timeline: scroll(root);
		}

		/* 5. Σκιά στον sticky header μόλις ξεκινήσει το scroll. */
		.oasis-sticky-header .oasis-site-header {
			animation: oasis-header-shadow linear both;
			animation-timeline: scroll(root);
			animation-range: 0 120px;
		}
	}

	/* Fallback (Firefox κ.ά.): το site.js βάζει .oasis-motion-js και κλάσεις is-pending / is-in. */
	.oasis-motion-js .is-pending { opacity: 0; transform: translateY(28px) scale(.985); }
	.oasis-motion-js .is-pending.is-in { opacity: 1; transform: none; transition: opacity .7s ease, transform .7s cubic-bezier(.2, .8, .2, 1); }
	.oasis-motion-js .oasis-zig.is-pending .oasis-zig__card { opacity: 0; transform: translateX(40px); }
	.oasis-motion-js .oasis-zig.is-reverse.is-pending .oasis-zig__card { transform: translateX(-40px); }
	.oasis-motion-js .oasis-zig.is-pending.is-in .oasis-zig__card { opacity: 1; transform: none; transition: opacity .8s ease .1s, transform .8s cubic-bezier(.2, .8, .2, 1) .1s; }
	.oasis-motion-js body.single-post::before {
		content: "";
		position: fixed;
		z-index: 1000;
		top: var(--wp-admin--admin-bar--height, 0px);
		left: 0;
		width: 100%;
		height: 3px;
		background: linear-gradient(90deg, var(--wp--preset--color--brand), var(--wp--preset--color--cyan));
		transform-origin: 0 50%;
		transform: scaleX(var(--oasis-progress, 0));
	}
	.oasis-motion-js.oasis-scrolled .oasis-sticky-header .oasis-site-header { box-shadow: 0 10px 30px rgba(0, 18, 49, .35); transition: box-shadow .3s ease; }

	/* Χωρίς διαφάνεια: όσα είναι ήδη στην οθόνη στη φόρτωση μένουν πάντα ευανάγνωστα. */
	@keyframes oasis-reveal { from { transform: translateY(28px) scale(.985); } }
	@keyframes oasis-slide-in { from { transform: translateX(40px); } }
	@keyframes oasis-slide-in-rev { from { transform: translateX(-40px); } }
	@keyframes oasis-progress-bar { from { transform: scaleX(0); } to { transform: scaleX(1); } }
	@keyframes oasis-header-shadow { to { box-shadow: 0 10px 30px rgba(0, 18, 49, .35); } }

	/* 4. Ken Burns στο ενεργό slide. */
	.oasis-slide__img, .oasis-hero--cover .oasis-hero__img { transform-origin: 70% 50%; }
	.oasis-hero--cover .oasis-hero__img { animation: oasis-kenburns 12s ease-out both; }
	.oasis-slide.is-active .oasis-slide__img { animation: oasis-kenburns 9s ease-out both; }
	/* Κείμενο: μόνο όταν αλλάζει slide (όχι στη φόρτωση — δεν καθυστερεί FCP/LCP). */
	.oasis-slider.has-moved .oasis-slide.is-active .oasis-slide__text > * { animation: oasis-rise .7s cubic-bezier(.2, .8, .2, 1) both; }
	.oasis-slider.has-moved .oasis-slide.is-active .oasis-slide__text > :nth-child(2) { animation-delay: .08s; }
	.oasis-slider.has-moved .oasis-slide.is-active .oasis-slide__text > :nth-child(3) { animation-delay: .16s; }
	.oasis-slider.has-moved .oasis-slide.is-active .oasis-slide__text > :nth-child(4) { animation-delay: .24s; }
	@keyframes oasis-kenburns { from { transform: scale(1.08); } to { transform: scale(1); } }
	@keyframes oasis-rise { from { opacity: 0; transform: translateY(18px); } }

	/* Μικρο-αλληλεπιδράσεις. */
	.oasis-card, .oasis-catcard, .oasis-guide, .oasis-result, .oasis-feature--card, .oasis-featured { transition: transform .25s ease, box-shadow .25s ease; }
	.oasis-card:hover, .oasis-catcard:hover { transform: translateY(-4px); }
	.oasis-guide:hover, .oasis-result:hover, .oasis-featured:hover, a.oasis-feature--card:hover { transform: translateY(-3px); box-shadow: var(--wp--custom--shadow--card); }
	.oasis-zig__media img, .oasis-guide-main img, .oasis-featured__media img, .oasis-catrow__media img { transition: transform .5s cubic-bezier(.2, .8, .2, 1); }
	.oasis-zig:hover .oasis-zig__media img, .oasis-guide-main:hover img, .oasis-featured:hover .oasis-featured__media img, .oasis-catrow:hover .oasis-catrow__media img { transform: scale(1.04); }
	.oasis-btn .oasis-icon, .wp-block-button__link .oasis-icon { transition: transform .2s ease; }
	.oasis-btn:hover .oasis-icon { transform: translateX(4px); }
	.oasis-btn:active, .wp-block-button__link:active { transform: scale(.97); }
	.oasis-menu--header .oasis-menu__link:not(.oasis-btn) { background: linear-gradient(var(--wp--preset--color--brand), var(--wp--preset--color--brand)) no-repeat 50% 100% / 0 3px; transition: color .15s, background-size .25s ease; }
	.oasis-menu--header .oasis-menu__link:not(.oasis-btn):hover { background-size: 100% 3px; }
	.oasis-menu--header .oasis-menu__item > .oasis-menu__link.is-current { background-size: 0 3px; }
	.wp-block-details.is-style-oasis-faq > :not(summary) { animation: oasis-rise .3s ease both; }
	.oasis-toc--inline[open] ol { animation: oasis-rise .3s ease both; }
}
