/* ---------- Explorador de carpetas (categorías) ---------- */

/* ---------- Íconos (dibujados 100% con CSS, ver inc/render.php) ---------- */
/*
 * Se usa mask-image con SVGs de la librería Lucide (lucide.dev,
 * licencia ISC) codificados como data-URI, y background-color para
 * pintarlos con currentColor (heredado del elemento contenedor).
 * Ventaja sobre un <svg> en el HTML: ningún plugin de caché,
 * minificación de HTML o sanitizador puede "romperlo", porque no hay
 * ninguna etiqueta especial en el DOM, solo un <span>.
 */
.st3-pf-icon {
	display: inline-block;
	width: 20px;
	height: 20px;
	background-color: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	flex-shrink: 0;
	vertical-align: middle;
}

.st3-pf-icon-close {
	width: 16px;
	height: 16px;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18'/%3E%3Cpath d='m6 6 12 12'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18'/%3E%3Cpath d='m6 6 12 12'/%3E%3C/svg%3E");
}

.st3-pf-icon-prev {
	width: 20px;
	height: 20px;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 18-6-6 6-6'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 18-6-6 6-6'/%3E%3C/svg%3E");
}

.st3-pf-icon-next,
.st3-pf-icon-chevron {
	width: 20px;
	height: 20px;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E");
}

.st3-pf-icon-chevron {
	width: 9px;
	height: 9px;
}

.st3-pf-icon-image {
	width: 28px;
	height: 28px;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='18' x='3' y='3' rx='2' ry='2'/%3E%3Ccircle cx='9' cy='9' r='2'/%3E%3Cpath d='m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='18' x='3' y='3' rx='2' ry='2'/%3E%3Ccircle cx='9' cy='9' r='2'/%3E%3Cpath d='m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21'/%3E%3C/svg%3E");
}

.st3-pf-icon-photo {
	width: 13px;
	height: 13px;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m22 11-1.296-1.296a2.4 2.4 0 0 0-3.408 0L11 16'/%3E%3Cpath d='M4 8a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2'/%3E%3Ccircle cx='13' cy='7' r='1' fill='black'/%3E%3Crect x='8' y='2' width='14' height='14' rx='2'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m22 11-1.296-1.296a2.4 2.4 0 0 0-3.408 0L11 16'/%3E%3Cpath d='M4 8a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2'/%3E%3Ccircle cx='13' cy='7' r='1' fill='black'/%3E%3Crect x='8' y='2' width='14' height='14' rx='2'/%3E%3C/svg%3E");
}

.st3-pf-icon-pin {
	width: 13px;
	height: 13px;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}

.st3-pf-icon-whatsapp {
	width: 17px;
	height: 17px;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719'/%3E%3C/svg%3E");
}

.st3-pf-icon-tag {
	width: 12px;
	height: 12px;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z'/%3E%3Ccircle cx='7.5' cy='7.5' r='.5' fill='black'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z'/%3E%3Ccircle cx='7.5' cy='7.5' r='.5' fill='black'/%3E%3C/svg%3E");
}

.st3-pf-icon-file {
	width: 15px;
	height: 15px;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4'/%3E%3Cpath d='M10 9H8'/%3E%3Cpath d='M16 13H8'/%3E%3Cpath d='M16 17H8'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4'/%3E%3Cpath d='M10 9H8'/%3E%3Cpath d='M16 13H8'/%3E%3Cpath d='M16 17H8'/%3E%3C/svg%3E");
}

.st3-portfolio-card-count .st3-pf-icon-photo {
	margin-right: 3px;
}

.st3-portfolio-viewer-prev .st3-pf-icon,
.st3-portfolio-viewer-next .st3-pf-icon {
	width: 20px;
	height: 20px;
}

.st3-pf-browser {
	--st3-pf-radius: 16px;
}

.st3-pf-crumbs {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 24px;
	font-size: 14.5px;
}

.st3-pf-crumb {
	border: none;
	background: none;
	padding: 4px 2px;
	cursor: pointer;
	color: #9a8f74;
	font-weight: 600;
	font-family: inherit;
}

.st3-pf-crumb.is-active {
	color: #1d2327;
	cursor: default;
}

.st3-pf-crumb:not(.is-active):hover {
	color: #b9922f;
}

