.elementor-widget-ctw_timeline.elementor-invisible {
	visibility: visible !important;
}

.ctw-timeline {
	--ctw-accent: #5b5cf0;
	--ctw-card-width: 340px;
	--ctw-date-bg: #eef2ff;
	--ctw-date-color: #4f46e5;
	--ctw-gap: 56px;
	--ctw-icon-size: 18px;
	--ctw-line-color: #dbe3ef;
	--ctw-line-width: 3px;
	--ctw-marker-bg: #fff;
	--ctw-marker-color: #5b5cf0;
	--ctw-marker-size: 52px;
	--ctw-nav-bg: #fff;
	--ctw-nav-color: #111827;
	--ctw-nav-size: 46px;
	--ctw-side-photo-height: 220px;
	color: #111827;
	position: relative;
	width: 100%;
}

.ctw-timeline,
.ctw-timeline * {
	box-sizing: border-box;
}

.ctw-timeline__viewport {
	position: relative;
	width: 100%;
}

.ctw-timeline__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ctw-timeline__item {
	--ctw-current-accent: var(--ctw-item-accent, var(--ctw-accent));
	position: relative;
}

.ctw-timeline__marker {
	align-items: center;
	align-self: start;
	background: var(--ctw-marker-bg);
	border: var(--ctw-line-width) solid var(--ctw-current-accent);
	border-radius: 999px;
	color: var(--ctw-marker-color);
	display: flex;
	font-size: var(--ctw-icon-size);
	height: var(--ctw-marker-size);
	justify-content: center;
	justify-self: center;
	position: relative;
	width: var(--ctw-marker-size);
	z-index: 3;
}

.ctw-timeline__marker i,
.ctw-timeline__marker svg {
	display: block;
	fill: currentColor;
	height: 1em;
	width: 1em;
}

.ctw-timeline__marker-number {
	font-size: 0.78em;
	font-weight: 750;
	line-height: 1;
}

.ctw-timeline__date,
.ctw-timeline__card-date {
	color: var(--ctw-date-color);
	font-size: 13px;
	font-weight: 750;
	letter-spacing: 0.04em;
	line-height: 1.2;
}

.ctw-timeline__date span,
.ctw-timeline__card-date {
	background: color-mix(in srgb, var(--ctw-item-accent, var(--ctw-date-bg)) 12%, var(--ctw-date-bg));
	border-radius: 999px;
	display: inline-flex;
	padding: 7px 11px;
}

