/** Cilloni Sezioni Servizi - consolidated frontend bundle. */

/* === servizio-banco.css === */
.cilloni-bank,
.cilloni-bank *,
.cilloni-bank *::before,
.cilloni-bank *::after {
	box-sizing: border-box;
}

.cilloni-bank {
	--bank-navy: #102b45;
	--bank-green: #5e8066;
	--bank-sage: #c9d7ca;
	--bank-blush: #ead6cf;
	--bank-ivory: #f7f5ef;
	--bank-paper: #fffefa;
	position: relative;
	min-height: 100vh;
	padding: clamp(72px, 9vw, 150px) clamp(20px, 5vw, 88px) clamp(88px, 10vw, 170px);
	overflow: hidden;
	background:
		linear-gradient(120deg, rgba(255, 255, 255, 0.98), rgba(250, 247, 239, 0.92)),
		var(--bank-ivory);
	color: var(--bank-navy);
	font-family: "Avenir Next", "Segoe UI Variable", "Segoe UI", Arial, sans-serif;
	isolation: isolate;
}

.cilloni-bank::before {
	position: absolute;
	z-index: -2;
	top: 0;
	right: 0;
	left: 0;
	height: 7px;
	background: linear-gradient(90deg, var(--bank-navy) 0 34%, var(--bank-green) 34% 66%, #d5b7a8 66%);
	content: "";
}

.cilloni-bank__inner {
	width: min(100%, 1660px);
	margin: 0 auto;
}

.cilloni-bank__wash {
	position: absolute;
	z-index: -2;
	width: min(43vw, 700px);
	aspect-ratio: 1;
	border-radius: 43% 57% 61% 39% / 52% 42% 58% 48%;
	filter: blur(1px);
	opacity: 0.48;
	pointer-events: none;
}

.cilloni-bank__wash--one {
	top: -24%;
	right: -13%;
	background: radial-gradient(circle at 42% 42%, rgba(234, 214, 207, 0.8), rgba(234, 214, 207, 0) 70%);
	transform: rotate(18deg);
}

.cilloni-bank__wash--two {
	bottom: -35%;
	left: -18%;
	background: radial-gradient(circle at 56% 48%, rgba(201, 215, 202, 0.72), rgba(201, 215, 202, 0) 69%);
	transform: rotate(-24deg);
}

.cilloni-bank__botanical {
	position: absolute;
	z-index: -1;
	right: clamp(-125px, -5vw, -55px);
	bottom: -55px;
	width: clamp(300px, 29vw, 520px);
	color: var(--bank-green);
	opacity: 0.14;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.25;
	pointer-events: none;
}

.cilloni-bank__intro {
	margin-bottom: clamp(54px, 7vw, 108px);
}

.cilloni-bank__eyebrow,
.cilloni-bank__kicker {
	display: flex;
	margin: 0 0 24px;
	align-items: center;
	gap: 14px;
	color: var(--bank-green);
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.cilloni-bank__eyebrow::after,
.cilloni-bank__kicker::after {
	width: 82px;
	height: 1px;
	background: currentColor;
	content: "";
	opacity: 0.55;
}

.cilloni-bank__eyebrow span {
	display: grid;
	width: 34px;
	height: 34px;
	place-items: center;
	border: 1px solid rgba(94, 128, 102, 0.45);
	border-radius: 50%;
	font-size: 0.64rem;
}

.cilloni-bank__heading-row {
	display: grid;
	grid-template-columns: minmax(420px, 1.25fr) minmax(320px, 0.75fr);
	align-items: end;
	gap: clamp(44px, 8vw, 150px);
}

.cilloni-bank__heading-row h1 {
	margin: 0;
	color: var(--bank-navy);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(4.9rem, 8vw, 9.2rem);
	font-weight: 400;
	letter-spacing: -0.055em;
	line-height: 0.78;
}

.cilloni-bank__heading-row h1 em {
	position: relative;
	margin-left: clamp(42px, 7vw, 118px);
	color: var(--bank-navy);
	font-weight: 400;
}

.cilloni-bank__heading-row h1 em::after {
	position: absolute;
	right: -0.12em;
	bottom: -0.08em;
	left: 0.08em;
	height: 0.08em;
	border-radius: 999px;
	background: rgba(16, 43, 69, 0.18);
	content: "";
	transform: rotate(-1deg);
}

.cilloni-bank__heading-row > p {
	max-width: 570px;
	margin: 0 0 8px;
	color: rgba(16, 43, 69, 0.76);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.1rem, 1.45vw, 1.45rem);
	line-height: 1.65;
}

.cilloni-bank__story {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(420px, 0.92fr);
	align-items: start;
	gap: clamp(60px, 8vw, 138px);
}

.cilloni-bank__gallery {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(150px, 0.34fr);
	grid-template-rows: repeat(2, minmax(205px, 1fr));
	height: min(64vw, 770px);
	min-height: 620px;
	gap: clamp(12px, 1.4vw, 24px);
	perspective: 1200px;
}

.cilloni-bank__photo {
	position: relative;
	margin: 0;
	overflow: hidden;
	background: #d9ded8;
	box-shadow: 0 24px 65px rgba(16, 43, 69, 0.12);
	transform: translate3d(var(--photo-x, 0), var(--photo-y, 0), 0);
	transition: transform 900ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 500ms ease;
}

.cilloni-bank__photo--hero {
	grid-row: 1 / -1;
	border-radius: 2px 2px 96px 2px;
}

.cilloni-bank__photo--detail-one {
	border-radius: 70px 2px 2px 2px;
}

.cilloni-bank__photo--detail-two {
	border-radius: 2px 2px 70px 2px;
}

.cilloni-bank__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0.88) contrast(0.98);
	transform: scale(1.035);
	transition: filter 700ms ease, transform 1100ms cubic-bezier(0.16, 1, 0.3, 1);
}

.cilloni-bank__photo--hero img {
	object-position: 48% center;
}

.cilloni-bank__photo--detail-one img {
	object-position: 43% 53%;
	transform: scale(2.35);
}

.cilloni-bank__photo--detail-two img {
	object-position: 68% 57%;
	transform: scale(2.2);
}

.cilloni-bank__photo::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 55%, rgba(5, 27, 45, 0.64));
	content: "";
	pointer-events: none;
}

.cilloni-bank__photo:hover {
	box-shadow: 0 32px 76px rgba(16, 43, 69, 0.2);
}

.cilloni-bank__photo:hover img {
	filter: saturate(1.06) contrast(1);
}

.cilloni-bank__photo--hero:hover img {
	transform: scale(1.075);
}

.cilloni-bank__photo--detail-one:hover img {
	transform: scale(2.48);
}

.cilloni-bank__photo--detail-two:hover img {
	transform: scale(2.32);
}

.cilloni-bank__photo figcaption {
	position: absolute;
	z-index: 1;
	right: clamp(17px, 2vw, 32px);
	bottom: clamp(18px, 2vw, 32px);
	left: clamp(17px, 2vw, 32px);
	display: flex;
	align-items: center;
	gap: 10px;
	color: #fff;
	font-size: 0.68rem;
	font-weight: 650;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.cilloni-bank__photo figcaption span {
	opacity: 0.58;
}

.cilloni-bank__seal {
	position: absolute;
	z-index: 3;
	right: clamp(100px, 12vw, 184px);
	top: 50%;
	width: clamp(90px, 9vw, 132px);
	aspect-ratio: 1;
	padding: 8px;
	border-radius: 50%;
	background: var(--bank-paper);
	box-shadow: 0 15px 40px rgba(16, 43, 69, 0.2);
	color: var(--bank-green);
	transform: translate(50%, -50%);
}

.cilloni-bank__seal svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.1;
	animation: cilloni-bank-seal 28s linear infinite;
}

.cilloni-bank__seal text {
	fill: currentColor;
	stroke: none;
	font: 700 8px/1 "Segoe UI", sans-serif;
	letter-spacing: 1.7px;
}

.cilloni-bank__services {
	padding-top: clamp(0px, 2vw, 24px);
}

.cilloni-bank__kicker {
	margin-bottom: 28px;
}

.cilloni-bank__accordion {
	border-top: 1px solid rgba(16, 43, 69, 0.18);
}

.cilloni-bank__item {
	border-bottom: 1px solid rgba(16, 43, 69, 0.18);
}

.cilloni-bank__item button {
	display: grid;
	width: 100%;
	min-height: 83px;
	padding: 19px 0;
	grid-template-columns: 42px 1fr 34px;
	align-items: center;
	gap: 14px;
	border: 0;
	background: transparent;
	color: var(--bank-navy);
	cursor: pointer;
	font: inherit;
	text-align: left;
}

.cilloni-bank__number {
	color: var(--bank-green);
	font-size: 0.67rem;
	font-weight: 750;
	letter-spacing: 0.12em;
}

.cilloni-bank__item-title {
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.3rem, 1.7vw, 1.75rem);
	line-height: 1.15;
	transition: color 350ms ease, transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
}

.cilloni-bank__item button:hover .cilloni-bank__item-title,
.cilloni-bank__item button:focus-visible .cilloni-bank__item-title,
.cilloni-bank__item.is-open .cilloni-bank__item-title {
	color: var(--bank-green);
	transform: translateX(7px);
}

.cilloni-bank__item button:focus-visible {
	outline: 2px solid var(--bank-green);
	outline-offset: 5px;
}

.cilloni-bank__plus {
	position: relative;
	display: block;
	width: 30px;
	height: 30px;
	border: 1px solid rgba(16, 43, 69, 0.24);
	border-radius: 50%;
	transition: border-color 350ms ease, background-color 350ms ease, transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
}

.cilloni-bank__plus::before,
.cilloni-bank__plus::after {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 10px;
	height: 1px;
	background: currentColor;
	content: "";
	transform: translate(-50%, -50%);
}

.cilloni-bank__plus::after {
	transform: translate(-50%, -50%) rotate(90deg);
	transition: transform 350ms ease;
}

.cilloni-bank__item.is-open .cilloni-bank__plus {
	border-color: var(--bank-green);
	background: var(--bank-green);
	color: #fff;
	transform: rotate(180deg);
}

.cilloni-bank__item.is-open .cilloni-bank__plus::after {
	transform: translate(-50%, -50%) rotate(0deg);
}

.cilloni-bank__answer {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 600ms cubic-bezier(0.16, 1, 0.3, 1);
}

.cilloni-bank__answer > div {
	overflow: hidden;
}

.cilloni-bank__answer p {
	max-width: 620px;
	margin: 0;
	padding: 0 50px 0 56px;
	color: rgba(16, 43, 69, 0.7);
	font-size: 0.98rem;
	line-height: 1.75;
	opacity: 0;
	transform: translateY(-8px);
	transition: opacity 400ms ease, padding 600ms ease, transform 500ms ease;
}

.cilloni-bank__item.is-open .cilloni-bank__answer {
	grid-template-rows: 1fr;
}

.cilloni-bank__item.is-open .cilloni-bank__answer p {
	padding-bottom: 27px;
	opacity: 1;
	transform: translateY(0);
}

.cilloni-bank__note {
	display: grid;
	margin-top: clamp(40px, 6vw, 82px);
	padding: 26px 28px;
	grid-template-columns: 24px 1fr;
	gap: 16px;
	border-left: 2px solid var(--bank-green);
	background: rgba(201, 215, 202, 0.2);
}

.cilloni-bank__note span {
	color: var(--bank-green);
}

.cilloni-bank__note p {
	margin: 0;
	color: rgba(16, 43, 69, 0.72);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.04rem;
	line-height: 1.65;
}

.cilloni-bank__note strong {
	color: var(--bank-navy);
	font-weight: 600;
}

.cilloni-bank__reveal {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 900ms ease, transform 1000ms cubic-bezier(0.16, 1, 0.3, 1);
}

.cilloni-bank__reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.cilloni-bank__story > .cilloni-bank__reveal:nth-child(2) {
	transition-delay: 130ms;
}

@keyframes cilloni-bank-seal {
	to { transform: rotate(360deg); }
}

@media (max-width: 1120px) {
	.cilloni-bank__heading-row {
		grid-template-columns: 1fr;
		gap: 42px;
	}

	.cilloni-bank__heading-row > p {
		margin-left: clamp(40px, 12vw, 150px);
	}

	.cilloni-bank__story {
		grid-template-columns: 1fr;
	}

	.cilloni-bank__gallery {
		height: min(76vw, 740px);
		min-height: 560px;
	}

	.cilloni-bank__services {
		width: min(100%, 780px);
		margin-left: auto;
	}
}

@media (max-width: 700px) {
	.cilloni-bank {
		--bank-mobile-hero-height: clamp(270px, 38vh, 350px);
		padding: 70px 18px 90px;
	}

	.cilloni-bank__intro {
		margin-bottom: 48px;
	}

	.cilloni-bank__heading-row h1 {
		font-size: clamp(4.05rem, 20vw, 6.6rem);
	}

	.cilloni-bank__heading-row h1 em {
		margin-left: 24px;
	}

	.cilloni-bank__heading-row > p {
		margin-left: 28px;
		font-size: 1.06rem;
	}

	.cilloni-bank__gallery {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: var(--bank-mobile-hero-height) 165px;
		height: auto;
		min-height: 0;
		gap: 10px;
	}

	.cilloni-bank__photo--hero {
		grid-column: 1 / -1;
		grid-row: auto;
		border-radius: 2px 2px 55px 2px;
	}

	.cilloni-bank__photo--detail-one,
	.cilloni-bank__photo--detail-two {
		border-radius: 2px;
	}

	.cilloni-bank__photo--detail-one {
		border-bottom-left-radius: 42px;
	}

	.cilloni-bank__photo--detail-two {
		border-bottom-right-radius: 42px;
	}

	.cilloni-bank__photo figcaption {
		right: 14px;
		bottom: 14px;
		left: 14px;
		font-size: 0.58rem;
		letter-spacing: 0.09em;
	}

	.cilloni-bank__seal {
		right: 50%;
		top: calc(var(--bank-mobile-hero-height) + 5px);
		width: 82px;
		transform: translate(50%, -50%);
	}

	.cilloni-bank__services {
		padding-top: 6px;
	}

	.cilloni-bank__item button {
		min-height: 72px;
		grid-template-columns: 30px 1fr 30px;
		gap: 10px;
	}

	.cilloni-bank__item-title {
		font-size: 1.25rem;
	}

	.cilloni-bank__answer p {
		padding-right: 4px;
		padding-left: 40px;
	}

	.cilloni-bank__botanical {
		right: -160px;
		width: 390px;
	}
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }

	.cilloni-bank *,
	.cilloni-bank *::before,
	.cilloni-bank *::after {
		animation-duration: 0.01ms;
		animation-iteration-count: 1;
		transition-duration: 0.01ms;
	}

	.cilloni-bank__reveal {
		opacity: 1;
		transform: none;
	}
}


/* === manutenzione-v2.css === */
.cilloni-green,
.cilloni-green * {
	box-sizing: border-box;
}

.cilloni-green {
	--green-navy: #102b45;
	--green-leaf: #587a61;
	--green-sage: #d8e3d8;
	--green-soft: #edf1e9;
	--green-paper: #fffefa;
	position: relative;
	padding: clamp(82px, 10vw, 160px) clamp(20px, 5vw, 88px) clamp(96px, 12vw, 190px);
	overflow: hidden;
	background:
		radial-gradient(circle at 4% 31%, rgba(216, 227, 216, 0.6), transparent 23%),
		linear-gradient(155deg, #fbfaf5 0 48%, #edf2eb 100%);
	color: var(--green-navy);
	font-family: "Avenir Next", "Segoe UI Variable", "Segoe UI", Arial, sans-serif;
	isolation: isolate;
}

.cilloni-green::before {
	position: absolute;
	z-index: -1;
	top: 0;
	right: 12%;
	width: 1px;
	height: 22%;
	background: rgba(88, 122, 97, 0.25);
	content: "";
}

.cilloni-green__linework {
	position: absolute;
	z-index: -1;
	right: -160px;
	top: 12%;
	width: min(55vw, 820px);
	stroke: var(--green-leaf);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1;
	opacity: 0.1;
	pointer-events: none;
}

.cilloni-green__inner {
	width: min(100%, 1660px);
	margin: 0 auto;
}

.cilloni-green__header {
	display: grid;
	margin-bottom: clamp(70px, 9vw, 135px);
	grid-template-columns: minmax(520px, 1.35fr) minmax(320px, 0.65fr);
	align-items: end;
	gap: clamp(44px, 8vw, 150px);
}

.cilloni-green__header h2 {
	margin: 0;
	color: var(--green-navy);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(4.9rem, 8vw, 9.2rem);
	font-weight: 400;
	letter-spacing: -0.055em;
	line-height: 0.78;
}

.cilloni-green__header h2 em {
	position: relative;
	margin-left: clamp(42px, 7vw, 118px);
	color: inherit;
	font-weight: 400;
}

.cilloni-green__header h2 em::after {
	position: absolute;
	right: -0.12em;
	bottom: -0.08em;
	left: 0.08em;
	height: 0.08em;
	border-radius: 999px;
	background: rgba(16, 43, 69, 0.16);
	content: "";
	transform: rotate(-1deg);
}

.cilloni-green__header > p {
	max-width: 570px;
	margin: 0 0 8px;
	color: rgba(16, 43, 69, 0.72);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.1rem, 1.45vw, 1.45rem);
	line-height: 1.65;
}