.st3-pf-crumb-sep {
	display: inline-flex;
	color: #c9c0ac;
}

.st3-pf-panel {
	display: none;
}

.st3-pf-panel.is-active {
	display: block;
	animation: st3PfFadeIn .35s ease;
}

@keyframes st3PfFadeIn {
	from { opacity: 0; transform: translateY( 10px ); }
	to   { opacity: 1; transform: translateY( 0 ); }
}

.st3-pf-folders-grid {
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 170px, 1fr ) );
	gap: 32px 24px;
}

.st3-pf-folder {
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 10px;
	font-family: inherit;
}

.st3-pf-folder-shape {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	transition: transform .28s cubic-bezier( .2, .8, .2, 1 );
}

.st3-pf-folder:hover .st3-pf-folder-shape {
	transform: translateY( -6px ) scale( 1.03 );
}

.st3-pf-folder:focus-visible .st3-pf-folder-shape {
	outline: 2px solid #b9922f;
	outline-offset: 4px;
	border-radius: 10px;
}

.st3-pf-folder-tab {
	position: absolute;
	top: 2%;
	left: 6%;
	width: 38%;
	height: 16%;
	background: var( --folder-color, #b9922f );
	border-radius: 8px 8px 0 0;
	filter: brightness( .92 );
}

.st3-pf-folder-back {
	position: absolute;
	inset: 12% 0 0 0;
	background: var( --folder-color, #b9922f );
	filter: brightness( .85 );
	border-radius: 4px 14px 14px 14px;
	box-shadow: 0 14px 26px -8px rgba( 0, 0, 0, .35 );
}

.st3-pf-folder-photos {
	position: absolute;
	inset: 6% 6% 20% 6%;
}

.st3-pf-folder-photo {
	position: absolute;
	width: 56%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 6px;
	border: 3px solid #fff;
	box-shadow: 0 8px 16px rgba( 0, 0, 0, .22 );
	transition: transform .28s cubic-bezier( .2, .8, .2, 1 );
	display: block;
}

.st3-pf-folder-photo-0 { left: 2%;  top: 14%; z-index: 3; transform: rotate( -8deg ); }
.st3-pf-folder-photo-1 { left: 24%; top: 4%;  z-index: 2; transform: rotate( 3deg ); }
.st3-pf-folder-photo-2 { left: 46%; top: 16%; z-index: 1; transform: rotate( 11deg ); }

.st3-pf-folder:hover .st3-pf-folder-photo-0 { transform: rotate( -12deg ) translateY( -4px ); }
.st3-pf-folder:hover .st3-pf-folder-photo-1 { transform: rotate( 5deg ) translateY( -6px ); }
.st3-pf-folder:hover .st3-pf-folder-photo-2 { transform: rotate( 14deg ) translateY( -2px ); }

.st3-pf-folder-empty {
	position: absolute;
	inset: 14% 6% 20% 6%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	opacity: .55;
}

.st3-pf-folder-front {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 56%;
	background: var( --folder-color, #b9922f );
	border-radius: 4px 14px 14px 14px;
	box-shadow: 0 4px 10px rgba( 0, 0, 0, .12 ) inset;
	z-index: 4;
	overflow: hidden;
}

.st3-pf-folder-front::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient( 180deg, rgba( 255, 255, 255, .18 ), rgba( 255, 255, 255, 0 ) 45% );
}

.st3-pf-folder-label {
	font-weight: 700;
	font-size: 15px;
	color: #1d2327;
	margin-top: 2px;
}

.st3-pf-folder-count {
	font-size: 12.5px;
	color: #918a78;
}

/* ---------- Cuadrícula de proyectos (dentro de una carpeta) ---------- */

.st3-pf-projects-grid {
	display: grid;
	grid-template-columns: repeat( var( --st3-pf-cols, 3 ), 1fr );
	gap: 26px;
}

.st3-pf-projects-grid[hidden] {
	display: none;
}

/* ---------- Cuadrícula del shortcode de vista previa (sin carpetas) ---------- */

.st3-portfolio-grid {
	display: grid;
	grid-template-columns: repeat( var( --st3-pf-cols, 3 ), 1fr );
	gap: 22px;
}

/* ---------- Tarjeta de proyecto (compartida por ambas cuadrículas) ---------- */

.st3-portfolio-card {
	display: block;
	border-radius: var( --st3-pf-radius, 14px );
	overflow: hidden;
	background: #fff;
	border: 1px solid #eee;
	text-decoration: none;
	color: inherit;
	transition: transform .25s ease, box-shadow .25s ease;
	box-shadow: 0 1px 3px rgba( 0, 0, 0, .06 );
}

.st3-portfolio-card:hover {
	transform: translateY( -4px );
	box-shadow: 0 16px 32px rgba( 0, 0, 0, .13 );
}

.st3-portfolio-card.is-hidden {
	display: none;
}

.st3-portfolio-card-image {
	display: block;
	position: relative;
	aspect-ratio: 16 / 10;
	background: #eee;
	overflow: hidden;
}

.st3-portfolio-card-image img {
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	object-fit: cover !important;
	object-position: center !important;
	display: block !important;
	margin: 0 !important;
	border: none !important;
	transition: transform .5s ease;
}

.st3-portfolio-card:hover .st3-portfolio-card-image img {
	transform: scale( 1.06 );
}

.st3-portfolio-card-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	font-size: 32px;
	color: #bbb;
}

.st3-portfolio-card-doc-placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	height: 100%;
	color: #fff;
}

