/*--------------------------------------------------------------
11.0 Custom Widgets
--------------------------------------------------------------*/

/* Widget Title */
.widget-title {
	position: relative;
	margin: 0 0 25px 0;
	font-size: 40px;
	color: #9fc612;
}

.content {
	
	.custom-title,
	.widget-title {
		padding-bottom: 10px;
		margin-bottom: 25px;
		border-style: dashed;
		border-color: #dcdcdc;
		border-width: 0 0 1px 0;
	
		span.light {
			color: #333333;
			font-weight: normal;
			letter-spacing: -0.8px;
		}
	}

	.content-box,
	.border-box {
		position: relative;
		padding: 30px;
		border: 6px solid $light-gray-color;
		border-radius: 1px;

		p {
			&:last-of-type {
				margin-bottom: 0;
			}
		}
	}

	.border-box {

		.widget-title {
			font-size: 32px;
		}
	}

	.content-box {
		
		.widget-title {
			font-size: 28px;
			margin-bottom: 20px;
		}
	}

	.no-border {

		.widget-title {
			margin-bottom: 11px;
			padding: 0;
			border: none;
		}
	}

	.white .widget-title span.light {
		color: $white-color;
	}

	.testimonials .widget-title {
		margin-bottom: 0;
		padding-bottom: 15px;
		border-color: #d2d2d2;

		@media(min-width: $screen-md) {
			margin-bottom: 35px;
		}
	}
}

/* Widget CTA Banner */
// Fullwidth CTA Banner
.siteorigin-panels-stretch {

	.cta-banner {
		padding: 0;

		.cta-banner-text {

			.cta-banner-title {
				font-size: 22px;
			}
		}
	}
}

// Normal CTA Banner
.cta-banner {
	display: table;
	width: 100%;
	padding: 0 30px;

	&.with-subtitle {

		.cta-banner-text {
	    	padding: 30px 0 10px 0;
			
			@media(min-width: $screen-md) {
				padding: 26px 0;
			}

			.cta-banner-subtitle {
				font-size: 15px;
				color: #999999;
			}
		}

		.cta-banner-buttons {
			padding: 0 0 30px 0;

			@media(min-width: $screen-md) {
				padding: 26px 0;
			}
		}
	}

	&.cta-block {

		.cta-banner-text,
		.cta-banner-buttons {
			float: none;
			text-align: center;
		}

		.cta-banner-text {
			padding: 30px 0 22px 0;

			.cta-banner-title {
				font-size: 23px;
			}
		}

		.cta-banner-buttons {
			padding: 0 0 30px 0;
		}
	}

	.cta-banner-text {
		padding: 30px 0 10px 0;
		text-align: center;
		text-shadow: 0 1px 1px rgba(0,0,0,0.2);

		@media(min-width: $screen-md) {
			float: left;
			padding: 37px 0;
			text-align: left;
		}

		.cta-banner-title {
			font-size: 20px;
			font-weight: bold;
			color: #ffffff;
		}
	}

	.cta-banner-buttons {
		padding-bottom: 30px;
		text-align: center;

		@media(min-width: $screen-md) {
			float: right;
			padding: 25px 0;
			text-align: right;
		}

		a {
			margin: 10px 6px 0 0;

			@media(min-width: $screen-md) {
				margin: 0 6px 0 0;
			}

			&:last-of-type {
				margin-right: 0;
			}

			&.outline {

				&:hover {
					color: $white-color;
					border-color: rgba(250,250,250,0.7);
				}
			}
		}
	}
}


/* Widget CTA Button & Brochure */
.cta-button,
.brochure-box {
	position: relative;
	display: block;
	font-size: 14px;
	font-weight: bold;
	color: $white-color;
	text-decoration: none;
	border-radius: 1px;
	text-shadow: 0 1px 1px rgba(0,0,0,0.2);
	background-color: $primary-color;

	.fa {
		margin-right: 15px;
		padding: 15px 0 17px 0;
		width: 60px;
		font-size: 22px;
		color: rgba(50,50,50,0.2);
		text-align: center;
		border-right: 1px solid rgba(50,50,50,0.1);
		vertical-align: middle;
		text-shadow: none;
		transition: $primary-transition;
	}

	&::before {
		position: absolute;
		top: 15px;
		right: 20px;
		content: "\f0da";
		font-family: "FontAwesome";
		font-size: 16px;
		text-shadow: none;
		color: rgba(0,0,0,0.15);
	}

	&:hover,
	&:focus {
		color: $white-color;

		.fa {
			color: $white-color;
		}
	}
}

