/* Shared visual polish for Web Criolla demos. */
:root {
	--wc-ease: cubic-bezier(.2, .8, .2, 1);
	--wc-lift-shadow: 0 18px 45px rgba(15, 23, 42, .14);
}

body.wc-polished {
	text-rendering: optimizeLegibility;
}

body.wc-polished::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		linear-gradient(115deg, rgba(255,255,255,.08), transparent 28%, rgba(255,255,255,.06) 58%, transparent 82%),
		repeating-linear-gradient(90deg, rgba(255,255,255,.025) 0 1px, transparent 1px 120px);
	mix-blend-mode: soft-light;
	opacity: .55;
}

body.wc-polished > * {
	position: relative;
}

.wc-reveal {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity .65s var(--wc-ease), transform .65s var(--wc-ease);
	will-change: opacity, transform;
}

.wc-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.portfolio-card,
.service-card,
.card,
.product-card,
.menu-card,
.room-card,
.event-card,
.noticia-card,
.sermon-card,
.gallery-item,
.package-card,
article[class*="card"] {
	transition: transform .28s var(--wc-ease), box-shadow .28s var(--wc-ease), border-color .28s var(--wc-ease), filter .28s var(--wc-ease);
}

.portfolio-card:hover,
.service-card:hover,
.card:hover,
.product-card:hover,
.menu-card:hover,
.room-card:hover,
.event-card:hover,
.noticia-card:hover,
.sermon-card:hover,
.gallery-item:hover,
.package-card:hover,
article[class*="card"]:hover {
	transform: translateY(-5px);
	box-shadow: var(--wc-lift-shadow);
}

.portfolio-card img,
.product-card img,
.menu-card img,
.room-card img,
.gallery-item img,
.mission-image,
.lightbox-image {
	transition: transform .7s var(--wc-ease), filter .35s var(--wc-ease);
}

.portfolio-card:hover img,
.product-card:hover img,
.menu-card:hover img,
.room-card:hover img,
.gallery-item:hover img {
	transform: scale(1.045);
	filter: saturate(1.08) contrast(1.04);
}

.button,
button,
.btn,
.nav-btn,
.cart-btn,
.portfolio-link {
	transition: transform .22s var(--wc-ease), box-shadow .22s var(--wc-ease), background-color .22s var(--wc-ease), color .22s var(--wc-ease), border-color .22s var(--wc-ease);
}

.button:hover,
button:hover,
.btn:hover,
.nav-btn:hover,
.cart-btn:hover {
	transform: translateY(-2px);
}

.portfolio-tail {
	padding-top: 0;
}

.portfolio-tail-panel {
	position: relative;
	overflow: hidden;
	padding: clamp(1.4rem, 4vw, 2.4rem);
	border: 1px solid rgba(15, 61, 62, .14);
	border-radius: 18px;
	background:
		linear-gradient(135deg, rgba(15, 61, 62, .08), rgba(239, 131, 118, .08)),
		rgba(255, 255, 255, .76);
	box-shadow: 0 18px 60px rgba(15, 61, 62, .08);
}

.portfolio-tail-panel::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(110deg, transparent 0%, rgba(255,255,255,.42) 46%, transparent 70%);
	transform: translateX(-120%);
	animation: wc-panel-sheen 8s var(--wc-ease) infinite;
	pointer-events: none;
}

.portfolio-tail-panel p {
	position: relative;
	max-width: 980px;
	margin: 0;
	color: #173f40;
	font-family: var(--font-heading, inherit);
	font-size: clamp(1.15rem, 2.4vw, 1.8rem);
	font-weight: 700;
	line-height: 1.35;
	text-wrap: balance;
}

@keyframes wc-panel-sheen {
	0%, 42% { transform: translateX(-120%); }
	64%, 100% { transform: translateX(120%); }
}

@media (prefers-reduced-motion: reduce) {
	body.wc-polished::before {
		display: none;
	}

	.wc-reveal,
	.portfolio-card,
	.service-card,
	.card,
	.product-card,
	.menu-card,
	.room-card,
	.event-card,
	.noticia-card,
	.sermon-card,
	.gallery-item,
	.package-card,
	article[class*="card"],
	.portfolio-card img,
	.product-card img,
	.menu-card img,
	.room-card img,
	.gallery-item img,
	.button,
	button,
	.btn,
	.nav-btn,
	.cart-btn {
		transition: none !important;
		animation: none !important;
		transform: none !important;
	}
}
