/*
 Theme Name:   Woodmart Child
 Description:  Woodmart Child Theme
 Author:       XTemos
 Author URI:   http://xtemos.com
 Template:     woodmart
 Version:      1.0.0
 Text Domain:  woodmart
*/

/* ==========================================================================
   CVT Proyectos — Tarjetas de proyecto (carrusel "MÁS PROYECTOS")
   Acotado a .wd-project--cvt para no afectar otros listados.
   ========================================================================== */

/* Fuente Montserrat (la del sitio) en toda la tarjeta */
.wd-project--cvt,
.wd-project--cvt .portfolio-info,
.wd-project--cvt .wd-entities-title,
.wd-project--cvt .wd-entities-title a,
.wd-project--cvt .proj-cats-list li,
.wd-project--cvt .wd-project__subtitle,
.wd-project--cvt .wd-project__link {
	font-family: 'Montserrat', 'Kumbh Sans', sans-serif !important;
}

/* Altura igual: estirar los slides del carrusel y que la tarjeta llene la altura */
.wd-projects .wd-carousel-item,
.wd-portfolio-element .wd-carousel-item {
	height: auto;
	display: flex;
}

.wd-project--cvt {
	display: flex;
	width: 100%;
}

.wd-project--cvt .entry-header {
	background-color: #fff;
	border: 1px solid #ececec;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 2px 6px rgba(16, 24, 40, .05);
	transition: box-shadow .3s ease, transform .3s ease;
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
}

.wd-project--cvt:hover .entry-header {
	box-shadow: 0 12px 28px rgba(16, 24, 40, .12);
	transform: translateY(-4px);
}

/* Imagen superior uniforme */
.wd-project--cvt .entry-thumbnail {
	margin: 0;
	border-radius: 0;
	overflow: hidden;
}

.wd-project--cvt .portfolio-thumbnail {
	display: block;
	overflow: hidden;
}

.wd-project--cvt .portfolio-thumbnail img {
	display: block;
	width: 100%;
	height: 220px;
	object-fit: cover;
	opacity: 1 !important;
	visibility: visible !important;
	transition: transform .6s ease;
}

.wd-project--cvt:hover .portfolio-thumbnail img {
	transform: scale(1.05);
}

/* Quitar overlay oscuro del tema y botones de hover */
.wd-project--cvt .portfolio-thumbnail:after {
	display: none !important;
}

.wd-project--cvt .wd-portfolio-btns {
	display: none !important;
}

/* Bloque de información, alineado a la izquierda */
.wd-project--cvt .portfolio-info {
	background-color: #fff !important;
	text-align: left !important;
	padding: 16px 18px 18px !important;
	transform: none !important;
	opacity: 1 !important;
	position: static !important;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	flex: 1 1 auto;
}

/* Categoría con ícono */
.wd-project--cvt .wrap-meta {
	margin: 0;
}

.wd-project--cvt .proj-cats-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 14px;
}

.wd-project--cvt .proj-cats-list li {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin: 0;
	color: var(--wd-primary-color, rgb(32, 172, 179));
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	line-height: 1;
}

.wd-project--cvt .proj-cats-list li:before {
	display: none !important;
}

.wd-project--cvt .wd-project__cat-icon {
	display: inline-flex;
	color: var(--wd-primary-color, rgb(32, 172, 179));
}

.wd-project--cvt .wd-project__cat-icon svg {
	width: 16px;
	height: 16px;
	display: block;
}

/* Título en negro */
.wd-project--cvt .wrap-title {
	margin: 0;
}

.wd-project--cvt .wd-entities-title {
	margin: 0;
	font-size: 17px;
	line-height: 1.3;
	font-weight: 700;
}

.wd-project--cvt .wd-entities-title a {
	color: #1a1a1a !important;
	font-weight: 700;
	transition: color .2s ease;
	/* Límite de 2 líneas visibles con puntos suspensivos */
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: calc(2 * 1.3em);
}

.wd-project--cvt:hover .wd-entities-title a {
	color: var(--wd-primary-color, rgb(32, 172, 179)) !important;
}

/* Subtítulo gris */
.wd-project--cvt .wd-project__subtitle {
	margin: 0;
	color: #6b7280;
	font-size: 13.5px;
	line-height: 1.4;
	/* Límite de 2 líneas visibles */
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Enlace "Ver proyecto" */
.wd-project--cvt .wd-project__link {
	margin-top: auto;
	padding-top: 10px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--wd-primary-color, rgb(32, 172, 179));
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.wd-project--cvt .wd-project__link:hover {
	color: var(--wd-primary-color, rgb(32, 172, 179));
}

.wd-project--cvt .wd-project__arrow {
	transition: transform .25s ease;
}

.wd-project--cvt .wd-project__link:hover .wd-project__arrow {
	transform: translateX(4px);
}

/* ==========================================================================
   CVT Proyectos — Barra de filtros de proyectos (pills con icono por categoría)
   ========================================================================== */
.cvt-filter { margin-bottom: 30px; }

.cvt-filter .wd-nav-portfolio.wd-nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	border: 0 !important;
	padding: 0;
	margin: 0;
}

