@font-face {
    font-family: 'Montserrat-Bold';
    src: url(../fonts/Montserrat/static/Montserrat-Bold.ttf) format('truetype');
}

@font-face {
    font-family: 'Montserrat-SemiBold';
    src: url(../fonts/Montserrat/static/Montserrat-SemiBold.ttf) format('truetype');
}

@font-face {
    font-family: 'Montserrat-Medium';
    src: url(../fonts/Montserrat/static/Montserrat-Medium.ttf) format('truetype');
}

@font-face {
    font-family: 'Montserrat-Regular';
    src: url(../fonts/Montserrat/static/Montserrat-Regular.ttf) format('truetype');
}

@font-face {
    font-family: 'Jakarta-SemiBold';
    src: url(../fonts/Plus_Jakarta_Sans/static/PlusJakartaSans-SemiBold.ttf) format('truetype');
}

@font-face {
    font-family: 'Jakarta-Regular';
    src: url(../fonts/Plus_Jakarta_Sans/static/PlusJakartaSans-Regular.ttf) format('truetype');
}

.textoinicio {
	text-align: center;
}

.textoinicio h1 {
	font-family: 'Montserrat-Medium', sans-serif;
	font-size: 38px !important;
	margin-top: 20px;
	margin-bottom: 60px;
}

/* ================================
   SECCIÓN DE SERVICIOS (TIMELINE)
================================ */

.servicios-timeline {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6rem;
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 40px;
}

/* Línea central vertical */
.servicios-timeline::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	bottom: 0;
	width: 3px;
	background: #ccc;
	transform: translateX(-50%);
	z-index: 0;
}

/* Cada bloque de servicio */
.servicio-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 100px;
	width: 100%;
	position: relative;
	z-index: 1;
}

.servicio-item.invertido {
	flex-direction: row-reverse;
}

/* Texto */
.servicio-texto {
	flex: 1;
	text-align: left;
	margin-bottom: auto;
}

.servicio-texto h2 {
	font-family: 'Montserrat-SemiBold', sans-serif;
	font-size: 34px;
	margin-bottom: 15px;
}

.servicio-texto p {
	font-family: 'Jakarta-Regular', sans-serif;
	font-size: 18px;
	margin-bottom: 60px;
	line-height: 1.6;
}

/* Imagen */
.servicio-imagen {
	flex: 1;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 350px;
	height: 350px;
	overflow: hidden;
}

.servicio-imagen img {
	width: 100%;
	height: 100%;
	object-fit: contain;

}

.servicios-timeline .servicio-item:nth-child(5) img {
	object-fit: cover;
	border-radius: 30px;
}

/* Botón */
.btn-servicio {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	background: #E4572E;
	color: #fff;
	padding: 0 20px;
	height: 40px;
	font-family: 'Jakarta-Regular', sans-serif;
	font-size: 14px;
	border-radius: 30px;
	text-decoration: none;
	cursor: pointer;
}

.btn-servicio:hover {
	background: #c63d1d;
}

/* CTA final */
.cta-final {
	text-align: center;
	background: #fff;
	padding: 100px 0 80px 0;
}

.cta-final h2 {
	font-family: 'Montserrat-Medium', sans-serif;
	font-size: 36px;
	margin-bottom: 35px;
}

.btn-contacto {
	display: inline-block;
	background: #A8E0FF;
	font-family: 'Jakarta-SemiBold', sans-serif;
	font-size: 16px;
	color: #062638;
	padding: 1rem 2rem;
	border-radius: 30px;
	text-decoration: none;
	font-weight: 600;
	transition: background 0.3s;
}

/* ====== Variables de color (opcional) ====== */
:root {
	--tmh-purple: #5B1EBE;
	--tmh-purple-rail: #C7A9F4;
	--tmh-rail-bg: #FFFFFF;
}

/* ====== Barra central con borde y más ancha ====== */
.timeline-line {
	position: absolute;
	left: 50%;
	top: 0;
	bottom: 0;
	width: 12px;
	background: var(--tmh-rail-bg);
	transform: translateX(-50%);
	border: 2px solid var(--tmh-purple);
	border-radius: 10px;
	z-index: 0;
	overflow: hidden;
}