.sidebar {

	.widget-cta-button+ .widget-cta-button {
		margin-top: -15px;
	}
	.widget-brochure+ .widget-brochure {
		margin-top: -15px;
	}
}

body.blog .sidebar,
body.single-post .sidebar {

	.widget-cta-button+ .widget-cta-button {
		margin-top: -40px;
	}
	.widget-brochure+ .widget-brochure {
		margin-top: -40px;
	}
}


/* Widget Featured Page */
.post-item {
	position: relative;
	
	.post-item-image {
		position: relative;
		display: block;

		img {
			width: 100%;
		}

		&:hover {

			.overlay {
				visibility: visible;
				opacity: 1;
			}
		}
	}

	.overlay {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		visibility: hidden;
		opacity: 0;
		background-color: rgba(0,0,0,0.6);
		transition: all 0.2s ease-out;
	}
	
	.vertical-center {
		position: absolute;
		top: 50%;
		width: 100%;
		text-align: center;
		-ms-transform: translateY(-50%);
		-webkit-transform: translateY(-50%);
		-moz-transform: translateY(-50%);
		-o-transform: translateY(-50%);
		transform: translateY(-50%);

		span {
			display: inline-block;
			padding: 10px 17px;
			color: #ffffff;
			font-size: 13px;
			font-weight: bold;
			text-shadow: 0px 1px 1px rgba(0,0,0,0.1);
			border-radius: 1px;
			background-color: $primary-color;
			transition: $primary-transition;

			&:hover {
				background-color: darken( $primary-color, 3);
			}

			.fa {
				font-size: 20px;
			}
		}
	}

	.title {
		margin: 22px 0 15px 0;
		font-size: 18px;

		>a {
			color: $dark-color;
			transition: $primary-transition;
		}

		&:hover {
			color: $primary-color;
		}
	}

	.label-wrap {
		position: absolute;
		bottom: 25px;
		left: 33px;

		.label {
			position: relative;
			display: inline-block;
			height: 30px;
			padding: 0 12px;
			margin-right: 2px;
			vertical-align: middle;
			line-height: 30px;
			font-size: 13px;
			font-weight: bold;
			color: $white-color;
			text-transform: uppercase;
			text-shadow: 0 1px 1px rgba(0,0,0,0.1);
			border-radius: 1px;
			background-color: $primary-color;
			transition: $primary-transition;

			&:hover {
				background-color: #9ab643;

				&::after {
					border-top-color: #9ab643;
				}
			}

			&::after {
				position: absolute;
				top: 100%;
				left: 20px;
				content: "";
				height: 0;
				width: 0;
				pointer-events: none;
				border: solid transparent;
				border-color: rgba(136, 183, 213, 0);
				border-top-color: $primary-color;
				border-width: 5px;
				transition: $primary-transition;
			}
		}
	}
}


/* Widget Icon Box */
.w-footer,
.content {

	.icon-box {
	    position: relative;
	    display: block;
	    border: 1px solid rgba(0, 0, 0, 0.08);
	    border-radius: 1px;
	    transition: all 100ms ease-out;

	    .title {
	    	font-size: 18px;
	    }

	    .fa {
    		color: #a2c046;
    		transition: all 100ms ease-out;
	    }

	    &:hover {
	    	border-color: rgba(0,0,0,0.12);
	    	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);

	    	.fa {
	    		color: darken( $primary-color, 3);
	    	}
	    }


	    // Icon Box Smaller Icon
	    &.icon-small {
	    	padding: 20px 30px 28px 30px;

	    	.fa {
				display: inline-block;
				position: relative;
				top: 6px;
				margin: 0 20px 15px 0;
				font-size: 32px;
	    	}

	    	.title {
				display: inline-block;
				margin: 0px 0 20px 0;
	    	}

	    	.subtitle {
	    		display: block;
	    	}
	    }

	    // Icon Box Big Icon
	    &.icon-big {
	    	padding: 25px 30px 26px 95px;

	    	.fa {
				position: absolute;
				top: calc(50% - 20px);
				left: 25px;
				width: 40px;
				height: 40px;
				font-size: 42px;
				text-align: center;
	    	}
	    }
	}
}



