/**
 * Meraki Slider
 *
 * Reproduces the Interico "Projects Slider" look (full-bleed slider, dark
 * slides, rotated counter, caption bar with a colour sweep on hover) without
 * depending on the theme stylesheet or its icon font.
 */

.meraki-slider {
	--meraki-slider-accent: #7d6741;
	--meraki-slider-height: 680px;
	--meraki-slider-bg: #555;
	--meraki-slider-slide-bg: #222;
	--meraki-slider-arrow-bg: #333;
	--meraki-slider-overlay: #333;
	--meraki-slider-overlay-opacity: 0.4;

	position: relative;
	padding: 0;
	margin: 0;
	background: var(--meraki-slider-bg);
	overflow: hidden;
}

.meraki-slider__track {
	margin: 0;
}

/* Keep the layout sane in the split second before slick initialises. */
.meraki-slider__track:not(.slick-initialized) {
	display: flex;
	overflow: hidden;
}

.meraki-slider__track:not(.slick-initialized) .meraki-slider__item {
	flex: 0 0 25%;
	max-width: 25%;
}

.meraki-slider__item {
	outline: none;
}

.meraki-slider .slick-slide {
	height: auto;
}

/* --- Slide -------------------------------------------------------------- */

.meraki-slider__box {
	position: relative;
	display: block;
	height: var(--meraki-slider-height);
	overflow: hidden;
	background: var(--meraki-slider-slide-bg);
	border: 0 !important;
	text-decoration: none;
	box-shadow: none;
}

.meraki-slider__box:focus {
	outline: none;
}

.meraki-slider__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	opacity: 0.85;
	transition: transform 0.5s, opacity 0.5s;
}

.meraki-slider__box:hover .meraki-slider__image {
	transform: scale(1.05);
	opacity: 1;
}

/* Transparent black wash over the image on hover. */
.meraki-slider__box::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	background: var(--meraki-slider-overlay);
	opacity: 0;
	pointer-events: none;
	transition: 0.3s all ease-in-out;
}

.meraki-slider__box:hover::before {
	opacity: var(--meraki-slider-overlay-opacity);
}

/* Plus marker revealed on hover, drawn with gradients so no icon font is needed. */
.meraki-slider__box::after {
	content: "";
	position: absolute;
	left: calc(50% - 25px);
	top: 50%;
	z-index: 3;
	width: 50px;
	height: 50px;
	opacity: 0;
	pointer-events: none;
	transition: 0.3s ease-in-out;
	background:
		linear-gradient(#fff, #fff) center / 2px 50px no-repeat,
		linear-gradient(#fff, #fff) center / 50px 2px no-repeat;
}

.meraki-slider__box:hover::after {
	opacity: 1;
	top: calc(50% - 30px);
}

/* --- Caption ------------------------------------------------------------ */

.meraki-slider__caption {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	z-index: 2; /* above the hover overlay, below the plus marker */
	color: #fff;
	transition: all 0.2s;
}

.meraki-slider__caption-inner {
	position: relative;
	padding: 30px;
	background: rgba(0, 0, 0, 0.5);
	text-align: left;
	transition: 0.4s;
	overflow: visible;
}

/* Colour sweep from the centre outwards on hover. */
.meraki-slider__caption-inner::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	right: 50%;
	height: 100%;
	width: 0;
	background: var(--meraki-slider-accent);
	transition: 0.3s ease-in-out;
	z-index: 0;
}

.meraki-slider__box:hover .meraki-slider__caption-inner::before {
	left: 0;
	right: 0;
	width: 100%;
}

.meraki-slider__number,
.meraki-slider__title {
	position: relative;
	z-index: 1;
}

.meraki-slider__number {
	position: absolute;
	top: -50px;
	left: 30px;
	display: block;
	font-size: 15px;
	font-weight: 400;
	line-height: 1;
	color: rgba(255, 255, 255, 0.6);
	transform: rotate(-90deg);
	transform-origin: left center;
	transition: 0.2s;
}

.meraki-slider__number::after {
	content: "";
	position: absolute;
	bottom: 4px;
	left: 100%;
	width: 52px;
	height: 2px;
	margin-left: 10px;
	background: rgba(255, 255, 255, 0.5);
	transition: 0.2s;
}

.meraki-slider--no-numbers .meraki-slider__number {
	display: none;
}

.meraki-slider__title {
	display: block;
	margin: 0;
	font-size: 1.3em;
	font-weight: 400;
	letter-spacing: 0;
	color: #fff;
	text-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
}

/* --- Caption style: middle (revealed on hover) -------------------------- */

.meraki-slider--captions-middle .meraki-slider__caption {
	top: 0;
	bottom: 0;
	height: 100%;
	opacity: 0;
	background: rgba(34, 34, 34, 0.55);
}

.meraki-slider--captions-middle .meraki-slider__box:hover .meraki-slider__caption {
	opacity: 1;
}

.meraki-slider--captions-middle .meraki-slider__caption-inner {
	position: absolute;
	top: 54%;
	left: 0;
	width: 100%;
	transform: translateY(-50%);
	background: none;
	text-align: center;
	transition: 0.4s;
}

.meraki-slider--captions-middle .meraki-slider__box:hover .meraki-slider__caption-inner {
	top: 50%;
}

.meraki-slider--captions-middle .meraki-slider__caption-inner::before {
	display: none;
}

.meraki-slider--captions-middle .meraki-slider__number {
	position: static;
	display: inline-block;
	margin-bottom: 10px;
	transform: none;
}

.meraki-slider--captions-middle .meraki-slider__number::after {
	display: none;
}

.meraki-slider--captions-middle .meraki-slider__title {
	font-size: 1.8em;
}

/* The full-height caption already darkens the slide, so skip the wash and the marker. */
.meraki-slider--captions-middle .meraki-slider__box::before,
.meraki-slider--captions-middle .meraki-slider__box::after {
	display: none;
}

/* --- Arrows ------------------------------------------------------------- */

.meraki-slider .slick-prev,
.meraki-slider .slick-next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 82px;
	height: 82px;
	padding: 0;
	border: 0;
	background: var(--meraki-slider-arrow-bg);
	color: transparent;
	font-size: 0;
	cursor: pointer;
	transition: 0.2s;
}