/* Relleno morado que sube/baja */
.timeline-progress {
	position: absolute;
	left: 0;
	bottom: auto;
	top: 0;
	width: 100%;
	height: 0%;
	background: var(--tmh-purple);
	transition: height 0.25s ease-out;
	border-radius: inherit;
	transition: height 0.6s cubic-bezier(.25, .8, .25, 1);
}

/* ====== Puntos / figuras SIN color (vacíos) ====== */
.timeline-points {
	position: absolute;
	left: 50%;
	top: 0;
	bottom: 0;
	transform: translateX(-50%);
	z-index: 2;
	pointer-events: none;
}

.timeline-point {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: 20px;
	height: 20px;
	background: #fff;
	border: 3px solid var(--tmh-purple);
	border-radius: 50%;
	box-sizing: border-box;
	overflow: hidden;
}

/* “Llenado” interno cuando la barra los alcanza */
.timeline-point::after {
	content: "";
	position: absolute;
	left: 0;
	width: 100%;
	height: 100%;
	top: 100%;
	background: var(--tmh-purple);
	transition: top 0.25s ease-out;
	transition: top 0.45s ease, height 0.45s ease, transform 0.45s ease;
}

/* activado = se llena; desactivado = se vacía */
.timeline-point.active::after {
	top: 0;
}

/* rombo */
.timeline-point.diamond {
	border-radius: 4px;
	transform: translateX(-50%) rotate(45deg);
	width: 30px;
	height: 30px;
}

/* Solo círculo */
.timeline-point.circle {
	width: 30px;
	height: 30px;
}

/* ===== 🔺 Triángulo (flecha) con esquinas redondeadas, sin deformarse ===== */
:root {
	--icon-tri-w: 52px;
	--icon-tri-h: 50px;
	--icon-stroke: 8;
	--tri-color: #5B1EBE;
}

.timeline-point.triangle {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: var(--icon-tri-w);
	height: var(--icon-tri-h);
	background: transparent;
	border: none;
	overflow: visible;
}

/* Contorno: borde morado redondeado + interior blanco (no cambia nunca) */
.timeline-point.triangle::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url("data:image/svg+xml;utf8,\<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 90'>\<polygon points='50,82 14,28 86,28' fill='white' stroke='%235B1EBE' stroke-width='8' stroke-linejoin='round' stroke-linecap='round'/>\</svg>") center/contain no-repeat;
}

/* Relleno morado recortado con la MISMA forma; crece en altura (no escala) */
.timeline-point.triangle::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 0%;
	background: var(--tri-color);
	-webkit-mask: url("data:image/svg+xml;utf8,\<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 90'>\<polygon points='50,82 14,28 86,28' fill='black'/>\</svg>") center/contain no-repeat;
	mask: url("data:image/svg+xml;utf8,\<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 90'>\<polygon points='50,82 14,28 86,28' fill='black'/>\</svg>") center/contain no-repeat;
	transition: height .25s ease-out;
}

/* Activo = se llena hacia arriba conservando la forma */
.timeline-point.triangle.active::after {
	height: 100%;
}

@media (max-width: 1000px) {
	.servicios-timeline {
		gap: 150px;
	}

	.timeline-line {
		left: 30px;
		transform: none;
	}

	.servicios-timeline::before {
		left: 30px;
		transform: none;
	}

	.timeline-points {
		left: 36px;
		transform: none;
	}

	.servicio-item {
		margin-left: 60px;
		padding-right: 20px;
		gap: 0;
	}

	.servicio-imagen {
		width: 350px;
		height: 350px;
	}
}

@media (max-width: 730px) {
	.servicios-timeline {
		gap: 100px;
	}

	.servicio-item,
	.servicio-item.invertido {
		flex-direction: column;
		text-align: center;
	}

	.textoinicio h1 {
		padding: 0 30px;
	}

	.servicio-texto {
		margin-bottom: 20px;
		text-align: center;
		max-width: 400px;
	}

	.servicio-texto h2 {
		font-size: 28px;
		margin-bottom: 0px;
	}

	.servicio-texto p {
		font-size: 16px;
		margin-bottom: 20px;
	}

	.servicio-imagen {
		width: 260px;
		height: 260px;
	}

	.servicios-timeline .servicio-item:nth-child(7) img {
		height: 300px;
	}
}