/* Widget News Post List */
.widget_post_list {

	a {
		display: block;
		padding: 20px 30px;
		color: $text-color;
		text-decoration: none;
		border-style: solid;
		border-color: #e6e6e6;
		border-width: 0 1px 1px 1px;

		&:hover {
			background-color: #f9f9f9;
		}

		&:first-of-type {
			border-top-width: 1px;
		}
	}

	.post-title {
		font-size: 16px;
	}

	.more-news {
		position: relative;
		color: $primary-color;
		text-transform: uppercase;
		font-weight: bold;

		&::before {
			position: absolute;
			content: "\f0da";
			top: 20px;
			right: 30px;
			font-family: "FontAwesome";
		}
	}
}


/* Widget Block Posts */
.post-item.news {
	margin-bottom: 30px;
	background-color: $white-color;
	border-radius: 0 0 1px 1px;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
	transition: $primary-transition;

	&:hover {
		box-shadow: 0 2px 5px rgba(45, 45, 45, 0.09);
	}
	
	.post-item-image {
		overflow: hidden;
		
		img {
			-ms-transform: scale(1);
			-webkit-transform: scale(1);
			-moz-transform: scale(1);
			-o-transform: scale(1);
			transform: scale(1);
			transition: all 0.2s ease-out;
		}

		&:hover {

			img {
				-ms-transform: scale(1.05);
				-webkit-transform: scale(1.05);
				-moz-transform: scale(1.05);
				-o-transform: scale(1.05);
				transform: scale(1.05);
			}
		}
	}

	.title {
		margin: 0 0 15px 0;
	}

	.post-item-content {
		padding: 27px 33px 27px 33px;
	}
}

/* Widget Block Posts - More News Link */
.block-posts .widget-title a {
	float: right;
	margin-top: 20px;
	font-family: $primary-font;
	font-size: 14px;
	text-transform: uppercase;

	.fa {
		padding-left: 10px;
	}
}

/* Widget Testimonials */
.testimonials {

	.carousel {
		position: inherit;
		clear: both;
	}

	// Testimonial
	blockquote {
		margin: 0;
		padding: 0;
	}

	.testimonial-quote {
		position: relative;
		margin: 30px 0;
		padding: 40px 40px 40px 90px;
		font-family: $primary-font;
		font-size: 16px;
		line-height: 2;
		background-color: $white-color;
		border-radius: 1px;
	    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);

		@media(min-width: $screen-md) {
			margin: 0 0 30px 0;
		}

		&::before {
			position: absolute;
			content: '“';
			top: 30px;
			left: 20px;
			color: rgba(50,50,50,0.2);
			font-size: 100px;
			font-family: Georgia, Times, 'Times New Roman', serif;
			width: 50px;
			height: 50px;
			line-height: 97px;
			transition: $primary-transition;
		}

		&:hover {

			&::before {
				color: rgba(50,50,50,0.3);
			}
		}

		&::after {
			position: absolute;
			content: " ";
			top: 100%;
			left: 25px;
			height: 0;
			width: 0;
			border: solid transparent;
			border-color: rgba(72, 71, 71, 0);
			border-top-color: $white-color;
			border-width: 15px;
		}
	}

	// Testimonial Author 
	.testimonial-person {

		.testimonial-author {
			display: block;
			font-family: $secondary-font;
			font-size: 18px;
			font-weight: bold;
			font-style: normal;
			color: $dark-color;
		}

		.testimonial-location {
			font-size: 15px;
			font-style: normal;
			font-weight: bold;
			color: $primary-color;
		}
	}


	// Testimonial Carousel Control
	.testimonial-control {
		position: relative;
		float: right;
		margin: 1px 0 0 0;
		width: 63px;
		height: 50px;
		font-size: 22px;
		color: $white-color;
		line-height: 50px;
		text-align: center;
		background-color: $primary-color;
		box-shadow: 0 1px 2px rgba(0,0,0,0.05);
		border-radius: 1px;
		outline: none;
		transition: $primary-transition;

		.fa {
			font-weight: bold;
		}

		&:hover {
			color: $white-color;
			background-color: darken( $primary-color, 3);
			outline: none;

			&::before {
				background-color: darken( $primary-color, 3);
				border-color: rgba(255,255,255,0.2);
			}
		}

		&::before {
			position: absolute;
			content: "";
			top: 0;
			width: 13px;
			height: 50px;
			z-index: 1;
			background-color: $primary-color;
			-ms-transform: skew(-25deg);
			-webkit-transform: skew(-25deg);
			-moz-transform: skew(-25deg);
			-o-transform: skew(-25deg);
			transform: skew(-25deg);
			transition: $primary-transition;
		}

		&.left {
			border-radius: 2px 0 0 2px;

			&::before {
				right: 0;
				z-index: 0;
				border-right: 1px solid rgba(255,255,255,0.2);
			}
		}


		&.right {
			border-radius: 0 2px 2px 0;

			&::before {
				left: 0;
			}
		}
	}
}

