/* Casa motion (βλ. motion.js). Το περιεχόμενο μένει κρυφό μέχρι να ετοιμαστεί το script
   (χωρίς αναβόσβημα) και κάθε στοιχείο εμφανίζεται όταν μπει στην οθόνη. */

html.cb-anim:not(.cb-anim-ready) :is([data-elementor-type="wp-page"], .cb-main) {
	opacity: 0;
}

html.cb-anim .cb-rv:not(.cb-rv--title) {
	opacity: 0;
	transform: translate3d(0, 32px, 0);
	transition: opacity 0.9s cubic-bezier(0.2, 0.7, 0.2, 1), transform 1s cubic-bezier(0.2, 0.7, 0.2, 1);
	transition-delay: var(--cb-d, 0ms);
}

html.cb-anim .cb-rv.is-in {
	opacity: 1;
	transform: none;
}

/* Εικόνες: ελαφρύ zoom-out μέσα στο πλαίσιο όταν εμφανίζονται (το hover zoom παραμένει). */
html.cb-anim .cb-rv:not(.is-in) .cb-img img {
	transform: scale(1.06);
}

/* Τίτλοι: κάθε γράμμα ανεβαίνει μέσα από μάσκα ανά λέξη. */
.cb-w {
	display: inline-block;
	overflow: hidden;
	vertical-align: top;
	padding-bottom: 0.14em;
	margin-bottom: -0.14em;
}

.cb-c {
	display: inline-block;
}

html.cb-anim .cb-rv--title .cb-c {
	transform: translate3d(0, 115%, 0);
	transition: transform 0.85s cubic-bezier(0.2, 0.8, 0.2, 1);
}

html.cb-anim .cb-rv--title.is-in .cb-c {
	transform: none;
}

/* Τίτλοι μέσα σε κάρτες (χωρίς δικό τους effect): χωρίς μάσκα. */
.cb-rv-off .cb-w {
	overflow: visible;
}

/* Αν για κάποιο λόγο δεν τρέξει το script, όλα εμφανίζονται μετά από λίγο. */
html.cb-anim:not(.cb-anim-ready) :is([data-elementor-type="wp-page"], .cb-main) {
	animation: cb-failsafe 0s 2.5s forwards;
}

@keyframes cb-failsafe {
	to {
		opacity: 1;
	}
}
