/* Table of Content
====================
* Portfolio interactive
*/ 


/* ------------------------------------------------------------- *
 * Portfolio interactive
/* ------------------------------------------------------------- */

/* Portfolio interactive list 
============================== */
.portfolio-interactive-list {
}

/* Portfolio interactive item */
.portfolio-interactive-item {
	position: relative;
}
.portfolio-interactive-item.pi-item-hover {
	z-index: 9;
}

/* Portfolio interactive item category */
.pi-item-category-wrap {
	position: absolute;
	top: 0;
	left: 0;
	line-height: 1;
	overflow: hidden;
	z-index: 1;
	opacity: .6;
	transition: opacity 0.3s ease;
}
.pi-item-category {
	position: relative;
	display: inline-block;
	margin: 0;
	font-size: calc(13px + 0.1vw);
	font-weight: normal;
	color: #FFF;
	line-height: 1.4;
	transition: transform .6s cubic-bezier(0.51, 0.57, 0.17, 1);
}
.pi-item-category ~ .pi-item-category {
	margin-left: -4px;
}
.pi-item-category ~ .pi-item-category {
	visibility: hidden;
}
.pi-item-category + .pi-item-category:not(:empty)::before {
	content: "...";
	margin-left: 2px;
	visibility: visible;
}
.pi-item-category ~ .pi-item-category ~ .pi-item-category {
	display: none;
}


/* Portfolio interactive item counter */
.portfolio-interactive {
	counter-reset: pi-item-counter;
}
.pi-item-title-link::before {
	position: absolute;
	counter-increment: pi-item-counter;
	content: "" counter(pi-item-counter, decimal-leading-zero);
	top: 10px;
	right: -20px;
	line-height: 1;
	font-size: calc(12px + 0.3vw);
	font-weight: 300;
	color: #FFF;
	opacity: .6;
	z-index: 2;
}
@media (max-width: 1024px) {
	.pi-item-title-link::before {
		right: 0;
	}
}

/* Portfolio interactive item title */
.pi-item-title,
.pi-item-hover-title {
	display: block;
	margin: 0;
	padding: 0;
	font-size: clamp(28px, 5vw, 82px);
	font-weight: 600;
	color: #EEE;
	line-height: 1.2;
	transform: translate3d(0, 0, 0);
	transition: transform 0.4s cubic-bezier(0.51, 0.57, 0.17, 1), opacity 0.4s ease;

	/* Ellipsis */
	overflow: hidden;
	text-overflow: ellipsis;
}
.pi-item-title {
	position: relative;
}
.pi-item-hover-title {
	position: absolute;
	left: 0;
	max-width: 100%;
	color: #FFF;
	opacity: 1;
}

/* Portfolio interactive item hover */
.pi-item-title, 
.pi-item-hover-title {
	white-space: nowrap;
}
.portfolio-interactive.hovered .pi-item-title {
	opacity: .5;
}
.portfolio-interactive.hovered .pi-item-category-wrap,
.portfolio-interactive.hovered .pi-item-title-link::before {
	opacity: .3;
}
.pi-item-title-link:hover .pi-item-category-wrap {
	opacity: .9;
}
.pi-item-title-link:hover .pi-item-title {
	transform: translate3d(0, -100%, 0);
}
.pi-item-title-link:hover .pi-item-hover-title {
	transform: translate3d(0, -100%, 0);
}
.portfolio-interactive.hovered .pi-item-title-link:hover::before {
	opacity: .7;
}


/* Portfolio interactive images
================================ */
.pi-item-image {
	position: absolute;
	display: block;
	top: 100%;
	left: 30%;
	opacity: 0;
	pointer-events: none;
	visibility: hidden;
	transform: translate3d(0, -30%, 0);
	transition: all .3s ease-out;
}
.portfolio-interactive-item.pi-item-hover .pi-item-image {
	opacity: 1;
	visibility: visible;
	transition-delay: .1s;
}
.pi-item-image-inner {
	position: relative;
	width: 250px;
	padding-bottom: 70%;
	background-color: #121212;
	line-height: 0;
	transform: translate3d(0, 30px, 0) rotate(0deg) scale(.95);
	transition: transform .3s ease-out;
}
@media (max-width: 992px) {
	.pi-item-image-inner {
		width: 300px;
	}
}
.portfolio-interactive-item.pi-item-hover .pi-item-image-inner {
	transform: translate3d(0, 0, 0) rotate(6deg) scale(1);
	transition-delay: .1s;
}

.pi-item-image img,
.pi-item-image video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: .9;
}

video.pi-item-video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}


/* Portfolio interactive styles 
================================ */
/* Style stroke (no effect on small screens) */
@media (min-width: 1025px) {
	.portfolio-interactive.pi-stroke .pi-item-title {
		font-weight: bold;
		font-weight: 700;
		-webkit-text-stroke-width: 2px;
		-webkit-text-stroke-color: #EEE;
		-webkit-text-fill-color: transparent;
	}
	body.is-firefox .portfolio-interactive.pi-stroke .pi-item-title {
		-webkit-text-stroke-width: 2px;
	}
}