.cvt-filter .wd-nav-portfolio > li {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

.cvt-filter .wd-nav-portfolio > li:before,
.cvt-filter .wd-nav-portfolio > li:after,
.cvt-filter .wd-nav-portfolio > li > a:before,
.cvt-filter .wd-nav-portfolio > li > a:after {
	display: none !important;
}

.cvt-filter .wd-nav-portfolio > li > a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	border: 1px solid #e3e6ea;
	border-radius: 999px;
	background: #fff;
	color: #55606b !important;
	font-family: 'Montserrat', sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .05em;
	text-transform: uppercase;
	line-height: 1;
	transition: background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.cvt-filter .wd-nav-portfolio > li > a .wd-filter-icon,
.cvt-filter .wd-nav-portfolio > li > a .wd-filter-icon svg {
	display: inline-flex;
	width: 16px;
	height: 16px;
}

.cvt-filter .wd-nav-portfolio > li > a:hover {
	border-color: var(--wd-primary-color, rgb(32, 172, 179));
	color: var(--wd-primary-color, rgb(32, 172, 179)) !important;
}

.cvt-filter .wd-nav-portfolio > li.wd-active > a {
	background: var(--wd-primary-color, rgb(32, 172, 179));
	color: #fff !important;
	border-color: transparent;
	box-shadow: 0 6px 16px rgba(32, 172, 179, .28);
}

@media (max-width: 767px) {
	.cvt-filter .wd-nav-portfolio.wd-nav {
		flex-wrap: nowrap;
		overflow-x: auto;
		justify-content: flex-start;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 6px;
	}
	.cvt-filter .wd-nav-portfolio > li > a { white-space: nowrap; }
}

/* ==========================================================================
   CVT Proyectos — Forzar info siempre visible (independiente de hover/text-shown)
   Necesario en archivos/páginas donde el estilo del widget es "hover".
   ========================================================================== */
.wd-project--cvt .portfolio-info,
.wd-project--cvt .wrap-meta,
.wd-project--cvt .proj-cats-list,
.wd-project--cvt .proj-cats-list li,
.wd-project--cvt .wrap-title,
.wd-project--cvt .wd-entities-title,
.wd-project--cvt .wd-entities-title a,
.wd-project--cvt .wd-project__subtitle,
.wd-project--cvt .wd-project__link {
	opacity: 1 !important;
	transform: none !important;
	visibility: visible !important;
}

/* En estilo hover/inverse la info va absoluta sobre la imagen: forzarla estática debajo */
.wd-project--cvt.portfolio-hover .entry-header,
.wd-project--cvt.portfolio-hover-inverse .entry-header {
	background-color: #fff;
}
.wd-project--cvt.portfolio-hover .portfolio-info,
.wd-project--cvt.portfolio-hover-inverse .portfolio-info {
	position: static !important;
	inset: auto !important;
}

/* ==========================================================================
   CVT Proyectos — Tarjetas del grid con MISMA ALTURA (todo alineado)
   ========================================================================== */
.wd-project--cvt .portfolio-info {
	min-height: 172px;               /* reserva de altura uniforme del contenido */
	justify-content: flex-start;
}
/* categoría en una sola línea para no descuadrar */
.wd-project--cvt .proj-cats-list {
	flex-wrap: nowrap;
	overflow: hidden;
	max-width: 100%;
}
.wd-project--cvt .proj-cats-list li { white-space: nowrap; }
/* subtítulo reserva 2 líneas aunque tenga una, para alinear el enlace */
.wd-project--cvt .wd-project__subtitle { min-height: calc(2 * 1.4em); }

/* ==========================================================================
   CVT Proyectos — Bento "Proyectos destacados": animación + hover
   ========================================================================== */
.elementor-element-d6716ce,
.elementor-element-5e8e0d0,
.elementor-element-17ce607 {
	transition: transform .45s cubic-bezier(.22,.61,.36,1), box-shadow .45s ease, filter .45s ease;
	will-change: transform;
	overflow: hidden;
}
.elementor-element-d6716ce:hover,
.elementor-element-5e8e0d0:hover,
.elementor-element-17ce607:hover {
	transform: translateY(-6px);
	box-shadow: 0 22px 48px rgba(0, 0, 0, .32);
	filter: saturate(1.06);
}
/* la flecha del botón "VER PROYECTO" se desplaza al hover de la tarjeta */
.elementor-element-d6716ce:hover .elementor-button span,
.elementor-element-5e8e0d0:hover .elementor-button span,
.elementor-element-17ce607:hover .elementor-button span {
	letter-spacing: .04em;
}

/* ===== CVT Proyectos — Ícono por categoría en el bento destacado ===== */
.elementor-element-f4fb6c6 .elementor-button-text{display:inline-flex;align-items:center;gap:7px;}
.elementor-element-f4fb6c6 .elementor-button-text::before{content:'';width:16px;height:16px;flex:0 0 16px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2716%27%20height%3D%2716%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23ffffff%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%2021h18%27%2F%3E%3Cpath%20d%3D%27M6%2021V7l6-4%206%204v14%27%2F%3E%3Cpath%20d%3D%27M10%209h.01M14%209h.01M10%2013h.01M14%2013h.01M10%2017h.01M14%2017h.01%27%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;}
.elementor-element-4af99f3 .elementor-button-text{display:inline-flex;align-items:center;gap:7px;}
.elementor-element-4af99f3 .elementor-button-text::before{content:'';width:16px;height:16px;flex:0 0 16px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2716%27%20height%3D%2716%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23ffffff%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%2021h18%27%2F%3E%3Cpath%20d%3D%27M5%2021V9M10%2021V9M14%2021V9M19%2021V9%27%2F%3E%3Cpath%20d%3D%27M4%209h16%27%2F%3E%3Cpath%20d%3D%27M12%203%204%207v2h16V7z%27%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;}
.elementor-element-9d69d69 .elementor-button-text{display:inline-flex;align-items:center;gap:7px;}
.elementor-element-9d69d69 .elementor-button-text::before{content:'';width:16px;height:16px;flex:0 0 16px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2716%27%20height%3D%2716%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23ffffff%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h8M8%209h2%27%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;}

/* ==========================================================================
   CVT PROYECTOS — Blog hub "Visión Técnica" (Fase 4)
   ========================================================================== */
.cvt-hub { font-family: 'Montserrat', 'Kumbh Sans', sans-serif; color: #1a1a1a; }
.cvt-hub *, .cvt-hub *::before, .cvt-hub *::after { box-sizing: border-box; }

/* --- Barra de categorías --- */
.gh-catbar { text-align: center; margin: 0 0 40px; }
.gh-catbar__title {
	font-size: 15px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
	color: #2a3340; margin: 0 0 20px;
}
.gh-catbar__list {
	list-style: none; margin: 0; padding: 0;
	display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px 4px;
}
.gh-catbar__list > li { margin: 0; }
.gh-catbar__list > li + li { border-left: 1px solid #e3e6ea; }
.gh-catbar__list a {
	display: inline-flex; align-items: center; gap: 8px; padding: 8px 18px;
	color: #4a5563; font-size: 13px; font-weight: 600; transition: color .2s ease;
}
.gh-catbar__list a:hover { color: var(--wd-primary-color, rgb(32,172,179)); }
.gh-catbar__icon { display: inline-flex; color: var(--wd-primary-color, rgb(32,172,179)); }
.gh-catbar__icon svg { width: 18px; height: 18px; display: block; }

/* --- Encabezado de sección --- */
.gh-section { margin: 0 0 48px; }
.gh-section__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 22px; }
.gh-section__title {
	position: relative; margin: 0; font-size: 22px; font-weight: 700; color: #1a2230;
	display: inline-flex; align-items: center; gap: 14px;
}
.gh-section__title::after { content: ''; width: 40px; height: 2px; background: var(--wd-primary-color, rgb(32,172,179)); }
.gh-section__all {
	font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
	color: var(--wd-primary-color, rgb(32,172,179)); white-space: nowrap;
}
.gh-section__all:hover { color: var(--wd-primary-color, rgb(32,172,179)); text-decoration: underline; }

/* --- Investigaciones: destacada + grid --- */
.gh-research { display: grid; grid-template-columns: 380px 1fr; gap: 24px; align-items: stretch; }
.gh-research__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }

/* --- Tarjeta regular --- */
.gh-card {
	display: flex; flex-direction: column; background: #fff; border: 1px solid #ececec;
	border-radius: 12px; overflow: hidden; height: 100%;
	box-shadow: 0 2px 6px rgba(16,24,40,.05); transition: box-shadow .3s ease, transform .3s ease;
}
.gh-card:hover { box-shadow: 0 14px 30px rgba(16,24,40,.12); transform: translateY(-4px); }
.gh-card__thumb { display: block; overflow: hidden; }
.gh-card__thumb img { display: block; width: 100%; height: 170px; object-fit: cover; transition: transform .6s ease; }
.gh-card:hover .gh-card__thumb img { transform: scale(1.05); }
.gh-card__body { display: flex; flex-direction: column; gap: 8px; padding: 16px 18px 18px; flex: 1 1 auto; }
.gh-card__label {
	font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
	color: var(--wd-primary-color, rgb(32,172,179));
}
.gh-card__title { margin: 0; font-size: 16px; line-height: 1.32; font-weight: 700; }
.gh-card__title a {
	color: #1a2230 !important; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
	overflow: hidden; transition: color .2s ease;
}
.gh-card:hover .gh-card__title a { color: var(--wd-primary-color, rgb(32,172,179)) !important; }
.gh-card__excerpt {
	margin: 0; font-size: 13px; line-height: 1.5; color: #6b7280;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.gh-card__meta { margin-top: auto; padding-top: 8px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.gh-card__more { font-size: 12px; font-weight: 700; color: var(--wd-primary-color, rgb(32,172,179)); white-space: nowrap; }
.gh-card__more:hover { color: var(--wd-primary-color, rgb(32,172,179)); }
.gh-card__date { font-size: 12px; color: #8a929c; }
.gh-card__time { font-size: 12px; color: #8a929c; white-space: nowrap; display: inline-flex; align-items: center; gap: 5px; }
.gh-card__time::before {
	content: ''; width: 13px; height: 13px; flex: 0 0 13px; background: no-repeat center/contain;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%238a929c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}

/* --- Tarjeta destacada (dark) --- */
.gh-featured {
	display: flex; flex-direction: column; height: 100%; background: #0f141b; color: #fff;
	border-radius: 14px; overflow: hidden; box-shadow: 0 10px 30px rgba(16,24,40,.18);
	transition: transform .35s ease, box-shadow .35s ease;
}
.gh-featured:hover { transform: translateY(-4px); box-shadow: 0 20px 44px rgba(16,24,40,.28); }
.gh-featured__thumb { position: relative; display: block; overflow: hidden; }
.gh-featured__thumb img { display: block; width: 100%; height: 220px; object-fit: cover; }
.gh-featured__badge {
	position: absolute; top: 16px; left: 16px; background: var(--wd-primary-color, rgb(32,172,179));
	color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
	padding: 6px 12px; border-radius: 6px;
}
.gh-featured__body { display: flex; flex-direction: column; gap: 12px; padding: 24px; flex: 1 1 auto; }
.gh-featured .gh-card__label { color: #6fd0d8; }
.gh-featured__title { margin: 0; font-size: 24px; line-height: 1.25; font-weight: 700; }
.gh-featured__title a { color: #fff !important; }
.gh-featured__title a:hover { color: #6fd0d8 !important; }
.gh-featured__excerpt { margin: 0; font-size: 14px; line-height: 1.55; color: #b9c2cc; }
.gh-featured .gh-card__meta { margin-top: auto; padding-top: 12px; }
.gh-featured .gh-card__more { color: #6fd0d8; font-size: 13px; }
.gh-featured .gh-card__time { color: #9aa4af; }
.gh-featured .gh-card__time::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%239aa4af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}

/* --- Grid de artículos técnicos --- */
.gh-grid { display: grid; gap: 22px; }
.gh-grid--articles { grid-template-columns: repeat(6, 1fr); }
.gh-grid--articles .gh-card__thumb img { height: 130px; }
.gh-grid--articles .gh-card__title { font-size: 14px; }

/* --- Responsive --- */
@media (max-width: 1200px) {
	.gh-grid--articles { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 1024px) {
	.gh-research { grid-template-columns: 1fr; }
	.gh-research__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 767px) {
	.gh-research__grid, .gh-grid--articles { grid-template-columns: repeat(2, 1fr); }
	.gh-section__head { flex-direction: column; align-items: flex-start; gap: 8px; }
	.gh-catbar__list { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; }
	.gh-catbar__list > li + li { border-left: 0; }
}
@media (max-width: 480px) {
	.gh-research__grid, .gh-grid--articles { grid-template-columns: 1fr; }
}

/* Hub: contención y ancho */
.cvt-hub { max-width: 1200px; margin: 0 auto; padding: 10px 15px 30px; }

/* Fix: color de la barra de categorías (el tema forzaba enlaces en blanco) */
.cvt-hub .gh-catbar__list a,
.cvt-hub .gh-catbar__name { color: #4a5563 !important; }
.cvt-hub .gh-catbar__list a:hover,
.cvt-hub .gh-catbar__list a:hover .gh-catbar__name { color: var(--wd-primary-color, rgb(32,172,179)) !important; }
.cvt-hub .gh-section__all { color: var(--wd-primary-color, rgb(32,172,179)) !important; }

/* --- Archivo de blog: tarjeta estilo CVT Proyectos --- */
.wd-post.gh-archive-item {
	display: flex; flex-direction: column; background: #fff; border: 1px solid #ececec;
	border-radius: 12px; overflow: hidden; box-shadow: 0 2px 6px rgba(16,24,40,.05);
	transition: box-shadow .3s ease, transform .3s ease; padding: 0;
	font-family: 'Montserrat','Kumbh Sans',sans-serif;
}
.wd-post.gh-archive-item:hover { box-shadow: 0 14px 30px rgba(16,24,40,.12); transform: translateY(-4px); }
.wd-post.gh-archive-item .gh-card__title a { -webkit-line-clamp: 2; color: #1a2230 !important; }
.wd-post.gh-archive-item .gh-card__thumb img { height: 190px; }

/* Fix: color de "Leer más" (el tema forzaba enlaces en blanco) */
.gh-card .gh-card__more,
.gh-archive-item .gh-card__more { color: var(--wd-primary-color, rgb(32,172,179)) !important; }
.gh-featured .gh-card__more { color: #6fd0d8 !important; }
.gh-card__title a { color: #1a2230 !important; }
.gh-featured__title a { color: #fff !important; }

/* ==========================================================================
   Ajuste tarjetas blog (parecer más a la referencia): imagen más alta,
   más descripción (3 líneas) y altura natural sin estirarse (sin hueco).
   ========================================================================== */
.gh-card__thumb img { height: 200px; }
.gh-grid--articles .gh-card__thumb img { height: 160px; }
.gh-featured__thumb img { height: 250px; }
.gh-card__excerpt { -webkit-line-clamp: 3; line-clamp: 3; }
/* Que las tarjetas tomen su altura natural (no se estiran a la destacada) */
.gh-research, .gh-research__grid, .gh-grid--articles { align-items: start; }
.gh-research__grid .gh-card, .gh-grid--articles .gh-card { height: auto; }
/* El meta va justo después del texto, con una separación pequeña */
.gh-card .gh-card__meta { margin-top: 6px; }

/* ==========================================================================
   CVT PROYECTOS — Página de post individual (blog)
   ========================================================================== */
/* 1) Imagen destacada ANTES del título */
.single-post .wd-single-post-header { display: flex; flex-direction: column; }
.single-post .wd-single-post-header .wd-post-image { order: -1; margin: 0 0 26px; border-radius: 14px; overflow: hidden; }
.single-post .wd-single-post-header .wd-post-image img { display: block; width: 100%; border-radius: 14px; }

/* 2) Sidebar moderno */
.single-post .wd-sidebar { font-family: 'Montserrat','Kumbh Sans',sans-serif; }
.single-post .wd-sidebar .widget {
	background: #fff; border: 1px solid #eef0f2; border-radius: 14px;
	padding: 22px 22px 24px; margin-bottom: 22px; box-shadow: 0 2px 12px rgba(16,24,40,.05);
}
.single-post .wd-sidebar .widget .widget-title {
	margin: 0 0 16px; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
	color: #1a2230; padding-bottom: 12px; border-bottom: 1px solid #eef0f2; position: relative;
}
.single-post .wd-sidebar .widget .widget-title::after {
	content: ''; position: absolute; left: 0; bottom: -1px; width: 38px; height: 2px;
	background: var(--wd-primary-color, rgb(32,172,179));
}
/* Fix enlaces blancos del tema */
.single-post .wd-sidebar a { color: #4a5563 !important; }
.single-post .wd-sidebar a:hover { color: var(--wd-primary-color, rgb(32,172,179)) !important; }

/* Buscador */
.single-post .wd-sidebar .searchform { position: relative; }
.single-post .wd-sidebar .searchform input.s,
.single-post .wd-sidebar .searchform input[type="text"] {
	width: 100%; border: 1px solid #e3e6ea; border-radius: 10px; padding: 12px 46px 12px 14px;
	font-size: 14px; background: #f8fafb; color: #1a2230;
}
.single-post .wd-sidebar .searchform button,
.single-post .wd-sidebar .searchform .searchsubmit,
.single-post .wd-sidebar .searchform [type="submit"] {
	position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
	background: transparent; border: 0; color: var(--wd-primary-color, rgb(32,172,179));
}

/* Categorías (filtros) */
.single-post .wd-sidebar .widget_categories ul { list-style: none; margin: 0; padding: 0; }
.single-post .wd-sidebar .widget_categories li { margin: 0; padding: 0; }
.single-post .wd-sidebar .widget_categories li + li { border-top: 1px solid #f1f3f5; }
.single-post .wd-sidebar .widget_categories li a {
	display: block; padding: 10px 12px; border-radius: 8px; font-size: 14px; font-weight: 600;
	transition: background .2s ease, color .2s ease;
}
.single-post .wd-sidebar .widget_categories li a:hover {
	background: rgba(32,172,179,.09); color: var(--wd-primary-color, rgb(32,172,179)) !important;
}

/* Publicaciones recientes */
.single-post .wd-sidebar .woodmart-recent-posts-list { list-style: none; margin: 0; padding: 0; }
.single-post .wd-sidebar .woodmart-recent-posts-list li { display: flex; gap: 12px; padding: 13px 0; border-top: 1px solid #f1f3f5; }
.single-post .wd-sidebar .woodmart-recent-posts-list li:first-child { border-top: 0; padding-top: 0; }
.single-post .wd-sidebar .recent-posts-thumbnail { flex: 0 0 64px; display: block; }
.single-post .wd-sidebar .recent-posts-thumbnail img { width: 64px; height: 56px; object-fit: cover; border-radius: 8px; display: block; }
.single-post .wd-sidebar .recent-posts-info .wd-entities-title a {
	font-size: 13px; font-weight: 600; line-height: 1.35; color: #1a2230 !important;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.single-post .wd-sidebar .recent-posts-info .wd-post-date, .single-post .wd-sidebar .recent-posts-info time { font-size: 11px; color: #8a929c; }

/* Ocultar widget "Recent Posts" duplicado (en inglés) */
#woodmart-recent-posts-19 { display: none !important; }

/* 3) Artículos relacionados (tarjetas modernas) */
.gh-related { max-width: none; margin: 44px 0 10px; padding: 0; }
.gh-related__grid { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 991px) { .gh-related__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .gh-related__grid { grid-template-columns: 1fr; } }

/* Imagen destacada del post: alto máximo equilibrado */
.single-post .wd-single-post-header .wd-post-image img { max-height: 460px; object-fit: cover; }

/* ==========================================================================
   FIX Investigaciones: las 3 tarjetas llenan la altura de la destacada y la
   IMAGEN crece para ocupar el espacio (sin hueco en blanco).
   ========================================================================== */
.gh-research { align-items: stretch !important; }
.gh-research__grid { align-items: stretch !important; }
.gh-research__grid .gh-card { height: 100%; }
.gh-research__grid .gh-card__thumb { flex: 1 1 auto; min-height: 190px; overflow: hidden; display: block; }
.gh-research__grid .gh-card__thumb img { width: 100%; height: 100%; min-height: 190px; object-fit: cover; }
.gh-research__grid .gh-card__body { flex: 0 0 auto; }

/* ==========================================================================
   Post individual: título a la izquierda + imagen cover grande + tiempo lectura
   ========================================================================== */
.single-post .wd-single-post-header .wd-post-cat,
.single-post .wd-single-post-header .wd-entities-title,
.single-post .wd-single-post-header .wd-post-meta { text-align: left !important; }
.single-post .wd-single-post-header .wd-post-meta { justify-content: flex-start !important; }

/* Imagen del post: cover grande */
.single-post .wd-single-post-header .wd-post-image { border-radius: 14px; overflow: hidden; }
.single-post .wd-single-post-header .wd-post-image img {
	width: 100%; height: 520px; max-height: none; object-fit: cover; border-radius: 14px;
}

/* Badge de tiempo de lectura */
.single-post .gh-single-readtime {
	display: inline-flex; align-items: center; gap: 8px; margin: 0 0 26px;
	padding: 9px 18px; border-radius: 999px; background: rgba(32,172,179,.10);
	color: var(--wd-primary-color, rgb(32,172,179)); font-family: 'Montserrat','Kumbh Sans',sans-serif;
	font-size: 13px; font-weight: 700; letter-spacing: .03em;
}
.single-post .gh-single-readtime__icon {
	width: 16px; height: 16px; flex: 0 0 16px; background: no-repeat center/contain;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2320acb3' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}

/* ==========================================================================
   CVT PROYECTOS — Cabecera de archivo de blog (categoría) con buen diseño
   ========================================================================== */
.gh-archive-header { max-width: 1200px; margin: 6px auto 34px; padding: 0 15px; }
.gh-archive-head { text-align: center; margin: 0 0 26px; }
.gh-archive-eyebrow {
	display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
	color: var(--wd-primary-color, rgb(32,172,179)); margin-bottom: 10px;
}
.gh-archive-title { margin: 0 0 12px; font-size: 34px; font-weight: 700; color: #1a2230; line-height: 1.15; }
.gh-archive-desc { max-width: 640px; margin: 0 auto; color: #6b7280; font-size: 15px; line-height: 1.6; }

/* Estado activo en la barra de categorías (archivo) */
.cvt-hub .gh-catbar__list li.is-active a,
.cvt-hub .gh-catbar__list li.is-active .gh-catbar__name { color: var(--wd-primary-color, rgb(32,172,179)) !important; }
.cvt-hub .gh-catbar__list li.is-active .gh-catbar__name { font-weight: 700; }
.cvt-hub .gh-catbar__list li.is-active a { position: relative; }
.cvt-hub .gh-catbar__list li.is-active a::after {
	content: ''; position: absolute; left: 18px; right: 18px; bottom: -6px; height: 2px;
	background: var(--wd-primary-color, rgb(32,172,179)); border-radius: 2px;
}

/* Grid del archivo de blog con buen espaciado */
.archive .wd-posts.wd-blog-holder, .blog .wd-posts.wd-blog-holder { gap: 26px; }

/* ==========================================================================
   FASE 7 — Ajustes finales blog
   ========================================================================== */
/* 1) Artículos Técnicos: las tarjetas se estiran para llenar el ancho */
.gh-grid--articles { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
@media (max-width: 1200px) { .gh-grid--articles { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); } }

/* 2) Post: HERO full-width (imagen destacada arriba, a todo el ancho del grid) */
.single-post .wd-content-layout > .gh-post-hero {
	grid-column: 1 / -1;
	margin: 0 0 34px;
	border-radius: 16px;
	overflow: hidden;
	line-height: 0;
}
.single-post .gh-post-hero__img {
	display: block;
	width: 100%;
	height: 460px;
	object-fit: cover;
	border-radius: 16px;
}
@media (max-width: 767px) {
	.single-post .gh-post-hero__img { height: 300px; }
}
/* Ocultar la imagen duplicada dentro de la cabecera (el hero la reemplaza) */
.single-post .wd-single-post-header .wd-post-image { display: none !important; }

/* 3) Cabecera del post alineada a la izquierda (categoría, título, autor) */
.single-post .wd-single-post-header { align-items: flex-start !important; }
.single-post .wd-single-post-header .wd-post-cat,
.single-post .wd-single-post-header .wd-entities-title,
.single-post .wd-single-post-header .wd-post-meta { text-align: left !important; }
.single-post .wd-single-post-header .wd-post-meta {
	justify-content: flex-start !important;
	width: 100%;
}

/* Artículos Técnicos: flex que estira las tarjetas para llenar la fila (sin huecos) */
.gh-grid--articles { display: flex; flex-wrap: wrap; gap: 22px; grid-template-columns: none; }
.gh-grid--articles > .gh-card { flex: 1 1 200px; max-width: 340px; height: auto; }
@media (max-width: 600px) { .gh-grid--articles > .gh-card { max-width: none; flex-basis: 100%; } }

/* ==========================================================================
   CVT PROYECTOS — Proyecto individual: hero + título + barra lateral
   ========================================================================== */
.gh-project-page { font-family: 'Montserrat','Kumbh Sans',sans-serif; }
.gh-project-page .gh-post-hero { margin: 0 0 34px; border-radius: 16px; overflow: hidden; line-height: 0; }
.gh-project-page .gh-post-hero__img { width: 100%; height: 460px; object-fit: cover; display: block; border-radius: 16px; }
@media (max-width: 767px) { .gh-project-page .gh-post-hero__img { height: 280px; } }

/* Grid de 2 columnas */
.gh-project-grid { display: grid; grid-template-columns: 1fr 330px; gap: 42px; align-items: start; }
@media (max-width: 991px) { .gh-project-grid { grid-template-columns: 1fr; gap: 30px; } }

.gh-project-cats { margin: 0 0 14px; }
.gh-project-title { font-size: 30px; line-height: 1.2; font-weight: 700; color: #1a2230; margin: 0 0 22px; text-align: left; }
.gh-project-main .wd-single-project { font-size: 15px; line-height: 1.75; color: #3a4250; }

/* Barra lateral (widgets estilo post) */
.gh-project-sidebar .gh-swidget {
	background: #fff; border: 1px solid #eef0f2; border-radius: 14px; padding: 22px;
	margin-bottom: 22px; box-shadow: 0 2px 12px rgba(16,24,40,.05);
}
.gh-project-sidebar .gh-swidget__title {
	margin: 0 0 16px; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
	color: #1a2230; padding-bottom: 12px; border-bottom: 1px solid #eef0f2; position: relative;
}
.gh-project-sidebar .gh-swidget__title::after {
	content: ''; position: absolute; left: 0; bottom: -1px; width: 38px; height: 2px;
	background: var(--wd-primary-color, rgb(32,172,179));
}
/* Categorías */
.gh-swidget__cats { list-style: none; margin: 0; padding: 0; }
.gh-swidget__cats li + li { border-top: 1px solid #f1f3f5; }
.gh-swidget__cats a {
	display: flex; align-items: center; justify-content: space-between; gap: 10px;
	padding: 10px 12px; border-radius: 8px; font-size: 14px; font-weight: 600;
	color: #4a5563 !important; transition: background .2s ease, color .2s ease;
}
.gh-swidget__cats a:hover { background: rgba(32,172,179,.09); color: var(--wd-primary-color, rgb(32,172,179)) !important; }
.gh-swidget__cats em { font-style: normal; font-size: 12px; color: #9aa4af; background: #f3f5f7; border-radius: 20px; padding: 2px 9px; }
/* Otros proyectos */
.gh-swidget__posts { list-style: none; margin: 0; padding: 0; }
.gh-swidget__posts li { display: flex; gap: 12px; padding: 13px 0; border-top: 1px solid #f1f3f5; align-items: center; }
.gh-swidget__posts li:first-child { border-top: 0; padding-top: 0; }
.gh-swidget__thumb { flex: 0 0 64px; display: block; }
.gh-swidget__thumb img { width: 64px; height: 56px; object-fit: cover; border-radius: 8px; display: block; }
.gh-swidget__ptitle {
	font-size: 13px; font-weight: 600; line-height: 1.35; color: #1a2230 !important;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.gh-swidget__ptitle:hover { color: var(--wd-primary-color, rgb(32,172,179)) !important; }
/* CTA */
.gh-swidget--cta { background: #0f141b; color: #fff; border-color: transparent; }
.gh-swidget__cta-title { margin: 0 0 8px; font-size: 17px; font-weight: 700; color: #fff; }
.gh-swidget--cta p { margin: 0 0 16px; font-size: 13px; line-height: 1.5; color: #b9c2cc; }
.gh-swidget__cta-btn {
	display: inline-flex; align-items: center; justify-content: center; width: 100%;
	padding: 12px 18px; border-radius: 10px; background: var(--wd-primary-color, rgb(32,172,179));
	color: #fff !important; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
	transition: filter .2s ease;
}
.gh-swidget__cta-btn:hover { filter: brightness(1.08); color: #fff !important; }

/* ==========================================================================
   CVT PROYECTOS — Hero con TEXTO sobre la imagen (post y proyecto)
   ========================================================================== */
.gh-hero { position: relative; border-radius: 18px; overflow: hidden; margin: 0 0 36px; }
.single-post .wd-content-layout > .gh-hero { grid-column: 1 / -1; }
.gh-hero__img { display: block; width: 100%; height: 540px; object-fit: cover; }
.gh-hero__scrim { position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(to top, rgba(0,0,0,.86) 0%, rgba(0,0,0,.5) 40%, rgba(0,0,0,.08) 74%); }
.gh-hero__overlay { position: absolute; left: 0; bottom: 0; z-index: 2; padding: 50px; max-width: 900px; }
.gh-hero__eyebrow {
	display: block; color: #fff; font-family: 'Montserrat','Kumbh Sans',sans-serif;
	font-size: 16px; font-weight: 600; margin-bottom: 8px; opacity: .95;
}
.gh-hero__title {
	color: #fff !important; font-family: 'Montserrat','Kumbh Sans',sans-serif;
	font-size: clamp(30px, 4.2vw, 52px); line-height: 1.07; font-weight: 700; margin: 0 0 16px;
}
.gh-hero__title a { color: #fff !important; }
.gh-hero__meta { color: rgba(255,255,255,.9); font-family: 'Montserrat','Kumbh Sans',sans-serif; font-size: 14px; }
.gh-hero__meta strong { color: #fff; font-weight: 700; }
.gh-hero__nav { position: absolute; right: 40px; bottom: 40px; z-index: 3; display: flex; gap: 12px; }
.gh-hero__arrow {
	width: 48px; height: 48px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
	background: rgba(255,255,255,.18); color: #fff !important; border: 1px solid rgba(255,255,255,.35);
	-webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); transition: background .2s ease;
}
.gh-hero__arrow:hover { background: rgba(255,255,255,.4); color: #fff !important; }
@media (max-width: 767px) {
	.gh-hero__img { height: 420px; }
	.gh-hero__overlay { padding: 26px; max-width: 100%; }
	.gh-hero__nav { right: 18px; bottom: 18px; }
	.gh-hero__arrow { width: 42px; height: 42px; }
}

/* Post: el título/categoría/meta ahora van en el hero → ocultar la cabecera vieja */
.single-post .wd-single-post-header { display: none !important; }

/* ==========================================================================
   Hero: título más pequeño + migas reubicadas (ocultar barra gris superior)
   ========================================================================== */
.gh-hero__title { font-size: clamp(23px, 2.7vw, 38px); }

/* Ocultar la barra gris de título/migas de pan arriba (post y proyecto) */
.single-post .wd-page-title,
.single-portfolio .wd-page-title { display: none !important; }

/* Migas de pan reubicadas debajo del hero */
.gh-breadcrumbs-wrap { margin: -8px 0 24px; }
.single-post .wd-content-layout > .gh-breadcrumbs-wrap { grid-column: 1 / -1; }
.gh-breadcrumbs-wrap .wd-breadcrumbs { font-size: 13px; color: #9aa4af; padding: 0; }
.gh-breadcrumbs-wrap .wd-breadcrumbs a { color: #6b7280 !important; }
.gh-breadcrumbs-wrap .wd-breadcrumbs a:hover { color: var(--wd-primary-color, rgb(32,172,179)) !important; }

/* ==========================================================================
   Hero v2: migas + tiempo de lectura DENTRO del hero + animación ken-burns
   ========================================================================== */
.gh-hero { height: 540px; }
.gh-hero__media { position: absolute; inset: 0; overflow: hidden; z-index: 0; }
.gh-hero__media .gh-hero__img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	animation: ghKenBurns 22s ease-in-out infinite alternate; will-change: transform;
}
@keyframes ghKenBurns { from { transform: scale(1.02); } to { transform: scale(1.12); } }
@media (prefers-reduced-motion: reduce) { .gh-hero__media .gh-hero__img { animation: none; } }
@media (max-width: 767px) { .gh-hero { height: 430px; } }

/* Entrada suave del texto del hero */
.gh-hero__overlay { animation: ghHeroUp .8s .12s ease both; }
@keyframes ghHeroUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

/* Migas de pan DENTRO del hero (arriba) */
.gh-hero__crumbs { position: absolute; top: 24px; left: 50px; right: 90px; z-index: 3; }
.gh-hero__crumbs .wd-breadcrumbs { padding: 0; font-size: 13px; margin: 0; }
.gh-hero__crumbs .wd-breadcrumbs,
.gh-hero__crumbs .wd-breadcrumbs * { color: rgba(255,255,255,.92) !important; }
.gh-hero__crumbs .wd-breadcrumbs a:hover { color: #fff !important; text-decoration: underline; }
@media (max-width: 767px) { .gh-hero__crumbs { left: 26px; right: 26px; top: 18px; } }

/* Tiempo de lectura en el meta del hero */
.gh-hero__rt { display: inline-flex; align-items: center; gap: 5px; }
.gh-hero__rt::before {
	content: ''; width: 14px; height: 14px; flex: 0 0 14px; background: no-repeat center/contain;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}

/* Migas dentro del overlay del hero (flujo normal, sobre el título) */
.gh-hero__overlay .gh-hero__crumbs { position: static; top: auto; left: auto; right: auto; margin: 0 0 14px; }
@media (max-width: 767px) { .gh-hero__overlay .gh-hero__crumbs { left: auto; right: auto; top: auto; } }

/* Fix ken-burns: animar el CONTENEDOR (no el <img>) para evitar el bug de pintado */
.gh-hero__media {
	animation: ghKenBurns 24s ease-in-out infinite alternate;
	will-change: transform; transform-origin: center;
}
.gh-hero__media .gh-hero__img {
	animation: none !important; will-change: auto; transform: none;
	width: 100%; height: 100%; object-fit: cover; display: block;
}
@media (prefers-reduced-motion: reduce) { .gh-hero__media { animation: none; } }

/* Hero media como background-image (ken-burns confiable, sin bug de <img>) */
.gh-hero__media {
	position: absolute; inset: 0; z-index: 0;
	background-size: cover; background-position: center; background-repeat: no-repeat;
	transform-origin: center;
	animation: ghKenBurns 24s ease-in-out infinite alternate;
}
.gh-hero__media .gh-hero__img { display: none; }
@media (prefers-reduced-motion: reduce) { .gh-hero__media { animation: none; } }

/* ===== Ajustes hero v3: título más pequeño + separación + nueva animación (paneo) ===== */
.gh-hero__title { font-size: clamp(21px, 2.2vw, 32px); }

/* Separación entre el encabezado del sitio y el hero */
.gh-hero { margin-top: 38px; }
@media (max-width: 767px) { .gh-hero { margin-top: 22px; } }

/* Animación: paneo diagonal cinematográfico (reemplaza el zoom ken-burns) */
.gh-hero__media { animation: ghHeroPan 30s ease-in-out infinite alternate; }
@keyframes ghHeroPan {
	from { transform: scale(1.14) translate(-1.8%, -1.1%); }
	to   { transform: scale(1.14) translate(1.8%, 1.2%); }
}
@media (prefers-reduced-motion: reduce) { .gh-hero__media { animation: none; } }

/* ===== FIX: header es overlay absoluto → dar espacio arriba para despegar el hero ===== */
.single-post .wd-content-layout,
.single-portfolio .wd-content-layout { padding-top: 150px; }
.gh-hero { margin-top: 0; }
@media (max-width: 1024px) {
	.single-post .wd-content-layout,
	.single-portfolio .wd-content-layout { padding-top: 115px; }
}
@media (max-width: 767px) {
	.single-post .wd-content-layout,
	.single-portfolio .wd-content-layout { padding-top: 135px; }
}

/* Reducir altura del hero (mejor en portátiles) */
.gh-hero { height: 430px; }
@media (max-width: 1024px) { .gh-hero { height: 380px; } }
@media (max-width: 767px) { .gh-hero { height: 300px; } }

/* ==========================================================================
   CVT PROYECTOS — Sección de servicios moderna (paneles expandibles al hover)
   ========================================================================== */
.cvt-svc { max-width: 1240px; margin: 0 auto; padding: 20px 15px 10px; font-family: 'Montserrat','Kumbh Sans',sans-serif; }
.cvt-svc__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 26px; }
.cvt-svc__title { margin: 0; font-size: 30px; font-weight: 800; color: #1a2230; line-height: 1.1; }
.cvt-svc__all {
	display: inline-flex; align-items: center; gap: 8px; background: var(--wd-primary-color, rgb(32,172,179));
	color: #fff !important; padding: 11px 20px; border-radius: 10px; font-size: 13px; font-weight: 700;
	letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; transition: filter .2s ease;
}
.cvt-svc__all:hover { filter: brightness(1.08); color: #fff !important; }

.cvt-svc__row { display: flex; gap: 16px; height: 460px; }
.gsvc-panel {
	position: relative; flex: 1 1 0%; min-width: 0; border-radius: 20px; overflow: hidden;
	background-size: cover; background-position: center; text-decoration: none;
	display: flex; align-items: flex-end;
	transition: flex-grow .6s cubic-bezier(.22,.61,.36,1), box-shadow .4s ease;
	box-shadow: 0 6px 20px rgba(6,12,20,.12);
}
.cvt-svc__row:hover .gsvc-panel { flex-grow: .62; }
.gsvc-panel:hover { flex-grow: 2.6; box-shadow: 0 18px 44px rgba(6,12,20,.3); }
.gsvc-panel__scrim {
	position: absolute; inset: 0; z-index: 1; transition: background .45s ease;
	background: linear-gradient(to top, rgba(6,12,20,.9) 0%, rgba(6,12,20,.42) 48%, rgba(6,12,20,.08) 82%);
}
.gsvc-panel:hover .gsvc-panel__scrim {
	background: linear-gradient(to top, rgba(6,12,20,.93) 0%, rgba(6,12,20,.55) 58%, rgba(6,12,20,.16) 100%);
}
.gsvc-panel__accent { display: none; }
.gsvc-panel__body { position: relative; z-index: 2; padding: 30px; color: #fff; width: 100%; }
.gsvc-panel__title {
	display: block; position: relative; font-size: 20px; font-weight: 700; line-height: 1.22; color: #fff;
	padding-bottom: 12px;
}
.gsvc-panel__title::after {
	content: ''; position: absolute; left: 0; bottom: 0; width: 38px; height: 3px; border-radius: 3px;
	background: var(--wd-primary-color, rgb(32,172,179)); transition: width .4s ease;
}
.gsvc-panel:hover .gsvc-panel__title::after { width: 64px; }
.gsvc-panel__text {
	display: block; color: rgba(255,255,255,.86); font-size: 14px; line-height: 1.5; margin: 0;
	max-height: 0; opacity: 0; overflow: hidden;
	transition: max-height .55s ease, opacity .4s ease, margin .4s ease;
}
.gsvc-panel:hover .gsvc-panel__text { max-height: 170px; opacity: 1; margin: 14px 0 16px; }
.gsvc-panel__more {
	display: inline-flex; align-items: center; gap: 8px; color: #fff; font-size: 12px; font-weight: 700;
	letter-spacing: .06em; text-transform: uppercase; max-height: 0; opacity: 0; overflow: hidden;
	transition: max-height .55s ease, opacity .4s ease;
}
.gsvc-panel:hover .gsvc-panel__more { max-height: 40px; opacity: 1; }

@media (max-width: 900px) {
	.cvt-svc__head { flex-direction: column; align-items: flex-start; gap: 12px; }
	.cvt-svc__row { flex-direction: column; height: auto; }
	.gsvc-panel { height: 220px; flex: none; }
	.cvt-svc__row:hover .gsvc-panel { flex-grow: 0; }
	.gsvc-panel__text { max-height: 170px; opacity: 1; margin: 14px 0 12px; }
	.gsvc-panel__more { max-height: 40px; opacity: 1; }
}

/* Fix expansión: el panel con hover debe ganar en especificidad */
.cvt-svc__row:hover .gsvc-panel:hover { flex-grow: 2.8; box-shadow: 0 18px 44px rgba(6,12,20,.3); }

/* ==========================================================================
   CVT PROYECTOS — Servicios v2 (grid, imagen B/N→color + panel que sube al hover)
   ========================================================================== */
.cvt-svc2 { max-width: 1240px; margin: 0 auto; padding: 20px 15px 10px; font-family: 'Montserrat','Kumbh Sans',sans-serif; }
.cvt-svc2__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 26px; }
.cvt-svc2__title { margin: 0; font-size: 30px; font-weight: 800; color: #1a2230; line-height: 1.1; }
.cvt-svc2__all {
	display: inline-flex; align-items: center; gap: 8px; background: var(--wd-primary-color, rgb(32,172,179));
	color: #fff !important; padding: 11px 20px; border-radius: 10px; font-size: 13px; font-weight: 700;
	letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; transition: filter .2s ease;
}
.cvt-svc2__all:hover { filter: brightness(1.08); color: #fff !important; }

.cvt-svc2__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
@media (max-width: 1024px) { .cvt-svc2__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .cvt-svc2__grid { grid-template-columns: 1fr; } }

.gsvc2-card {
	position: relative; display: block; height: 430px; border-radius: 20px; overflow: hidden; text-decoration: none;
	box-shadow: 0 6px 20px rgba(6,12,20,.12); transition: transform .4s ease, box-shadow .4s ease;
}
.gsvc2-card:hover { transform: translateY(-6px); box-shadow: 0 20px 44px rgba(6,12,20,.26); }
.gsvc2-card__img {
	position: absolute; inset: 0; z-index: 0; background-size: cover; background-position: center;
	filter: grayscale(85%) contrast(1.02); transition: filter .6s ease, transform .7s ease;
}
.gsvc2-card:hover .gsvc2-card__img { filter: grayscale(0); transform: scale(1.08); }
.gsvc2-card__panel {
	position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; height: 42%;
	background: linear-gradient(to top, rgba(6,14,22,.92) 0%, rgba(6,14,22,.55) 60%, transparent 100%);
	transition: height .55s cubic-bezier(.22,.61,.36,1), background .5s ease;
}
.gsvc2-card:hover .gsvc2-card__panel {
	height: 100%;
	background: linear-gradient(to top, rgba(6,14,22,.95) 0%, rgba(9,32,38,.78) 55%, rgba(9,32,38,.35) 100%);
}
.gsvc2-card__icon {
	position: absolute; top: 20px; right: 20px; z-index: 3; width: 46px; height: 46px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center; color: #fff;
	background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.4);
	-webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
	transition: background .45s ease, border-color .45s ease, transform .45s ease;
}
.gsvc2-card:hover .gsvc2-card__icon { background: var(--wd-primary-color, rgb(32,172,179)); border-color: transparent; transform: scale(1.08); }
.gsvc2-card__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 26px; color: #fff; }
.gsvc2-card__eyebrow { display: block; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #7fe0e6; margin-bottom: 8px; }
.gsvc2-card__title { display: block; font-size: 19px; font-weight: 700; line-height: 1.24; color: #fff; }
.gsvc2-card__desc {
	display: block; color: rgba(255,255,255,.88); font-size: 13.5px; line-height: 1.5; margin: 0;
	max-height: 0; opacity: 0; overflow: hidden;
	transition: max-height .55s ease, opacity .4s ease, margin .4s ease;
}
.gsvc2-card:hover .gsvc2-card__desc { max-height: 160px; opacity: 1; margin: 12px 0 14px; }
.gsvc2-card__more {
	display: inline-flex; align-items: center; gap: 8px; color: #fff; font-size: 12px; font-weight: 700;
	letter-spacing: .06em; text-transform: uppercase; max-height: 0; opacity: 0; overflow: hidden;
	transition: max-height .55s ease, opacity .4s ease;
}
.gsvc2-card:hover .gsvc2-card__more { max-height: 36px; opacity: 1; }
@media (max-width: 560px) {
	.gsvc2-card__img { filter: grayscale(0); }
	.gsvc2-card__panel { height: 72%; }
	.gsvc2-card__desc, .gsvc2-card__more { max-height: 170px; opacity: 1; margin: 12px 0 0; }
}

/* ==========================================================================
   CVT PROYECTOS — Proyectos destacados (3 versiones modernas) — base compartida
   ========================================================================== */
.gdst { max-width: 1240px; margin: 0 auto; padding: 20px 15px 10px; font-family: 'Montserrat','Kumbh Sans',sans-serif; }
.gdst__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 24px; }
.gdst__title { margin: 0; font-size: 30px; font-weight: 800; color: #1a2230; line-height: 1.1; }
.gdst__all { display: inline-flex; align-items: center; gap: 8px; color: var(--wd-primary-color, rgb(32,172,179)); font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.gdst__all:hover { color: var(--wd-primary-color, rgb(32,172,179)); text-decoration: underline; }
.gdst-chip { position: absolute; top: 0; left: 0; z-index: 3; display: inline-flex; align-items: center; gap: 7px; margin: 18px; padding: 7px 14px; border-radius: 30px; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.35); color: #fff; font-size: 12px; font-weight: 600; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.gdst-chip__i { display: inline-flex; } .gdst-chip__i svg { width: 15px; height: 15px; display: block; }
.gdst-card__more, .gdst2-card .gdst-card__more, .gdst3__feat .gdst-card__more { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }

/* ---- V1: BENTO ---- */
.gdst1__grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(2, 235px); gap: 18px; }
.gdst1__grid .gdst-card:nth-child(1) { grid-column: 1 / 2; grid-row: 1 / 3; }
.gdst1__grid .gdst-card:nth-child(2) { grid-column: 2 / 4; grid-row: 1 / 2; }
.gdst1__grid .gdst-card:nth-child(3) { grid-column: 2 / 3; grid-row: 2 / 3; }
.gdst1__grid .gdst-card:nth-child(4) { grid-column: 3 / 4; grid-row: 2 / 3; }
.gdst-card { position: relative; display: flex; align-items: flex-end; border-radius: 18px; overflow: hidden; background-size: cover; background-position: center; text-decoration: none; box-shadow: 0 6px 20px rgba(6,12,20,.14); transition: transform .5s ease, box-shadow .4s ease; }
.gdst-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(6,12,20,.28); }
.gdst-card__scrim { position: absolute; inset: 0; z-index: 1; background: linear-gradient(to top, rgba(6,12,20,.9) 0%, rgba(6,12,20,.35) 52%, rgba(6,12,20,.05) 84%); transition: background .4s ease; }
.gdst-card:hover .gdst-card__scrim { background: linear-gradient(to top, rgba(6,12,20,.93) 0%, rgba(6,12,20,.5) 60%, rgba(6,12,20,.12) 100%); }
.gdst-card__body { position: relative; z-index: 2; padding: 24px; color: #fff; width: 100%; }
.gdst-card__title { display: -webkit-box; font-size: 18px; font-weight: 700; line-height: 1.25; color: #fff; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.gdst1__grid .gdst-card:nth-child(1) .gdst-card__title { font-size: 23px; }
.gdst-card .gdst-card__more { max-height: 0; opacity: 0; overflow: hidden; margin-top: 0; transition: max-height .45s ease, opacity .35s ease, margin .35s ease; }
.gdst-card:hover .gdst-card__more { max-height: 34px; opacity: 1; margin-top: 12px; }
@media (max-width: 900px) {
	.gdst1__grid { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
	.gdst1__grid .gdst-card { grid-column: auto !important; grid-row: auto !important; height: 220px; }
}
@media (max-width: 560px) { .gdst1__grid { grid-template-columns: 1fr; } }

/* ---- V2: POSTERS ---- */
.gdst2__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 900px) { .gdst2__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .gdst2__grid { grid-template-columns: 1fr; } }
.gdst2-card { position: relative; display: block; height: 440px; border-radius: 20px; overflow: hidden; text-decoration: none; box-shadow: 0 6px 20px rgba(6,12,20,.14); transition: transform .4s ease, box-shadow .4s ease; }
.gdst2-card:hover { transform: translateY(-6px); box-shadow: 0 20px 44px rgba(6,12,20,.28); }
.gdst2-card__img { position: absolute; inset: 0; z-index: 0; background-size: cover; background-position: center; transition: transform .7s ease; }
.gdst2-card:hover .gdst2-card__img { transform: scale(1.08); }
.gdst2-card__panel { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; height: 44%; background: linear-gradient(to top, rgba(6,14,22,.92), rgba(6,14,22,.5) 60%, transparent); transition: height .55s cubic-bezier(.22,.61,.36,1), background .5s ease; }
.gdst2-card:hover .gdst2-card__panel { height: 100%; background: linear-gradient(to top, rgba(6,14,22,.95), rgba(9,32,38,.76) 55%, rgba(9,32,38,.3)); }
.gdst2-card__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 26px; color: #fff; }
.gdst2-card__title { display: -webkit-box; font-size: 20px; font-weight: 700; line-height: 1.24; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.gdst2-card__desc { display: block; color: rgba(255,255,255,.87); font-size: 13.5px; line-height: 1.5; margin: 0; max-height: 0; opacity: 0; overflow: hidden; transition: max-height .55s ease, opacity .4s ease, margin .4s ease; }
.gdst2-card:hover .gdst2-card__desc { max-height: 150px; opacity: 1; margin: 10px 0 14px; }
.gdst2-card .gdst-card__more { max-height: 0; opacity: 0; overflow: hidden; transition: max-height .55s ease, opacity .4s ease; }
.gdst2-card:hover .gdst-card__more { max-height: 34px; opacity: 1; }
@media (max-width: 560px) { .gdst2-card__panel { height: 70%; } .gdst2-card__desc, .gdst2-card .gdst-card__more { max-height: 150px; opacity: 1; margin-top: 10px; } }

/* ---- V3: EDITORIAL (destacada + lista) ---- */
.gdst3__wrap { display: grid; grid-template-columns: 1.35fr 1fr; gap: 24px; }
@media (max-width: 900px) { .gdst3__wrap { grid-template-columns: 1fr; } }
.gdst3__feat { position: relative; display: flex; align-items: flex-end; min-height: 480px; border-radius: 20px; overflow: hidden; background-size: cover; background-position: center; text-decoration: none; box-shadow: 0 8px 26px rgba(6,12,20,.2); transition: box-shadow .4s ease; }
.gdst3__feat:hover { box-shadow: 0 20px 46px rgba(6,12,20,.32); }
.gdst3__feat-scrim { position: absolute; inset: 0; z-index: 1; background: linear-gradient(to top, rgba(6,12,20,.92), rgba(6,12,20,.4) 55%, rgba(6,12,20,.08)); }
.gdst3__feat-body { position: relative; z-index: 2; padding: 34px; color: #fff; }
.gdst3__feat-title { display: block; font-size: 28px; font-weight: 700; line-height: 1.15; }
.gdst3__feat-desc { display: block; color: rgba(255,255,255,.88); font-size: 15px; line-height: 1.55; margin: 12px 0 16px; }
.gdst3__list { display: flex; flex-direction: column; gap: 14px; }
.gdst3__row { display: flex; align-items: center; gap: 16px; padding: 14px; border-radius: 16px; background: #fff; border: 1px solid #eef0f2; box-shadow: 0 2px 10px rgba(16,24,40,.05); text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; flex: 1 1 0; }
.gdst3__row:hover { transform: translateX(4px); box-shadow: 0 12px 26px rgba(16,24,40,.12); border-color: var(--wd-primary-color, rgb(32,172,179)); }
.gdst3__row-thumb { flex: 0 0 86px; height: 66px; border-radius: 12px; background-size: cover; background-position: center; }
.gdst3__row-info { flex: 1 1 auto; min-width: 0; }
.gdst3__row-cat { display: block; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wd-primary-color, rgb(32,172,179)); margin-bottom: 3px; }
.gdst3__row-title { display: -webkit-box; font-size: 14px; font-weight: 600; color: #1a2230; line-height: 1.3; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.gdst3__row-arrow { flex: 0 0 auto; color: #c2c9d1; font-size: 18px; transition: color .3s ease, transform .3s ease; }
.gdst3__row:hover .gdst3__row-arrow { color: var(--wd-primary-color, rgb(32,172,179)); transform: translateX(3px); }

/* =========================================================================
 * CVT PROYECTOS — NATIVO ELEMENTOR: Servicios (acordeón expandible)
 * Sección editable con widgets nativos; la animación viaja con la clase
 * .elementor-element-gsvcnat (id interno de la sección) — no requiere clase manual.
 * ====================================================================== */
/* fila = flex (cubre DOM optimizado .elementor-container y legacy .elementor-row) */
.elementor-element-gsvcnat > .elementor-container,
.elementor-element-gsvcnat > .elementor-container > .elementor-row {
	display: flex !important;
	flex-wrap: nowrap !important;
	gap: 16px;
	height: 460px;
	align-items: stretch;
}
.elementor-element-gsvcnat .elementor-column {
	width: auto !important;
	flex: 1 1 0 !important;
	min-width: 0;
	transition: flex-grow .55s cubic-bezier(.2,.7,.2,1);
}
.elementor-element-gsvcnat:hover .elementor-column { flex-grow: .6; }
.elementor-element-gsvcnat .elementor-column:hover { flex-grow: 2.6; }
/* panel = wrapper poblado con la imagen de fondo */
.elementor-element-gsvcnat .elementor-widget-wrap.elementor-element-populated {
	position: relative;
	height: 100%;
	border-radius: 18px;
	overflow: hidden;
	padding: 30px !important;
	display: flex !important;
	flex-direction: column;
	justify-content: flex-end;
	align-content: flex-start;
	background-size: cover !important;
	background-position: center !important;
	box-shadow: 0 10px 26px rgba(6,12,20,.16);
	transition: box-shadow .5s;
}
.elementor-element-gsvcnat .elementor-column:hover .elementor-widget-wrap.elementor-element-populated {
	box-shadow: 0 18px 44px rgba(6,12,20,.3);
}
.elementor-element-gsvcnat .elementor-widget-wrap.elementor-element-populated::before {
	content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
	background: linear-gradient(180deg, rgba(8,15,25,.12) 0%, rgba(8,15,25,.52) 55%, rgba(6,12,20,.86) 100%);
	transition: background .5s;
}
.elementor-element-gsvcnat .elementor-column:hover .elementor-widget-wrap.elementor-element-populated::before {
	background: linear-gradient(180deg, rgba(8,15,25,.28) 0%, rgba(8,15,25,.68) 50%, rgba(4,9,16,.92) 100%);
}
/* los widgets van sobre el scrim, alineados a la izquierda-abajo */
.elementor-element-gsvcnat .elementor-widget {
	position: relative; z-index: 2; width: 100%; margin: 0;
}
.elementor-element-gsvcnat .elementor-widget-heading .elementor-heading-title {
	color: #fff !important; font-size: 21px; font-weight: 800; line-height: 1.2; margin: 0;
	position: relative; padding-bottom: 12px;
}
.elementor-element-gsvcnat .elementor-widget-heading .elementor-heading-title::after {
	content: ""; position: absolute; left: 0; bottom: 0; width: 28px; height: 3px;
	background: var(--wd-primary-color, rgb(32,172,179)); border-radius: 3px; transition: width .5s;
}
.elementor-element-gsvcnat .elementor-column:hover .elementor-widget-heading .elementor-heading-title::after { width: 64px; }
/* texto: oculto hasta hover */
.elementor-element-gsvcnat .elementor-widget-text-editor {
	max-height: 0; opacity: 0; overflow: hidden;
	transition: max-height .5s ease, opacity .45s ease, margin .5s ease;
}
.elementor-element-gsvcnat .elementor-column:hover .elementor-widget-text-editor {
	max-height: 200px; opacity: 1; margin-top: 12px;
}
.elementor-element-gsvcnat .elementor-widget-text-editor,
.elementor-element-gsvcnat .elementor-widget-text-editor * {
	color: rgba(255,255,255,.9) !important; font-size: 14px; line-height: 1.6;
}
/* botón: oculto hasta hover */
.elementor-element-gsvcnat .elementor-widget-button {
	max-height: 0; opacity: 0; overflow: hidden;
	transition: max-height .5s ease, opacity .45s ease, margin .5s ease;
}
.elementor-element-gsvcnat .elementor-column:hover .elementor-widget-button {
	max-height: 60px; opacity: 1; margin-top: 14px;
}
.elementor-element-gsvcnat .elementor-widget-button .elementor-button {
	background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.5);
	color: #fff !important; border-radius: 999px; padding: 9px 18px; font-weight: 700;
	font-size: 12px; letter-spacing: .04em; text-transform: uppercase;
}
.elementor-element-gsvcnat .elementor-widget-button .elementor-button:hover {
	background: var(--wd-primary-color, rgb(32,172,179)); border-color: transparent;
}
@media (max-width: 1024px) {
	.elementor-element-gsvcnat > .elementor-container,
	.elementor-element-gsvcnat > .elementor-container > .elementor-row {
		flex-direction: column !important; height: auto;
	}
	.elementor-element-gsvcnat .elementor-column { flex: none !important; width: 100% !important; }
	.elementor-element-gsvcnat:hover .elementor-column,
	.elementor-element-gsvcnat .elementor-column:hover { flex-grow: 0; }
	.elementor-element-gsvcnat .elementor-widget-wrap.elementor-element-populated { height: 240px; }
	.elementor-element-gsvcnat .elementor-widget-text-editor { max-height: 200px; opacity: 1; margin-top: 12px; }
	.elementor-element-gsvcnat .elementor-widget-button { max-height: 60px; opacity: 1; margin-top: 12px; }
}

/* =========================================================================
 * CVT PROYECTOS — NATIVO ELEMENTOR: Proyectos destacados (3 versiones editables)
 * .elementor-element-gdstn1 (bento) | gdstn2 (posters) | gdstn3 (editorial)
 * ====================================================================== */
/* ---- comunes a las tarjetas nativas de destacados ---- */
.elementor-element-gdstn1 .elementor-widget-wrap.elementor-element-populated,
.elementor-element-gdstn2 .elementor-widget-wrap.elementor-element-populated,
.elementor-element-gdstn3 .elementor-widget-wrap.elementor-element-populated {
	position: relative; height: 100%; border-radius: 18px; overflow: hidden;
	padding: 26px !important; display: flex !important; flex-direction: column;
	justify-content: flex-end; align-content: flex-start;
	background-size: cover !important; background-position: center !important;
	box-shadow: 0 10px 26px rgba(6,12,20,.16); transition: box-shadow .5s, transform .5s;
}
.elementor-element-gdstn1 .elementor-widget-wrap.elementor-element-populated::before,
.elementor-element-gdstn2 .elementor-widget-wrap.elementor-element-populated::before,
.elementor-element-gdstn3 .elementor-widget-wrap.elementor-element-populated::before {
	content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
	background: linear-gradient(180deg, rgba(8,15,25,.05) 0%, rgba(8,15,25,.5) 55%, rgba(6,12,20,.88) 100%);
	transition: background .5s;
}
.elementor-element-gdstn1 .elementor-widget, .elementor-element-gdstn2 .elementor-widget, .elementor-element-gdstn3 .elementor-widget {
	position: relative; z-index: 2; width: 100%; margin: 0;
}
/* eyebrow de categoría (heading pequeño) — primer heading de cada tarjeta */
.elementor-element-gdstn1 .gdstn-cat .elementor-heading-title,
.elementor-element-gdstn2 .gdstn-cat .elementor-heading-title,
.elementor-element-gdstn3 .gdstn-cat .elementor-heading-title {
	color: #fff !important; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
	display: inline-block; background: rgba(255,255,255,.16); backdrop-filter: blur(4px);
	padding: 5px 11px; border-radius: 999px; margin: 0 0 10px;
}
/* título de tarjeta */
.elementor-element-gdstn1 .gdstn-title .elementor-heading-title,
.elementor-element-gdstn2 .gdstn-title .elementor-heading-title,
.elementor-element-gdstn3 .gdstn-title .elementor-heading-title {
	color: #fff !important; font-size: 19px; font-weight: 800; line-height: 1.22; margin: 0;
}
/* botón "Ver proyecto" */
.elementor-element-gdstn1 .elementor-widget-button .elementor-button,
.elementor-element-gdstn2 .elementor-widget-button .elementor-button,
.elementor-element-gdstn3 .elementor-widget-button .elementor-button {
	background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.5); color: #fff !important;
	border-radius: 999px; padding: 8px 16px; font-weight: 700; font-size: 11px; letter-spacing: .04em; text-transform: uppercase;
}
.elementor-element-gdstn1 .elementor-widget-button .elementor-button:hover,
.elementor-element-gdstn2 .elementor-widget-button .elementor-button:hover,
.elementor-element-gdstn3 .elementor-widget-button .elementor-button:hover {
	background: var(--wd-primary-color, rgb(32,172,179)); border-color: transparent;
}

/* ---- V1 BENTO ---- */
.elementor-element-gdstn1 > .elementor-container,
.elementor-element-gdstn1 > .elementor-container > .elementor-row {
	display: grid !important; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 232px; gap: 16px; max-width: 1240px;
}
.elementor-element-gdstn1 .elementor-column { width: auto !important; margin: 0 !important; }
.elementor-element-gdstn1 .elementor-column:nth-child(1) { grid-column: 1; grid-row: 1 / span 2; }
.elementor-element-gdstn1 .elementor-column:nth-child(2) { grid-column: 2 / span 2; grid-row: 1; }
.elementor-element-gdstn1 .elementor-column:nth-child(3) { grid-column: 2; grid-row: 2; }
.elementor-element-gdstn1 .elementor-column:nth-child(4) { grid-column: 3; grid-row: 2; }
.elementor-element-gdstn1 .elementor-column:hover .elementor-element-populated { transform: translateY(-4px); box-shadow: 0 20px 46px rgba(6,12,20,.32); }
.elementor-element-gdstn1 .elementor-column:hover .elementor-element-populated::before { background: linear-gradient(180deg, rgba(8,15,25,.2) 0%, rgba(8,15,25,.62) 55%, rgba(4,9,16,.92) 100%); }
@media (max-width: 1024px) {
	.elementor-element-gdstn1 > .elementor-container,
	.elementor-element-gdstn1 > .elementor-container > .elementor-row { grid-template-columns: 1fr 1fr; grid-auto-rows: 200px; }
	.elementor-element-gdstn1 .elementor-column:nth-child(n) { grid-column: auto !important; grid-row: auto !important; }
}
@media (max-width: 600px) {
	.elementor-element-gdstn1 > .elementor-container,
	.elementor-element-gdstn1 > .elementor-container > .elementor-row { grid-template-columns: 1fr; }
}

/* ---- V2 POSTERS (panel + reveal al hover) ---- */
.elementor-element-gdstn2 > .elementor-container,
.elementor-element-gdstn2 > .elementor-container > .elementor-row {
	display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 20px; max-width: 1240px;
}
.elementor-element-gdstn2 .elementor-column { width: auto !important; margin: 0 !important; }
.elementor-element-gdstn2 .elementor-widget-wrap.elementor-element-populated { height: 440px; }
.elementor-element-gdstn2 .elementor-column:hover .elementor-element-populated { box-shadow: 0 20px 46px rgba(6,12,20,.32); }
.elementor-element-gdstn2 .elementor-column:hover .elementor-element-populated::before { background: linear-gradient(180deg, rgba(8,15,25,.2) 0%, rgba(8,15,25,.66) 50%, rgba(4,9,16,.94) 100%); }
.elementor-element-gdstn2 .gdstn-desc { max-height: 0; opacity: 0; overflow: hidden; transition: max-height .5s ease, opacity .45s ease, margin .5s ease; }
.elementor-element-gdstn2 .elementor-column:hover .gdstn-desc { max-height: 160px; opacity: 1; margin-top: 10px; }
.elementor-element-gdstn2 .gdstn-desc .elementor-heading-title,
.elementor-element-gdstn2 .gdstn-desc * { color: rgba(255,255,255,.9) !important; font-size: 13.5px; font-weight: 500; line-height: 1.55; }
.elementor-element-gdstn2 .elementor-widget-button { max-height: 0; opacity: 0; overflow: hidden; transition: max-height .5s ease, opacity .45s ease, margin .5s ease; }
.elementor-element-gdstn2 .elementor-column:hover .elementor-widget-button { max-height: 60px; opacity: 1; margin-top: 14px; }
@media (max-width: 1024px) {
	.elementor-element-gdstn2 > .elementor-container,
	.elementor-element-gdstn2 > .elementor-container > .elementor-row { grid-template-columns: 1fr; }
	.elementor-element-gdstn2 .gdstn-desc { max-height: 160px; opacity: 1; margin-top: 10px; }
	.elementor-element-gdstn2 .elementor-widget-button { max-height: 60px; opacity: 1; margin-top: 12px; }
}

/* ---- V3 EDITORIAL (destacada + lista) ---- */
.elementor-element-gdstn3 > .elementor-container,
.elementor-element-gdstn3 > .elementor-container > .elementor-row {
	display: grid !important; grid-template-columns: 1.35fr 1fr; grid-auto-rows: 1fr; gap: 16px; max-width: 1240px; min-height: 470px;
}
.elementor-element-gdstn3 .elementor-column { width: auto !important; margin: 0 !important; }
.elementor-element-gdstn3 .elementor-column:first-child { grid-column: 1; grid-row: 1 / -1; }
.elementor-element-gdstn3 .elementor-column:not(:first-child) { grid-column: 2; }
.elementor-element-gdstn3 .elementor-column:first-child .gdstn-title .elementor-heading-title { font-size: 26px; }
.elementor-element-gdstn3 .elementor-column:first-child .gdstn-desc .elementor-heading-title { color: rgba(255,255,255,.9) !important; font-size: 14px; font-weight: 500; line-height: 1.6; margin-top: 10px; display: block; }
/* filas de la lista: tarjeta compacta con imagen de fondo lateral */
.elementor-element-gdstn3 .elementor-column:not(:first-child) .elementor-widget-wrap.elementor-element-populated {
	height: 100%; min-height: 108px; padding: 18px 20px !important; justify-content: center;
	border: 1px solid #eef1f4; box-shadow: 0 6px 16px rgba(6,12,20,.06);
}
.elementor-element-gdstn3 .elementor-column:not(:first-child) .elementor-widget-wrap.elementor-element-populated::before {
	background: linear-gradient(90deg, rgba(8,15,25,.72) 0%, rgba(8,15,25,.35) 55%, rgba(8,15,25,.12) 100%);
}
.elementor-element-gdstn3 .elementor-column:not(:first-child) .gdstn-cat .elementor-heading-title { font-size: 10px; margin-bottom: 6px; }
.elementor-element-gdstn3 .elementor-column:not(:first-child) .gdstn-title .elementor-heading-title { font-size: 15px; }
.elementor-element-gdstn3 .elementor-column:not(:first-child):hover .elementor-element-populated { transform: translateX(4px); box-shadow: 0 12px 26px rgba(6,12,20,.16); }
@media (max-width: 1024px) {
	.elementor-element-gdstn3 > .elementor-container,
	.elementor-element-gdstn3 > .elementor-container > .elementor-row { grid-template-columns: 1fr; }
	.elementor-element-gdstn3 .elementor-column:first-child, .elementor-element-gdstn3 .elementor-column:not(:first-child) { grid-column: 1; grid-row: auto; }
	.elementor-element-gdstn3 .elementor-column:first-child .elementor-widget-wrap.elementor-element-populated { min-height: 320px; }
}

/* =========================================================================
 * CVT PROYECTOS — Carrusel bucle continuo de "Artículos Técnicos" (hub Visión Técnica)
 * ====================================================================== */
.gh-marquee { position: relative; overflow: hidden; padding: 8px 0; margin: 0 -4px;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%); }
.gh-marquee__track { display: flex; width: max-content; animation: ghMarquee 38s linear infinite; will-change: transform; }
.gh-marquee:hover .gh-marquee__track { animation-play-state: paused; }
.gh-marquee__set { display: flex; gap: 22px; padding-right: 22px; }
.gh-marquee .gh-card { flex: 0 0 300px; width: 300px; margin: 0; }
@keyframes ghMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (max-width: 768px) {
	.gh-marquee__set { gap: 16px; padding-right: 16px; }
	.gh-marquee .gh-card { flex-basis: 280px; width: 280px; }
	.gh-marquee__track { animation-duration: 30s; }
}
@media (max-width: 600px) {
	.gh-marquee .gh-card { flex-basis: 82vw; width: 82vw; }
	.gh-marquee__track { animation-duration: 24s; }
}
@media (prefers-reduced-motion: reduce) {
	.gh-marquee { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
	.gh-marquee__track { animation: none; }
	.gh-marquee__set:last-child { display: none; }
}

/* =========================================================================
 * CVT PROYECTOS — Hero moderno para archivos de blog (categoría/tag) + sin migas
 * ====================================================================== */
/* Ocultar la barra de migas/título del tema en archivos de blog */
body.category .wd-page-title,
body.tag .wd-page-title,
body.blog .wd-page-title { display: none !important; }

.gh-archive-header { padding-top: 26px; }
.gh-arch-hero {
	position: relative; overflow: hidden; isolation: isolate;
	/* ancho completo (full-bleed) rompiendo el contenedor */
	width: 100vw; max-width: 100vw;
	margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); margin-bottom: 6px;
	border-radius: 0;
	padding: clamp(34px, 5.2vw, 60px) 20px;
	text-align: center; color: #fff;
	background-color: #0c2029; background-size: cover; background-position: center;
}
/* Scrim/degradado sobre la imagen (o el color) para que el texto se lea */
.gh-arch-hero::before {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background:
		radial-gradient(120% 150% at 8% -10%, rgba(32,172,179,.34) 0%, rgba(32,172,179,0) 46%),
		radial-gradient(130% 170% at 108% 120%, rgba(32,172,179,.22) 0%, rgba(12,32,41,0) 52%),
		linear-gradient(135deg, rgba(12,32,41,.60) 0%, rgba(10,26,34,.70) 55%, rgba(8,20,28,.82) 100%);
}
.gh-arch-hero.has-image::before {
	background:
		radial-gradient(120% 150% at 8% -10%, rgba(32,172,179,.26) 0%, rgba(32,172,179,0) 46%),
		linear-gradient(135deg, rgba(10,26,34,.80) 0%, rgba(12,32,41,.62) 52%, rgba(8,20,28,.88) 100%);
}
/* Rejilla sutil */
.gh-arch-hero__grid {
	position: absolute; inset: 0; z-index: 2; pointer-events: none; opacity: .5;
	background-image:
		linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px);
	background-size: 46px 46px;
	-webkit-mask-image: radial-gradient(80% 78% at 50% 26%, #000 38%, transparent 100%);
	mask-image: radial-gradient(80% 78% at 50% 26%, #000 38%, transparent 100%);
}
/* Resplandor */
.gh-arch-hero__glow {
	position: absolute; z-index: 2; pointer-events: none; width: 420px; height: 420px;
	top: -160px; right: -120px; border-radius: 50%;
	background: radial-gradient(circle, rgba(127,224,228,.32) 0%, rgba(127,224,228,0) 70%);
	filter: blur(6px);
}
.gh-arch-hero__inner { position: relative; z-index: 3; max-width: 720px; margin: 0 auto; }
.gh-arch-hero__eyebrow {
	display: inline-flex; align-items: center; gap: 8px; margin-bottom: 18px;
	padding: 7px 15px 7px 11px; border-radius: 999px;
	background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.20);
	color: #bdeef0; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
}
.gh-arch-hero__i { display: inline-flex; width: 16px; height: 16px; color: #7fe0e4; }
.gh-arch-hero__i svg { width: 16px; height: 16px; stroke: #7fe0e4; }
.gh-arch-hero__title {
	margin: 0; color: #fff; font-weight: 800; line-height: 1.04; letter-spacing: -.015em;
	font-size: clamp(32px, 5vw, 52px);
}
.gh-arch-hero__desc {
	margin: 15px auto 0; max-width: 600px; color: rgba(255,255,255,.82);
	font-size: 16px; line-height: 1.6;
}
.gh-arch-hero__count {
	display: inline-flex; align-items: center; gap: 8px; margin-top: 22px;
	padding: 6px 15px; border-radius: 999px;
	background: rgba(32,172,179,.20); border: 1px solid rgba(127,224,228,.38);
	color: #d3f2f3; font-size: 12.5px; font-weight: 700; letter-spacing: .03em;
}
.gh-arch-hero__dot { width: 7px; height: 7px; border-radius: 50%; background: #7fe0e4; box-shadow: 0 0 0 4px rgba(127,224,228,.18); }
/* La barra de categorías queda como filtro debajo del hero */
.gh-archive-header .gh-catbar { margin-top: 22px; }
@media (max-width: 768px) {
	.gh-arch-hero { padding: 30px 18px 34px; }
	.gh-arch-hero__desc { font-size: 15px; margin-top: 12px; }
	.gh-arch-hero__count { margin-top: 16px; }
}

/* Fix: el tema fuerza color gris en el h1 del archivo — forzar blanco */
.gh-arch-hero__title,
.gh-archive-header .gh-arch-hero__title {
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
}
.gh-archive-header { padding-top: 42px; }

/* =========================================================================
 * CVT PROYECTOS — Rediseño hero archivo: izquierda + sin píldoras (Fase 18)
 * ====================================================================== */
.gh-arch-hero { text-align: left; }
.gh-arch-hero__inner { max-width: 1222px; margin: 0 auto; text-align: left; padding: 0 20px; }
/* Eyebrow: de píldora a etiqueta limpia con línea de acento */
.gh-arch-hero__eyebrow {
	background: none !important; border: none !important; padding: 0 !important;
	margin-bottom: 15px; gap: 10px; color: #7fe0e4; font-size: 12.5px; letter-spacing: .2em;
}
.gh-arch-hero__eyebrow::after {
	content: ""; width: 34px; height: 2px; background: rgba(127,224,228,.55); border-radius: 2px;
}
.gh-arch-hero__title { margin: 0; }
.gh-arch-hero__desc { margin: 15px 0 0; max-width: 560px; }
/* Contador: de píldora a texto plano con punto */
.gh-arch-hero__count {
	background: none !important; border: none !important; padding: 0 !important;
	margin-top: 18px; color: rgba(255,255,255,.74); font-weight: 600; letter-spacing: .02em; font-size: 13px;
}
/* Barra de categorías alineada a la izquierda con el hero */
.gh-archive-header .gh-catbar { text-align: left; }
.gh-archive-header .gh-catbar__list { justify-content: flex-start; }

/* =========================================================================
 * CVT PROYECTOS — Hero de PROYECTOS (archivo project-cat). Diseño distinto al blog.
 * ====================================================================== */
/* Ocultar migas/título del tema en archivos de proyectos */
body.tax-project-cat .wd-page-title { display: none !important; }

.gh-proj-archive { padding-top: 42px; }
.gh-proj-hero {
	position: relative; overflow: hidden; isolation: isolate;
	width: 100vw; max-width: 100vw;
	margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); margin-bottom: 8px;
	padding: clamp(38px, 5.4vw, 66px) 20px;
	color: #fff; background-color: #0c2029; background-size: cover; background-position: center;
}
/* Scrim más cinematográfico: oscurece más hacia la izquierda para el texto */
.gh-proj-hero::before {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background:
		linear-gradient(90deg, rgba(8,20,28,.90) 0%, rgba(9,24,32,.72) 42%, rgba(10,26,34,.42) 100%),
		linear-gradient(180deg, rgba(10,26,34,.25) 0%, rgba(8,20,28,.65) 100%);
}
.gh-proj-hero__grid {
	position: absolute; inset: 0; z-index: 2; pointer-events: none; opacity: .5;
	background-image:
		linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
	background-size: 46px 46px;
	-webkit-mask-image: linear-gradient(90deg, #000 0, transparent 70%);
	mask-image: linear-gradient(90deg, #000 0, transparent 70%);
}
.gh-proj-hero__inner {
	position: relative; z-index: 3; max-width: 1222px; margin: 0 auto; padding: 0 20px;
	display: flex; align-items: center; gap: 22px;
}
/* Badge redondeado con el ícono de la categoría (elemento distintivo vs blog) */
.gh-proj-hero__badge {
	flex: 0 0 auto; width: 66px; height: 66px; border-radius: 18px;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(32,172,179,.20); border: 1px solid rgba(127,224,228,.42);
	box-shadow: 0 10px 26px rgba(6,16,22,.35); backdrop-filter: blur(4px);
}
.gh-proj-hero__badge svg { width: 30px; height: 30px; stroke: #d3f2f3; color: #d3f2f3; }
.gh-proj-hero__text { min-width: 0; }
.gh-proj-hero__eyebrow {
	display: inline-block; margin: 0 0 8px; color: #7fe0e4;
	font-size: 12px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase;
}
/* Título con barra de acento a la IZQUIERDA (distinto a la línea del blog) */
.gh-proj-hero__title {
	margin: 0; color: #fff !important; -webkit-text-fill-color: #fff !important;
	font-weight: 800; line-height: 1.03; letter-spacing: -.015em;
	font-size: clamp(30px, 5vw, 50px);
	padding-left: 18px; border-left: 4px solid var(--wd-primary-color, rgb(32,172,179));
}
.gh-proj-hero__desc {
	margin: 14px 0 0; max-width: 620px; color: rgba(255,255,255,.84); font-size: 16px; line-height: 1.6;
}
/* Conteo como chip (distinto al texto plano del blog) */
.gh-proj-hero__count {
	display: inline-flex; align-items: center; margin-top: 18px; padding: 6px 16px; border-radius: 8px;
	background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.22);
	color: #eafafb; font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
}
/* Filtro en PÍLDORAS (distinto a las pestañas del blog) */
.gh-proj-filter { margin: 18px 0 4px; }
.gh-proj-filter__list {
	list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 9px;
}
.gh-proj-filter__list a {
	display: inline-flex; align-items: center; gap: 7px; padding: 9px 16px; border-radius: 999px;
	background: #fff; border: 1px solid #e3e7ec; color: #45515e !important;
	font-size: 13px; font-weight: 600; transition: all .2s ease;
}
.gh-proj-filter__list a:hover { border-color: var(--wd-primary-color, rgb(32,172,179)); color: var(--wd-primary-color, rgb(32,172,179)) !important; }
.gh-proj-filter__list li.is-active a {
	background: var(--wd-primary-color, rgb(32,172,179)); border-color: transparent; color: #fff !important;
	box-shadow: 0 8px 20px rgba(32,172,179,.32);
}
.gh-proj-filter__icon { display: inline-flex; }
.gh-proj-filter__icon svg { width: 16px; height: 16px; display: block; }
.gh-proj-filter__list li.is-active .gh-proj-filter__icon svg { stroke: #fff; color: #fff; }
@media (max-width: 768px) {
	.gh-proj-hero { padding: 30px 18px 34px; }
	.gh-proj-hero__inner { gap: 16px; padding: 0 4px; }
	.gh-proj-hero__badge { width: 52px; height: 52px; border-radius: 14px; }
	.gh-proj-hero__badge svg { width: 24px; height: 24px; }
	.gh-proj-hero__desc { font-size: 14.5px; }
	.gh-proj-filter__list { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
	.gh-proj-filter__list a { flex: 0 0 auto; }
}


/* CVT — ajustes de QA responsive */
.wd-footer .elementor-icon-list-text,
.wd-footer .elementor-icon-list-item > a {
	overflow-wrap: anywhere;
	word-break: break-word;
}
.wd-footer .elementor-icon-list-item {
	align-items: flex-start;
}


/* CVT — ocultar redes sociales sin URL real (revertir al recibir los perfiles) */
.wd-social-icon[href="#"],
.wd-social-icons a[href="#"] {
	display: none !important;
}

/* CVT — logotipo del pie legible */
.wd-footer .elementor-widget-image img[src*="CVT-LOGO"] {
	width: 210px;
	max-width: 100%;
	height: auto;
}