/* Widget CounTo Box */
.panel-row-style[data-stretch-type="full"] .count-box {
	background-color: $white-color;
	border: none;
}
.panel-row-style[data-stretch-type="full"] .count-box:hover {
	box-shadow: 0 2px 3px rgba(50,50,50,0.13);
}

.counter {

	&.count-box {
		position: relative;
		padding: 30px;
		border: 1px solid #e6e6e6;
		border-radius: 1px;
		box-shadow: 0 2px 3px rgba(50,50,50,0.1);

		.count-icon {
			position: relative;
	    	float: left;
		
			.fa {
				width: 50px;
				height: 50px;
				text-align: center;
				background-color: $primary-color;
				border-radius: 50%;
				font-size: 26px;
				color: $white-color;
				line-height: 52px;
				text-shadow: 0 1px 1px rgba(50,50,50,0.1);
				-ms-transform: scale(1);
				-webkit-transform: scale(1);
				-moz-transform: scale(1);
				-o-transform: scale(1);
				transform: scale(1);
				transition: all 0.12s ease-out;

				&::after {
					bottom: -12px;
					left: calc(50% - 7px);
					border: solid transparent;
					content: " ";
					height: 0;
					width: 0;
					position: absolute;
					pointer-events: none;
					border-color: rgba(136, 183, 213, 0);
					border-top-color: $primary-color;
					border-width: 7px;
				}
			}
		}
	}
	
	&:hover {

		.count-icon {

			.fa {
				-ms-transform: scale(1.1);
				-webkit-transform: scale(1.1);
				-moz-transform: scale(1.1);
				-o-transform: scale(1.1);
				transform: scale(1.1);
				background-color: darken( $primary-color, 3);
			}
		}
	}
	
	.count-text {
		margin-left: 70px;
	}
	
	.count-number,
	.count-before,
	.count-after {
		display: inline-block;
		font-family: $secondary-font;
		font-size: 24px;
		font-weight: bold;
		color: $dark-color;
		line-height: 25px;
	}
	
	.count-title {
		display: block;
		font-size: 16px;
		font-weight: bold;
	}
}

/* Widget Social Media Icons */
.social-icons {

	a {
		display: inline-block;
		width: 45px;
		height: 45px;
		margin: 0 3px 3px 0;
		font-size: 20px;
		line-height: 45px;
		color: $white-color;
		text-align: center;
		background-color: $primary-color;
		border-radius: 1px;
	}
}

/* Client / Partner Logos  */
.client-logos {
	text-align: center;
	
	img {
		margin: 0 auto 20px;
		opacity: 0.6;
		border: 4px solid #e6e6e6;
		border-radius: 0;
		transition: $primary-transition;

		@media(min-width: $screen-md) {
			margin: 15px 0;
		}

		&:hover {
			opacity: 1;
			border-color: $primary-color;
		}
	}
}

/* Google Map Widget */
img[src*="gstatic.com/"],
img[src*="googleapis.com/"] {
	max-width: none;
}

/* Opening Hours Widget */
.opening-times {

	ul {
		padding-left: 0;
		margin: 0;

		li {
			padding: 10px 0;
			border-bottom: 1px solid rgba(0,0,0,0.05);
			list-style: none;
			text-align: left;

			&:first-of-type {
				padding-top: 0;
			}

			&:last-of-type {
				border-bottom: none;
				padding-bottom: 0;
			}

			&.today {
				font-weight: bold;
				color: $primary-color;
			}
		}

		span {

			&.right {
				float: right;

				&.label {
					padding: 3px 12px;
					color: $white-color;
					font-size: 12px;
					font-weight: bold;
					border-radius: 1px;
					background-color: $primary-color;
				}
			}
		}
	}
}

.content {

	.sidebar {

		.opening-times {

			ul {
				padding-left: 0;
			}
		}
	}
}

.footer {

	.opening-times {

		ul {

			li {
				padding: 5px 0;
				border-color: rgba(255,255,255,0.05);

				&:first-of-type {
					padding-top: 0;
				}

				span {

					&.label {
						background-color: rgba(0,0,0,0.15);
					}
				}
			}
		}
	}
}