// colors

$main-text: #7f8c97; // main text
$link: #acb7c0; // anchor tags
$background: #e9f0f5; // body background color
$color-1: #303e49; // blue dark
$color-2: #c03b44; // red
$color-4: #75ce66; // green
$color-5: #f0ca45; // yellow

#ws-theme-timeline {
	position: relative;
	&::before {
		/* this is the vertical line */
		content: '';
	    position: absolute;
	    top: 0;
	    left: 20px;
	    height: 100%;
	    width: 2px;
	    background: #d7e4ed;
	}
}

.ws-theme-timeline-block {
	position: relative;
	margin: 20px 0;
	@include clearfix;

	&:first-child {
		margin-top: 0;
	}

	&:last-child {
		margin-bottom: 0;
	}
}

.ws-theme-timeline-img {
	position: absolute;
    top: 0;
    left: 5px;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background-color: #f56961;
    -webkit-transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    text-align: center;
    color: #fff;
    font-weight: 600;
    line-height: 31px;
    font-size: 16px;
    -webkit-transform: translateZ(0);
    -webkit-backface-visibility: hidden;
	i {
		display: block;
		width: 24px;
		height: 24px;
		position: relative;
		left: 50%;
		top: 50%;
		margin-left: -12px;
		margin-top: -12px;
		color:#fff;
	}
	/* Force Hardware Acceleration in WebKit */
	-webkit-transform: translateZ(0);
	-webkit-backface-visibility: hidden;
	.cssanimations &.is-hidden {
		visibility: hidden;
	}
	.cssanimations &.bounce-in {
		visibility: visible;
		-webkit-animation: cd-bounce-1 0.6s;
		-moz-animation: cd-bounce-1 0.6s;
		animation: cd-bounce-1 0.6s;
	}
}


.ws-theme-timeline-content {
	position: relative;
	margin-left: 60px;
	background: #e8e8e8;
	border-radius:4px;
	padding: 1em;
	box-shadow: 0 1px 0 darken($background, 5%);
	@include clearfix;

	h4 {
		color: $color-1;
		margin:0 0 15px;
		font-size:16px;
	}

	p, .cd-read-more, .cd-date {
		font-size:13px;
	}

	.cd-read-more, .cd-date {
		display: inline-block;
	}

	p {
		margin: 1em 0;
		line-height: 1.6;
	}
	.cd-date {
		float: left;
		padding: .8em 0;
		opacity: .7;
	}

	&::before {
		content: '';
		position: absolute;
		top: 16px;
		right: 100%;
		height: 0;
		width: 0;
		border: 7px solid transparent;
		border-right: 7px solid #e8e8e8;
	}
}
@-webkit-keyframes cd-bounce-1 {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.5);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale(1.2);
  }

  100% {
    -webkit-transform: scale(1);
  }
}
@-moz-keyframes cd-bounce-1 {
  0% {
    opacity: 0;
    -moz-transform: scale(0.5);
  }

  60% {
    opacity: 1;
    -moz-transform: scale(1.2);
  }

  100% {
    -moz-transform: scale(1);
  }
}
@keyframes cd-bounce-1 {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.5);
    -moz-transform: scale(0.5);
    -ms-transform: scale(0.5);
    -o-transform: scale(0.5);
    transform: scale(0.5);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale(1.2);
    -moz-transform: scale(1.2);
    -ms-transform: scale(1.2);
    -o-transform: scale(1.2);
    transform: scale(1.2);
  }

  100% {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
}
@-webkit-keyframes cd-bounce-2 {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-100px);
  }

  60% {
    opacity: 1;
    -webkit-transform: translateX(20px);
  }

  100% {
    -webkit-transform: translateX(0);
  }
}
@-moz-keyframes cd-bounce-2 {
  0% {
    opacity: 0;
    -moz-transform: translateX(-100px);
  }

  60% {
    opacity: 1;
    -moz-transform: translateX(20px);
  }

  100% {
    -moz-transform: translateX(0);
  }
}
@keyframes cd-bounce-2 {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-100px);
    -moz-transform: translateX(-100px);
    -ms-transform: translateX(-100px);
    -o-transform: translateX(-100px);
    transform: translateX(-100px);
  }

  60% {
    opacity: 1;
    -webkit-transform: translateX(20px);
    -moz-transform: translateX(20px);
    -ms-transform: translateX(20px);
    -o-transform: translateX(20px);
    transform: translateX(20px);
  }

  100% {
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -ms-transform: translateX(0);
    -o-transform: translateX(0);
    transform: translateX(0);
  }
}
@-webkit-keyframes cd-bounce-2-inverse {
  0% {
    opacity: 0;
    -webkit-transform: translateX(100px);
  }

  60% {
    opacity: 1;
    -webkit-transform: translateX(-20px);
  }

  100% {
    -webkit-transform: translateX(0);
  }
}
@-moz-keyframes cd-bounce-2-inverse {
  0% {
    opacity: 0;
    -moz-transform: translateX(100px);
  }

  60% {
    opacity: 1;
    -moz-transform: translateX(-20px);
  }

  100% {
    -moz-transform: translateX(0);
  }
}
@keyframes cd-bounce-2-inverse {
  0% {
    opacity: 0;
    -webkit-transform: translateX(100px);
    -moz-transform: translateX(100px);
    -ms-transform: translateX(100px);
    -o-transform: translateX(100px);
    transform: translateX(100px);
  }

  60% {
    opacity: 1;
    -webkit-transform: translateX(-20px);
    -moz-transform: translateX(-20px);
    -ms-transform: translateX(-20px);
    -o-transform: translateX(-20px);
    transform: translateX(-20px);
  }

  100% {
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -ms-transform: translateX(0);
    -o-transform: translateX(0);
    transform: translateX(0);
  }
}