.st3-portfolio-card-doc-placeholder .st3-pf-icon-file {
	width: 34px;
	height: 34px;
	opacity: .95;
}

.st3-portfolio-card-doc-placeholder span {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .04em;
}

.st3-portfolio-card-doc-placeholder.st3-portfolio-doc-badge-pdf     { background: #c0392b; }
.st3-portfolio-card-doc-placeholder.st3-portfolio-doc-badge-word    { background: #2b579a; }
.st3-portfolio-card-doc-placeholder.st3-portfolio-doc-badge-excel   { background: #1e7145; }
.st3-portfolio-card-doc-placeholder.st3-portfolio-doc-badge-ppt     { background: #c0621f; }
.st3-portfolio-card-doc-placeholder.st3-portfolio-doc-badge-generic { background: #6b7280; }

.st3-portfolio-card-count {
	position: absolute;
	top: 12px;
	right: 12px;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	background: rgba( 20, 20, 20, .62 );
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	padding: 6px 10px;
	border-radius: 999px;
	backdrop-filter: blur( 3px );
}

.st3-portfolio-card-overlay {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 16px;
	background: linear-gradient( 0deg, rgba( 0, 0, 0, .58 ), rgba( 0, 0, 0, 0 ) 70% );
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	opacity: 0;
	transition: opacity .25s ease;
	pointer-events: none;
}

.st3-portfolio-card:hover .st3-portfolio-card-overlay {
	opacity: 1;
}

.st3-portfolio-card-body {
	display: block;
	padding: 15px 18px 17px;
}

.st3-portfolio-card-title {
	display: block;
	font-weight: 700;
	font-size: 16.5px;
	color: #1d2327;
}

.st3-portfolio-card-cat {
	display: block;
	margin-top: 4px;
	font-size: 12px;
	color: #b9922f;
	text-transform: uppercase;
	letter-spacing: .03em;
}

.st3-portfolio-card-desc {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
	margin-top: 8px;
	font-size: 13.5px;
	line-height: 1.5;
	color: #6b6a66;
}

.st3-portfolio-card-location {
	display: flex;
	align-items: center;
	gap: 5px;
	margin-top: 6px;
	font-size: 12.5px;
	color: #7d766a;
}

.st3-portfolio-card-location .st3-pf-icon {
	color: #b9922f;
}

@media ( max-width: 900px ) {
	.st3-portfolio-grid,
	.st3-pf-projects-grid {
		grid-template-columns: repeat( 2, 1fr );
	}
}

@media ( max-width: 640px ) {
	.st3-portfolio-grid,
	.st3-pf-projects-grid {
		grid-template-columns: 1fr;
	}
	.st3-pf-folders-grid {
		grid-template-columns: repeat( auto-fill, minmax( 140px, 1fr ) );
		gap: 26px 18px;
	}
}

.st3-portfolio-more {
	text-align: center;
	margin-top: 26px;
}

.st3-portfolio-btn {
	display: inline-block;
	background: #f2a900;
	color: #1a1a1a;
	font-weight: 600;
	text-decoration: none;
	padding: 12px 28px;
	border-radius: 6px;
	transition: background .2s ease, transform .2s ease;
}

.st3-portfolio-btn:hover {
	background: #d99500;
	color: #1a1a1a;
	transform: translateY( -1px );
}

/* ---------- Página individual del proyecto ---------- */

.st3-portfolio-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 14px;
}

.st3-portfolio-badge {
	background: #f4ede0;
	color: #8a6b1f;
	border-radius: 999px;
	padding: 4px 14px;
	font-size: 13px;
}

.st3-portfolio-badge-year {
	background: #eee;
	color: #555;
	font-weight: 600;
}

.st3-portfolio-service-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 14px;
}

.st3-portfolio-service-tag {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	background: #eef2f6;
	color: #3a4a5c;
	border: 1px solid #dbe3ea;
	border-radius: 6px;
	padding: 3px 11px;
	font-size: 12.5px;
	font-weight: 600;
}

.st3-portfolio-service-tag .st3-pf-icon {
	color: #7186a0;
}

.st3-portfolio-meta-list {
	list-style: none;
	margin: 0 0 16px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 14px;
	color: #444;
}

.st3-portfolio-meta-list li {
	display: flex;
	align-items: center;
	gap: 7px;
}

.st3-portfolio-meta-list .st3-pf-icon {
	color: #b9922f;
	flex-shrink: 0;
}

.st3-portfolio-description {
	margin-bottom: 20px;
	color: #444;
}

.st3-portfolio-btn-whatsapp {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	background: #25d366;
	color: #fff;
	margin-bottom: 28px;
}

.st3-portfolio-btn-whatsapp .st3-pf-icon {
	background-color: #fff;
}

.st3-portfolio-btn-whatsapp:hover {
	background: #1eb356;
	color: #fff;
}

.st3-portfolio-related {
	margin-top: 46px;
	padding-top: 32px;
	border-top: 1px solid #eee;
}

.st3-portfolio-related-title {
	margin: 0 0 20px;
	font-size: 20px;
}

.st3-portfolio-back {
	margin-top: 26px;
}

.st3-portfolio-back a {
	text-decoration: none;
	color: #b9922f;
	font-weight: 600;
}

/* ---------- Cuadrícula de fotos dentro de un proyecto ---------- */

.st3-portfolio-gallery {
	display: grid;
	grid-template-columns: repeat( 2, 1fr );
	gap: 16px;
	margin-top: 10px;
}

.st3-portfolio-thumb {
	padding: 0;
	border: none;
	background: #eee;
	cursor: zoom-in;
	border-radius: 12px;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	box-shadow: 0 1px 3px rgba( 0, 0, 0, .08 );
	transition: box-shadow .25s ease;
}

.st3-portfolio-thumb:hover {
	box-shadow: 0 10px 24px rgba( 0, 0, 0, .14 );
}

@media ( max-width: 560px ) {
	.st3-portfolio-gallery {
		grid-template-columns: 1fr;
	}
}

.st3-portfolio-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .25s ease;
}

.st3-portfolio-thumb:hover img {
	transform: scale( 1.06 );
}

/* ---------- Visor de proyecto (un solo paso: galería + navegación) ---------- */

body.st3-pf-no-scroll {
	overflow: hidden;
}

.st3-portfolio-viewer {
	position: fixed !important;
	inset: 0 !important;
	z-index: 100000 !important;
	display: none;
	margin: 0 !important;
	padding: 0 !important;
}

.st3-portfolio-viewer.is-open {
	display: block !important;
}

.st3-portfolio-viewer-backdrop {
	position: absolute;
	inset: 0;
	background: rgba( 10, 10, 12, .94 );
	backdrop-filter: blur( 6px );
	opacity: 0;
	transition: opacity .25s ease;
}

.st3-portfolio-viewer.is-open .st3-portfolio-viewer-backdrop {
	opacity: 1;
}

.st3-portfolio-viewer-dialog {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	max-width: 1100px;
	margin: 0 auto;
	padding: 24px 60px 20px;
	opacity: 0;
	transform: translateY( 14px );
	transition: opacity .3s ease, transform .3s ease;
}

.st3-portfolio-viewer.is-open .st3-portfolio-viewer-dialog {
	opacity: 1;
	transform: translateY( 0 );
}

.st3-portfolio-viewer-close {
	position: absolute;
	top: 18px;
	right: 18px;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: none;
	background: rgba( 255, 255, 255, .12 );
	color: #fff;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .2s ease;
	z-index: 2;
}

.st3-portfolio-viewer-close:hover {
	background: rgba( 255, 255, 255, .25 );
}

.st3-portfolio-viewer-header {
	color: #fff;
	margin: 0 50px 14px 0;
	flex-shrink: 0;
}

.st3-portfolio-viewer-title {
	margin: 0 0 8px;
	font-size: 24px;
	font-weight: 700;
	letter-spacing: -.01em;
}

.st3-portfolio-viewer-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 8px;
}

.st3-portfolio-viewer-badges .st3-portfolio-badge {
	background: rgba( 255, 255, 255, .14 );
	color: #f0e2c4;
}

.st3-portfolio-viewer-location {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0 0 8px;
	color: rgba( 255, 255, 255, .7 );
	font-size: 13.5px;
}

.st3-portfolio-viewer-location .st3-pf-icon {
	color: #d8b96a;
	flex-shrink: 0;
}

.st3-portfolio-viewer-description {
	margin: 0;
	color: rgba( 255, 255, 255, .78 );
	font-size: 14.5px;
	max-width: 640px;
}

.st3-portfolio-viewer-stage {
	position: relative;
	flex: 1;
	min-height: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
}

.st3-portfolio-viewer-image-wrap {
	position: relative;
	flex: 1;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
}

.st3-portfolio-viewer-loading {
	color: rgba( 255, 255, 255, .7 );
	font-size: 14px;
}

.st3-portfolio-viewer-img {
	max-width: 100%;
	max-height: 100%;
	border-radius: 6px;
	box-shadow: 0 10px 40px rgba( 0, 0, 0, .5 );
	display: none;
}

.st3-portfolio-viewer-prev,
.st3-portfolio-viewer-next {
	flex-shrink: 0;
	border: none;
	background: rgba( 255, 255, 255, .12 );
	color: #fff;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .2s ease;
}

.st3-portfolio-viewer-prev:hover,
.st3-portfolio-viewer-next:hover {
	background: rgba( 255, 255, 255, .25 );
}

.st3-portfolio-viewer-counter {
	text-align: center;
	color: rgba( 255, 255, 255, .65 );
	font-size: 13px;
	margin-top: 12px;
	flex-shrink: 0;
}

.st3-portfolio-viewer-thumbs {
	display: flex;
	gap: 8px;
	margin-top: 10px;
	padding-bottom: 4px;
	overflow-x: auto;
	flex-shrink: 0;
	scrollbar-width: thin;
}

.st3-portfolio-viewer-thumb {
	flex-shrink: 0;
	width: 64px;
	height: 64px;
	padding: 0;
	border: 2px solid transparent;
	border-radius: 6px;
	overflow: hidden;
	cursor: pointer;
	opacity: .55;
	transition: opacity .2s ease, border-color .2s ease;
}

.st3-portfolio-viewer-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.st3-portfolio-viewer-thumb:hover {
	opacity: .85;
}

.st3-portfolio-viewer-thumb.is-active {
	opacity: 1;
	border-color: #b9922f;
}

@media ( max-width: 700px ) {
	.st3-portfolio-viewer-dialog {
		padding: 60px 16px 16px;
	}
	.st3-portfolio-viewer-prev,
	.st3-portfolio-viewer-next {
		width: 38px;
		height: 38px;
	}
	.st3-portfolio-viewer-thumb {
		width: 52px;
		height: 52px;
	}
}

/* Cuando el usuario está logueado en WordPress, la barra de admin
   (32px de alto, 46px en móvil) queda fija arriba del todo. Le damos
   espacio extra al visor para que el título nunca quede tapado. */
body.admin-bar .st3-portfolio-viewer-dialog {
	padding-top: 64px;
}

@media ( max-width: 782px ) {
	body.admin-bar .st3-portfolio-viewer-dialog {
		padding-top: 78px;
	}
}

/* ---------- Certificaciones y documentos (lista en la página del proyecto) ---------- */

.st3-portfolio-documents {
	margin: 28px 0;
}

.st3-portfolio-documents-title {
	margin: 0 0 12px;
	font-size: 17px;
	font-weight: 700;
}

.st3-portfolio-documents-list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.st3-portfolio-doc-item {
	margin: 0;
}

.st3-portfolio-doc {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 14px 10px 10px;
	border: 1px solid rgba( 0, 0, 0, .12 );
	border-radius: 8px;
	background: #fff;
	cursor: pointer;
	font: inherit;
	text-align: left;
	transition: box-shadow .2s ease, border-color .2s ease;
}

.st3-portfolio-doc:hover {
	border-color: rgba( 0, 0, 0, .22 );
	box-shadow: 0 4px 14px rgba( 0, 0, 0, .1 );
}

.st3-portfolio-doc-badge {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 30px;
	border-radius: 4px;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .02em;
	color: #fff;
}

.st3-portfolio-doc-badge-pdf     { background: #c0392b; }
.st3-portfolio-doc-badge-word    { background: #2b579a; }
.st3-portfolio-doc-badge-excel   { background: #1e7145; }
.st3-portfolio-doc-badge-ppt     { background: #c0621f; }
.st3-portfolio-doc-badge-generic { background: #6b7280; }

.st3-portfolio-doc-label {
	font-size: 14px;
	font-weight: 600;
	max-width: 220px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.st3-portfolio-doc-view {
	display: flex;
	align-items: center;
	gap: 4px;
	margin-left: 4px;
	padding-left: 10px;
	border-left: 1px solid rgba( 0, 0, 0, .12 );
	font-size: 12.5px;
	color: rgba( 0, 0, 0, .55 );
}

/* ---------- Visor de documentos (modal con iframe de solo lectura) ---------- */

.st3-portfolio-doc-viewer {
	position: fixed !important;
	inset: 0 !important;
	z-index: 100000 !important;
	display: none;
	margin: 0 !important;
	padding: 0 !important;
}

.st3-portfolio-doc-viewer.is-open {
	display: block !important;
}

.st3-portfolio-doc-viewer-backdrop {
	position: absolute;
	inset: 0;
	background: rgba( 10, 10, 12, .92 );
	backdrop-filter: blur( 6px );
}

.st3-portfolio-doc-viewer-dialog {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	max-width: 900px;
	margin: 0 auto;
	padding: 24px 24px 16px;
}

.st3-portfolio-doc-viewer-close {
	position: absolute;
	top: 18px;
	right: 18px;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: none;
	background: rgba( 255, 255, 255, .12 );
	color: #fff;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .2s ease;
	z-index: 2;
}

.st3-portfolio-doc-viewer-close:hover {
	background: rgba( 255, 255, 255, .25 );
}

.st3-portfolio-doc-viewer-title {
	margin: 0 50px 14px 0;
	color: #fff;
	font-size: 20px;
	font-weight: 700;
	flex-shrink: 0;
}

.st3-portfolio-doc-viewer-frame-wrap {
	position: relative;
	flex: 1;
	min-height: 0;
	background: #fff;
	border-radius: 6px;
	overflow: hidden;
	box-shadow: 0 10px 40px rgba( 0, 0, 0, .5 );
}

.st3-portfolio-doc-viewer-frame {
	width: 100%;
	height: 100%;
	border: 0;
	display: none;
}

.st3-portfolio-doc-viewer-loading {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba( 0, 0, 0, .55 );
	font-size: 14px;
	background: #fff;
}

.st3-portfolio-doc-viewer-note {
	flex-shrink: 0;
	margin: 10px 0 0;
	text-align: center;
	color: rgba( 255, 255, 255, .55 );
	font-size: 12px;
}

@media ( max-width: 700px ) {
	.st3-portfolio-doc-viewer-dialog {
		padding: 60px 14px 14px;
	}
	.st3-portfolio-doc-label {
		max-width: 140px;
	}
}

body.admin-bar .st3-portfolio-doc-viewer-dialog {
	padding-top: 64px;
}

@media ( max-width: 782px ) {
	body.admin-bar .st3-portfolio-doc-viewer-dialog {
		padding-top: 78px;
	}
}