/* Style inline */
@media (min-width: 768px) {
	.portfolio-interactive.pi-inline .portfolio-interactive-list::after {
		content: "";
		display: table;
		clear: both;
	}
	.portfolio-interactive.pi-inline .portfolio-interactive-item {
		float: left;
	}
	.portfolio-interactive.pi-inline .portfolio-interactive-item:last-child {
		margin-right: 0;
	}
	.portfolio-interactive.pi-inline .pi-item-title-link {
		padding: 25px 50px 40px 0;
	}
	.portfolio-interactive.pi-inline .pi-item-title-link-inner {
		max-width: 600px;
	}
	.portfolio-interactive.pi-inline .pi-item-title-link::after {
		position: absolute;
		content: "/";
		top: 47%;
		right: 15px;
		line-height: 1;
		font-size: calc(12px + 1.3vw);
		font-weight: 500;
		color: #FFF;
		opacity: .5;
		z-index: 2;
		transform: translate3d(0, -50%, 0);
	}
	.portfolio-interactive.pi-inline.pi-center .pi-item-title-link::after {
		top: 65%;
		font-size: calc(12px + 2.3vw);
	}

	.portfolio-interactive.pi-inline .pi-item-title, 
	.portfolio-interactive.pi-inline .pi-item-hover-title {
		font-size: clamp(28px, 3vw, 48px);
		font-weight: 600;
	}
	.portfolio-interactive.pi-inline .pi-item-title-link::before {
		top: 8px;
		right: 55px;
		font-size: calc(11px + 0.2vw);
	}

	.portfolio-interactive.pi-inline .pi-item-category {
		font-size: calc(11px + 0.1vw);
	}

	@media (max-width: 1200px) {
		.portfolio-interactive.pi-inline .pi-item-title-link {
			padding: 25px 40px 30px 0;
		}
		.portfolio-interactive.pi-inline .pi-item-title-link::before {
			right: 45px;
		}
	}

	.portfolio-interactive.pi-inline .pi-item-image-inner {
		width: 400px;
	}
	@media (max-width: 992px) {
		.portfolio-interactive.pi-inline .pi-item-image-inner {
			width: 300px;
		}
	}
}

/* Style center */
.portfolio-interactive.pi-center .portfolio-interactive-list {
	text-align: center;
}
.portfolio-interactive.pi-center:not(.pi-stroke) .pi-item-title {
}
.portfolio-interactive.pi-center .pi-item-title-link {
	padding-bottom: 0;
}
.portfolio-interactive.pi-center .pi-item-title-link::before {
	display: none;
}
.portfolio-interactive.pi-center .pi-item-title-link-inner {
	max-width: 100%;
}
.portfolio-interactive.pi-center .pi-item-category-wrap {
	left: 50%;
	opacity: 0 !important;
	overflow: hidden;
	transform: translateX(-50%);
}
.portfolio-interactive.pi-center .pi-item-title-link:hover .pi-item-category-wrap {
	opacity: 1 !important;
}
.portfolio-interactive.pi-center .pi-item-category {
	transform: translate3d(0, 100%, 0);
}
.portfolio-interactive.pi-center .pi-item-title-link:hover .pi-item-category {
	transform: translate3d(0, 0, 0);
}

.portfolio-interactive.pi-center .pi-item-image {
	left: 50%;
	transform: translate3d(-50%, -50%, 0);
}


/* Portfolio interactive stand-alone 
=====================================
Note: class "pi-full" is for use only if the portfolio interactive section is a stand-alone element of the page (no "page-header", no other sections). 
Also, the top and bottom padding must be removed from the "tt-section" (use the "no-padding" class)!
*/
body:not(.page-header-on) .portfolio-interactive.pi-full {
	display: table;
	width: 100%;

}
body:not(.page-header-on) .portfolio-interactive.pi-full .pi-inner {
	display: table-cell;
	vertical-align: middle;
	height: 100%;
	
}
body:not(.page-header-on) .portfolio-interactive.pi-full {
	min-height: 100vh;
}

@media (max-width: 1024px) {
	body:not(.page-header-on) .portfolio-interactive.pi-full {
		min-height: calc(100vh - 25vh);
		padding-bottom: 40px;
	}
	body:not(.page-header-on) .portfolio-interactive.pi-full .portfolio-interactive-list {
		padding-bottom: 0;
	}
}

/* Portfolio interactive ghost */
.portfolio-interactive-ghost {
	display: none;
}
body.pi-full-on:not(.page-header-on) .portfolio-interactive-ghost {
	position: fixed;
	display: block;
	bottom: 0;
	left: 0;
	font-size: 22.5vw;
	font-weight: bold;
	font-weight: 600;
	color: #FFF;
	line-height: .7;
	opacity: .07;
	z-index: -1;
}
@media (max-width: 767px) {
	body:not(.page-header-on) .portfolio-interactive-ghost,
	body:not(.page-header-on).pi-inline-on .portfolio-interactive-ghost {
		top: 15%;
		bottom: auto;
	}
}

/* Footer position fixed */
@media (min-width: 1025px) {
	body.pi-full-on #tt-footer {
		position: fixed;
		left: 0;
		bottom: 0;
		width: 100%;
		pointer-events: none;
	}
	body.pi-full-on #tt-footer a {
		pointer-events: initial;
	}
}

.mi-seccion-con-patron {
	position: relative; /* Necesario para posicionar el patrón absolutamente dentro */
	overflow: hidden; /* Opcional, para evitar que el patrón sobresalga */
	/* Otros estilos de la sección */
  }
  
  .patron-de-fondo {
	position: absolute;
	top: 0;
	left: 0;
	width: 1%; /* Ajusta según necesites */
	height: auto; /* Ajusta según necesites */
	z-index: -1; /* Detrás del contenido */
	opacity: 0.1; /* Opcional */
	pointer-events: none; /* Para que no interfiera con los clics */
	object-fit: contain; /* O cover, scale-down según cómo quieras que se ajuste la imagen */
	object-position: bottom center; /* Posiciona la imagen dentro de su contenedor */
  }