//horizontal timeline

.ws-theme-horizontal-timeline {
	opacity: 0;
	margin: 2em auto;
	  -webkit-transition: opacity 0.2s;
  -moz-transition: opacity 0.2s;
  transition: opacity 0.2s;

	&::before {
		/* never visible - this is used in jQuery to check the current MQ */
		content: 'mobile';
		display: none;
	}

	&.loaded {
		/* show the timeline after events position has been set (using JavaScript) */
		opacity: 1;
	}

	.timeline {
		position: relative;
		height: 100px;
		width: 90%;
		max-width: 800px;
		margin: 0 auto;
	}

	.events-wrapper {
		position: relative;
		height: 100%;
		margin: 0 40px;
		overflow: hidden;

		&::after, &::before {
			/* these are used to create a shadow effect at the sides of the timeline */
			content: '';
			position: absolute;
			z-index: 2;
			top: 0;
			height: 100%;
			width: 20px;
		}

		&::before {
			left: 0;
			background-image: -webkit-linear-gradient( left , #f8f8f8, rgba(248, 248, 248, 0));
			background-image: linear-gradient(to right, #f8f8f8, rgba(248, 248, 248, 0));
		}

		&::after {
			right: 0;
			background-image: -webkit-linear-gradient( right , #f8f8f8, rgba(248, 248, 248, 0));
			background-image: linear-gradient(to left, #f8f8f8, rgba(248, 248, 248, 0));
		}
	}

	.events {
		/* this is the grey line/timeline */
		position: absolute;
		z-index: 1;
		left: 0;
		top: 49px;
		height: 2px;
		/* width will be set using JavaScript */
		background: darken($color-4, 10%);
		-webkit-transition: -webkit-transform 0.4s;
		-moz-transition: -moz-transform 0.4s;
		transition: transform 0.4s;
	}

	.filling-line {
		/* this is used to create the green line filling the timeline */
		position: absolute;
		z-index: 1;
		left: 0;
		top: 0;
		height: 100%;
		width: 100%;
		background-color: $color-2;
		-webkit-transform: scaleX(0);
		-moz-transform: scaleX(0);
		-ms-transform: scaleX(0);
		-o-transform: scaleX(0);
		transform: scaleX(0);
		-webkit-transform-origin: left center;
		-moz-transform-origin: left center;
		-ms-transform-origin: left center;
		-o-transform-origin: left center;
		transform-origin: left center;
		-webkit-transition: -webkit-transform 0.3s;
		-moz-transition: -moz-transform 0.3s;
		transition: transform 0.3s;
	}

	.events a {
		position: absolute;
		bottom: 0;
		z-index: 2;
		text-align: center;
		font-size: 1.3rem;
		padding-bottom: 15px;
		color: $color-1;
		/* fix bug on Safari - text flickering while timeline translates */
		-webkit-transform: translateZ(0);
		-moz-transform: translateZ(0);
		-ms-transform: translateZ(0);
		-o-transform: translateZ(0);
		transform: translateZ(0);

		&::after {
			/* this is used to create the event spot */
			content: '';
			position: absolute;
			left: 50%;
			right: auto;
			-webkit-transform: translateX(-50%);
			-moz-transform: translateX(-50%);
			-ms-transform: translateX(-50%);
			-o-transform: translateX(-50%);
			transform: translateX(-50%);
			bottom: -5px;
			height: 12px;
			width: 12px;
			border-radius: 50%;
			border: 2px solid #dfdfdf;
			background-color: #f8f8f8;
			-webkit-transition: background-color 0.3s, border-color 0.3s;
			-moz-transition: background-color 0.3s, border-color 0.3s;
			transition: background-color 0.3s, border-color 0.3s;
		}

		.no-touch &:hover::after {
			background-color: $color-2;
			border-color: $color-2;
		}

		&.selected {
			pointer-events: none;

			&::after {
				background-color: $color-2;
				border-color: $color-2;
			}
		}

		&.older-event::after {
			border-color: $color-2;
		}
	}

	@include large-screen {
		margin: 6em auto;
		
		&::before {
			/* never visible - this is used in jQuery to check the current MQ */
			content: 'desktop';
		}
	}
}

.cd-timeline-navigation a {
	/* these are the left/right arrows to navigate the timeline */
	position: absolute;
	z-index: 1;
	top: 50%;
	bottom: auto;
	-webkit-transform: translateY(-50%);
	-moz-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	-o-transform: translateY(-50%);
	transform: translateY(-50%);
	height: 34px;
	width: 34px;
	border-radius: 50%;
	border: 2px solid #dfdfdf;
	/* replace text with an icon */
	overflow: hidden;
	color: transparent;
	text-indent: 100%;
	white-space: nowrap;
	-webkit-transition: border-color 0.3s;
	-moz-transition: border-color 0.3s;
	transition: border-color 0.3s;
	
	&::after {
		/* arrow icon */
		content: '\f101';
		position: absolute;
		height: 16px;
		width: 16px;
		left: 50%;
		top: 50%;
		font-family:fontawesome;
		bottom: auto;
		right: auto;
		-webkit-transform: translateX(-50%) translateY(-50%);
		-moz-transform: translateX(-50%) translateY(-50%);
		-ms-transform: translateX(-50%) translateY(-50%);
		-o-transform: translateX(-50%) translateY(-50%);
		transform: translateX(-50%) translateY(-50%);
	}

	&.prev {
		left: 0;
		-webkit-transform: translateY(-50%) rotate(180deg);
		-moz-transform: translateY(-50%) rotate(180deg);
		-ms-transform: translateY(-50%) rotate(180deg);
		-o-transform: translateY(-50%) rotate(180deg);
		transform: translateY(-50%) rotate(180deg);
	}

	&.next {
		right: 0;
	}

	.no-touch &:hover {
		border-color: $color-2;
	}

	&.inactive {
		cursor: not-allowed;

		&::after {
			background-position: 0 -16px;
		}

		.no-touch &:hover {
			border-color: darken($color-4, 10%);
		}
	}
}

.ws-theme-horizontal-timeline .events-content {
	position: relative;
	width: 100%;
	margin: 2em 0;
	overflow: hidden;
	-webkit-transition: height 0.4s;
	-moz-transition: height 0.4s;
	transition: height 0.4s;

	li {
		position: absolute;
	  z-index: 1;
	  width: 100%;
	  left: 0;
	  top: 0;
	  -webkit-transform: translateX(-100%);
	  -moz-transform: translateX(-100%);
	  -ms-transform: translateX(-100%);
	  -o-transform: translateX(-100%);
	  transform: translateX(-100%);
	  padding: 0 5%;
	  opacity: 0;
	  -webkit-animation-duration: 0.4s;
	  -moz-animation-duration: 0.4s;
	  animation-duration: 0.4s;
	  -webkit-animation-timing-function: ease-in-out;
	  -moz-animation-timing-function: ease-in-out;
	  animation-timing-function: ease-in-out;

		&.selected {
			/* visible event content */
			  position: relative;
			  z-index: 2;
			  opacity: 1;
			  -webkit-transform: translateX(0);
			  -moz-transform: translateX(0);
			  -ms-transform: translateX(0);
			  -o-transform: translateX(0);
			  transform: translateX(0);
		}

		&.enter-right, &.leave-right {
			-webkit-animation-name: cd-enter-right;
  -moz-animation-name: cd-enter-right;
  animation-name: cd-enter-right;
		}

		&.enter-left,  &.leave-left {
			-webkit-animation-name: cd-enter-left;
  -moz-animation-name: cd-enter-left;
  animation-name: cd-enter-left;
		}
		
		&.leave-right, &.leave-left {
			-webkit-animation-direction: reverse;
  -moz-animation-direction: reverse;
  animation-direction: reverse;
		}
	}
	
	li > * {
		max-width: 800px;
		margin: 0 auto;
	}

	h2 {
		font-weight: bold;
		font-size: 2.6rem;
		font-weight: 700;
		line-height: 1.2;
	}

	em {
		display: block;
		font-style: italic;
		margin: 10px auto;

		&::before {
			content: '- ';
		}
	}

	p {
		font-size: 14px;
		color: shade($color-4, 40%);
	}

	em, p {
		line-height: 1.6;
	}

	@include mid-screen {

		h2 {
			font-size: 24px;
		}

		em {
			font-size: 20px;
		}

		p {
			font-size: 18px;
		}
	}
	
}

@-webkit-keyframes cd-enter-right {
  0% {
    opacity: 0;
    -webkit-transform: translateX(100%);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0%);
  }
}
@-moz-keyframes cd-enter-right {
  0% {
    opacity: 0;
    -moz-transform: translateX(100%);
  }
  100% {
    opacity: 1;
    -moz-transform: translateX(0%);
  }
}
@keyframes cd-enter-right {
  0% {
    opacity: 0;
    -webkit-transform: translateX(100%);
    -moz-transform: translateX(100%);
    -ms-transform: translateX(100%);
    -o-transform: translateX(100%);
    transform: translateX(100%);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0%);
    -moz-transform: translateX(0%);
    -ms-transform: translateX(0%);
    -o-transform: translateX(0%);
    transform: translateX(0%);
  }
}
@-webkit-keyframes cd-enter-left {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-100%);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0%);
  }
}
@-moz-keyframes cd-enter-left {
  0% {
    opacity: 0;
    -moz-transform: translateX(-100%);
  }
  100% {
    opacity: 1;
    -moz-transform: translateX(0%);
  }
}
@keyframes cd-enter-left {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-100%);
    -moz-transform: translateX(-100%);
    -ms-transform: translateX(-100%);
    -o-transform: translateX(-100%);
    transform: translateX(-100%);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0%);
    -moz-transform: translateX(0%);
    -ms-transform: translateX(0%);
    -o-transform: translateX(0%);
    transform: translateX(0%);
  }
}
