/* ============================================================
   Mazicatering — Design System
   Ζεστή, φωτεινή παλέτα με κινηματογραφική δομή:
   inset hero, pill navbar, noise textures, staggered animations.
   ============================================================ */

:root {
	--mz-bg: #F6F1E7;            /* ζεστό κρεμ φόντο */
	--mz-ink: #2B2521;           /* ζεστό σκούρο καφέ-μαύρο κείμενο */
	--mz-ink-70: rgba(43, 37, 33, .72);
	--mz-ink-40: rgba(43, 37, 33, .45);
	--mz-cream: #E1E0CC;         /* κρεμ πάνω σε σκούρο (hero) */
	--mz-cream-70: rgba(225, 224, 204, .78);
	--mz-card: #EFE7D8;          /* κάρτα "ιστορία" */
	--mz-card-2: #EAE1CF;        /* κάρτες υπηρεσιών */
	--mz-accent: #A6602F;        /* τερακότα */
	--mz-olive: #6E6A4E;         /* λαδί */
	--mz-dark: #23201B;          /* footer / σκούρες ζώνες */
	--mz-radius: 2rem;
	--mz-ease: cubic-bezier(.16, 1, .3, 1);
	--mz-font: 'Commissioner', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	--mz-font-serif: 'Playfair Display', Georgia, serif;
}

/* ---------- Reset / βάση ---------- */
*, *::before, *::after { box-sizing: border-box; }