.cilloni-green__composition {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(390px, 0.75fr);
	align-items: center;
	gap: clamp(26px, 4vw, 68px);
}

.cilloni-green__gallery {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(150px, 0.38fr);
	grid-template-rows: repeat(2, minmax(210px, 1fr));
	height: clamp(600px, 58vw, 790px);
	gap: clamp(10px, 1.2vw, 18px);
}

.cilloni-green__ghost {
	position: absolute;
	z-index: -1;
	top: -0.58em;
	left: -0.04em;
	margin: 0;
	color: transparent;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(7rem, 14vw, 14rem);
	font-style: italic;
	line-height: 1;
	-webkit-text-stroke: 1px rgba(88, 122, 97, 0.16);
	white-space: nowrap;
}

.cilloni-green__photo {
	position: relative;
	margin: 0;
	overflow: hidden;
	background: #d5ddd2;
	box-shadow: 0 26px 64px rgba(16, 43, 69, 0.1);
	transition: filter 500ms ease, opacity 500ms ease, transform 850ms cubic-bezier(0.16, 1, 0.3, 1);
}

.cilloni-green__photo--main {
	grid-row: 1 / -1;
	border-radius: 48% 2px 2px 2px / 22% 2px 2px 2px;
}

.cilloni-green__photo--detail {
	border-radius: 2px 60px 2px 2px;
}

.cilloni-green__photo--portrait {
	border-radius: 2px 2px 60px 2px;
}

.cilloni-green__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0.78) contrast(0.98);
	transition: filter 700ms ease, transform 1100ms cubic-bezier(0.16, 1, 0.3, 1);
}

.cilloni-green__photo--main img {
	object-position: 50% center;
}

.cilloni-green__photo--detail img {
	object-position: 50% 20%;
	transform: scale(1.72);
}

.cilloni-green__photo--portrait img {
	object-position: 55% 75%;
	transform: scale(1.52);
}

.cilloni-green__photo::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 56%, rgba(9, 35, 37, 0.6));
	content: "";
	pointer-events: none;
}

.cilloni-green__photo.is-active img,
.cilloni-green__photo:hover img {
	filter: saturate(1) contrast(1);
}

.cilloni-green__photo--main.is-active img,
.cilloni-green__photo--main:hover img { transform: scale(1.045); }
.cilloni-green__photo--detail.is-active img,
.cilloni-green__photo--detail:hover img { transform: scale(1.84); }
.cilloni-green__photo--portrait.is-active img,
.cilloni-green__photo--portrait:hover img { transform: scale(1.64); }

.cilloni-green__photo figcaption {
	position: absolute;
	z-index: 1;
	right: 19px;
	bottom: 19px;
	left: 19px;
	display: flex;
	align-items: center;
	gap: 9px;
	color: #fff;
	font-size: 0.61rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.cilloni-green__photo figcaption span {
	opacity: 0.58;
}

.cilloni-green__photo--detail figcaption {
	top: 19px;
	bottom: auto;
}

.cilloni-green__orbit {
	position: absolute;
	z-index: 3;
	right: clamp(90px, 10.8vw, 168px);
	top: 50%;
	width: clamp(94px, 9vw, 132px);
	aspect-ratio: 1;
	padding: 8px;
	border-radius: 50%;
	background: var(--green-paper);
	box-shadow: 0 18px 46px rgba(16, 43, 69, 0.18);
	color: var(--green-leaf);
	transform: translate(50%, -50%);
}

.cilloni-green__orbit svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.1;
}

.cilloni-green__orbit text {
	fill: currentColor;
	stroke: none;
	font: 700 7px/1 "Segoe UI", sans-serif;
	letter-spacing: 1.45px;
	animation: cilloni-green-orbit 25s linear infinite;
	transform-origin: center;
}

.cilloni-green__card {
	position: relative;
	z-index: 4;
	margin-left: clamp(-90px, -5.5vw, -35px);
	padding: clamp(34px, 4vw, 66px);
	border: 1px solid rgba(88, 122, 97, 0.16);
	border-radius: 2px 70px 2px 2px;
	background: rgba(255, 254, 250, 0.94);
	box-shadow: 0 30px 90px rgba(16, 43, 69, 0.13);
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
}

.cilloni-green__card-index {
	margin: 0 0 26px;
	color: var(--green-leaf);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.05rem;
	font-style: italic;
}

.cilloni-green__tabs {
	display: flex;
	margin-bottom: 42px;
	gap: 5px;
	border-bottom: 1px solid rgba(16, 43, 69, 0.14);
}

.cilloni-green__tabs button {
	position: relative;
	min-height: 45px;
	padding: 8px 12px 15px;
	border: 0;
	background: transparent;
	color: rgba(16, 43, 69, 0.48);
	cursor: pointer;
	font: inherit;
	font-size: 0.65rem;
	font-weight: 750;
	letter-spacing: 0.11em;
	text-transform: uppercase;
	transition: color 350ms ease;
}

.cilloni-green__tabs button::after {
	position: absolute;
	right: 10px;
	bottom: -1px;
	left: 10px;
	height: 2px;
	background: var(--green-leaf);
	content: "";
	transform: scaleX(0);
	transition: transform 400ms cubic-bezier(0.16, 1, 0.3, 1);
}

.cilloni-green__tabs button:hover,
.cilloni-green__tabs button:focus-visible,
.cilloni-green__tabs button.is-active {
	color: var(--green-navy);
}

.cilloni-green__tabs button.is-active::after {
	transform: scaleX(1);
}

.cilloni-green__tabs button:focus-visible {
	outline: 2px solid var(--green-leaf);
	outline-offset: 3px;
}

.cilloni-green__panel[hidden] {
	display: none;
}

.cilloni-green__panel.is-active {
	animation: cilloni-green-panel 650ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.cilloni-green__overline {
	margin: 0 0 15px;
	color: var(--green-leaf);
	font-size: 0.62rem;
	font-weight: 750;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.cilloni-green__panel h3 {
	margin: 0 0 22px;
	color: var(--green-navy);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2rem, 2.7vw, 3.25rem);
	font-weight: 400;
	line-height: 1.06;
}

.cilloni-green__panel > p:not(.cilloni-green__overline) {
	margin: 0;
	color: rgba(16, 43, 69, 0.68);
	font-size: 0.93rem;
	line-height: 1.75;
}

.cilloni-green__panel ul {
	display: flex;
	margin: 27px 0 0;
	padding: 0;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
}

.cilloni-green__panel li {
	padding: 8px 12px;
	border: 1px solid rgba(88, 122, 97, 0.2);
	border-radius: 999px;
	background: rgba(216, 227, 216, 0.22);
	color: var(--green-leaf);
	font-size: 0.66rem;
	font-weight: 650;
	letter-spacing: 0.03em;
}

.cilloni-green__steps {
	margin-top: 40px;
	padding-top: 24px;
	border-top: 1px solid rgba(16, 43, 69, 0.17);
}

.cilloni-green__steps-label {
	margin: 0 0 10px;
	color: var(--green-leaf);
	font-size: 0.58rem;
	font-weight: 750;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.cilloni-green__steps > div {
	display: grid;
	min-height: 68px;
	padding: 14px 0;
	grid-template-columns: 30px 1fr;
	align-items: center;
	gap: 12px;
	border-bottom: 1px solid rgba(16, 43, 69, 0.11);
}

.cilloni-green__steps > div:last-child {
	border-bottom: 0;
}

.cilloni-green__steps span {
	padding-top: 4px;
	color: var(--green-leaf);
	font-size: 0.61rem;
	font-weight: 750;
	letter-spacing: 0.12em;
}

.cilloni-green__steps p {
	margin: 0;
	color: rgba(16, 43, 69, 0.58);
	font-size: 0.69rem;
	line-height: 1.45;
}

.cilloni-green__steps strong {
	display: block;
	margin-bottom: 4px;
	color: var(--green-navy);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1rem;
	font-weight: 400;
}

.cilloni-green__reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 900ms ease, transform 1000ms cubic-bezier(0.16, 1, 0.3, 1);
}

.cilloni-green__reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.cilloni-green__card.cilloni-green__reveal { transition-delay: 120ms; }

@keyframes cilloni-green-panel {
	from { opacity: 0; transform: translateY(12px); }
	to { opacity: 1; transform: translateY(0); }
}

@keyframes cilloni-green-orbit {
	to { transform: rotate(360deg); }
}

@media (max-width: 1100px) {
	.cilloni-green__header {
		grid-template-columns: 1fr;
		gap: 42px;
	}

	.cilloni-green__header > p {
		margin-left: clamp(40px, 12vw, 150px);
	}

	.cilloni-green__composition {
		grid-template-columns: 1fr;
	}

	.cilloni-green__gallery {
		height: min(78vw, 740px);
	}

	.cilloni-green__card {
		width: min(88%, 790px);
		margin: clamp(-110px, -9vw, -60px) 0 0 auto;
	}

	.cilloni-green__orbit {
		right: clamp(95px, 13vw, 160px);
	}
}

@media (max-width: 700px) {
	.cilloni-green {
		padding: 82px 18px 90px;
	}

	.cilloni-green__header {
		margin-bottom: 62px;
	}

	.cilloni-green__header h2 {
		font-size: clamp(3.7rem, 17vw, 5.8rem);
		line-height: 0.84;
	}

	.cilloni-green__header h2 em {
		margin-left: 23px;
	}

	.cilloni-green__header > p {
		margin-left: 26px;
		font-size: 1.05rem;
	}

	.cilloni-green__gallery {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 300px 145px;
		height: auto;
		gap: 8px;
	}

	.cilloni-green__photo--main {
		grid-column: 1 / -1;
		grid-row: auto;
		border-radius: 80px 2px 2px 2px;
	}

	.cilloni-green__photo--detail,
	.cilloni-green__photo--portrait {
		border-radius: 2px;
	}

	.cilloni-green__photo--detail { border-bottom-left-radius: 42px; }
	.cilloni-green__photo--portrait { border-bottom-right-radius: 42px; }

	.cilloni-green__photo figcaption {
		right: 12px;
		bottom: 12px;
		left: 12px;
		font-size: 0.5rem;
	}

	.cilloni-green__photo--detail figcaption {
		top: 12px;
		bottom: auto;
	}

	.cilloni-green__orbit {
		right: 50%;
		top: 304px;
		width: 78px;
		transform: translate(50%, -50%);
	}

	.cilloni-green__card {
		width: calc(100% - 18px);
		margin: -28px 0 0 auto;
		padding: 38px 24px 32px;
		border-radius: 2px 46px 2px 2px;
	}

	.cilloni-green__tabs {
		overflow-x: auto;
		scrollbar-width: none;
	}

	.cilloni-green__tabs::-webkit-scrollbar { display: none; }

	.cilloni-green__tabs button {
		min-width: max-content;
		padding-inline: 10px;
	}

	.cilloni-green__panel h3 {
		font-size: 2.15rem;
	}

	.cilloni-green__steps > div {
		min-height: auto;
		padding: 14px 0;
	}

	.cilloni-green__linework {
		right: -290px;
		width: 620px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cilloni-green *,
	.cilloni-green *::before,
	.cilloni-green *::after {
		animation-duration: 0.01ms;
		animation-iteration-count: 1;
		transition-duration: 0.01ms;
	}

	.cilloni-green__reveal {
		opacity: 1;
		transform: none;
	}
}


/* === eventi-cerimonie.css === */
.cilloni-event,
.cilloni-event * {
	box-sizing: border-box;
}

.cilloni-event {
	--event-navy: #0b2036;
	--event-night: #071624;
	--event-wine: #462b38;
	--event-gold: #d4b885;
	--event-blush: #eadbd5;
	--event-paper: #fffdf8;
	position: relative;
	background: var(--event-paper);
	color: var(--event-navy);
	font-family: "Avenir Next", "Segoe UI Variable", "Segoe UI", Arial, sans-serif;
}

.cilloni-event__header {
	padding: clamp(82px, 10vw, 160px) clamp(20px, 5vw, 88px) clamp(72px, 9vw, 132px);
	overflow: hidden;
	background:
		radial-gradient(circle at 87% 12%, rgba(212, 184, 133, 0.11), transparent 26%),
		linear-gradient(145deg, #0b2036 0 58%, #071624 100%);
}

.cilloni-event__header-inner,
.cilloni-event__stage-inner {
	width: min(100%, 1660px);
	margin: 0 auto;
}

.cilloni-event__header-inner {
	display: grid;
	grid-template-columns: minmax(520px, 1.35fr) minmax(320px, 0.65fr);
	align-items: end;
	gap: clamp(44px, 8vw, 150px);
}

.cilloni-event__header h2 {
	margin: 0;
	color: #fff;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(4.9rem, 8vw, 9.2rem);
	font-weight: 400;
	letter-spacing: -0.055em;
	line-height: 0.78;
}

.cilloni-event__header h2 em {
	position: relative;
	margin-left: clamp(42px, 7vw, 118px);
	color: inherit;
	font-weight: 400;
}

.cilloni-event__header h2 em::after {
	position: absolute;
	right: -0.12em;
	bottom: -0.08em;
	left: 0.08em;
	height: 0.08em;
	border-radius: 999px;
	background: rgba(212, 184, 133, 0.34);
	content: "";
	transform: rotate(-1deg);
}

.cilloni-event__header p {
	max-width: 570px;
	margin: 0 0 8px;
	color: rgba(255, 255, 255, 0.72);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.1rem, 1.45vw, 1.45rem);
	line-height: 1.65;
}

.cilloni-event__stage {
	--event-pointer-x: 42%;
	--event-pointer-y: 38%;
	position: relative;
	padding: clamp(76px, 9vw, 145px) clamp(20px, 5vw, 88px) clamp(95px, 12vw, 190px);
	overflow: hidden;
	background:
		radial-gradient(circle at var(--event-pointer-x) var(--event-pointer-y), rgba(212, 184, 133, 0.13), transparent 27%),
		linear-gradient(132deg, #071624 0%, #0b2036 57%, #281d2a 100%);
	color: #fff;
	isolation: isolate;
}

.cilloni-event__stage::before,
.cilloni-event__stage::after {
	position: absolute;
	z-index: -1;
	content: "";
	pointer-events: none;
}

.cilloni-event__stage::before {
	inset: 18px;
	border: 1px solid rgba(212, 184, 133, 0.12);
}

.cilloni-event__stage::after {
	top: 0;
	right: 0;
	width: min(42vw, 720px);
	height: 5px;
	background: linear-gradient(90deg, transparent, var(--event-gold));
}

.cilloni-event__light {
	position: absolute;
	z-index: -1;
	top: calc(var(--event-pointer-y) - 240px);
	left: calc(var(--event-pointer-x) - 240px);
	width: 480px;
	height: 480px;
	border-radius: 50%;
	background: rgba(245, 226, 187, 0.055);
	filter: blur(30px);
	pointer-events: none;
	transition: top 900ms cubic-bezier(0.16, 1, 0.3, 1), left 900ms cubic-bezier(0.16, 1, 0.3, 1);
}

.cilloni-event__floral-line {
	position: absolute;
	z-index: -1;
	right: -125px;
	bottom: -120px;
	width: min(42vw, 650px);
	stroke: var(--event-gold);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1;
	opacity: 0.13;
	pointer-events: none;
}

.cilloni-event__stage-inner {
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(420px, 0.88fr);
	align-items: center;
	gap: clamp(28px, 5vw, 82px);
}

.cilloni-event__gallery {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(150px, 0.34fr);
	grid-template-rows: repeat(2, minmax(210px, 1fr));
	height: clamp(640px, 61vw, 840px);
	gap: clamp(10px, 1.2vw, 18px);
	perspective: 1400px;
}

.cilloni-event__counter {
	position: absolute;
	z-index: 4;
	top: -30px;
	right: 0;
	display: flex;
	width: 190px;
	align-items: center;
	gap: 10px;
	color: rgba(255, 255, 255, 0.42);
	font-size: 0.58rem;
	font-weight: 700;
	letter-spacing: 0.18em;
}

.cilloni-event__counter i {
	height: 1px;
	flex: 1;
	background: rgba(212, 184, 133, 0.45);
}

.cilloni-event__photo {
	position: relative;
	margin: 0;
	overflow: hidden;
	background: #1a2a38;
	box-shadow: 0 32px 80px rgba(0, 0, 0, 0.25);
	cursor: pointer;
	transform: translate3d(var(--event-photo-x, 0), var(--event-photo-y, 0), 0);
	transition: box-shadow 600ms ease, opacity 500ms ease, transform 1000ms cubic-bezier(0.16, 1, 0.3, 1);
}

.cilloni-event__photo:focus-visible {
	outline: 2px solid var(--event-gold);
	outline-offset: 5px;
}

.cilloni-event__photo--hero {
	grid-row: 1 / -1;
	border-radius: 150px 2px 2px 2px;
}

.cilloni-event__photo--flower {
	border-radius: 2px 80px 2px 2px;
}

.cilloni-event__photo--space {
	border-radius: 2px 2px 80px 2px;
}

.cilloni-event__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0.68) sepia(0.08) brightness(0.82);
	transition: filter 850ms ease, transform 1400ms cubic-bezier(0.16, 1, 0.3, 1);
}

.cilloni-event__photo--hero img {
	object-position: 50% center;
	transform: scale(1.035);
}

.cilloni-event__photo--flower img {
	object-position: 31% 72%;
	transform: scale(2.25);
}

.cilloni-event__photo--space img {
	object-position: 70% 18%;
	transform: scale(1.85);
}

.cilloni-event__photo::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 50%, rgba(7, 22, 36, 0.78));
	content: "";
	pointer-events: none;
}

