
/* -------------------------------- 

Modules - reusable parts of our design

-------------------------------- */

.cd-container {
	/* this class is used to give a max-width to the element it is applied to, and center it horizontally when it reaches that max-width */
	width: 100%;
	margin: 0 auto;
	color: #2c2c2c;
	background-color: #eaeaea;
}

.cd-container::after {
	/* clearfix */
	content: '';
	display: table;
	clear: both;
}

/* -------------------------------- 

Main components 

-------------------------------- */

#cd-timeline {
	position: relative;
	margin-bottom:20px;
}

#cd-timeline::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 18px;
	height: 98%;
	width: 4px;
	left: 50%;
	margin-left: -2px;
	background-image: linear-gradient(to top, #bfbfbf 33%, rgba(255, 255, 255, 0) 0%);
	background-position: center;
	background-size: 4px 13px;
	background-repeat: repeat-y;
	display: block;
	transform:translateY(-50%);
}

.cd-timeline-block {
	position: relative;
	margin: 20px 0;
	padding:20px;
	box-sizing: border-box;
}
.cd-timeline-block:first-child{
	margin-top:0;
}

.cd-timeline-block:after {
	content: "";
	display: table;
	clear: both;
}

.cd-timeline-block:nth-child(odd) .cd-timeline-content {
	background: #282826;
	color: #FFF !important;
}

.cd-timeline-block:nth-child(odd) .cd-timeline-content:before {
	border-left-color: #282826;
}

.cd-timeline-block:nth-child(odd) .cd-date {
	color: #282826;
}

.cd-timeline-block:nth-child(odd) .cd-timeline-img {
	background: #282826;
}

.cd-timeline-img {
	position: absolute;
	top: 41px;
	left: 0;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #FFFFFF;
}

.cd-timeline-img img {
	display: block;
	width: 24px;
	height: 24px;
	position: relative;
	left: 50%;
	top: 50%;
	margin-left: -12px;
	margin-top: -12px;
}

@media only screen and (min-width: 1170px) {
	.cd-timeline-img {
		width: 20px;
		height: 20px;
		left: 50%;
		margin-left: -10px;
		/* Force Hardware Acceleration in WebKit */
		-webkit-transform: translateZ(0);
		-webkit-backface-visibility: hidden;
	}
}

.cd-timeline-content {
	position: relative;
	margin-left: 60px;
	background: white;
	border-radius: 0.25em;
	padding: 1em;
	box-shadow: 0 3px 3px #cacaca;
}

.cd-timeline-content:after {
	content: "";
	display: table;
	clear: both;
}

.cd-timeline-content .cd-date {
	float: left;
	padding: .8em 0;
}

.cd-timeline-content::before {
	content: '';
	position: absolute;
	top: 16px;
	right: 100%;
	height: 0;
	width: 0;
	border: 7px solid transparent;
	border-right: 7px solid white;
}
.cd-timeline-content .div_qui span{
	display: inline-block;
	vertical-align: middle;
}
.cd-timeline-content .div_qui p{
	margin:0 0 0 10px;
	display: inline-block;
	vertical-align: middle;
}
.cd-timeline-content .div_ou{
	text-align:right;
}
.cd-timeline-content .div_ou span{
	display: inline-block;
	vertical-align: middle;
}
.cd-timeline-content .div_ou p{
	margin:0 10px 0 0;
	display: inline-block;
	vertical-align: middle;
}
.cd-timeline-content .div_quoi{
	text-align: right;
}
.cd-timeline-content .div_quoi p{
	margin-bottom:0;
}


@media only screen and (min-width: 1170px) {
	.cd-timeline-content {
		margin-left: 0;
		padding: 1.6em;
		width: 42%;
	}
	.cd-timeline-content::before {
		top: 24px;
		left: 100%;
		border-color: transparent;
		border-left-color: white;
	}
	.cd-timeline-content .cd-date {
		position: absolute;
		width: 100%;
		left: 115%;
		top: 6px;
	}
	.cd-timeline-block:nth-child(even) .cd-timeline-content {
		float: right;
	}
	.cd-timeline-block:nth-child(even) .cd-timeline-content::before {
		top: 24px;
		left: auto;
		right: 100%;
		border-color: transparent;
		border-right-color: white;
	}
	.cd-timeline-block:nth-child(even) .cd-timeline-content .cd-date {
		left: auto;
		right: 115%;
		text-align: right;
	}
}
.container_bouton_timeline{
	text-align: center;
	margin:20px 0;
	clear:both;
	width:45%;
}
.container_bouton_timeline .bouton_timeline{
	border: 1px solid #FFF;
    padding: 6px 25px;
    transition: 0.2s;
    margin: 0 30px;
    position: relative;
    overflow: hidden;
    z-index: 1;
    background: #FFF;
    font-size: 0.9em;
    color: #FFF;
    cursor: pointer;
    width: 80px;
    box-sizing: content-box;
}
.container_bouton_timeline .bouton_timeline:after{
    position: absolute;
    background: #282826;
    height: 120%;
    width: 120%;
    top: 50%;
    left: 50%;
    transform: translateY(-50%);
    content: '';
    display: block;
    transform: translateX(-50%) translateY(-50%);
    transition: 0.2s;
    z-index: -1;
}
.container_bouton_timeline .bouton_timeline:hover {
    color: #282826;
    border: 1px solid #282826;
}
.container_bouton_timeline .bouton_timeline:hover:after {
    height: 0;
}
.container_bouton_timeline .bouton_timeline_actif:after{
	background: #c3e2df;
}
.container_bouton_timeline .bouton_timeline_actif:before{
	width: 6px;
    height: 12px;
    border-top: 1px solid transparent;
    border-left: 1px solid transparent;
    border-right: 1px solid #25a24e;
    border-bottom: 1px solid #25a24e;
    top: 6px;
    left: 10px;
    -webkit-transform: rotate(40deg);
    transform: rotate(40deg);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-transform-origin: 100% 100%;
    transform-origin: 100% 100%;
	content:'';
	position:absolute;
	display:block;
}
.container_bouton_timeline .bouton_timeline_actif:hover{
	color: #c3e2df;
    border: 1px solid #c3e2df;
}
.div_bouton_timeline{
	display:inline-block;
	vertical-align: top;
	max-width:48%;
}
.div_bouton_timeline span{
	font-size:0.8em;
}
.cd-timeline-block:nth-child(even) .container_bouton_timeline{
	float:right;
}
@media only screen and (max-width: 1170px) {
	#cd-timeline::before{
		margin-left:0;
		left:18px;
	}
	.container_bouton_timeline{
		width: auto;
    	margin-left: 60px;
	}
	.cd-timeline-block:nth-child(even) .container_bouton_timeline{
		float:none;
	}
	.cd-timeline-img{
		top:33px;
		left:10px;
	}
	.cd-timeline-block:nth-child(odd) .cd-timeline-content:before{
		border-left:0;
		border-right-color: #282826;
	}
}