@supports not (background: color-mix(in srgb, #000 10%, #fff)) {
	.ctw-timeline__date span,
	.ctw-timeline__card-date {
		background: var(--ctw-date-bg);
	}
}

.ctw-timeline__card {
	background: #fff;
	border-radius: 18px;
	box-shadow: 0 16px 45px rgba(27, 39, 72, 0.1);
	min-width: 0;
	overflow: hidden;
	position: relative;
	width: 100%;
}

.ctw-timeline__card::after {
	background: var(--ctw-current-accent);
	content: "";
	height: 4px;
	inset: 0 0 auto;
	position: absolute;
}

.ctw-timeline__card-inner {
	padding: 28px;
}

.ctw-timeline__image {
	background: #eef1f6;
	height: 210px;
	overflow: hidden;
	width: 100%;
}

.ctw-timeline__image img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.ctw-timeline__side-photo {
	align-self: center;
	background: #eef1f6;
	border-radius: 16px;
	box-shadow: 0 16px 45px rgba(27, 39, 72, 0.1);
	overflow: hidden;
	width: 100%;
}

.ctw-timeline__side-photo img {
	display: block;
	height: auto;
	max-width: 100%;
	width: 100%;
}

.ctw-timeline--side-photo-fixed .ctw-timeline__side-photo {
	height: var(--ctw-side-photo-height);
}

.ctw-timeline--side-photo-fixed .ctw-timeline__side-photo img {
	height: 100%;
	object-fit: cover;
}

.ctw-timeline__card-date {
	display: none;
	margin: 0 0 14px;
}

.ctw-timeline__title {
	color: #111827;
	font-size: clamp(20px, 2vw, 27px);
	font-weight: 750;
	letter-spacing: -0.025em;
	line-height: 1.18;
	margin: 0;
}

.ctw-timeline__description {
	color: #5f6b7a;
	font-size: 16px;
	line-height: 1.68;
	margin-top: 13px;
}

.ctw-timeline__description > :first-child {
	margin-top: 0;
}

.ctw-timeline__description > :last-child {
	margin-bottom: 0;
}

.ctw-timeline__link {
	align-items: center;
	color: #4f46e5;
	display: inline-flex;
	font-size: 14px;
	font-weight: 750;
	gap: 7px;
	margin-top: 20px;
	text-decoration: none;
}

.ctw-timeline__link svg {
	fill: none;
	height: 16px;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
	transition: transform 180ms ease;
	width: 16px;
}

.ctw-timeline__link:hover,
.ctw-timeline__link:focus-visible {
	color: #3730a3;
	text-decoration: none;
}

.ctw-timeline__link:hover svg,
.ctw-timeline__link:focus-visible svg {
	transform: translateX(3px);
}

.ctw-timeline__link:focus-visible,
.ctw-timeline__nav-button:focus-visible {
	outline: 3px solid var(--ctw-accent);
	outline: 3px solid color-mix(in srgb, var(--ctw-accent) 40%, transparent);
	outline-offset: 4px;
}

/* Vertical timeline */
.ctw-timeline--vertical .ctw-timeline__list {
	position: relative;
}

.ctw-timeline--vertical .ctw-timeline__list::before {
	background: var(--ctw-line-color);
	bottom: calc(var(--ctw-marker-size) / 2);
	content: "";
	left: 50%;
	position: absolute;
	top: calc(var(--ctw-marker-size) / 2);
	transform: translateX(-50%);
	width: var(--ctw-line-width);
}

.ctw-timeline--vertical .ctw-timeline__item {
	align-items: start;
	display: grid;
	gap: clamp(18px, 3.5vw, 54px);
	grid-template-columns: minmax(0, 1fr) var(--ctw-marker-size) minmax(0, 1fr);
	margin-bottom: var(--ctw-gap);
}

.ctw-timeline--vertical .ctw-timeline__item:last-child {
	margin-bottom: 0;
}

.ctw-timeline--vertical .ctw-timeline__marker {
	grid-column: 2;
	grid-row: 1;
}

.ctw-timeline--vertical .ctw-timeline__date,
.ctw-timeline--vertical .ctw-timeline__side-photo {
	align-self: center;
	grid-row: 1;
}

.ctw-timeline--vertical .ctw-timeline__item--odd .ctw-timeline__card,
.ctw-timeline--vertical.ctw-timeline--align-left .ctw-timeline__card {
	grid-column: 1;
	grid-row: 1;
}

.ctw-timeline--vertical .ctw-timeline__item--odd .ctw-timeline__date,
.ctw-timeline--vertical .ctw-timeline__item--odd .ctw-timeline__side-photo,
.ctw-timeline--vertical.ctw-timeline--align-left .ctw-timeline__date,
.ctw-timeline--vertical.ctw-timeline--align-left .ctw-timeline__side-photo {
	grid-column: 3;
	justify-self: start;
}

.ctw-timeline--vertical .ctw-timeline__item--even .ctw-timeline__card,
.ctw-timeline--vertical.ctw-timeline--align-right .ctw-timeline__card {
	grid-column: 3;
	grid-row: 1;
}

.ctw-timeline--vertical .ctw-timeline__item--even .ctw-timeline__date,
.ctw-timeline--vertical .ctw-timeline__item--even .ctw-timeline__side-photo,
.ctw-timeline--vertical.ctw-timeline--align-right .ctw-timeline__date,
.ctw-timeline--vertical.ctw-timeline--align-right .ctw-timeline__side-photo {
	grid-column: 1;
	justify-self: end;
}

.ctw-timeline--vertical.ctw-timeline--align-left .ctw-timeline__item--even .ctw-timeline__card {
	grid-column: 1;
}

.ctw-timeline--vertical.ctw-timeline--align-left .ctw-timeline__item--even .ctw-timeline__date,
.ctw-timeline--vertical.ctw-timeline--align-left .ctw-timeline__item--even .ctw-timeline__side-photo {
	grid-column: 3;
	justify-self: start;
}

.ctw-timeline--vertical.ctw-timeline--align-right .ctw-timeline__item--odd .ctw-timeline__card {
	grid-column: 3;
}

.ctw-timeline--vertical.ctw-timeline--align-right .ctw-timeline__item--odd .ctw-timeline__date,
.ctw-timeline--vertical.ctw-timeline--align-right .ctw-timeline__item--odd .ctw-timeline__side-photo {
	grid-column: 1;
	justify-self: end;
}

.ctw-timeline--vertical .ctw-timeline__item--side-photo .ctw-timeline__card-date {
	display: inline-flex;
}

/* Horizontal timeline */
.ctw-timeline--horizontal .ctw-timeline__viewport {
	overflow: hidden;
	padding: 10px 2px 22px;
}

.ctw-timeline--horizontal .ctw-timeline__list {
	align-items: stretch;
	display: flex;
	gap: var(--ctw-gap);
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	padding: 4px 3px 18px;
	position: relative;
	scroll-behavior: smooth;
	scroll-padding-inline: 3px;
	scroll-snap-type: inline mandatory;
	scrollbar-color: var(--ctw-line-color) transparent;
	scrollbar-width: thin;
	width: 100%;
}

.ctw-timeline--horizontal .ctw-timeline__list::-webkit-scrollbar {
	height: 7px;
}

.ctw-timeline--horizontal .ctw-timeline__list::-webkit-scrollbar-track {
	background: transparent;
}

.ctw-timeline--horizontal .ctw-timeline__list::-webkit-scrollbar-thumb {
	background: var(--ctw-line-color);
	border-radius: 999px;
}

.ctw-timeline--horizontal .ctw-timeline__item::before {
	background: var(--ctw-line-color);
	content: "";
	height: var(--ctw-line-width);
	left: calc(var(--ctw-marker-size) / 2);
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: calc(var(--ctw-card-width) + var(--ctw-gap));
}

.ctw-timeline--horizontal .ctw-timeline__item:last-child::before {
	display: none;
}

.ctw-timeline--horizontal .ctw-timeline__item {
	display: grid;
	flex: 0 0 var(--ctw-card-width);
	grid-template-rows: minmax(190px, 1fr) var(--ctw-marker-size) minmax(190px, 1fr);
	min-height: 540px;
	scroll-snap-align: start;
	width: var(--ctw-card-width);
}

.ctw-timeline--horizontal .ctw-timeline__marker {
	align-self: center;
	grid-column: 1;
	grid-row: 2;
	justify-self: start;
}

.ctw-timeline--horizontal .ctw-timeline__date {
	display: none;
}

.ctw-timeline--horizontal .ctw-timeline__side-photo {
	display: none;
}

.ctw-timeline--horizontal .ctw-timeline__card-date {
	display: inline-flex;
}

.ctw-timeline--horizontal .ctw-timeline__item--odd .ctw-timeline__card,
.ctw-timeline--horizontal.ctw-timeline--position-top .ctw-timeline__card {
	align-self: end;
	grid-column: 1;
	grid-row: 1;
	margin-bottom: 24px;
}

.ctw-timeline--horizontal .ctw-timeline__item--even .ctw-timeline__card,
.ctw-timeline--horizontal.ctw-timeline--position-bottom .ctw-timeline__card {
	align-self: start;
	grid-column: 1;
	grid-row: 3;
	margin-top: 24px;
}

.ctw-timeline--horizontal.ctw-timeline--position-top .ctw-timeline__item--even .ctw-timeline__card {
	grid-row: 1;
	margin: 0 0 24px;
}

.ctw-timeline--horizontal.ctw-timeline--position-bottom .ctw-timeline__item--odd .ctw-timeline__card {
	grid-row: 3;
	margin: 24px 0 0;
}

.ctw-timeline__navigation {
	display: flex;
	gap: 10px;
	justify-content: flex-end;
	margin-top: 12px;
}

.ctw-timeline__nav-button {
	align-items: center;
	appearance: none;
	background: var(--ctw-nav-bg);
	border: 1px solid color-mix(in srgb, var(--ctw-nav-color) 14%, transparent);
	border-radius: 999px;
	box-shadow: 0 8px 24px rgba(27, 39, 72, 0.1);
	color: var(--ctw-nav-color);
	cursor: pointer;
	display: inline-flex;
	height: var(--ctw-nav-size);
	justify-content: center;
	padding: 0;
	transition: opacity 160ms ease, transform 160ms ease;
	width: var(--ctw-nav-size);
}

.ctw-timeline__nav-button svg {
	fill: none;
	height: 20px;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
	width: 20px;
}

.ctw-timeline__nav-button:hover:not(:disabled) {
	transform: translateY(-2px);
}

.ctw-timeline__nav-button:disabled {
	cursor: default;
	opacity: 0.35;
}

/* Scroll entrance effects */
.ctw-timeline--js-enabled.ctw-timeline--animation-fade .ctw-timeline__item,
.ctw-timeline--js-enabled.ctw-timeline--animation-fade-up .ctw-timeline__item,
.ctw-timeline--js-enabled.ctw-timeline--animation-fade-side .ctw-timeline__item {
	opacity: 0;
	transition: opacity 560ms ease, transform 560ms cubic-bezier(0.2, 0.75, 0.3, 1);
}

.ctw-timeline--js-enabled.ctw-timeline--animation-fade-up .ctw-timeline__item {
	transform: translateY(28px);
}

.ctw-timeline--js-enabled.ctw-timeline--animation-fade-side .ctw-timeline__item--odd {
	transform: translateX(-28px);
}

.ctw-timeline--js-enabled.ctw-timeline--animation-fade-side .ctw-timeline__item--even {
	transform: translateX(28px);
}

.ctw-timeline--js-enabled.ctw-timeline--animation-fade .ctw-timeline__item.is-visible,
.ctw-timeline--js-enabled.ctw-timeline--animation-fade-up .ctw-timeline__item.is-visible,
.ctw-timeline--js-enabled.ctw-timeline--animation-fade-side .ctw-timeline__item.is-visible {
	opacity: 1;
	transform: translate(0, 0);
}

@media (max-width: 767px) {
	.ctw-timeline {
		--ctw-card-width: min(82vw, 350px);
		--ctw-gap: 30px;
		--ctw-marker-size: 44px;
	}

	.ctw-timeline--vertical .ctw-timeline__list::before {
		left: calc(var(--ctw-marker-size) / 2);
		transform: none;
	}

	.ctw-timeline--vertical .ctw-timeline__item,
	.ctw-timeline--vertical.ctw-timeline--align-left .ctw-timeline__item,
	.ctw-timeline--vertical.ctw-timeline--align-right .ctw-timeline__item {
		gap: 16px;
		grid-template-columns: var(--ctw-marker-size) minmax(0, 1fr);
	}

	.ctw-timeline--vertical .ctw-timeline__item .ctw-timeline__marker {
		grid-column: 1;
		grid-row: 1;
	}

	.ctw-timeline--vertical .ctw-timeline__item .ctw-timeline__card,
	.ctw-timeline--vertical.ctw-timeline--align-left .ctw-timeline__item .ctw-timeline__card,
	.ctw-timeline--vertical.ctw-timeline--align-right .ctw-timeline__item .ctw-timeline__card {
		grid-column: 2;
		grid-row: 1;
	}

	.ctw-timeline--vertical .ctw-timeline__item--side-photo {
		grid-template-rows: auto auto;
	}

	.ctw-timeline--vertical .ctw-timeline__item--side-photo .ctw-timeline__side-photo {
		display: block;
		grid-column: 2;
		grid-row: 1;
	}

	.ctw-timeline--vertical .ctw-timeline__item--side-photo .ctw-timeline__card,
	.ctw-timeline--vertical.ctw-timeline--align-left .ctw-timeline__item--side-photo .ctw-timeline__card,
	.ctw-timeline--vertical.ctw-timeline--align-right .ctw-timeline__item--side-photo .ctw-timeline__card {
		grid-column: 2;
		grid-row: 2;
	}

	.ctw-timeline--vertical .ctw-timeline__date {
		display: none;
	}

	.ctw-timeline--vertical .ctw-timeline__card-date {
		display: inline-flex;
	}

	.ctw-timeline--horizontal .ctw-timeline__list {
		gap: var(--ctw-gap);
		padding-bottom: 14px;
	}

	.ctw-timeline--horizontal .ctw-timeline__item::before {
		bottom: calc(var(--ctw-marker-size) / 2);
		top: auto;
	}

	.ctw-timeline--horizontal .ctw-timeline__item {
		grid-template-rows: minmax(0, 1fr) var(--ctw-marker-size);
		min-height: 470px;
	}

	.ctw-timeline--horizontal .ctw-timeline__item .ctw-timeline__marker {
		grid-row: 2;
	}

	.ctw-timeline--horizontal .ctw-timeline__item .ctw-timeline__card,
	.ctw-timeline--horizontal.ctw-timeline--position-bottom .ctw-timeline__item .ctw-timeline__card,
	.ctw-timeline--horizontal.ctw-timeline--position-top .ctw-timeline__item .ctw-timeline__card {
		align-self: end;
		grid-row: 1;
		margin: 0 0 20px;
	}

	.ctw-timeline__navigation {
		display: none;
	}

	.ctw-timeline--js-enabled.ctw-timeline--animation-fade-side .ctw-timeline__item--odd,
	.ctw-timeline--js-enabled.ctw-timeline--animation-fade-side .ctw-timeline__item--even {
		transform: translateY(22px);
	}
}

@media (max-width: 480px) {
	.ctw-timeline {
		--ctw-card-width: min(84vw, 320px);
	}

	.ctw-timeline__card-inner {
		padding: 22px;
	}

	.ctw-timeline__image {
		height: 180px;
	}

	.ctw-timeline__title {
		font-size: 21px;
	}

	.ctw-timeline__description {
		font-size: 15px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ctw-timeline *,
	.ctw-timeline *::before,
	.ctw-timeline *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}

	.ctw-timeline__item {
		opacity: 1 !important;
		transform: none !important;
	}
}