.cilloni-event__photo.is-active {
	box-shadow: 0 36px 95px rgba(0, 0, 0, 0.35), 0 0 0 1px rgba(212, 184, 133, 0.3);
}

.cilloni-event__photo.is-active img,
.cilloni-event__photo:hover img {
	filter: saturate(0.96) sepia(0.03) brightness(0.96);
}

.cilloni-event__photo--hero.is-active img,
.cilloni-event__photo--hero:hover img { transform: scale(1.08); }
.cilloni-event__photo--flower.is-active img,
.cilloni-event__photo--flower:hover img { transform: scale(2.4); }
.cilloni-event__photo--space.is-active img,
.cilloni-event__photo--space:hover img { transform: scale(2); }

.cilloni-event__photo figcaption {
	position: absolute;
	z-index: 2;
	right: 21px;
	bottom: 21px;
	left: 21px;
	color: #fff;
}

.cilloni-event__photo figcaption span,
.cilloni-event__photo--flower figcaption,
.cilloni-event__photo--space figcaption {
	font-size: 0.58rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.cilloni-event__photo figcaption span {
	display: block;
	margin-bottom: 7px;
	color: var(--event-gold);
}

.cilloni-event__photo figcaption strong {
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.15rem, 1.6vw, 1.6rem);
	font-weight: 400;
}

.cilloni-event__photo--flower figcaption {
	top: 21px;
	bottom: auto;
}

.cilloni-event__monogram {
	position: absolute;
	z-index: 5;
	right: clamp(92px, 10vw, 157px);
	top: 50%;
	display: block;
	width: clamp(94px, 9vw, 132px);
	aspect-ratio: 1;
	border: 1px solid rgba(212, 184, 133, 0.5);
	border-radius: 50%;
	background: rgba(7, 22, 36, 0.88);
	box-shadow: 0 20px 55px rgba(0, 0, 0, 0.32);
	color: var(--event-gold);
	transform: translate(50%, -50%);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

.cilloni-event__monogram::before {
	position: absolute;
	inset: 8px;
	border: 1px solid rgba(212, 184, 133, 0.22);
	border-radius: 50%;
	content: "";
}

.cilloni-event__monogram svg {
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
}

.cilloni-event__monogram text {
	fill: currentColor;
	stroke: none;
	font: 700 6.7px/1 "Segoe UI", sans-serif;
	letter-spacing: 1.2px;
}

.cilloni-event__monogram-copy {
	animation: cilloni-event-spin 24s linear infinite;
	transform-origin: 60px 60px;
}

.cilloni-event__rings {
	transform-origin: center;
	animation: cilloni-event-rings 3.4s ease-in-out infinite alternate;
}

.cilloni-event__director {
	position: relative;
	z-index: 4;
	margin-left: clamp(-86px, -5vw, -34px);
	padding: clamp(36px, 4.5vw, 70px);
	border: 1px solid rgba(212, 184, 133, 0.22);
	border-radius: 2px 100px 2px 2px;
	background: rgba(10, 29, 46, 0.9);
	box-shadow: 0 40px 110px rgba(0, 0, 0, 0.3);
	-webkit-backdrop-filter: blur(18px);
	backdrop-filter: blur(18px);
}

.cilloni-event__director-head {
	display: flex;
	margin-bottom: 28px;
	align-items: center;
	justify-content: space-between;
	color: var(--event-gold);
}

.cilloni-event__director-head p {
	margin: 0;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.05rem;
	font-style: italic;
}

.cilloni-event__director-head span {
	font-size: 0.9rem;
	animation: cilloni-event-pulse 2.8s ease-in-out infinite alternate;
}

.cilloni-event__tabs {
	display: flex;
	margin-bottom: 42px;
	border-top: 1px solid rgba(255, 255, 255, 0.13);
	border-bottom: 1px solid rgba(255, 255, 255, 0.13);
}

.cilloni-event__tabs button {
	position: relative;
	min-height: 58px;
	padding: 12px 14px;
	border: 0;
	background: transparent;
	color: rgba(255, 255, 255, 0.45);
	cursor: pointer;
	font: inherit;
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	transition: color 350ms ease, background-color 350ms ease;
}

.cilloni-event__tabs button span {
	display: block;
	margin-bottom: 4px;
	color: var(--event-gold);
	font-size: 0.48rem;
	opacity: 0.55;
}

.cilloni-event__tabs button::after {
	position: absolute;
	right: 13px;
	bottom: -1px;
	left: 13px;
	height: 2px;
	background: var(--event-gold);
	content: "";
	transform: scaleX(0);
	transition: transform 450ms cubic-bezier(0.16, 1, 0.3, 1);
}

.cilloni-event__tabs button:hover,
.cilloni-event__tabs button:focus-visible,
.cilloni-event__tabs button.is-active {
	color: #fff;
	background: rgba(212, 184, 133, 0.055);
}

.cilloni-event__tabs button.is-active::after { transform: scaleX(1); }
.cilloni-event__tabs button:focus-visible { outline: 2px solid var(--event-gold); outline-offset: 3px; }

.cilloni-event__panel[hidden] { display: none; }
.cilloni-event__panel.is-active { animation: cilloni-event-panel 700ms cubic-bezier(0.16, 1, 0.3, 1) both; }

.cilloni-event__overline {
	margin: 0 0 16px;
	color: var(--event-gold);
	font-size: 0.6rem;
	font-weight: 750;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.cilloni-event__panel h3 {
	margin: 0 0 22px;
	color: #fff;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2.15rem, 3vw, 3.65rem);
	font-weight: 400;
	line-height: 1;
}

.cilloni-event__panel > p:not(.cilloni-event__overline) {
	margin: 0;
	color: rgba(255, 255, 255, 0.62);
	font-size: 0.91rem;
	line-height: 1.75;
}

.cilloni-event__services {
	display: flex;
	margin-top: 25px;
	flex-wrap: wrap;
	gap: 7px;
}

.cilloni-event__services span {
	padding: 7px 11px;
	border: 1px solid rgba(212, 184, 133, 0.24);
	border-radius: 999px;
	color: rgba(255, 255, 255, 0.68);
	font-size: 0.61rem;
	letter-spacing: 0.04em;
}

.cilloni-event__process {
	margin-top: 38px;
	padding-top: 24px;
	border-top: 1px solid rgba(255, 255, 255, 0.13);
}

.cilloni-event__process > p {
	margin: 0 0 20px;
	color: var(--event-gold);
	font-size: 0.56rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.cilloni-event__process ol {
	position: relative;
	display: grid;
	margin: 0;
	padding: 0;
	grid-template-columns: repeat(4, 1fr);
	list-style: none;
}

.cilloni-event__process ol::before {
	position: absolute;
	top: 4px;
	right: 12.5%;
	left: 4px;
	height: 1px;
	background: rgba(212, 184, 133, 0.3);
	content: "";
}

.cilloni-event__process li {
	position: relative;
	display: grid;
	gap: 7px;
}

.cilloni-event__process li::before {
	position: relative;
	z-index: 1;
	width: 9px;
	height: 9px;
	margin-bottom: 10px;
	border: 2px solid var(--event-night);
	border-radius: 50%;
	background: var(--event-gold);
	box-shadow: 0 0 0 1px rgba(212, 184, 133, 0.4);
	content: "";
}

.cilloni-event__process li span {
	color: var(--event-gold);
	font-size: 0.48rem;
	letter-spacing: 0.12em;
}

.cilloni-event__process li strong {
	color: rgba(255, 255, 255, 0.78);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.8rem;
	font-weight: 400;
}

.cilloni-event__glints {
	position: absolute;
	z-index: 7;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
}

.cilloni-event__glint {
	position: absolute;
	left: var(--glint-x);
	top: var(--glint-y);
	width: var(--glint-size);
	height: var(--glint-size);
	border-radius: 50%;
	background: var(--event-gold);
	box-shadow: 0 0 12px rgba(235, 207, 151, 0.72);
	opacity: 0;
	animation: cilloni-event-glint 1300ms ease-out forwards;
}

.cilloni-event__reveal {
	opacity: 0;
	clip-path: inset(0 0 18% 0);
	transform: translateY(32px);
	transition: clip-path 1200ms cubic-bezier(0.16, 1, 0.3, 1), opacity 900ms ease, transform 1100ms cubic-bezier(0.16, 1, 0.3, 1);
}

.cilloni-event__reveal.is-visible {
	opacity: 1;
	clip-path: inset(0);
	transform: translateY(0);
}

.cilloni-event__director.cilloni-event__reveal { transition-delay: 140ms; }

@keyframes cilloni-event-panel {
	from { opacity: 0; transform: translateY(15px); filter: blur(4px); }
	to { opacity: 1; transform: translateY(0); filter: blur(0); }
}

@keyframes cilloni-event-spin { to { transform: rotate(360deg); } }
@keyframes cilloni-event-rings { from { transform: scale(0.96); opacity: 0.78; } to { transform: scale(1.04); opacity: 1; } }
@keyframes cilloni-event-pulse { from { opacity: 0.35; transform: scale(0.8); } to { opacity: 1; transform: scale(1.15); } }
@keyframes cilloni-event-glint {
	0% { opacity: 0; transform: translate3d(0, 0, 0) scale(0.4); }
	20% { opacity: 0.85; }
	100% { opacity: 0; transform: translate3d(var(--glint-drift-x), -34px, 0) scale(0); }
}

@media (max-width: 1120px) {
	.cilloni-event__header-inner { grid-template-columns: 1fr; gap: 42px; }
	.cilloni-event__header p { margin-left: clamp(40px, 12vw, 150px); }
	.cilloni-event__stage-inner { grid-template-columns: 1fr; }
	.cilloni-event__gallery { height: min(80vw, 760px); }
	.cilloni-event__director { width: min(90%, 820px); margin: clamp(-110px, -9vw, -60px) 0 0 auto; }
	.cilloni-event__monogram { right: clamp(94px, 13vw, 160px); }
}

@media (max-width: 700px) {
	.cilloni-event__header { padding: 82px 18px 68px; }
	.cilloni-event__header h2 { font-size: clamp(3.7rem, 17vw, 5.8rem); line-height: 0.84; }
	.cilloni-event__header h2 em { margin-left: 23px; }
	.cilloni-event__header p { margin-left: 26px; font-size: 1.05rem; }
	.cilloni-event__stage { padding: 65px 18px 90px; }
	.cilloni-event__stage::before { inset: 8px; }
	.cilloni-event__gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 315px 150px; height: auto; gap: 8px; }
	.cilloni-event__photo--hero { grid-column: 1 / -1; grid-row: auto; border-radius: 85px 2px 2px 2px; }
	.cilloni-event__photo--flower { border-radius: 2px 2px 2px 42px; }
	.cilloni-event__photo--space { border-radius: 2px 2px 42px 2px; }
	.cilloni-event__photo figcaption { right: 12px; bottom: 12px; left: 12px; }
	.cilloni-event__photo figcaption strong { font-size: 1rem; }
	.cilloni-event__photo--flower figcaption { top: 12px; bottom: auto; }
	.cilloni-event__monogram { right: 50%; top: 319px; width: 78px; transform: translate(50%, -50%); }
	.cilloni-event__director { width: calc(100% - 18px); margin: -24px 0 0 auto; padding: 38px 24px 34px; border-radius: 2px 58px 2px 2px; }
	.cilloni-event__tabs { overflow-x: auto; scrollbar-width: none; }
	.cilloni-event__tabs::-webkit-scrollbar { display: none; }
	.cilloni-event__tabs button { min-width: max-content; padding-inline: 13px; }
	.cilloni-event__panel h3 { font-size: 2.25rem; }
	.cilloni-event__process ol { grid-template-columns: 1fr 1fr; gap: 25px 12px; }
	.cilloni-event__process ol::before { display: none; }
	.cilloni-event__floral-line { right: -280px; width: 560px; }
}

@media (prefers-reduced-motion: reduce) {
	.cilloni-event *,
	.cilloni-event *::before,
	.cilloni-event *::after {
		animation-duration: 0.01ms;
		animation-iteration-count: 1;
		transition-duration: 0.01ms;
	}
	.cilloni-event__reveal { opacity: 1; clip-path: none; transform: none; }
	.cilloni-event__glints { display: none; }
}


/* === festivita.css === */
.cilloni-xmas,
.cilloni-xmas * {
	box-sizing: border-box;
}

.cilloni-xmas {
	--xmas-navy: #102b45;
	--xmas-green: #244c3b;
	--xmas-pine: #17392d;
	--xmas-red: #a52e35;
	--xmas-gold: #c7a568;
	--xmas-cream: #faf7ef;
	--xmas-paper: #fffdfa;
	position: relative;
	padding: clamp(84px, 10vw, 165px) clamp(20px, 5vw, 88px) clamp(100px, 12vw, 190px);
	overflow: hidden;
	background:
		radial-gradient(circle at 6% 18%, rgba(165, 46, 53, 0.07), transparent 20%),
		radial-gradient(circle at 91% 81%, rgba(36, 76, 59, 0.11), transparent 24%),
		linear-gradient(145deg, #fff 0 42%, #f8f4e9 100%);
	color: var(--xmas-navy);
	font-family: "Avenir Next", "Segoe UI Variable", "Segoe UI", Arial, sans-serif;
	isolation: isolate;
}

.cilloni-xmas::before {
	position: absolute;
	z-index: -1;
	top: 0;
	right: 0;
	left: 0;
	height: 7px;
	background: linear-gradient(90deg, var(--xmas-pine) 0 44%, var(--xmas-red) 44% 69%, var(--xmas-gold) 69%);
	content: "";
}

.cilloni-xmas__inner {
	width: min(100%, 1660px);
	margin: 0 auto;
}

.cilloni-xmas__sprig {
	position: absolute;
	z-index: -1;
	width: min(28vw, 470px);
	stroke: var(--xmas-green);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1;
	opacity: 0.1;
	pointer-events: none;
}

.cilloni-xmas__sprig--left {
	left: -145px;
	top: 26%;
	transform: rotate(-18deg);
}

.cilloni-xmas__sprig--right {
	right: -145px;
	bottom: -60px;
	transform: scaleX(-1) rotate(-8deg);
}

.cilloni-xmas__header {
	display: grid;
	margin-bottom: clamp(70px, 9vw, 135px);
	grid-template-columns: minmax(520px, 1.35fr) minmax(320px, 0.65fr);
	align-items: end;
	gap: clamp(44px, 8vw, 150px);
}

.cilloni-xmas__header h2 {
	position: relative;
	display: inline-block;
	width: max-content;
	margin: 0;
	color: var(--xmas-navy);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(4.9rem, 8vw, 9.2rem);
	font-weight: 400;
	font-style: italic;
	letter-spacing: -0.055em;
	line-height: 0.82;
}

.cilloni-xmas__header h2::after {
	position: absolute;
	right: 4%;
	bottom: -0.13em;
	left: 4%;
	height: 0.08em;
	border-radius: 999px;
	background: rgba(165, 46, 53, 0.2);
	content: "";
	transform: rotate(-1deg);
}

.cilloni-xmas__header > p {
	max-width: 570px;
	margin: 0 0 8px;
	color: rgba(16, 43, 69, 0.72);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.1rem, 1.45vw, 1.45rem);
	line-height: 1.65;
}

.cilloni-xmas__salon {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.18fr) minmax(400px, 0.82fr);
	align-items: center;
	gap: clamp(26px, 4vw, 68px);
}

.cilloni-xmas__gallery {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(145px, 0.36fr);
	grid-template-rows: repeat(2, minmax(215px, 1fr));
	height: clamp(620px, 59vw, 800px);
	gap: clamp(10px, 1.1vw, 17px);
	perspective: 1300px;
}

.cilloni-xmas__comet {
	position: absolute;
	z-index: 5;
	top: -53px;
	left: clamp(48px, 6vw, 98px);
	width: 92px;
	height: auto;
	color: var(--xmas-red);
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 3;
	pointer-events: none;
	filter: drop-shadow(0 8px 15px rgba(165, 46, 53, 0.2));
	animation: cilloni-xmas-comet 4.8s ease-in-out infinite alternate;
}

.cilloni-xmas__comet path:last-child { fill: currentColor; stroke-width: 1.5; }

.cilloni-xmas__photo {
	position: relative;
	margin: 0;
	overflow: hidden;
	background: #d8ddd5;
	box-shadow: 0 27px 72px rgba(16, 43, 69, 0.13);
	transform: translate3d(var(--xmas-photo-x, 0), var(--xmas-photo-y, 0), 0);
	transition: box-shadow 600ms ease, transform 1000ms cubic-bezier(0.16, 1, 0.3, 1);
}

.cilloni-xmas__photo--hero {
	grid-row: 1 / -1;
	border-radius: 2px 2px 120px 2px;
}

.cilloni-xmas__photo--ornaments {
	border-radius: 70px 2px 2px 2px;
}

.cilloni-xmas__photo--work {
	border-radius: 2px 2px 70px 2px;
}

.cilloni-xmas__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0.8) contrast(0.98) brightness(0.9);
	transition: filter 850ms ease, transform 1300ms cubic-bezier(0.16, 1, 0.3, 1);
}

