/* EMOZIONE landing blocks (front + editor) */
.emz-section__title { font-family: var(--font-display); }

/* Block-rendered section headings: centered above their (centered) content,
   with real breathing room. The bare margin:0 from .emz-section__title is
   meant for the .emz-section__head wrapper, which blocks don't use. */
.emz-section > .emz-container > .emz-section__title {
	text-align: center;
	margin-bottom: clamp(22px, 3.5vw, 44px);
}

/* Text + image */
.emz-section--imgtext .emz-imgtext { display: grid; gap: clamp(24px, 5vw, 64px); align-items: center; }
@media (min-width: 820px) {
	.emz-imgtext { grid-template-columns: 1fr 1fr; }
	.emz-imgtext--right .emz-imgtext__media { order: 2; }
	.emz-imgtext--noimg { grid-template-columns: 1fr; max-width: 70ch; margin-inline: auto; text-align: center; }
}
.emz-imgtext__img { width: 100%; border-radius: var(--r-lg); box-shadow: var(--shadow-md); }
.emz-imgtext__text h2 { margin: 0 0 0.45em; font-size: var(--fs-h2); }
.emz-imgtext__text p { color: var(--ink-soft); font-size: var(--fs-lead); }

/* Temporary AI image-prompt placeholders (seed content; deleted once real images are set) */
.emz-img-prompt {
	max-width: var(--container-narrow); margin: 24px auto; padding: 16px 20px;
	border: 2px dashed var(--accent); border-radius: var(--r-md);
	background: var(--surface); color: var(--ink-soft); font-size: 0.9rem;
}

/* Gallery */
.emz-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.emz-gallery__item { margin: 0; overflow: hidden; border-radius: var(--r-md); box-shadow: var(--shadow-sm); }
.emz-gallery__item img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; transition: transform var(--dur-3) var(--ease-out); }
.emz-gallery__item:hover img { transform: scale(1.04); }

/* Item lists (process / materials / instructions) */
.emz-itemlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; }
.emz-itemlist.process, .emz-itemlist.instructions { counter-reset: step; max-width: var(--container-narrow); margin-inline: auto; }
.emz-itemlist.process .emz-itemlist__item,
.emz-itemlist.instructions .emz-itemlist__item {
	position: relative; padding: 20px 22px 20px 74px;
	background: var(--surface); border-radius: var(--r-md); box-shadow: var(--shadow-sm);
}
.emz-itemlist.process .emz-itemlist__item::before,
.emz-itemlist.instructions .emz-itemlist__item::before {
	counter-increment: step; content: counter(step);
	position: absolute; left: 18px; top: 50%; transform: translateY(-50%);
	width: 40px; height: 40px; display: flex; align-items: center; justify-content: center;
	background: var(--accent); color: #fff; border-radius: 50%;
	font-family: var(--font-ui); font-weight: 800; font-size: 1.05rem;
}
.emz-itemlist.materials { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.emz-itemlist.materials .emz-itemlist__item { padding: 22px; background: var(--surface); border-radius: var(--r-md); box-shadow: var(--shadow-sm); }
.emz-itemlist__title { margin: 0 0 5px; font-size: 1.15rem; font-family: var(--font-display); }
.emz-itemlist__text { color: var(--ink-soft); }
.emz-itemlist__text p { margin: 0; }

/* Testimonials */
.emz-testimonials { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 22px; }
.emz-testimonial { margin: 0; padding: 30px 28px; background: var(--surface); border-radius: var(--r-lg); box-shadow: var(--shadow-sm); position: relative; }
.emz-testimonial::before { content: "\201C"; position: absolute; top: 6px; left: 20px; font-family: var(--font-display); font-size: 4rem; line-height: 1; color: var(--accent-wash); }
.emz-testimonial__quote { margin: 0 0 14px; font-family: var(--font-body); font-size: 1.1rem; font-style: italic; position: relative; }
.emz-testimonial__author { color: var(--accent-ink); font-family: var(--font-ui); font-weight: 700; font-size: .9rem; }

/* FAQ */
.emz-faq { display: grid; gap: 12px; max-width: var(--container-narrow); margin-inline: auto; }
.emz-faq__item { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md); padding: 4px 22px; transition: box-shadow var(--dur-2) var(--ease-out); }
.emz-faq__item[open] { box-shadow: var(--shadow-sm); }
.emz-faq__q { cursor: pointer; font-family: var(--font-ui); font-weight: 600; padding: 16px 0; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 14px; }
.emz-faq__q::-webkit-details-marker { display: none; }
.emz-faq__q::after { content: "+"; font-family: var(--font-ui); font-size: 1.5rem; color: var(--accent); transition: transform var(--dur-2) var(--ease-out); }
.emz-faq__item[open] .emz-faq__q::after { transform: rotate(45deg); }
.emz-faq__a { color: var(--ink-soft); padding: 0 0 16px; }
.emz-faq__a p { margin: 0; }

/* Final CTA — the one section that gets full-unit air around it */
.emz-section--cta { text-align: center; padding-block: var(--section-y); }
.emz-cta {
	max-width: var(--container-narrow); margin-inline: auto;
	display: flex; flex-direction: column; gap: 20px; align-items: center;
	padding: clamp(40px, 6vw, 72px); background: var(--accent-wash); border-radius: var(--r-xl);
}
.emz-cta h2 { font-size: var(--fs-h2); margin: 0; color: var(--accent-ink); }
.emz-cta p { color: var(--ink-soft); font-size: var(--fs-lead); margin: 0; }

/* Editor helpers */
.emz-edit-block { padding: 14px; border: 1px dashed var(--line-strong); border-radius: 10px; }
.emz-edit-heading { font-family: var(--font-display); font-weight: 700; }
.emz-edit-row { display: flex; gap: 8px; align-items: flex-start; padding: 10px; border-bottom: 1px solid var(--line); }
.emz-edit-row__actions { margin-left: auto; display: flex; }
.emz-edit-add { margin-top: 8px; }
.emz-edit-gallery { display: flex; flex-wrap: wrap; margin-top: 8px; }

@media (prefers-reduced-motion: reduce) {
	.emz-gallery__item img, .emz-faq__item, .emz-faq__q::after { transition: none; }
	.emz-gallery__item:hover img { transform: none; }
}