.meraki-slider .slick-prev {
	left: 0;
}

.meraki-slider .slick-next {
	right: 0;
}

.meraki-slider .slick-prev::before,
.meraki-slider .slick-next::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 16px;
	height: 16px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	opacity: 0.6;
	transition: 0.2s;
}

.meraki-slider .slick-prev::before {
	transform: translate(-40%, -50%) rotate(-135deg);
}

.meraki-slider .slick-next::before {
	transform: translate(-60%, -50%) rotate(45deg);
}

.meraki-slider .slick-prev:hover::before,
.meraki-slider .slick-next:hover::before {
	opacity: 1;
}

.meraki-slider .slick-prev:hover,
.meraki-slider .slick-next:hover {
	background: var(--meraki-slider-accent);
}

.meraki-slider .slick-prev.slick-disabled,
.meraki-slider .slick-next.slick-disabled {
	opacity: 0.35;
	cursor: default;
}

/* --- Responsive --------------------------------------------------------- */

@media (max-width: 1400px) {
	.meraki-slider {
		--meraki-slider-height: 580px;
	}

	.meraki-slider__track:not(.slick-initialized) .meraki-slider__item {
		flex-basis: 33.3333%;
		max-width: 33.3333%;
	}
}

@media (max-width: 990px) {
	.meraki-slider {
		--meraki-slider-height: 500px;
	}

	.meraki-slider__track:not(.slick-initialized) .meraki-slider__item {
		flex-basis: 50%;
		max-width: 50%;
	}

	.meraki-slider .slick-prev,
	.meraki-slider .slick-next {
		width: 56px;
		height: 56px;
	}
}

@media (max-width: 490px) {
	.meraki-slider {
		--meraki-slider-height: 440px;
	}

	.meraki-slider__track:not(.slick-initialized) .meraki-slider__item {
		flex-basis: 100%;
		max-width: 100%;
	}

	.meraki-slider__caption-inner {
		padding: 20px;
	}

	.meraki-slider__number {
		left: 20px;
	}
}

/* --- RTL ---------------------------------------------------------------- */

.rtl .meraki-slider__caption-inner {
	text-align: right;
}

.rtl .meraki-slider__number {
	left: auto;
	right: 30px;
	transform-origin: right center;
	transform: rotate(90deg);
}

.rtl .meraki-slider__number::after {
	left: auto;
	right: 100%;
	margin-left: 0;
	margin-right: 10px;
}