.cilloni-xmas__photo--hero img { object-position: 50% center; transform: scale(1.025); }
.cilloni-xmas__photo--ornaments img { object-position: 87% 47%; transform: scale(2.05); }
.cilloni-xmas__photo--work img { object-position: 65% 77%; transform: scale(1.72); }

.cilloni-xmas__photo::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 54%, rgba(18, 49, 38, 0.66));
	content: "";
	pointer-events: none;
}

.cilloni-xmas__photo.is-active {
	box-shadow: 0 32px 85px rgba(16, 43, 69, 0.2), 0 0 0 1px rgba(165, 46, 53, 0.16);
}

.cilloni-xmas__photo.is-active img,
.cilloni-xmas__photo:hover img,
.cilloni-xmas.is-magical .cilloni-xmas__photo img {
	filter: saturate(1.08) contrast(1) brightness(1.02);
}

.cilloni-xmas__photo--hero.is-active img,
.cilloni-xmas__photo--hero:hover img { transform: scale(1.07); }
.cilloni-xmas__photo--ornaments.is-active img,
.cilloni-xmas__photo--ornaments:hover img { transform: scale(2.2); }
.cilloni-xmas__photo--work.is-active img,
.cilloni-xmas__photo--work:hover img { transform: scale(1.86); }

.cilloni-xmas.is-magical .cilloni-xmas__photo {
	box-shadow: 0 35px 95px rgba(36, 76, 59, 0.25), 0 0 34px rgba(199, 165, 104, 0.18);
}

.cilloni-xmas__photo figcaption {
	position: absolute;
	z-index: 2;
	right: 24px;
	bottom: 24px;
	left: 24px;
	color: #fff;
}

.cilloni-xmas__photo figcaption span {
	display: block;
	margin-bottom: 7px;
	color: #f0d39f;
	font-size: 0.58rem;
	font-weight: 750;
	letter-spacing: 0.16em;
}

.cilloni-xmas__photo figcaption strong {
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.2rem, 1.7vw, 1.7rem);
	font-weight: 400;
}

.cilloni-xmas__bauble {
	position: absolute;
	z-index: 6;
	right: clamp(91px, 10.5vw, 164px);
	top: 50%;
	width: clamp(88px, 8vw, 120px);
	aspect-ratio: 1;
	border: 1px solid rgba(255, 255, 255, 0.45);
	border-radius: 50%;
	background: linear-gradient(135deg, #c95458, #8f2029 70%);
	box-shadow: inset 12px 12px 24px rgba(255,255,255,.15), 0 18px 50px rgba(60, 18, 24, 0.3);
	color: #f3d9a6;
	transform: translate(50%, -50%);
	transition: transform 800ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 600ms ease;
}

.cilloni-xmas__bauble::before {
	position: absolute;
	top: -56px;
	left: 50%;
	width: 1px;
	height: 52px;
	background: var(--xmas-gold);
	content: "";
}

.cilloni-xmas__bauble-cap {
	position: absolute;
	top: -10px;
	left: 50%;
	width: 28px;
	height: 13px;
	border-radius: 5px 5px 1px 1px;
	background: var(--xmas-gold);
	transform: translateX(-50%);
}

.cilloni-xmas__bauble svg { display: block; width: 100%; height: 100%; padding: 23px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.cilloni-xmas.is-magical .cilloni-xmas__bauble { transform: translate(50%, -50%) rotate(8deg) scale(1.06); box-shadow: inset 12px 12px 24px rgba(255,255,255,.2), 0 0 45px rgba(218, 181, 104, 0.42); }

.cilloni-xmas__card {
	position: relative;
	z-index: 4;
	margin-left: clamp(-88px, -5.2vw, -34px);
	padding: clamp(36px, 4.4vw, 68px);
	border: 1px solid rgba(36, 76, 59, 0.15);
	border-radius: 2px 84px 2px 2px;
	background: rgba(255, 253, 250, 0.95);
	box-shadow: 0 34px 100px rgba(16, 43, 69, 0.14);
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
}

.cilloni-xmas__card-head {
	display: flex;
	margin-bottom: 31px;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
}

.cilloni-xmas__card-head > p {
	margin: 0;
	color: var(--xmas-green);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.05rem;
	font-style: italic;
}

.cilloni-xmas__magic {
	display: inline-flex;
	min-height: 38px;
	padding: 8px 13px;
	align-items: center;
	gap: 8px;
	border: 1px solid rgba(165, 46, 53, 0.22);
	border-radius: 999px;
	background: transparent;
	color: var(--xmas-red);
	cursor: pointer;
	font: inherit;
	font-size: 0.59rem;
	font-weight: 750;
	letter-spacing: 0.06em;
	transition: background-color 350ms ease, color 350ms ease, transform 350ms ease;
}

.cilloni-xmas__magic:hover,
.cilloni-xmas__magic:focus-visible,
.cilloni-xmas__magic[aria-pressed="true"] { background: var(--xmas-red); color: #fff; transform: translateY(-2px); }
.cilloni-xmas__magic:focus-visible { outline: 2px solid var(--xmas-red); outline-offset: 3px; }
.cilloni-xmas__magic span:first-child { animation: cilloni-xmas-twinkle 2s ease-in-out infinite alternate; }

.cilloni-xmas__tabs {
	display: flex;
	margin-bottom: 40px;
	border-top: 1px solid rgba(36, 76, 59, 0.15);
	border-bottom: 1px solid rgba(36, 76, 59, 0.15);
}

.cilloni-xmas__tabs button {
	position: relative;
	min-height: 58px;
	padding: 11px 16px;
	border: 0;
	background: transparent;
	color: rgba(16, 43, 69, 0.48);
	cursor: pointer;
	font: inherit;
	font-size: 0.65rem;
	font-weight: 750;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	transition: color 350ms ease, background-color 350ms ease;
}

.cilloni-xmas__tabs button span { display: block; margin-bottom: 4px; color: var(--xmas-red); font-size: 0.48rem; opacity: 0.65; }
.cilloni-xmas__tabs button::after { position: absolute; right: 14px; bottom: -1px; left: 14px; height: 2px; background: var(--xmas-red); content: ""; transform: scaleX(0); transition: transform 420ms cubic-bezier(0.16, 1, 0.3, 1); }
.cilloni-xmas__tabs button:hover,
.cilloni-xmas__tabs button:focus-visible,
.cilloni-xmas__tabs button.is-active { color: var(--xmas-navy); background: rgba(165, 46, 53, 0.035); }
.cilloni-xmas__tabs button.is-active::after { transform: scaleX(1); }
.cilloni-xmas__tabs button:focus-visible { outline: 2px solid var(--xmas-red); outline-offset: 3px; }

.cilloni-xmas__panel[hidden] { display: none; }
.cilloni-xmas__panel.is-active { animation: cilloni-xmas-panel 650ms cubic-bezier(0.16, 1, 0.3, 1) both; }
.cilloni-xmas__overline { margin: 0 0 15px; color: var(--xmas-red); font-size: 0.6rem; font-weight: 750; letter-spacing: 0.16em; text-transform: uppercase; }
.cilloni-xmas__panel h3 { margin: 0 0 22px; color: var(--xmas-navy); font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.1rem, 2.8vw, 3.45rem); font-weight: 400; line-height: 1.03; }
.cilloni-xmas__panel > p:not(.cilloni-xmas__overline) { margin: 0; color: rgba(16, 43, 69, 0.68); font-size: 0.92rem; line-height: 1.75; }
.cilloni-xmas__tags { display: flex; margin-top: 25px; flex-wrap: wrap; gap: 7px; }
.cilloni-xmas__tags span { padding: 7px 11px; border: 1px solid rgba(36, 76, 59, 0.17); border-radius: 999px; background: rgba(36, 76, 59, 0.035); color: var(--xmas-green); font-size: 0.61rem; }

.cilloni-xmas__promise {
	display: grid;
	margin-top: 38px;
	padding-top: 24px;
	grid-template-columns: 45px 1fr;
	align-items: center;
	gap: 15px;
	border-top: 1px solid rgba(36, 76, 59, 0.14);
}

.cilloni-xmas__promise > span { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid rgba(165, 46, 53, 0.28); border-radius: 50%; color: var(--xmas-red); font-family: Georgia, "Times New Roman", serif; font-size: 0.9rem; font-style: italic; }
.cilloni-xmas__promise p { margin: 0; color: rgba(16, 43, 69, 0.57); font-size: 0.7rem; line-height: 1.55; }
.cilloni-xmas__promise strong { display: block; margin-bottom: 2px; color: var(--xmas-navy); font-family: Georgia, "Times New Roman", serif; font-size: 0.95rem; font-weight: 400; }

.cilloni-xmas__snow { position: absolute; z-index: 8; inset: 0; overflow: hidden; pointer-events: none; }
.cilloni-xmas__flake { position: absolute; left: var(--flake-x); top: -18px; width: var(--flake-size); height: var(--flake-size); border-radius: 50%; background: rgba(255,255,255,.92); box-shadow: 0 0 7px rgba(255,255,255,.8); opacity: var(--flake-opacity); animation: cilloni-xmas-snow var(--flake-duration) linear forwards; }

.cilloni-xmas__reveal { opacity: 0; transform: translateY(30px); transition: opacity 900ms ease, transform 1000ms cubic-bezier(0.16, 1, 0.3, 1); }
.cilloni-xmas__reveal.is-visible { opacity: 1; transform: translateY(0); }
.cilloni-xmas__card.cilloni-xmas__reveal { transition-delay: 120ms; }

@keyframes cilloni-xmas-panel { from { opacity: 0; transform: translateY(13px); } to { opacity: 1; transform: translateY(0); } }
@keyframes cilloni-xmas-twinkle { from { opacity: 0.35; transform: rotate(-8deg) scale(0.85); } to { opacity: 1; transform: rotate(8deg) scale(1.14); } }
@keyframes cilloni-xmas-comet { from { transform: translate3d(0, 0, 0) rotate(-4deg); } to { transform: translate3d(8px, -5px, 0) rotate(2deg); } }
@keyframes cilloni-xmas-snow { to { opacity: 0; transform: translate3d(var(--flake-drift), calc(var(--xmas-height, 1100px) + 40px), 0) rotate(360deg); } }

@media (max-width: 1120px) {
	.cilloni-xmas__header { grid-template-columns: 1fr; gap: 42px; }
	.cilloni-xmas__header > p { margin-left: clamp(40px, 12vw, 150px); }
	.cilloni-xmas__salon { grid-template-columns: 1fr; }
	.cilloni-xmas__gallery { height: min(80vw, 750px); }
	.cilloni-xmas__card { width: min(90%, 820px); margin: clamp(-110px, -9vw, -60px) 0 0 auto; }
	.cilloni-xmas__bauble { right: clamp(94px, 13vw, 160px); }
}

@media (max-width: 700px) {
	.cilloni-xmas { padding: 82px 18px 90px; }
	.cilloni-xmas__header { margin-bottom: 62px; }
	.cilloni-xmas__header h2 { font-size: clamp(4rem, 19vw, 6.2rem); }
	.cilloni-xmas__header > p { margin-left: 26px; font-size: 1.05rem; }
	.cilloni-xmas__gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 310px 148px; height: auto; gap: 8px; }
	.cilloni-xmas__photo--hero { grid-column: 1 / -1; grid-row: auto; border-radius: 2px 2px 70px 2px; }
	.cilloni-xmas__photo--ornaments { border-radius: 48px 2px 2px 2px; }
	.cilloni-xmas__photo--work { border-radius: 2px 2px 48px 2px; }
	.cilloni-xmas__photo figcaption { right: 13px; bottom: 13px; left: 13px; }
	.cilloni-xmas__photo figcaption strong { font-size: 1rem; }
	.cilloni-xmas__bauble { right: 50%; top: 314px; width: 74px; transform: translate(50%, -50%); }
	.cilloni-xmas.is-magical .cilloni-xmas__bauble { transform: translate(50%, -50%) rotate(8deg) scale(1.06); }
	.cilloni-xmas__bauble::before { top: -32px; height: 29px; }
	.cilloni-xmas__card { width: calc(100% - 18px); margin: -24px 0 0 auto; padding: 38px 24px 34px; border-radius: 2px 54px 2px 2px; }
	.cilloni-xmas__card-head { align-items: flex-start; flex-direction: column; }
	.cilloni-xmas__tabs { overflow-x: auto; scrollbar-width: none; }
	.cilloni-xmas__tabs::-webkit-scrollbar { display: none; }
	.cilloni-xmas__tabs button { min-width: max-content; padding-inline: 13px; }
	.cilloni-xmas__panel h3 { font-size: 2.2rem; }
	.cilloni-xmas__sprig { width: 390px; }
	.cilloni-xmas__sprig--left { left: -240px; }
	.cilloni-xmas__sprig--right { right: -240px; }
}

@media (prefers-reduced-motion: reduce) {
	.cilloni-xmas *,
	.cilloni-xmas *::before,
	.cilloni-xmas *::after { animation-duration: 0.01ms; animation-iteration-count: 1; transition-duration: 0.01ms; }
	.cilloni-xmas__reveal { opacity: 1; transform: none; }
	.cilloni-xmas__snow { display: none; }
}


/* === interflora.css === */
.cilloni-flora,
.cilloni-flora * {
	box-sizing: border-box;
}

.cilloni-flora {
	--flora-ink: #242021;
	--flora-gold: #d1af54;
	--flora-green: #57785f;
	--flora-sage: #dce7dc;
	--flora-paper: #fbfaf5;
	position: relative;
	padding: clamp(84px, 10vw, 165px) clamp(20px, 5vw, 88px) clamp(100px, 12vw, 190px);
	overflow: hidden;
	background:
		radial-gradient(circle at 12% 84%, rgba(220, 231, 220, 0.62), transparent 24%),
		linear-gradient(135deg, #fff 0 54%, #f2f5ed 100%);
	color: var(--flora-ink);
	font-family: "Avenir Next", "Segoe UI Variable", "Segoe UI", Arial, sans-serif;
	isolation: isolate;
}

.cilloni-flora::before {
	position: absolute;
	z-index: -1;
	top: 0;
	right: 0;
	width: 38%;
	height: 6px;
	background: linear-gradient(90deg, transparent, var(--flora-gold));
	content: "";
}

.cilloni-flora__botanical {
	position: absolute;
	z-index: -1;
	right: -110px;
	bottom: -95px;
	width: min(36vw, 590px);
	stroke: var(--flora-green);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1;
	opacity: 0.09;
	pointer-events: none;
}

.cilloni-flora__inner {
	width: min(100%, 1660px);
	margin: 0 auto;
}

.cilloni-flora__header {
	display: grid;
	margin-bottom: clamp(70px, 9vw, 135px);
	grid-template-columns: minmax(520px, 1.35fr) minmax(320px, 0.65fr);
	align-items: end;
	gap: clamp(44px, 8vw, 150px);
}

.cilloni-flora__header h2 {
	position: relative;
	width: max-content;
	margin: 0;
	color: var(--flora-ink);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(4.9rem, 8vw, 9.2rem);
	font-weight: 400;
	font-style: italic;
	letter-spacing: -0.055em;
	line-height: 0.82;
}

.cilloni-flora__header h2::after {
	position: absolute;
	right: 3%;
	bottom: -0.13em;
	left: 3%;
	height: 0.07em;
	border-radius: 999px;
	background: rgba(209, 175, 84, 0.4);
	content: "";
	transform: rotate(-1deg);
}

.cilloni-flora__header > p {
	max-width: 570px;
	margin: 0 0 8px;
	color: rgba(36, 32, 33, 0.7);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.1rem, 1.45vw, 1.45rem);
	line-height: 1.65;
}

.cilloni-flora__journey {
	position: relative;
	display: grid;
	grid-template-columns: minmax(350px, 0.68fr) minmax(0, 1.32fr);
	align-items: center;
	gap: clamp(26px, 4vw, 68px);
}

.cilloni-flora__card {
	position: relative;
	z-index: 3;
	margin-right: clamp(-90px, -5vw, -35px);
	padding: clamp(34px, 4.2vw, 64px);
	border: 1px solid rgba(87, 120, 95, 0.15);
	border-radius: 74px 2px 2px 2px;
	background: rgba(255, 255, 252, 0.96);
	box-shadow: 0 34px 100px rgba(36, 32, 33, 0.14);
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
}

.cilloni-flora__brand {
	position: absolute;
	right: clamp(24px, 3vw, 46px);
	top: clamp(24px, 3vw, 42px);
	width: clamp(96px, 9vw, 140px);
	aspect-ratio: 1.5;
	overflow: hidden;
	border-radius: 2px 24px 2px 2px;
	background: var(--flora-ink);
	box-shadow: 0 12px 30px rgba(36, 32, 33, 0.18);
}

.cilloni-flora__brand img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cilloni-flora__overline {
	margin: 0 0 18px;
	color: var(--flora-green);
	font-size: 0.62rem;
	font-weight: 750;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.cilloni-flora__card h3 {
	max-width: 390px;
	margin: 0 0 23px;
	padding-right: clamp(92px, 9vw, 145px);
	color: var(--flora-ink);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2.1rem, 2.8vw, 3.4rem);
	font-weight: 400;
	line-height: 1.04;
}

.cilloni-flora__copy {
	margin: 0;
	color: rgba(36, 32, 33, 0.66);
	font-size: 0.9rem;
	line-height: 1.75;
}

.cilloni-flora__facts {
	display: grid;
	margin-top: 35px;
	border-top: 1px solid rgba(36, 32, 33, 0.12);
}

.cilloni-flora__facts > div {
	display: grid;
	min-height: 66px;
	padding: 13px 0;
	grid-template-columns: 30px 1fr;
	align-items: center;
	gap: 11px;
	border-bottom: 1px solid rgba(36, 32, 33, 0.1);
}

.cilloni-flora__facts span { color: var(--flora-gold); font-size: 0.57rem; font-weight: 750; letter-spacing: 0.11em; }
.cilloni-flora__facts p { margin: 0; color: rgba(36, 32, 33, 0.55); font-size: 0.68rem; line-height: 1.4; }
.cilloni-flora__facts strong { display: block; margin-bottom: 2px; color: var(--flora-ink); font-family: Georgia, "Times New Roman", serif; font-size: 0.96rem; font-weight: 400; }

.cilloni-flora__same-day {
	display: grid;
	margin-top: 31px;
	padding: 18px 20px;
	grid-template-columns: 43px 1fr;
	align-items: center;
	gap: 14px;
	border-left: 2px solid var(--flora-gold);
	background: rgba(220, 231, 220, 0.24);
}

.cilloni-flora__same-day > span { color: var(--flora-gold); font-family: Georgia, "Times New Roman", serif; font-size: 1.05rem; font-style: italic; }
.cilloni-flora__same-day p { margin: 0; color: rgba(36, 32, 33, 0.57); font-size: 0.69rem; line-height: 1.45; }
.cilloni-flora__same-day strong { display: block; color: var(--flora-ink); font-family: Georgia, "Times New Roman", serif; font-size: 0.95rem; font-weight: 400; }

.cilloni-flora__map-wrap {
	position: relative;
	padding: clamp(22px, 2.6vw, 38px);
	border-radius: 2px 90px 2px 2px;
	background: var(--flora-ink);
	box-shadow: 0 38px 105px rgba(36, 32, 33, 0.22);
	color: #fff;
}

.cilloni-flora__map-head,
.cilloni-flora__map-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}