body {
	margin: 0;
	background: var(--mz-bg);
	color: var(--mz-ink);
	font-family: var(--mz-font);
	font-weight: 400;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3 { margin: 0; font-weight: 500; }
ul { margin: 0; padding: 0; list-style: none; }

.mz-container { max-width: 1280px; margin: 0 auto; padding: 0 1.25rem; }
.mz-container-narrow { max-width: 860px; }

.screen-reader-text {
	position: absolute; width: 1px; height: 1px;
	clip-path: inset(50%); overflow: hidden;
}
.skip-link:focus {
	position: fixed; top: 8px; left: 8px; z-index: 999;
	width: auto; height: auto; clip-path: none;
	background: var(--mz-ink); color: var(--mz-bg);
	padding: .6rem 1rem; border-radius: 999px;
}

/* ---------- Noise textures (feTurbulence) ---------- */
.mz-noise-overlay {
	position: absolute; inset: 0; pointer-events: none;
	opacity: .7; mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.mz-bg-noise {
	position: absolute; inset: 0; pointer-events: none; opacity: .12;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- Header: logo πάνω, μενού με dropdowns από κάτω ---------- */
.mz-header { background: #fff; }
.mz-header-top {
	display: flex; justify-content: center; align-items: center;
	padding: 1.25rem 1.25rem 1rem;
}
.mz-logo { display: block; }
.mz-logo img { max-height: 92px; width: auto; display: block; }
.mz-logo-text {
	font-weight: 300; font-size: 1.6rem; letter-spacing: .3em;
	text-transform: uppercase; color: var(--mz-ink);
}
.mz-logo-text em { font-style: normal; font-size: .55em; opacity: .7; letter-spacing: .4em; display: block; text-align: center; }

.mz-menubar {
	position: sticky; top: 0; z-index: 100;
	background: #fff;
	border-top: 1px solid rgba(43, 37, 33, .08);
	border-bottom: 1px solid rgba(43, 37, 33, .08);
}
.mz-menubar-inner { max-width: 1280px; margin: 0 auto; padding: 0 1.25rem; }

.mz-nav-toggle {
	display: none; align-items: center; gap: .6rem;
	background: none; border: 0; cursor: pointer;
	padding: .9rem 0; width: 100%;
	font-family: inherit; font-size: .75rem; font-weight: 500;
	letter-spacing: .2em; text-transform: uppercase; color: var(--mz-ink);
}
.mz-nav-toggle-bars { display: inline-grid; gap: 4px; }
.mz-nav-toggle-bars i { display: block; width: 18px; height: 2px; background: var(--mz-ink); transition: transform .3s var(--mz-ease), opacity .3s; }
.mz-nav-toggle[aria-expanded="true"] .mz-nav-toggle-bars i:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.mz-nav-toggle[aria-expanded="true"] .mz-nav-toggle-bars i:nth-child(2) { opacity: 0; }
.mz-nav-toggle[aria-expanded="true"] .mz-nav-toggle-bars i:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.mz-menu {
	display: flex; justify-content: center; align-items: center;
	flex-wrap: wrap; gap: 0;
}
.mz-menu > li { position: relative; }
.mz-menu a {
	display: block; padding: 1rem 1.15rem;
	font-size: .75rem; font-weight: 500;
	letter-spacing: .18em; text-transform: uppercase;
	color: var(--mz-ink);
	transition: color .25s var(--mz-ease);
	white-space: nowrap;
}
.mz-menu a:hover { color: var(--mz-accent); }

/* βελάκι σε items με υπομενού */
.mz-menu > li.menu-item-has-children > a::after {
	content: ''; display: inline-block; margin-left: .45em;
	width: 6px; height: 6px;
	border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
}

/* dropdown */
.mz-menu .sub-menu {
	position: absolute; top: 100%; left: 50%;
	transform: translateX(-50%) translateY(8px);
	min-width: 230px;
	background: #fff;
	border: 1px solid rgba(43, 37, 33, .08);
	border-radius: .75rem;
	box-shadow: 0 18px 40px rgba(43, 37, 33, .12);
	padding: .5rem 0;
	opacity: 0; visibility: hidden;
	transition: opacity .25s var(--mz-ease), transform .25s var(--mz-ease), visibility .25s;
}
.mz-menu li:hover > .sub-menu,
.mz-menu li:focus-within > .sub-menu,
.mz-menu li.is-open > .sub-menu {
	opacity: 1; visibility: visible;
	transform: translateX(-50%) translateY(0);
}
.mz-menu .sub-menu a {
	padding: .6rem 1.4rem; font-size: .7rem;
	letter-spacing: .12em; text-align: center;
}

/* mobile menu */
@media (max-width: 899px) {
	.mz-nav-toggle { display: flex; justify-content: center; }
	.mz-nav { display: none; }
	.mz-nav.is-open { display: block; padding-bottom: .75rem; }
	.mz-menu { flex-direction: column; }
	.mz-menu a { padding: .7rem 1rem; text-align: center; }
	.mz-menu .sub-menu {
		position: static; transform: none;
		opacity: 1; visibility: visible;
		border: 0; box-shadow: none; border-radius: 0;
		display: none; padding: 0 0 .35rem;
		background: var(--mz-bg);
	}
	.mz-menu li.is-open > .sub-menu { display: block; }
	.mz-logo img { max-height: 70px; }
}

/* ---------- HERO: inset πλαίσιο με video slider ---------- */
.mz-hero {
	height: calc(100vh - 170px); height: calc(100svh - 170px);
	min-height: 480px;
	padding: 1rem;
}
@media (min-width: 768px) { .mz-hero { padding: 1.5rem; } }

.mz-slider { position: absolute; inset: 0; }
.mz-slide {
	opacity: 0;
	transition: opacity 1.2s var(--mz-ease);
}
.mz-slide.is-active { opacity: 1; }

.mz-hero-frame {
	position: relative; height: 100%;
	border-radius: 1rem; overflow: hidden;
	background: var(--mz-dark);
}
@media (min-width: 768px) { .mz-hero-frame { border-radius: var(--mz-radius); } }

.mz-hero-media {
	position: absolute; inset: 0;
	width: 100%; height: 100%; object-fit: cover;
}
.mz-hero-placeholder {
	background: linear-gradient(160deg, #3a332b 0%, #23201B 60%, #191713 100%);
}
.mz-hero-gradient {
	position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(to bottom, rgba(0,0,0,.30), transparent 40%, rgba(0,0,0,.60));
}

.mz-hero-content {
	position: absolute; bottom: 0; left: 0; right: 0;
	display: grid; grid-template-columns: 1fr; gap: .5rem;
	padding: 0 1.25rem 1.25rem;
	align-items: end;
}
@media (min-width: 1024px) {
	.mz-hero-content {
		grid-template-columns: 2fr 1fr;
		gap: 2rem; padding: 0 2.5rem 2rem;
	}
}

.mz-hero-title {
	font-size: 26vw; font-weight: 500;
	line-height: .85; letter-spacing: -.07em;
	color: var(--mz-cream);
}
@media (min-width: 640px)  { .mz-hero-title { font-size: 24vw; } }
@media (min-width: 768px)  { .mz-hero-title { font-size: 22vw; } }
@media (min-width: 1024px) { .mz-hero-title { font-size: 20vw; } }
@media (min-width: 1280px) { .mz-hero-title { font-size: 19vw; } }

.mz-asterisk {
	font-size: .31em; line-height: 0;
	position: relative; top: -.9em; margin-left: -.05em;
	color: var(--mz-accent);
}

.mz-hero-aside { display: grid; gap: 1rem; padding-bottom: .75rem; }
.mz-hero-desc {
	margin: 0; color: var(--mz-cream-70);
	font-size: .8rem; line-height: 1.25; max-width: 42ch;
}
@media (min-width: 768px) { .mz-hero-desc { font-size: 1rem; } }

/* ---------- Pill button με κύκλο-βέλος ---------- */
.mz-btn-pill {
	display: inline-flex; align-items: center; gap: .5rem;
	background: var(--mz-cream); color: var(--mz-ink);
	border-radius: 999px; padding: .35rem .4rem .35rem 1.25rem;
	font-weight: 500; font-size: .9rem;
	width: fit-content;
	transition: gap .3s var(--mz-ease);
}
.mz-btn-pill:hover { gap: .85rem; }
.mz-btn-circle {
	display: inline-flex; align-items: center; justify-content: center;
	width: 2.4rem; height: 2.4rem; border-radius: 999px;
	background: var(--mz-ink); color: var(--mz-cream);
	transition: transform .3s var(--mz-ease);
}
.mz-btn-pill:hover .mz-btn-circle { transform: scale(1.1); }
.mz-btn-outline {
	background: transparent; color: var(--mz-ink);
	border: 1px solid var(--mz-ink-40);
}

/* ---------- Ενότητα "Η ιστορία μας" ---------- */
.mz-about { padding: 4rem 1.25rem; }
@media (min-width: 768px) { .mz-about { padding: 6rem 1.5rem; } }

.mz-about-card {
	max-width: 1152px; margin: 0 auto;
	background: var(--mz-card);
	border-radius: var(--mz-radius);
	padding: 4rem 1.5rem; text-align: center;
}
@media (min-width: 768px) { .mz-about-card { padding: 6rem 3rem; } }

.mz-label {
	margin: 0 0 1.5rem;
	color: var(--mz-accent);
	font-size: 10px; letter-spacing: .2em; text-transform: uppercase;
	font-weight: 700;
}
@media (min-width: 640px) { .mz-label { font-size: .75rem; } }

.mz-about-heading {
	max-width: 26ch; margin: 0 auto;
	font-size: clamp(1.9rem, 5vw, 4.5rem);
	line-height: .95; letter-spacing: -.02em;
	display: inline-flex; flex-wrap: wrap; justify-content: center;
}
.mz-serif {
	font-family: var(--mz-font-serif);
	font-style: italic; font-weight: 400;
	color: var(--mz-accent);
}
.mz-muted { color: var(--mz-ink-40); }

.mz-about-body {
	max-width: 62ch; margin: 2.5rem auto 0;
	font-size: .8rem; line-height: 1.7; color: var(--mz-ink);
}
@media (min-width: 768px) { .mz-about-body { font-size: 1rem; } }
.mz-letter { opacity: .2; transition: opacity .15s linear; }
.mz-letter.is-on { opacity: 1; }

/* ---------- Υπηρεσίες ---------- */
.mz-services { position: relative; padding: 5rem 0; overflow: hidden; }
@media (min-width: 768px) { .mz-services { padding: 7rem 0; } }

.mz-services-heading {
	max-width: 36ch; margin: 0 auto 3.5rem; text-align: center;
	font-size: clamp(1.25rem, 3vw, 2.25rem); line-height: 1.15;
	display: flex; flex-wrap: wrap; justify-content: center;
}

.mz-cards {
	display: grid; gap: .75rem;
	grid-template-columns: 1fr;
}
@media (min-width: 768px)  { .mz-cards { grid-template-columns: repeat(2, 1fr); gap: .5rem; } }
@media (min-width: 1024px) { .mz-cards { grid-template-columns: repeat(4, 1fr); gap: .35rem; min-height: 480px; } }

.mz-card {
	display: flex; flex-direction: column; justify-content: space-between;
	background: var(--mz-card-2);
	border-radius: 1.25rem; padding: 1.5rem;
	opacity: 0; transform: scale(.95) translateY(10px);
	transition: opacity .7s var(--mz-ease), transform .7s var(--mz-ease);
	transition-delay: calc(var(--mz-i, 0) * .15s);
}
.is-inview .mz-card { opacity: 1; transform: none; }

.mz-card h3 {
	font-size: 1.15rem; font-weight: 700; letter-spacing: -.01em;
	display: flex; justify-content: space-between; align-items: baseline;
	margin-bottom: 1.25rem;
}
.mz-card-num { font-size: .7rem; font-weight: 400; color: var(--mz-ink-40); }

.mz-checklist { display: grid; gap: .8rem; }
.mz-checklist li {
	display: flex; gap: .6rem; align-items: flex-start;
	font-size: .85rem; color: var(--mz-ink-70); line-height: 1.4;
}
.mz-checklist svg { flex: none; margin-top: .15em; color: var(--mz-olive); }

.mz-card-link {
	display: inline-flex; align-items: center; gap: .4rem;
	margin-top: 2rem; font-size: .85rem; font-weight: 500;
	color: var(--mz-accent);
}
.mz-arrow-diag { transform: rotate(-45deg); transition: transform .3s var(--mz-ease); }
.mz-card-link:hover .mz-arrow-diag { transform: rotate(0); }

.mz-card-media { position: relative; padding: 0; overflow: hidden; min-height: 320px; justify-content: flex-end; }
.mz-card-media img, .mz-card-media video {
	position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
}
.mz-card-media-ph {
	position: absolute; inset: 0;
	background: linear-gradient(150deg, #C8B99B, #8C7B5F);
}
.mz-card-media-caption {
	position: relative; margin: 0; padding: 1.25rem;
	color: var(--mz-cream); font-size: .95rem;
	background: linear-gradient(to top, rgba(0,0,0,.45), transparent);
	width: 100%;
}

/* ---------- Πρόσφατα events / αρχείο ---------- */
.mz-recent, .mz-page { padding: 5rem 0; }
.mz-recent-heading {
	font-size: clamp(1.75rem, 4vw, 3rem);
	letter-spacing: -.02em; margin-bottom: 2.5rem;
	display: flex; flex-wrap: wrap;
}
.mz-recent-grid {
	display: grid; gap: 1rem; margin-bottom: 2.5rem;
	grid-template-columns: 1fr;
}
@media (min-width: 640px)  { .mz-recent-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .mz-recent-grid { grid-template-columns: repeat(3, 1fr); } }

.mz-recent-item {
	position: relative; display: block;
	border-radius: 1.25rem; overflow: hidden;
	aspect-ratio: 4 / 5; background: var(--mz-card-2);
	opacity: 0; transform: scale(.95) translateY(10px);
	transition: opacity .7s var(--mz-ease), transform .7s var(--mz-ease);
	transition-delay: calc(var(--mz-i, 0) * .15s);
}
.is-inview .mz-recent-item, .mz-recent-grid:not([data-anim]) .mz-recent-item { opacity: 1; transform: none; }
.mz-recent-item img {
	width: 100%; height: 100%; object-fit: cover;
	transition: transform .6s var(--mz-ease);
}
.mz-recent-item:hover img { transform: scale(1.04); }
.mz-recent-title {
	position: absolute; left: 0; right: 0; bottom: 0;
	padding: 1.25rem; color: var(--mz-cream); font-weight: 500;
	background: linear-gradient(to top, rgba(0,0,0,.55), transparent);
}

.mz-filter { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2.5rem; }
.mz-filter-item {
	padding: .45rem 1.1rem; border-radius: 999px;
	border: 1px solid var(--mz-ink-40); font-size: .85rem;
	transition: all .25s var(--mz-ease);
}
.mz-filter-item:hover, .mz-filter-item.is-active {
	background: var(--mz-ink); color: var(--mz-bg); border-color: var(--mz-ink);
}

/* ---------- CTA ---------- */
.mz-cta {
	background: var(--mz-dark); color: var(--mz-cream);
	text-align: center; padding: 6rem 1.25rem;
	border-radius: var(--mz-radius) var(--mz-radius) 0 0;
}
.mz-cta-heading {
	max-width: 20ch; margin: 0 auto 2.5rem;
	font-size: clamp(2rem, 5vw, 4rem); line-height: 1;
	letter-spacing: -.02em;
	display: inline-flex; flex-wrap: wrap; justify-content: center;
}
.mz-cta .mz-serif { color: #D8A87C; }
.mz-cta .mz-btn-pill { margin: 0 auto; }
.mz-rating {
	margin: 1.5rem 0 0; font-size: .85rem; color: var(--mz-cream-70);
	letter-spacing: .05em;
}
.mz-rating strong { color: var(--mz-cream); }

/* ---------- Σελίδες / prose ---------- */
.mz-page-header { margin-bottom: 2.5rem; }
.mz-page-title {
	font-size: clamp(2rem, 5vw, 3.5rem); letter-spacing: -.02em;
	display: flex; flex-wrap: wrap; gap: 0 .3em;
}
.mz-page-thumb { border-radius: 1.25rem; overflow: hidden; margin-bottom: 2.5rem; }
.mz-prose { font-size: 1rem; line-height: 1.75; color: var(--mz-ink-70); }
.mz-prose h2, .mz-prose h3 { color: var(--mz-ink); margin: 2rem 0 .75rem; }
.mz-prose a { color: var(--mz-accent); text-decoration: underline; }
.mz-pagination { text-align: center; }

/* ---------- Επικοινωνία ---------- */
.mz-contact-grid { display: grid; gap: 3rem; grid-template-columns: 1fr; }
@media (min-width: 900px) { .mz-contact-grid { grid-template-columns: 1fr 1.4fr; } }
.mz-contact-info { display: grid; gap: 1.75rem; align-content: start; }
.mz-contact-item h3 {
	font-size: .75rem; letter-spacing: .15em; text-transform: uppercase;
	color: var(--mz-ink-40); margin-bottom: .35rem;
}
.mz-contact-item p { margin: 0; font-size: 1.15rem; }
.mz-contact-item a:hover { color: var(--mz-accent); }

.mz-contact-form input[type="text"],
.mz-contact-form input[type="email"],
.mz-contact-form input[type="tel"],
.mz-contact-form select,
.mz-contact-form textarea {
	width: 100%; padding: .85rem 1.1rem; margin-bottom: 1rem;
	border: 1px solid var(--mz-ink-40); border-radius: .85rem;
	background: transparent; font-family: inherit; font-size: .95rem;
	color: var(--mz-ink);
}
.mz-contact-form input:focus, .mz-contact-form textarea:focus {
	outline: 2px solid var(--mz-accent); border-color: transparent;
}
.mz-contact-form input[type="submit"], .mz-contact-form button {
	width: auto; cursor: pointer;
	background: var(--mz-ink); color: var(--mz-bg);
	border: none; border-radius: 999px; padding: .85rem 2rem;
	font-weight: 500; transition: background .25s var(--mz-ease);
}
.mz-contact-form input[type="submit"]:hover { background: var(--mz-accent); }

/* ---------- Footer ---------- */
.mz-footer { background: var(--mz-dark); color: var(--mz-cream-70); padding: 4rem 0 2rem; }
.mz-footer-grid {
	display: grid; gap: 2.5rem; grid-template-columns: 1fr;
	margin-bottom: 3rem;
}
@media (min-width: 768px) { .mz-footer-grid { grid-template-columns: 2fr 1fr 1fr 1fr; } }
.mz-footer-logo {
	margin: 0; font-size: 1.35rem; font-weight: 300;
	letter-spacing: .3em; text-transform: uppercase; color: var(--mz-cream);
}
.mz-footer-logo span { font-size: .6em; opacity: .75; letter-spacing: .38em; }
.mz-footer-logo-img { max-width: 180px; height: auto; margin-bottom: .75rem; }
.mz-footer-tag { font-size: .85rem; }
.mz-footer h3 {
	font-size: .7rem; letter-spacing: .15em; text-transform: uppercase;
	color: var(--mz-cream); opacity: .5; margin-bottom: 1rem;
}
.mz-footer p { margin: 0 0 .5rem; font-size: .9rem; }
.mz-footer a:hover { color: var(--mz-cream); }
.mz-footer-list { display: grid; gap: .5rem; font-size: .9rem; }
.mz-footer-copy {
	border-top: 1px solid rgba(225, 224, 204, .15);
	padding-top: 1.5rem; font-size: .75rem; opacity: .6;
}

/* ---------- Service pages (Γάμος, Βάπτιση, Εταιρικά, Ποιοι Είμαστε) ---------- */
.mz-svc-hero {
	position: relative; overflow: hidden;
	min-height: 46vh; display: flex; align-items: flex-end;
	margin: 1rem; border-radius: 1rem;
}
@media (min-width: 768px) { .mz-svc-hero { margin: 1.5rem; border-radius: var(--mz-radius); min-height: 54vh; } }
.mz-svc-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mz-svc-hero-overlay {
	position: absolute; inset: 0;
	background: linear-gradient(to top, rgba(0,0,0,.62), rgba(0,0,0,.12) 55%, rgba(0,0,0,.25));
}
.mz-svc-hero-content {
	position: relative; padding: 2.5rem 1.5rem;
	max-width: 1280px; width: 100%; margin: 0 auto;
}
@media (min-width: 768px) { .mz-svc-hero-content { padding: 3.5rem 2.5rem; } }
.mz-svc-hero-content .mz-label { color: #D8A87C; margin-bottom: .75rem; }
.mz-svc-hero-content h1 {
	color: var(--mz-cream);
	font-size: clamp(1.9rem, 4.5vw, 3.6rem);
	line-height: 1.02; letter-spacing: -.02em;
	max-width: 22ch;
	display: flex; flex-wrap: wrap;
}
.mz-svc-hero-sub {
	margin: .85rem 0 0; color: var(--mz-cream-70);
	font-family: var(--mz-font-serif); font-style: italic;
	font-size: clamp(1rem, 2vw, 1.35rem);
}

.mz-svc-body { padding-bottom: 4rem; }
.mz-svc-section { margin: 3.5rem 0; }
.mz-svc-section h2 {
	font-size: clamp(1.4rem, 2.6vw, 2rem);
	letter-spacing: -.015em; margin-bottom: 1.1rem;
}
.mz-svc-section p { color: var(--mz-ink-70); line-height: 1.75; }
.mz-svc-lead { font-size: 1.12rem; color: var(--mz-ink); line-height: 1.65; }
.mz-svc-section .mz-btn-pill { margin-top: 1.25rem; }

/* Βήματα διαδικασίας */
.mz-steps { display: grid; gap: 1rem; margin-top: 1.75rem; counter-reset: none; }
@media (min-width: 720px) { .mz-steps { grid-template-columns: 1fr 1fr; } }
.mz-steps li {
	background: var(--mz-card);
	border-radius: 1.1rem; padding: 1.5rem;
	opacity: 0; transform: scale(.96) translateY(10px);
	transition: opacity .7s var(--mz-ease), transform .7s var(--mz-ease);
	transition-delay: calc(var(--mz-i, 0) * .12s);
}
.is-inview .mz-steps li, .mz-steps.is-inview li { opacity: 1; transform: none; }
.mz-steps h3 { font-size: 1.02rem; font-weight: 700; margin-bottom: .6rem; }
.mz-steps h3 span { color: var(--mz-accent); font-weight: 400; margin-right: .4rem; font-size: .85em; }
.mz-steps p { font-size: .9rem; margin: 0; }

/* Grid "τι περιλαμβάνει" */
.mz-includes { display: grid; gap: .85rem; margin-top: 1.75rem; }
@media (min-width: 640px) { .mz-includes { grid-template-columns: 1fr 1fr; } }
.mz-include {
	border: 1px solid rgba(43, 37, 33, .12);
	border-radius: 1.1rem; padding: 1.35rem;
	opacity: 0; transform: scale(.96) translateY(10px);
	transition: opacity .7s var(--mz-ease), transform .7s var(--mz-ease);
	transition-delay: calc(var(--mz-i, 0) * .1s);
}
.is-inview .mz-include { opacity: 1; transform: none; }
.mz-include h3 { font-size: .95rem; font-weight: 700; margin-bottom: .45rem; color: var(--mz-accent); }
.mz-include p { font-size: .88rem; margin: 0; }

/* Σκούρα κάρτα-ενότητα */
.mz-svc-dark {
	background: var(--mz-dark); color: var(--mz-cream);
	border-radius: var(--mz-radius);
	padding: 2.5rem 1.5rem;
}
@media (min-width: 768px) { .mz-svc-dark { padding: 3rem 2.5rem; } }
.mz-svc-dark h2 { color: var(--mz-cream); }
.mz-svc-dark p { color: var(--mz-cream-70); }
.mz-svc-dark .mz-checklist { margin: 1.5rem 0; }
.mz-svc-dark .mz-checklist li { color: var(--mz-cream-70); }
.mz-svc-dark .mz-checklist li strong { color: var(--mz-cream); }
.mz-svc-dark .mz-checklist svg { color: #D8A87C; }

.mz-svc-quote {
	margin: 1.75rem 0; padding: 1.25rem 1.5rem;
	border-left: 3px solid var(--mz-accent);
	background: var(--mz-card);
	border-radius: 0 1rem 1rem 0;
	font-family: var(--mz-font-serif); font-style: italic;
	font-size: 1.08rem; color: var(--mz-ink);
}
.mz-svc-dark .mz-svc-quote { background: rgba(225, 224, 204, .06); color: var(--mz-cream); }

/* FAQ accordion */
.mz-faq details {
	border-bottom: 1px solid rgba(43, 37, 33, .12);
	padding: .35rem 0;
}
.mz-faq summary {
	cursor: pointer; list-style: none;
	display: flex; justify-content: space-between; align-items: center; gap: 1rem;
	padding: .9rem 0; font-weight: 700; font-size: .98rem;
}
.mz-faq summary::-webkit-details-marker { display: none; }
.mz-faq summary::after {
	content: '+'; flex: none;
	width: 1.6rem; height: 1.6rem; border-radius: 999px;
	border: 1px solid var(--mz-ink-40);
	display: inline-flex; align-items: center; justify-content: center;
	font-weight: 400; transition: transform .3s var(--mz-ease), background .3s;
}
.mz-faq details[open] summary::after {
	transform: rotate(45deg);
	background: var(--mz-ink); color: var(--mz-bg); border-color: var(--mz-ink);
}
.mz-faq details p { margin: 0 0 1.1rem; font-size: .92rem; }

.mz-svc-cross { font-size: .9rem; color: var(--mz-ink-40); margin: 3rem 0 0; }
.mz-svc-cross a { color: var(--mz-accent); text-decoration: underline; }

.mz-cta-actions {
	display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; align-items: center;
}
.mz-btn-ghost {
	background: transparent; color: var(--mz-cream);
	border: 1px solid rgba(225, 224, 204, .4);
	padding: .8rem 1.5rem;
}
.mz-btn-ghost:hover { border-color: var(--mz-cream); }

/* Hub υπηρεσιών */
.mz-hub-header { text-align: center; }
.mz-hub-header .mz-page-title { justify-content: center; }
.mz-hub-intro { max-width: 56ch; margin: 1rem auto 0; color: var(--mz-ink-70); }
.mz-hub-grid { display: grid; gap: 1.25rem; margin: 3rem 0; }
@media (min-width: 720px) { .mz-hub-grid { grid-template-columns: 1fr 1fr; } }
.mz-hub-card {
	background: var(--mz-card-2); border-radius: 1.25rem; overflow: hidden;
	display: flex; flex-direction: column;
	opacity: 0; transform: scale(.96) translateY(10px);
	transition: opacity .7s var(--mz-ease), transform .7s var(--mz-ease);
	transition-delay: calc(var(--mz-i, 0) * .12s);
}
.is-inview .mz-hub-card { opacity: 1; transform: none; }
.mz-hub-thumb { display: block; aspect-ratio: 16 / 9; overflow: hidden; position: relative; }
.mz-hub-thumb img, .mz-hub-thumb .mz-card-media-ph {
	width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0;
	transition: transform .6s var(--mz-ease);
}
.mz-hub-card:hover .mz-hub-thumb img { transform: scale(1.05); }
.mz-hub-card-body { padding: 1.5rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.mz-hub-card-body h2 { font-size: 1.2rem; font-weight: 700; }
.mz-hub-card-body p { font-size: .9rem; color: var(--mz-ink-70); margin: 0; flex: 1; }
.mz-hub-card-body .mz-card-link { margin-top: .75rem; }
.mz-hub-promises { margin-top: 3rem; }
.mz-hub-promise-lead { font-family: var(--mz-font-serif); font-style: italic; }

/* ---------- Animations: word pull-up & fade ---------- */
.mz-word-wrap { display: inline-flex; overflow: hidden; padding-bottom: .08em; margin-bottom: -.08em; }
.mz-word {
	display: inline-block; white-space: pre;
	transform: translateY(20px); opacity: 0;
	transition: transform .6s var(--mz-ease), opacity .6s var(--mz-ease);
	transition-delay: calc(var(--mz-i, 0) * .08s);
}
.mz-word::after { content: ' '; }
.is-inview .mz-word, .is-inview.mz-word { transform: translateY(0); opacity: 1; }

[data-anim="fade"] {
	opacity: 0; transform: translateY(20px);
	transition: opacity .8s var(--mz-ease), transform .8s var(--mz-ease);
	transition-delay: var(--mz-delay, 0s);
}
[data-anim="fade"].is-inview { opacity: 1; transform: none; }

/* Χωρίς JS ή με reduced motion: όλα ορατά */
.no-js .mz-word, .no-js [data-anim="fade"], .no-js .mz-card, .no-js .mz-recent-item {
	opacity: 1; transform: none;
}
@media (prefers-reduced-motion: reduce) {
	.mz-word, [data-anim="fade"], .mz-card, .mz-recent-item, .mz-letter {
		opacity: 1 !important; transform: none !important; transition: none !important;
	}
}