.cilloni-flora__map-head {
	margin-bottom: 17px;
	padding-inline: 4px;
}

.cilloni-flora__map-head p { margin: 0; color: rgba(255,255,255,.48); font-size: 0.58rem; font-weight: 700; letter-spacing: 0.11em; text-transform: uppercase; }
.cilloni-flora__map-route > span { display: inline-block; width: 7px; height: 7px; margin-right: 8px; border-radius: 50%; background: var(--flora-gold); box-shadow: 0 0 11px rgba(209,175,84,.65); }
.cilloni-flora__map-progress span { color: var(--flora-gold); }
.cilloni-flora__map-progress em { color: rgba(255,255,255,.76); font-style: normal; }

.cilloni-flora__map {
	position: relative;
	aspect-ratio: 900 / 620;
	overflow: hidden;
	border: 1px solid rgba(209, 175, 84, 0.16);
	background: linear-gradient(145deg, #272223, #1d1a1b);
	cursor: ew-resize;
	touch-action: pan-y;
}

.cilloni-flora__map:focus-visible { outline: 2px solid var(--flora-gold); outline-offset: 5px; }
.cilloni-flora__map > svg { display: block; width: 100%; height: 100%; user-select: none; }
.cilloni-flora__graticule path { stroke: rgba(214, 229, 220, 0.055); stroke-width: 1; }
.cilloni-flora__graticule text { fill: rgba(214, 229, 220, 0.2); font: 600 7px/1 "Segoe UI", sans-serif; letter-spacing: 0.08em; }
.cilloni-flora__geography { opacity: 0.94; pointer-events: none; }
.cilloni-flora__secondary-cities circle { fill: rgba(222, 232, 226, 0.42); }
.cilloni-flora__secondary-cities text { fill: rgba(222, 232, 226, 0.4); font: 500 8px/1 "Segoe UI", sans-serif; letter-spacing: 0.04em; }
.cilloni-flora__origin-glow { opacity: 0.48; animation: cilloni-flora-origin 3.4s ease-in-out infinite; }
.cilloni-flora__route-base { stroke: rgba(209,175,84,.3); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 2 12; }
.cilloni-flora__route-progress { stroke: var(--flora-gold); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; filter: url(#flora-glow); }
.cilloni-flora__cities circle:first-child { fill: rgba(222, 232, 226, 0.32); stroke: rgba(222, 232, 226, 0.28); stroke-width: 1; transition: fill 350ms ease, r 350ms ease, filter 350ms ease; }
.cilloni-flora__cities circle:nth-child(2) { fill: none; stroke: rgba(209,175,84,.4); stroke-width: 1; transform-box: fill-box; transform-origin: center; }
.cilloni-flora__cities text { fill: rgba(255,255,255,.42); stroke: none; font: 700 8px/1 "Segoe UI", sans-serif; letter-spacing: 1px; transition: fill 350ms ease; }
.cilloni-flora__cities .cilloni-flora__coordinates { fill: rgba(209, 175, 84, 0.48); font-size: 6px; font-weight: 500; letter-spacing: 0.12em; }
.cilloni-flora__stop.is-reached circle:first-child,
.cilloni-flora__stop.is-current circle:first-child { fill: var(--flora-gold); stroke: var(--flora-gold); filter: url(#flora-glow); }
.cilloni-flora__stop.is-reached text { fill: rgba(255,255,255,.72); }
.cilloni-flora__stop.is-current text { fill: #fff; }
.cilloni-flora__stop.is-current circle:nth-child(2),
.cilloni-flora__stop.is-origin circle:nth-child(2) { animation: cilloni-flora-node 2.4s ease-out infinite; }

.cilloni-flora__van { color: var(--flora-gold); filter: url(#flora-glow); }
.cilloni-flora__van path,
.cilloni-flora__van circle { stroke: currentColor; stroke-width: 1.8; vector-effect: non-scaling-stroke; }
.cilloni-flora__van .cilloni-flora__van-body { fill: var(--flora-green); }
.cilloni-flora__van .cilloni-flora__van-window { fill: rgba(220, 231, 220, 0.62); }
.cilloni-flora__van .cilloni-flora__van-detail,
.cilloni-flora__van .cilloni-flora__van-bouquet path { fill: none; }
.cilloni-flora__van .cilloni-flora__van-wheel { fill: var(--flora-ink); }
.cilloni-flora__van .cilloni-flora__van-bouquet circle { fill: #a92f38; stroke: #ebcfc7; stroke-width: 1; }

.cilloni-flora__hint {
	position: absolute;
	right: 22px;
	bottom: 20px;
	display: flex;
	padding: 11px 14px;
	align-items: center;
	gap: 11px;
	border: 1px solid rgba(255,255,255,.11);
	background: rgba(36,32,33,.78);
	color: #fff;
	pointer-events: none;
	transition: opacity 450ms ease, transform 450ms ease;
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

.cilloni-flora__map.is-interacting .cilloni-flora__hint { opacity: 0; transform: translateY(8px); }
.cilloni-flora__mouse { position: relative; display: block; width: 18px; height: 26px; border: 1px solid var(--flora-gold); border-radius: 10px; }
.cilloni-flora__mouse i { position: absolute; top: 5px; left: 50%; width: 2px; height: 5px; border-radius: 2px; background: var(--flora-gold); transform: translateX(-50%); animation: cilloni-flora-scroll 1.5s ease-in-out infinite; }
.cilloni-flora__hint p { margin: 0; color: rgba(255,255,255,.5); font-size: 0.55rem; line-height: 1.35; }
.cilloni-flora__hint strong { display: block; margin-bottom: 2px; color: #fff; font-size: 0.61rem; }

.cilloni-flora__map-footer {
	margin-top: 17px;
	padding-inline: 4px;
}

.cilloni-flora__map-footer p { margin: 0; color: rgba(255,255,255,.45); font-size: 0.55rem; }
.cilloni-flora__map-footer span { margin-right: 5px; color: var(--flora-gold); font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase; }

.cilloni-flora__reveal { opacity: 0; transform: translateY(30px); transition: opacity 900ms ease, transform 1000ms cubic-bezier(0.16, 1, 0.3, 1); }
.cilloni-flora__reveal.is-visible { opacity: 1; transform: translateY(0); }
.cilloni-flora__map-wrap.cilloni-flora__reveal { transition-delay: 120ms; }

@keyframes cilloni-flora-node { from { opacity: .85; transform: scale(.55); } to { opacity: 0; transform: scale(1.9); } }
@keyframes cilloni-flora-origin { 0%, 100% { opacity: .24; transform: scale(.86); transform-origin: 444px 429px; } 50% { opacity: .58; transform: scale(1.08); transform-origin: 444px 429px; } }
@keyframes cilloni-flora-scroll { 0% { opacity: 0; transform: translate(-50%, 0); } 35% { opacity: 1; } 100% { opacity: 0; transform: translate(-50%, 7px); } }

@media (max-width: 1150px) {
	.cilloni-flora__header { grid-template-columns: 1fr; gap: 42px; }
	.cilloni-flora__header > p { margin-left: clamp(40px, 12vw, 150px); }
	.cilloni-flora__journey { grid-template-columns: 1fr; }
	.cilloni-flora__card { width: min(90%, 760px); margin: 0 0 clamp(-90px, -7vw, -55px); }
	.cilloni-flora__map-wrap { padding-top: clamp(72px, 8vw, 100px); }
}

@media (max-width: 700px) {
	.cilloni-flora { padding: 82px 18px 90px; }
	.cilloni-flora__header { margin-bottom: 62px; }
	.cilloni-flora__header h2 { font-size: clamp(3.8rem, 18vw, 5.9rem); }
	.cilloni-flora__header > p { margin-left: 26px; font-size: 1.05rem; }
	.cilloni-flora__card { width: calc(100% - 18px); padding: 38px 24px 34px; border-radius: 52px 2px 2px 2px; }
	.cilloni-flora__brand { position: relative; top: auto; right: auto; width: 120px; margin: 0 0 27px auto; }
	.cilloni-flora__card h3 { padding-right: 0; font-size: 2.2rem; }
	.cilloni-flora__map-wrap { padding: 76px 10px 18px; border-radius: 2px 58px 2px 2px; }
	.cilloni-flora__map-head { position: absolute; top: 25px; right: 16px; left: 16px; }
	.cilloni-flora__map-head p:first-child { max-width: 150px; line-height: 1.5; }
	.cilloni-flora__map-progress { text-align: right; }
	.cilloni-flora__map-progress em { display: block; margin-top: 3px; }
	.cilloni-flora__map { aspect-ratio: 3 / 3.4; }
	.cilloni-flora__map > svg { width: 150%; max-width: none; transform: translateX(-25%); }
	.cilloni-flora__hint { right: 10px; bottom: 10px; left: 10px; }
	.cilloni-flora__map-footer { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
	.cilloni-flora__map-footer p:last-child { grid-column: 1 / -1; }
	.cilloni-flora__botanical { right: -220px; width: 480px; }
}

@media (prefers-reduced-motion: reduce) {
	.cilloni-flora *,
	.cilloni-flora *::before,
	.cilloni-flora *::after { animation-duration: 0.01ms; animation-iteration-count: 1; transition-duration: 0.01ms; }
	.cilloni-flora__reveal { opacity: 1; transform: none; }
}


/* === ordina-da-casa.css === */
.cilloni-order,
.cilloni-order * {
	box-sizing: border-box;
}

.cilloni-order {
	--order-navy: #102b45;
	--order-navy-deep: #0b2034;
	--order-green: #557a62;
	--order-sage: #dce8de;
	--order-gold: #cbb46a;
	--order-red: #a9343d;
	--order-paper: #f8f5ee;
	position: relative;
	padding: clamp(92px, 11vw, 180px) clamp(20px, 5vw, 88px) clamp(110px, 13vw, 205px);
	overflow: hidden;
	background:
		linear-gradient(90deg, rgba(255,255,255,.75) 1px, transparent 1px) 0 0 / 92px 92px,
		radial-gradient(circle at 86% 17%, rgba(203, 180, 106, 0.13), transparent 25%),
		linear-gradient(137deg, #fff 0 47%, var(--order-paper) 100%);
	color: var(--order-navy);
	font-family: "Avenir Next", "Segoe UI Variable", "Segoe UI", Arial, sans-serif;
	isolation: isolate;
}

.cilloni-order::before {
	position: absolute;
	z-index: -1;
	top: 0;
	left: 0;
	width: 42%;
	height: 6px;
	background: linear-gradient(90deg, var(--order-green), transparent);
	content: "";
}

.cilloni-order__halo {
	position: absolute;
	z-index: -2;
	border-radius: 50%;
	filter: blur(2px);
	pointer-events: none;
}

.cilloni-order__halo--one {
	top: 11%;
	right: -8vw;
	width: clamp(280px, 35vw, 650px);
	aspect-ratio: 1;
	border: clamp(45px, 6vw, 105px) solid rgba(220, 232, 222, 0.58);
}

.cilloni-order__halo--two {
	bottom: -240px;
	left: -170px;
	width: 430px;
	aspect-ratio: 1;
	background: rgba(203, 180, 106, 0.08);
}

.cilloni-order__botanical {
	position: absolute;
	z-index: -1;
	bottom: -75px;
	left: -75px;
	width: min(34vw, 560px);
	stroke: var(--order-green);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1;
	opacity: 0.1;
	pointer-events: none;
}

.cilloni-order__inner {
	width: min(100%, 1660px);
	margin: 0 auto;
}

.cilloni-order__header {
	display: grid;
	margin-bottom: clamp(68px, 8.5vw, 132px);
	grid-template-columns: minmax(540px, 1.3fr) minmax(320px, 0.7fr);
	align-items: end;
	gap: clamp(45px, 8vw, 145px);
}

.cilloni-order__eyebrow {
	margin: 0 0 22px;
	color: var(--order-green);
	font-size: 0.66rem;
	font-weight: 760;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.cilloni-order__header h2 {
	position: relative;
	width: max-content;
	margin: 0;
	color: var(--order-navy);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(4.7rem, 7.8vw, 9rem);
	font-weight: 400;
	font-style: italic;
	letter-spacing: -0.06em;
	line-height: 0.84;
}

.cilloni-order__header h2::after {
	position: absolute;
	right: 2%;
	bottom: -0.16em;
	left: 38%;
	height: 0.055em;
	border-radius: 999px;
	background: var(--order-red);
	content: "";
	opacity: 0.72;
	transform: rotate(-1.5deg);
}

.cilloni-order__header > p {
	max-width: 575px;
	margin: 0 0 6px;
	color: rgba(16, 43, 69, 0.68);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.08rem, 1.45vw, 1.45rem);
	line-height: 1.66;
}

.cilloni-order__stage {
	position: relative;
	display: grid;
	grid-template-columns: minmax(340px, 0.72fr) minmax(0, 1.28fr);
	align-items: center;
	gap: clamp(28px, 4.4vw, 76px);
}

.cilloni-order__story {
	position: relative;
	z-index: 4;
	margin-right: clamp(-120px, -6.5vw, -45px);
	padding: clamp(35px, 4.7vw, 72px);
	border: 1px solid rgba(16, 43, 69, 0.1);
	border-radius: 2px 78px 2px 2px;
	background: rgba(255, 255, 252, 0.96);
	box-shadow: 0 34px 95px rgba(16, 43, 69, 0.13);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
}

.cilloni-order__chapter {
	display: flex;
	margin: 0 0 28px;
	align-items: center;
	gap: 15px;
	color: var(--order-green);
	font-size: 0.59rem;
	font-weight: 760;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.cilloni-order__chapter i {
	display: block;
	width: 58px;
	height: 1px;
	background: rgba(85, 122, 98, 0.45);
}

.cilloni-order__story h3 {
	margin: 0 0 27px;
	color: var(--order-navy);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2.5rem, 3.8vw, 4.5rem);
	font-weight: 400;
	line-height: 0.98;
}

.cilloni-order__story h3 em {
	color: var(--order-green);
	font-weight: 400;
}

.cilloni-order__copy {
	margin: 0;
	color: rgba(16, 43, 69, 0.64);
	font-size: 0.91rem;
	line-height: 1.76;
}

.cilloni-order__numbers {
	display: grid;
	margin: 34px 0 0;
	padding: 25px 0;
	grid-template-columns: 0.7fr 0.7fr 1.25fr;
	border-top: 1px solid rgba(16, 43, 69, 0.11);
	border-bottom: 1px solid rgba(16, 43, 69, 0.11);
}

.cilloni-order__numbers > div {
	display: grid;
	padding: 0 15px;
	align-content: start;
	gap: 5px;
	border-left: 1px solid rgba(16, 43, 69, 0.1);
}

.cilloni-order__numbers > div:first-child {
	padding-left: 0;
	border-left: 0;
}

.cilloni-order__numbers strong {
	color: var(--order-gold);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.85rem;
	font-weight: 400;
	line-height: 1;
}

.cilloni-order__numbers span {
	color: rgba(16, 43, 69, 0.48);
	font-size: 0.58rem;
	line-height: 1.35;
}

.cilloni-order__start {
	display: inline-flex;
	margin: 31px 0 0;
	padding: 0;
	align-items: center;
	gap: 16px;
	border: 0;
	background: transparent;
	color: var(--order-navy);
	font: inherit;
	font-size: 0.67rem;
	font-weight: 760;
	letter-spacing: 0.11em;
	text-transform: uppercase;
	cursor: pointer;
}

.cilloni-order__start svg {
	width: 30px;
	fill: none;
	stroke: var(--order-red);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.4;
	transition: transform 450ms cubic-bezier(0.16, 1, 0.3, 1);
}

.cilloni-order__start:hover svg { transform: translateX(7px); }
.cilloni-order__start:focus-visible { outline: 2px solid var(--order-green); outline-offset: 7px; }

.cilloni-order__window {
	--order-x: 0px;
	--order-y: 0px;
	position: relative;
	min-width: 0;
	padding: clamp(20px, 2.5vw, 37px);
	border-radius: 88px 2px 2px 2px;
	background: var(--order-navy-deep);
	box-shadow: 0 40px 110px rgba(11, 32, 52, 0.25);
	color: #fff;
}

.cilloni-order__screen {
	position: relative;
	aspect-ratio: 570 / 470;
	overflow: hidden;
	border: 1px solid rgba(220, 232, 222, 0.16);
	background: #152f44;
}

.cilloni-order__screen-top {
	position: absolute;
	z-index: 8;
	top: 0;
	right: 0;
	left: 0;
	display: flex;
	min-height: 50px;
	padding: 0 22px;
	align-items: center;
	justify-content: space-between;
	border-bottom: 1px solid rgba(255,255,255,.12);
	background: rgba(11,32,52,.76);
	color: rgba(255,255,255,.68);
	font-size: 0.55rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

.cilloni-order__live {
	display: flex;
	align-items: center;
	gap: 8px;
}

.cilloni-order__live i,
.cilloni-order__ticket-status i {
	display: block;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--order-red);
	box-shadow: 0 0 0 5px rgba(169, 52, 61, 0.15);
	animation: cilloni-order-pulse 2.2s ease-in-out infinite;
}

.cilloni-order__panels,
.cilloni-order__panel {
	position: absolute;
	inset: 0;
}

.cilloni-order__panel {
	margin: 0;
	opacity: 0;
	transform: scale(1.025);
	transition: opacity 700ms ease, transform 1100ms cubic-bezier(0.16, 1, 0.3, 1);
}

.cilloni-order__panel.is-active {
	opacity: 1;
	transform: scale(1);
}

.cilloni-order__panel::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(11, 32, 52, 0.82), rgba(11, 32, 52, 0.08) 58%, rgba(11, 32, 52, 0.32));
	content: "";
}

.cilloni-order__panel img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 62%;
	transform: translate3d(calc(var(--order-x) * -0.22), calc(var(--order-y) * -0.22), 0) scale(1.055);
	transition: transform 900ms cubic-bezier(0.16, 1, 0.3, 1), filter 600ms ease;
}

.cilloni-order__panel[data-order-panel="1"] img { object-position: center 46%; }
.cilloni-order__panel[data-order-panel="2"] img { object-position: center 27%; }

.cilloni-order__panel figcaption {
	position: absolute;
	z-index: 4;
	right: clamp(20px, 3.5vw, 52px);
	bottom: clamp(22px, 3.7vw, 55px);
	display: grid;
	min-width: min(240px, 43%);
	padding: 20px 23px;
	grid-template-columns: 28px 1fr;
	align-items: center;
	gap: 12px;
	border-left: 2px solid var(--order-gold);
	background: rgba(11, 32, 52, 0.78);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

.cilloni-order__panel figcaption > span {
	color: var(--order-gold);
	font-size: 0.58rem;
	font-weight: 760;
}

.cilloni-order__panel figcaption p {
	margin: 0;
	color: rgba(255,255,255,.55);
	font-size: 0.63rem;
	line-height: 1.4;
}

.cilloni-order__panel figcaption strong {
	display: block;
	margin-bottom: 2px;
	color: #fff;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.05rem;
	font-weight: 400;
}

.cilloni-order__ticket {
	position: absolute;
	z-index: 10;
	top: clamp(72px, 9vw, 112px);
	left: clamp(20px, 4vw, 58px);
	width: clamp(155px, 17vw, 220px);
	padding: 18px 19px 20px;
	border-radius: 2px 2px 38px 2px;
	background: rgba(250, 248, 241, 0.95);
	box-shadow: 0 24px 55px rgba(4, 18, 30, 0.28);
	color: var(--order-navy);
	transform: translate3d(var(--order-x), var(--order-y), 0) rotate(-2deg);
	transition: transform 750ms cubic-bezier(0.16, 1, 0.3, 1);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

.cilloni-order__ticket-head {
	display: flex;
	padding-bottom: 10px;
	justify-content: space-between;
	border-bottom: 1px dashed rgba(16, 43, 69, 0.2);
	color: rgba(16,43,69,.48);
	font-size: 0.52rem;
	font-weight: 760;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.cilloni-order__bouquet {
	display: block;
	width: 78px;
	height: 62px;
	margin: 17px auto 9px;
	stroke: var(--order-green);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.4;
}

.cilloni-order__ticket > p {
	margin: 0 0 15px;
	color: var(--order-navy);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.05rem;
	text-align: center;
}

.cilloni-order__ticket-status {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	color: rgba(16,43,69,.5);
	font-size: 0.52rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.cilloni-order__ticket-status i {
	width: 5px;
	height: 5px;
	background: var(--order-green);
	box-shadow: 0 0 0 4px rgba(85,122,98,.13);
}

.cilloni-order__route {
	position: absolute;
	z-index: 3;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.cilloni-order__route path {
	stroke: rgba(203, 180, 106, 0.68);
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-dasharray: 4 9;
	animation: cilloni-order-route 13s linear infinite;
}

.cilloni-order__route circle {
	fill: var(--order-gold);
	filter: drop-shadow(0 0 6px rgba(203,180,106,.8));
}

.cilloni-order__steps {
	position: relative;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-right: 1px solid rgba(255,255,255,.1);
	border-bottom: 1px solid rgba(255,255,255,.1);
	border-left: 1px solid rgba(255,255,255,.1);
}

.cilloni-order__steps button {
	position: relative;
	display: grid;
	min-height: 82px;
	padding: 19px 19px 22px;
	grid-template-columns: 25px 1fr;
	align-items: center;
	gap: 9px;
	border: 0;
	border-left: 1px solid rgba(255,255,255,.1);
	background: transparent;
	color: rgba(255,255,255,.5);
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition: color 350ms ease, background 350ms ease;
}

.cilloni-order__steps button:first-child { border-left: 0; }
.cilloni-order__steps button:hover { color: #fff; background: rgba(255,255,255,.035); }
.cilloni-order__steps button:focus-visible { z-index: 2; outline: 2px solid var(--order-gold); outline-offset: -2px; }
.cilloni-order__steps button > span { color: var(--order-gold); font-size: 0.54rem; font-weight: 760; }
.cilloni-order__steps button strong { font-size: 0.68rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.cilloni-order__steps button i { position: absolute; right: 0; bottom: 0; left: 0; height: 2px; background: var(--order-gold); transform: scaleX(0); transform-origin: left; transition: transform 550ms cubic-bezier(0.16, 1, 0.3, 1); }
.cilloni-order__steps button.is-active { color: #fff; background: rgba(255,255,255,.05); }
.cilloni-order__steps button.is-active i { transform: scaleX(1); }

.cilloni-order__reveal {
	opacity: 0;
	transform: translateY(32px);
	transition: opacity 900ms ease, transform 1100ms cubic-bezier(0.16, 1, 0.3, 1);
}

.cilloni-order__reveal.is-visible { opacity: 1; transform: translateY(0); }
.cilloni-order__window.cilloni-order__reveal { transition-delay: 120ms; }

@keyframes cilloni-order-pulse {
	0%, 100% { opacity: .55; transform: scale(.82); }
	50% { opacity: 1; transform: scale(1); }
}

@keyframes cilloni-order-route {
	to { stroke-dashoffset: -130; }
}

@media (max-width: 1180px) {
	.cilloni-order__header { grid-template-columns: 1fr; gap: 42px; }
	.cilloni-order__header > p { margin-left: clamp(38px, 12vw, 150px); }
	.cilloni-order__stage { grid-template-columns: 1fr; }
	.cilloni-order__story { width: min(88%, 760px); margin: 0 0 clamp(-90px, -7vw, -55px); }
	.cilloni-order__window { padding-top: clamp(74px, 8vw, 100px); }
}

@media (max-width: 720px) {
	.cilloni-order { padding: 84px 18px 96px; }
	.cilloni-order__header { margin-bottom: 64px; }
	.cilloni-order__eyebrow { margin-bottom: 17px; }
	.cilloni-order__header h2 { font-size: clamp(3.7rem, 17vw, 5.5rem); }
	.cilloni-order__header > p { margin-left: 25px; font-size: 1.04rem; }
	.cilloni-order__story { width: calc(100% - 17px); padding: 38px 23px 34px; border-radius: 2px 53px 2px 2px; }
	.cilloni-order__chapter { margin-bottom: 23px; }
	.cilloni-order__story h3 { font-size: 2.55rem; }
	.cilloni-order__numbers { grid-template-columns: repeat(3, 1fr); }
	.cilloni-order__numbers > div { padding: 0 9px; }
	.cilloni-order__numbers strong { font-size: 1.45rem; }
	.cilloni-order__window { padding: 72px 10px 10px; border-radius: 58px 2px 2px 2px; }
	.cilloni-order__screen { aspect-ratio: 4 / 5; }
	.cilloni-order__screen-top { min-height: 47px; padding-inline: 14px; }
	.cilloni-order__ticket { top: 72px; left: 15px; width: 145px; padding: 15px; }
	.cilloni-order__panel figcaption { right: 12px; bottom: 14px; min-width: 190px; padding: 15px 16px; }
	.cilloni-order__steps button { min-height: 74px; padding: 15px 8px 18px; grid-template-columns: 1fr; gap: 5px; text-align: center; }
	.cilloni-order__steps button > span { display: block; }
	.cilloni-order__steps button strong { font-size: 0.56rem; }
	.cilloni-order__botanical { left: -190px; width: 470px; }
}

@media (max-width: 390px) {
	.cilloni-order__numbers span { font-size: .52rem; }
	.cilloni-order__screen-top > span:first-child { display: none; }
	.cilloni-order__screen-top { justify-content: flex-end; }
}

@media (prefers-reduced-motion: reduce) {
	.cilloni-order *,
	.cilloni-order *::before,
	.cilloni-order *::after {
		animation-duration: 0.01ms;
		animation-iteration-count: 1;
		transition-duration: 0.01ms;
	}
	.cilloni-order__reveal { opacity: 1; transform: none; }
}


/* === arte-funeraria.css === */
.cilloni-memorial,
.cilloni-memorial * { box-sizing: border-box; }

.cilloni-memorial {
	--memorial-ink: #26332f;
	--memorial-green: #53695f;
	--memorial-sage: #aebdb4;
	--memorial-stone: #ecece7;
	--memorial-paper: #f8f7f2;
	--memorial-gold: #b7a475;
	position: relative;
	padding: clamp(96px, 11vw, 180px) clamp(20px, 5vw, 88px) clamp(115px, 13vw, 210px);
	overflow: hidden;
	background:
		linear-gradient(105deg, transparent 0 60%, rgba(255,255,255,.42) 60% 60.08%, transparent 60.08%),
		radial-gradient(circle at 78% 18%, rgba(255,255,255,.7), transparent 27%),
		var(--memorial-stone);
	color: var(--memorial-ink);
	font-family: "Avenir Next", "Segoe UI Variable", "Segoe UI", Arial, sans-serif;
	isolation: isolate;
}

.cilloni-memorial::before {
	position: absolute;
	z-index: -1;
	top: 0;
	right: 0;
	width: 54%;
	height: 5px;
	background: linear-gradient(90deg, transparent, var(--memorial-green));
	content: "";
}

.cilloni-memorial__line-art {
	position: absolute;
	z-index: -1;
	right: -110px;
	bottom: -120px;
	width: min(37vw, 620px);
	stroke: var(--memorial-green);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 0.8;
	opacity: 0.1;
	pointer-events: none;
}

.cilloni-memorial__inner { width: min(100%, 1660px); margin: 0 auto; }

.cilloni-memorial__header {
	display: grid;
	margin-bottom: clamp(78px, 9vw, 142px);
	grid-template-columns: minmax(540px, 1.3fr) minmax(320px, .7fr);
	align-items: end;
	gap: clamp(45px, 8vw, 145px);
}

.cilloni-memorial__eyebrow,
.cilloni-memorial__overline {
	margin: 0 0 22px;
	color: var(--memorial-green);
	font-size: .64rem;
	font-weight: 750;
	letter-spacing: .18em;
	text-transform: uppercase;
}

.cilloni-memorial__header h2 {
	position: relative;
	width: max-content;
	margin: 0;
	color: var(--memorial-ink);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(4.7rem, 7.8vw, 8.9rem);
	font-weight: 400;
	font-style: italic;
	letter-spacing: -.058em;
	line-height: .84;
}

.cilloni-memorial__header h2::after {
	position: absolute;
	right: 5%;
	bottom: -.16em;
	left: 5%;
	height: .045em;
	border-radius: 999px;
	background: rgba(83, 105, 95, .4);
	content: "";
	transform: rotate(-.7deg);
}

.cilloni-memorial__header > p {
	max-width: 570px;
	margin: 0 0 7px;
	color: rgba(38, 51, 47, .65);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.08rem, 1.45vw, 1.44rem);
	line-height: 1.68;
}

.cilloni-memorial__composition {
	display: grid;
	grid-template-columns: minmax(390px, .88fr) minmax(430px, 1.12fr);
	align-items: center;
	gap: clamp(62px, 8vw, 142px);
}

.cilloni-memorial__visual {
	--memorial-x: 0px;
	--memorial-y: 0px;
	--memorial-zoom: 1.045;
	position: relative;
	min-height: clamp(590px, 57vw, 810px);
}

.cilloni-memorial__photo {
	position: absolute;
	margin: 0;
	overflow: hidden;
	background: #d9ddd7;
	box-shadow: 0 32px 85px rgba(38, 51, 47, .15);
}

.cilloni-memorial__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(.78) contrast(.97);
	transition: transform 1000ms cubic-bezier(.16, 1, .3, 1), filter 700ms ease;
}

.cilloni-memorial__photo--main {
	top: 0;
	right: 9%;
	bottom: 0;
	left: 0;
	border-radius: 50% 50% 3px 3px / 18% 18% 3px 3px;
}

.cilloni-memorial__photo--main img {
	object-position: center 45%;
	transform: translate3d(calc(var(--memorial-x) * -.32), calc(var(--memorial-y) * -.32), 0) scale(var(--memorial-zoom));
}

.cilloni-memorial__visual[data-service="1"] { --memorial-zoom: 1.13; }
.cilloni-memorial__visual[data-service="1"] .cilloni-memorial__photo--main img { object-position: 48% 32%; }
.cilloni-memorial__visual[data-service="2"] { --memorial-zoom: 1.08; }
.cilloni-memorial__visual[data-service="2"] .cilloni-memorial__photo--main img { object-position: 52% 60%; }
.cilloni-memorial__visual[data-service="3"] { --memorial-zoom: 1.16; }
.cilloni-memorial__visual[data-service="3"] .cilloni-memorial__photo--main img { object-position: 40% 46%; }

.cilloni-memorial__photo--detail {
	right: -2%;
	bottom: 8%;
	width: clamp(150px, 15vw, 230px);
	aspect-ratio: 1;
	border: 9px solid var(--memorial-stone);
	border-radius: 50%;
}

.cilloni-memorial__photo--detail img {
	object-position: 42% 13%;
	transform: translate3d(calc(var(--memorial-x) * .22), calc(var(--memorial-y) * .22), 0) scale(1.8);
}

.cilloni-memorial__visual:hover .cilloni-memorial__photo img { filter: saturate(.9) contrast(1); }

.cilloni-memorial__seal {
	position: absolute;
	z-index: 3;
	top: 15%;
	right: 0;
	display: grid;
	width: 116px;
	aspect-ratio: 1;
	place-content: center;
	border: 1px solid rgba(83,105,95,.35);
	border-radius: 50%;
	background: rgba(248,247,242,.92);
	color: var(--memorial-green);
	font-size: .54rem;
	font-weight: 750;
	letter-spacing: .13em;
	text-align: center;
	text-transform: uppercase;
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

.cilloni-memorial__seal i { width: 23px; height: 1px; margin: 7px auto; background: var(--memorial-gold); }

.cilloni-memorial__caption {
	position: absolute;
	z-index: 3;
	bottom: 23px;
	left: 25px;
	margin: 0;
	padding: 13px 17px;
	background: rgba(38,51,47,.82);
	color: rgba(255,255,255,.74);
	font-size: .56rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	-webkit-backdrop-filter: blur(9px);
	backdrop-filter: blur(9px);
}

.cilloni-memorial__caption span { margin-right: 10px; color: var(--memorial-gold); }

.cilloni-memorial__content {
	max-width: 730px;
	padding: clamp(12px, 2vw, 35px) 0;
}

.cilloni-memorial__content h3 {
	margin: 0 0 30px;
	color: var(--memorial-ink);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2.8rem, 4.5vw, 5.4rem);
	font-weight: 400;
	line-height: 1.02;
}

.cilloni-memorial__content h3 em { color: var(--memorial-green); font-weight: 400; }
.cilloni-memorial__content > p:not(.cilloni-memorial__overline) { max-width: 655px; margin: 0; color: rgba(38,51,47,.64); font-size: .96rem; line-height: 1.8; }

.cilloni-memorial__services {
	display: grid;
	margin-top: 45px;
	grid-template-columns: 1fr 1fr;
	border-top: 1px solid rgba(38,51,47,.14);
	border-left: 1px solid rgba(38,51,47,.14);
}

.cilloni-memorial__services button {
	position: relative;
	display: grid;
	min-height: 72px;
	padding: 18px 19px;
	grid-template-columns: 30px 1fr;
	align-items: center;
	border: 0;
	border-right: 1px solid rgba(38,51,47,.14);
	border-bottom: 1px solid rgba(38,51,47,.14);
	background: rgba(255,255,255,.13);
	color: rgba(38,51,47,.58);
	font: inherit;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1rem;
	text-align: left;
	cursor: pointer;
	transition: background 400ms ease, color 400ms ease;
}

.cilloni-memorial__services button::after {
	position: absolute;
	right: 0;
	bottom: -1px;
	left: 0;
	height: 2px;
	background: var(--memorial-green);
	content: "";
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 500ms cubic-bezier(.16,1,.3,1);
}

.cilloni-memorial__services button span { color: var(--memorial-gold); font: 700 .55rem/1 "Segoe UI", sans-serif; letter-spacing: .08em; }
.cilloni-memorial__services button:hover { color: var(--memorial-ink); background: rgba(255,255,255,.3); }
.cilloni-memorial__services button.is-active { color: var(--memorial-ink); background: rgba(255,255,255,.55); }
.cilloni-memorial__services button.is-active::after { transform: scaleX(1); }
.cilloni-memorial__services button:focus-visible { z-index: 2; outline: 2px solid var(--memorial-green); outline-offset: -2px; }

.cilloni-memorial__panels { position: relative; min-height: 92px; padding: 25px 0 0 32px; border-left: 1px solid var(--memorial-gold); }
.cilloni-memorial__panel { opacity: 0; transform: translateY(7px); transition: opacity 450ms ease, transform 550ms ease; }
.cilloni-memorial__panel.is-active { opacity: 1; transform: translateY(0); }
.cilloni-memorial__panel p { max-width: 570px; margin: 0; color: rgba(38,51,47,.57); font-family: Georgia, "Times New Roman", serif; font-size: 1.02rem; line-height: 1.6; }

.cilloni-memorial__promise { display: flex; margin-top: 34px; padding-top: 25px; align-items: center; gap: 15px; border-top: 1px solid rgba(38,51,47,.12); }
.cilloni-memorial__promise > span { display: block; width: 8px; height: 8px; border: 1px solid var(--memorial-gold); border-radius: 50%; }
.cilloni-memorial__promise p { margin: 0; color: rgba(38,51,47,.55); font-size: .68rem; line-height: 1.5; }
.cilloni-memorial__promise strong { color: var(--memorial-ink); font-weight: 700; }

.cilloni-memorial__reveal { opacity: 0; transform: translateY(30px); transition: opacity 950ms ease, transform 1100ms cubic-bezier(.16,1,.3,1); }
.cilloni-memorial__reveal.is-visible { opacity: 1; transform: translateY(0); }
.cilloni-memorial__content.cilloni-memorial__reveal { transition-delay: 120ms; }

@media (max-width: 1120px) {
	.cilloni-memorial__header { grid-template-columns: 1fr; gap: 42px; }
	.cilloni-memorial__header > p { margin-left: clamp(38px,12vw,150px); }
	.cilloni-memorial__composition { grid-template-columns: 1fr; }
	.cilloni-memorial__visual { width: min(85%,720px); }
	.cilloni-memorial__content { margin-left: clamp(30px,8vw,115px); }
}

@media (max-width: 700px) {
	.cilloni-memorial { padding: 84px 18px 98px; }
	.cilloni-memorial__header { margin-bottom: 67px; }
	.cilloni-memorial__header h2 { font-size: clamp(3.55rem,16.5vw,5.35rem); }
	.cilloni-memorial__header > p { margin-left: 25px; font-size: 1.04rem; }
	.cilloni-memorial__visual { width: calc(100% - 15px); min-height: 565px; }
	.cilloni-memorial__photo--main { right: 0; }
	.cilloni-memorial__photo--detail { right: -15px; width: 135px; border-width: 7px; }
	.cilloni-memorial__seal { top: 11%; right: -7px; width: 96px; }
	.cilloni-memorial__content { margin: 0; padding-top: 25px; }
	.cilloni-memorial__content h3 { font-size: 2.7rem; }
	.cilloni-memorial__services { grid-template-columns: 1fr; }
	.cilloni-memorial__services button { min-height: 66px; }
	.cilloni-memorial__line-art { right: -210px; width: 490px; }
}

@media (prefers-reduced-motion: reduce) {
	.cilloni-memorial *, .cilloni-memorial *::before, .cilloni-memorial *::after { animation-duration: .01ms; animation-iteration-count: 1; transition-duration: .01ms; }
	.cilloni-memorial__reveal { opacity: 1; transform: none; }
}


/* === self-service.css === */
.cilloni-self,
.cilloni-self * { box-sizing: border-box; }

.cilloni-self {
	--self-navy: #102b45;
	--self-deep: #0a2033;
	--self-green: #557c63;
	--self-lime: #94c94b;
	--self-sage: #dce8de;
	--self-gold: #cfb75f;
	position: relative;
	padding: clamp(96px, 11vw, 180px) clamp(20px, 5vw, 88px) clamp(120px, 14vw, 220px);
	overflow: hidden;
	background:
		radial-gradient(circle at 12% 78%, rgba(220,232,222,.74), transparent 27%),
		linear-gradient(134deg, #fff 0 55%, #f3f6f1 100%);
	color: var(--self-navy);
	font-family: "Avenir Next", "Segoe UI Variable", "Segoe UI", Arial, sans-serif;
	isolation: isolate;
}

.cilloni-self::before { position: absolute; z-index: -1; top: 0; left: 0; width: 45%; height: 5px; background: linear-gradient(90deg,var(--self-green),transparent); content: ""; }
.cilloni-self__grid { position: absolute; z-index: -2; inset: 0; background-image: linear-gradient(rgba(16,43,69,.027) 1px,transparent 1px),linear-gradient(90deg,rgba(16,43,69,.027) 1px,transparent 1px); background-size: 68px 68px; mask-image: linear-gradient(to bottom,transparent,black 18%,black 80%,transparent); }
.cilloni-self__leaves { position: absolute; z-index: -1; right: -90px; bottom: -90px; width: min(31vw,500px); stroke: var(--self-green); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1; opacity: .09; pointer-events: none; }
.cilloni-self__inner { width: min(100%,1660px); margin: 0 auto; }

.cilloni-self__header { display: grid; margin-bottom: clamp(76px,9vw,140px); grid-template-columns: minmax(540px,1.3fr) minmax(320px,.7fr); align-items: end; gap: clamp(45px,8vw,145px); }
.cilloni-self__eyebrow { margin: 0 0 22px; color: var(--self-green); font-size: .64rem; font-weight: 760; letter-spacing: .18em; text-transform: uppercase; }
.cilloni-self__header h2 { position: relative; width: max-content; margin: 0; color: var(--self-navy); font-family: Georgia,"Times New Roman",serif; font-size: clamp(4.8rem,8vw,9.1rem); font-weight: 400; font-style: italic; letter-spacing: -.06em; line-height: .84; }
.cilloni-self__header h2::after { position: absolute; right: 3%; bottom: -.16em; left: 46%; height: .055em; border-radius: 999px; background: var(--self-lime); content: ""; opacity: .78; transform: rotate(-1deg); }
.cilloni-self__header > p { max-width: 575px; margin: 0 0 7px; color: rgba(16,43,69,.66); font-family: Georgia,"Times New Roman",serif; font-size: clamp(1.08rem,1.45vw,1.45rem); line-height: 1.68; }

.cilloni-self__experience { display: grid; grid-template-columns: minmax(330px,.82fr) minmax(300px,.72fr) minmax(270px,.54fr); align-items: stretch; gap: clamp(14px,1.5vw,25px); }
.cilloni-self__copy { padding: clamp(38px,4.5vw,72px); border: 1px solid rgba(16,43,69,.1); border-radius: 72px 2px 2px 2px; background: rgba(255,255,252,.94); box-shadow: 0 27px 80px rgba(16,43,69,.1); }
.cilloni-self__chapter { display: flex; margin: 0 0 30px; align-items: center; gap: 14px; color: var(--self-green); font-size: .59rem; font-weight: 760; letter-spacing: .15em; text-transform: uppercase; }
.cilloni-self__chapter i { display: block; width: 48px; height: 1px; background: rgba(85,124,99,.44); }
.cilloni-self__copy h3 { margin: 0 0 29px; color: var(--self-navy); font-family: Georgia,"Times New Roman",serif; font-size: clamp(2.8rem,4vw,4.7rem); font-weight: 400; line-height: .99; }
.cilloni-self__copy h3 em { color: var(--self-green); font-weight: 400; }
.cilloni-self__copy > p:not(.cilloni-self__chapter) { margin: 0; color: rgba(16,43,69,.63); font-size: .91rem; line-height: 1.76; }

.cilloni-self__features { display: grid; margin-top: 38px; border-top: 1px solid rgba(16,43,69,.11); }
.cilloni-self__features > div { display: grid; min-height: 67px; padding: 13px 0; grid-template-columns: 30px 1fr; align-items: center; gap: 10px; border-bottom: 1px solid rgba(16,43,69,.1); }
.cilloni-self__features span { color: var(--self-lime); font-size: .56rem; font-weight: 800; }
.cilloni-self__features p { margin: 0; color: rgba(16,43,69,.47); font-size: .64rem; line-height: 1.4; }
.cilloni-self__features strong { display: block; margin-bottom: 2px; color: var(--self-navy); font-family: Georgia,"Times New Roman",serif; font-size: 1rem; font-weight: 400; }

.cilloni-self__photo { position: relative; min-height: 690px; margin: 0; overflow: hidden; background: #cad5d0; box-shadow: 0 30px 85px rgba(16,43,69,.15); }
.cilloni-self__photo::after { position: absolute; inset: 0; background: linear-gradient(to bottom,transparent 54%,rgba(10,32,51,.6)); content: ""; transition: background 800ms ease; }
.cilloni-self__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.015); transition: transform 1000ms cubic-bezier(.16,1,.3,1),filter 850ms ease; }
.cilloni-self__experience:hover .cilloni-self__photo img { transform: scale(1.045); }
.cilloni-self.is-night .cilloni-self__photo img { filter: brightness(.72) saturate(.78) contrast(1.05); }
.cilloni-self.is-night .cilloni-self__photo::after { background: linear-gradient(to bottom,rgba(7,24,40,.35),rgba(7,24,40,.82)); }
.cilloni-self__photo figcaption { position: absolute; z-index: 3; right: 20px; bottom: 21px; left: 20px; display: flex; padding: 17px 18px; align-items: center; gap: 13px; border: 1px solid rgba(255,255,255,.16); background: rgba(10,32,51,.68); color: #fff; -webkit-backdrop-filter: blur(11px); backdrop-filter: blur(11px); }
.cilloni-self__photo figcaption > span { display: block; width: 7px; height: 7px; border-radius: 50%; background: var(--self-lime); box-shadow: 0 0 0 6px rgba(148,201,75,.14); }
.cilloni-self__photo figcaption p { margin: 0; color: rgba(255,255,255,.52); font-size: .6rem; line-height: 1.4; }
.cilloni-self__photo figcaption strong { display: block; margin-bottom: 2px; color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: .98rem; font-weight: 400; }

.cilloni-self__clock-card { display: flex; min-width: 0; padding: clamp(27px,3.3vw,50px); flex-direction: column; align-items: center; justify-content: center; border-radius: 2px 2px 76px 2px; background: var(--self-navy); box-shadow: 0 35px 90px rgba(16,43,69,.22); color: #fff; transition: background 850ms ease,box-shadow 850ms ease; }
.cilloni-self.is-night .cilloni-self__clock-card { background: #081b2c; box-shadow: 0 35px 100px rgba(8,27,44,.31); }
.cilloni-self__availability { display: flex; margin: 0 0 28px; align-items: center; gap: 10px; color: rgba(255,255,255,.58); font-size: .56rem; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; }
.cilloni-self__availability i { display: block; width: 7px; height: 7px; border-radius: 50%; background: var(--self-lime); box-shadow: 0 0 0 6px rgba(148,201,75,.13); animation: cilloni-self-live 2.5s ease-in-out infinite; }

.cilloni-self__dial { --self-angle: 180deg; position: relative; display: grid; width: min(100%,260px); aspect-ratio: 1; place-items: center; border: 1px solid rgba(255,255,255,.15); border-radius: 50%; background: radial-gradient(circle,rgba(255,255,255,.06) 0 45%,transparent 46%),conic-gradient(from 0deg,rgba(148,201,75,.4),rgba(207,183,95,.17),rgba(255,255,255,.07),rgba(148,201,75,.4)); cursor: grab; touch-action: none; }
.cilloni-self__dial:active { cursor: grabbing; }
.cilloni-self__dial::before { position: absolute; inset: 10px; border: 1px solid rgba(255,255,255,.12); border-radius: inherit; content: ""; }
.cilloni-self__dial:focus-visible { outline: 2px solid var(--self-lime); outline-offset: 7px; }
.cilloni-self__ticks { position: absolute; inset: 20px; border-radius: 50%; background: repeating-conic-gradient(from -1deg,rgba(255,255,255,.5) 0 1deg,transparent 1deg 15deg); -webkit-mask: radial-gradient(circle,transparent 0 82%,#000 83%); mask: radial-gradient(circle,transparent 0 82%,#000 83%); opacity: .45; }
.cilloni-self__hand { position: absolute; inset: 0; transform: rotate(var(--self-angle)); transition: transform 420ms cubic-bezier(.16,1,.3,1); pointer-events: none; }
.cilloni-self__hand::before { position: absolute; top: 18px; left: 50%; width: 2px; height: calc(50% - 32px); border-radius: 2px; background: linear-gradient(var(--self-lime),var(--self-gold)); content: ""; transform: translateX(-50%); box-shadow: 0 0 10px rgba(148,201,75,.35); }
.cilloni-self__hand i { position: absolute; top: 14px; left: 50%; width: 9px; height: 9px; border-radius: 50%; background: var(--self-lime); transform: translateX(-50%); box-shadow: 0 0 0 6px rgba(148,201,75,.12); }
.cilloni-self__time { position: relative; z-index: 2; text-align: center; pointer-events: none; }
.cilloni-self__time strong { display: block; color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: clamp(2rem,3vw,3.1rem); font-weight: 400; letter-spacing: -.04em; }
.cilloni-self__time span { display: block; margin-top: 4px; color: var(--self-lime); font-size: .55rem; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; }
.cilloni-self__dial-hint { max-width: 220px; margin: 22px 0 0; color: rgba(255,255,255,.42); font-size: .57rem; line-height: 1.5; text-align: center; }

.cilloni-self__price-note { display: grid; width: 100%; margin-top: 34px; padding-top: 24px; grid-template-columns: 35px 1fr 34px; align-items: center; gap: 11px; border-top: 1px solid rgba(255,255,255,.12); }
.cilloni-self__price-note > span { color: var(--self-gold); font-family: Georgia,"Times New Roman",serif; font-size: 1.7rem; }
.cilloni-self__price-note p { margin: 0; color: rgba(255,255,255,.42); font-size: .55rem; line-height: 1.4; }
.cilloni-self__price-note strong { display: block; color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: .91rem; font-weight: 400; }
.cilloni-self__price-note svg { width: 31px; stroke: var(--self-gold); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.3; }

.cilloni-self__reveal { opacity: 0; transform: translateY(31px); transition: opacity 950ms ease,transform 1100ms cubic-bezier(.16,1,.3,1); }
.cilloni-self__reveal.is-visible { opacity: 1; transform: translateY(0); }

@keyframes cilloni-self-live { 0%,100% { opacity: .55; transform: scale(.82); } 50% { opacity: 1; transform: scale(1); } }

@media (max-width: 1220px) {
	.cilloni-self__header { grid-template-columns: 1fr; gap: 42px; }
	.cilloni-self__header > p { margin-left: clamp(38px,12vw,150px); }
	.cilloni-self__experience { grid-template-columns: 1fr 1fr; }
	.cilloni-self__copy { grid-column: 1/-1; width: min(86%,780px); margin-bottom: -70px; z-index: 3; }
	.cilloni-self__photo { min-height: 650px; }
}

@media (max-width: 720px) {
	.cilloni-self { padding: 84px 18px 100px; }
	.cilloni-self__header { margin-bottom: 67px; }
	.cilloni-self__header h2 { font-size: clamp(3.65rem,17vw,5.45rem); }
	.cilloni-self__header > p { margin-left: 25px; font-size: 1.04rem; }
	.cilloni-self__experience { grid-template-columns: 1fr; }
	.cilloni-self__copy { grid-column: auto; width: calc(100% - 16px); margin-bottom: -50px; padding: 38px 23px 34px; border-radius: 52px 2px 2px 2px; }
	.cilloni-self__copy h3 { font-size: 2.65rem; }
	.cilloni-self__photo { min-height: 600px; }
	.cilloni-self__clock-card { min-height: 520px; border-radius: 2px 2px 58px 2px; }
	.cilloni-self__dial { width: min(100%,245px); }
	.cilloni-self__leaves { right: -210px; width: 480px; }
}

@media (prefers-reduced-motion: reduce) {
	.cilloni-self *, .cilloni-self *::before, .cilloni-self *::after { animation-duration: .01ms; animation-iteration-count: 1; transition-duration: .01ms; }
	.cilloni-self__reveal { opacity: 1; transform: none; }
}


/* === typography-compat.css === */
/**
 * Avada typography compatibility.
 * Pixel-based clamps keep the approved proportions independent of the
 * root font-size configured by the theme.
 */

/* Escape Avada's boxed Text Block while preserving the inner compositions. */
.cilloni-bank,
.cilloni-green,
.cilloni-event,
.cilloni-xmas,
.cilloni-flora,
.cilloni-order,
.cilloni-memorial,
.cilloni-self {
	width: 100vw;
	max-width: 100vw;
	margin-right: calc(50% - 50vw);
	margin-left: calc(50% - 50vw);
}

/* Main section titles. */
.cilloni-bank .cilloni-bank__heading-row h1,
.cilloni-green .cilloni-green__header h2,
.cilloni-event .cilloni-event__header h2,
.cilloni-xmas .cilloni-xmas__header h2,
.cilloni-flora .cilloni-flora__header h2,
.cilloni-order .cilloni-order__header h2,
.cilloni-memorial .cilloni-memorial__header h2,
.cilloni-self .cilloni-self__header h2 {
	font-size: clamp(92px, 8vw, 148px);
	line-height: 0.84;
}

/* Introductory copy. */
.cilloni-bank .cilloni-bank__heading-row > p,
.cilloni-green .cilloni-green__header > p,
.cilloni-event .cilloni-event__header > p,
.cilloni-xmas .cilloni-xmas__header > p,
.cilloni-flora .cilloni-flora__header > p,
.cilloni-order .cilloni-order__header > p,
.cilloni-memorial .cilloni-memorial__header > p,
.cilloni-self .cilloni-self__header > p {
	font-size: clamp(18px, 1.45vw, 24px);
}

/* Small labels must remain legible even with a reduced Avada root size. */
.cilloni-bank .cilloni-bank__eyebrow,
.cilloni-bank .cilloni-bank__kicker,
.cilloni-green .cilloni-green__overline,
.cilloni-green .cilloni-green__steps-label,
.cilloni-event .cilloni-event__overline,
.cilloni-xmas .cilloni-xmas__overline,
.cilloni-flora .cilloni-flora__overline,
.cilloni-order .cilloni-order__eyebrow,
.cilloni-order .cilloni-order__chapter,
.cilloni-memorial .cilloni-memorial__eyebrow,
.cilloni-memorial .cilloni-memorial__overline,
.cilloni-self .cilloni-self__eyebrow,
.cilloni-self .cilloni-self__chapter {
	font-size: 12px;
}

/* Servizio a banco accordion. */
.cilloni-bank .cilloni-bank__item button {
	min-height: 92px;
}

.cilloni-bank .cilloni-bank__number {
	font-size: 12px;
}

.cilloni-bank .cilloni-bank__item-title {
	font-size: clamp(25px, 1.7vw, 32px);
}

.cilloni-bank .cilloni-bank__answer p {
	font-size: 16px;
}

.cilloni-bank .cilloni-bank__note p {
	font-size: 17px;
}

/* Manutenzione card. */
.cilloni-green .cilloni-green__card-index {
	font-size: 18px;
}

.cilloni-green .cilloni-green__tabs button,
.cilloni-event .cilloni-event__tabs button,
.cilloni-xmas .cilloni-xmas__tabs button {
	font-size: 12px;
}

.cilloni-green .cilloni-green__panel h3,
.cilloni-event .cilloni-event__panel h3,
.cilloni-xmas .cilloni-xmas__panel h3,
.cilloni-flora .cilloni-flora__card h3 {
	font-size: clamp(34px, 2.8vw, 54px);
}

.cilloni-green .cilloni-green__panel > p:not(.cilloni-green__overline),
.cilloni-event .cilloni-event__panel > p:not(.cilloni-event__overline),
.cilloni-xmas .cilloni-xmas__panel > p:not(.cilloni-xmas__overline),
.cilloni-flora .cilloni-flora__card > p {
	font-size: 16px;
}

.cilloni-green .cilloni-green__panel li,
.cilloni-xmas .cilloni-xmas__tags span,
.cilloni-event .cilloni-event__services span {
	font-size: 12px;
}

.cilloni-green .cilloni-green__steps strong {
	font-size: 18px;
}

.cilloni-green .cilloni-green__steps p {
	font-size: 13px;
}

.cilloni-green .cilloni-green__steps span {
	font-size: 11px;
}

/* Eventi, Festività and Interflora secondary information. */
.cilloni-event .cilloni-event__tabs button span,
.cilloni-xmas .cilloni-xmas__tabs button span {
	font-size: 10px;
}

.cilloni-xmas .cilloni-xmas__promise p,
.cilloni-flora .cilloni-flora__facts p,
.cilloni-flora .cilloni-flora__same-day p {
	font-size: 13px;
}

.cilloni-xmas .cilloni-xmas__promise strong,
.cilloni-flora .cilloni-flora__facts strong,
.cilloni-flora .cilloni-flora__same-day strong {
	font-size: 17px;
}

/* Ordina da casa, Arte funeraria and Self service content cards. */
.cilloni-order .cilloni-order__story h3,
.cilloni-memorial .cilloni-memorial__content h3,
.cilloni-self .cilloni-self__copy h3 {
	font-size: clamp(46px, 4vw, 76px);
}

.cilloni-order .cilloni-order__story > p,
.cilloni-memorial .cilloni-memorial__content > p:not(.cilloni-memorial__overline),
.cilloni-self .cilloni-self__copy > p:not(.cilloni-self__chapter) {
	font-size: 16px;
}

.cilloni-order .cilloni-order__steps button strong {
	font-size: 13px;
}

.cilloni-order .cilloni-order__steps button > span,
.cilloni-memorial .cilloni-memorial__services button span,
.cilloni-self .cilloni-self__features span {
	font-size: 11px;
}

.cilloni-memorial .cilloni-memorial__services button,
.cilloni-self .cilloni-self__features strong {
	font-size: 17px;
}

.cilloni-memorial .cilloni-memorial__panel p {
	font-size: 17px;
}

.cilloni-self .cilloni-self__features p {
	font-size: 13px;
}

@media (max-width: 1024px) {
	.cilloni-bank .cilloni-bank__heading-row h1,
	.cilloni-green .cilloni-green__header h2,
	.cilloni-event .cilloni-event__header h2,
	.cilloni-xmas .cilloni-xmas__header h2,
	.cilloni-flora .cilloni-flora__header h2,
	.cilloni-order .cilloni-order__header h2,
	.cilloni-memorial .cilloni-memorial__header h2,
	.cilloni-self .cilloni-self__header h2 {
		font-size: clamp(72px, 12vw, 112px);
	}
}

@media (max-width: 680px) {
	.cilloni-bank .cilloni-bank__heading-row h1,
	.cilloni-green .cilloni-green__header h2,
	.cilloni-event .cilloni-event__header h2,
	.cilloni-xmas .cilloni-xmas__header h2,
	.cilloni-flora .cilloni-flora__header h2,
	.cilloni-order .cilloni-order__header h2,
	.cilloni-memorial .cilloni-memorial__header h2,
	.cilloni-self .cilloni-self__header h2 {
		font-size: clamp(58px, 17vw, 86px);
	}

	.cilloni-bank .cilloni-bank__heading-row > p,
	.cilloni-green .cilloni-green__header > p,
	.cilloni-event .cilloni-event__header > p,
	.cilloni-xmas .cilloni-xmas__header > p,
	.cilloni-flora .cilloni-flora__header > p,
	.cilloni-order .cilloni-order__header > p,
	.cilloni-memorial .cilloni-memorial__header > p,
	.cilloni-self .cilloni-self__header > p {
		font-size: 17px;
	}

	.cilloni-bank .cilloni-bank__item-title {
		font-size: 22px;
	}

	.cilloni-green .cilloni-green__panel h3,
	.cilloni-event .cilloni-event__panel h3,
	.cilloni-xmas .cilloni-xmas__panel h3,
	.cilloni-flora .cilloni-flora__card h3 {
		font-size: 34px;
	}

	.cilloni-order .cilloni-order__story h3,
	.cilloni-memorial .cilloni-memorial__content h3,
	.cilloni-self .cilloni-self__copy h3 {
		font-size: 42px;
	}
}

