:root {
	--ff-color-green: #00a851;
	--ff-color-green-dark: #008a33;
	--ff-color-yellow: #f7ea48;
	--ff-black: #222;
	--ff-font: 'Commercial Script T OT', serif;
}

/*
 * MARK: Explug theme overrides
 */
.explug-content-wrap a:not(.wp-block-button__link, .elementor-button, .button) {
	color: var(--ff-color-green);
	text-decoration: underline;

	&:hover {
		color: var(--ff-color-green);
		text-decoration: none;
	}

	&:visited {
		color: var(--ff-color-green);
		text-decoration: underline;
	}
}

header.explug-page-header::before,
.page-title-wrap::after {
	content: none;
}

i.breadcrumb-delimiter::after {
	background: var(--ff-color-yellow);
}

.page-title-wrap {

	.page-title-elements {
		/* background-color: rgb(0, 168, 81, 0.85);
		padding: 1.5rem;
		-webkit-backdrop-filter: blur(4px);
		        backdrop-filter: blur(4px); */

		.page-title,
		.breadcrumb {
			text-shadow: 0 1px 14px rgb(0, 0, 0, 0.5);
		}
	}
}

.navbar > .container-fluid {
	justify-content: unset;
	flex-wrap: nowrap;
}

img.site-logo {
	width: 224px;
	max-width: 100%;
}

@media only screen and (min-width: 912px) and (max-width: 1700px) {
    .elements-3 > div > ul {
		flex: 0 1 20%;
        width: unset;
    }
}

@media only screen and (min-width: 912px) and (max-width: 1700px) {
    .elements-3 > div > ul.pull-right {
		flex: 0 1 5%;
        width: unset;
    }
}

@media only screen and (min-width: 912px) and (max-width: 1700px) {
    .elements-3 > div > ul.pull-center.justify-content-center {
		flex: 0 1 75%;
		justify-content: unset !important;
        width: unset;
    }
}

.mobile-menu-floating .search-form .search-field {
	border-color: #ccc;
	border-radius: 0;
}

ul.nav.wp-menu > li.menu-item-has-children:not(.menu-item-has-mega-children) > .sub-menu {
	width: 300px;
}

.header-navbar.navbar .wp-menu li > ul.sub-menu li {
	line-height: 22px;
}

.full-search-wrapper .search-form .search-field,
.error404-content .search-form .search-field {
	border-radius: 0;
}

/*
 * Family Fare custom styles
 */

.page-title {
	text-wrap: balance;
}

h2, h3, h4 {
	text-wrap: balance;
	margin-top: 1.5rem;
}

/*
 * MARK: promotions, club programs
 */
.family-fare-club-programs,
.family-fare-current-promotions,
.store-current-promo {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	@media (max-width: 992px) {
		margin: 0 auto;
		max-width: 348px;
	}
	@media (min-width: 993px) {
		grid-template-columns: repeat(3, 1fr);
	}

	.program,
	.promotion {
		background-color: #fff;
		box-shadow: 0 1px 24px 7px rgb(0, 0, 0, 0.075), 0 0 0 1px rgb(0, 0, 0, 0.025);
		@media (min-width: 993px) {
			box-shadow: 0 1px 24px 7px rgb(0, 0, 0, 0.05), 0 0 0 1px rgb(0, 0, 0, 0.025);
		}
	}

	.program-img,
	.promo-img {
		position: relative;
		z-index: 1;
		padding-bottom: 6px;
		height: 400px;

		&::after {
			content: "";
			background: linear-gradient(90deg, var(--ff-color-green) 0%, #fff 100%);
			position: absolute;
			bottom: 0;
			left: 0;
			z-index: 3;
			width: 100%;
			height: 6px;
		}

		img {
			position: absolute;
			top: 0;
			left: 0;
			z-index: 2;
			width: 100%;
			height: 100%;
			object-fit: cover;
			object-position: center;
		}
	}

	.program-content,
	.promo-content {
		padding: 2rem;

		.program-title,
		.promo-title {
			font-size: 1.5rem;
			line-height: 1.6rem;
			font-weight: 700;
			text-transform: uppercase;
			margin: 0 0 1rem;
		}

		.program-subhead,
		.promo-offer {
			color: var(--ff-color-green);
			font-size: 1.5rem;
			line-height: 1.6rem;
			font-weight: 700;
			text-transform: uppercase;
		}
	}
}

/*
 * MARK: club programs
 */
.family-fare-club-programs {

	.program {
		opacity: 0;
	}

	.program-img {
		height: 420px;
	}

	.program-description p {
		font-size: 1rem;
		margin-top: 1rem;
	}
}

@keyframes fade-in-up {
    from {
        opacity: 0;
        transform: translate3d(0, 100%, 0);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.fade-in-up {
    animation: fade-in-up 0.5s ease-out 0.25s 1 forwards;
}

/*
 * MARK: store locator
 */
.store_locator {

	.store_locator_sidebar {

		.store_modal_title {
			font-size: 1.75rem;
		}

		.wordpress-store-locator-address-title {
			font-weight: 500;
		}

		.store_locator_address_field {
			border-color: #333;
		}

		.store_locator_text_actions {
			display: block;
		}

		.store_locator_result_list_box {

			.store_locator_name {
				font-size: 1rem;
			}

			.store_locator_actions .btn-lg {
				font-size: 15px;
				margin-bottom: 0.5rem;
				padding: 0.4rem 0.6rem;
			}
		}
	}
}

.store_locator_embedded_search {

	.store_locator_search_box {
		display: grid;
		grid-template-columns: 1fr;
		gap: 1.5rem;
		padding: 0;
		width: 100%;
		@media (min-width: 769px) {
			grid-template-columns: 75% 1fr;
		}

		.store_locator_address_field {
			border-color: #333;
			height: 50px;
		}

		#store_locator_find_stores_button {
			border: 2px solid #fff;
			border-radius: 0;
			margin-top: 0;

			&:hover {
				border-color: #222;
			}
		}

		.store_locator_text_actions {
			color: #fff;

			&:hover {
				color: #fff;
			}
		}
	}
}

/*
 * MARK: store page
 */
.stores-template-default {

	.explug-content-wrap {
		padding-bottom: 0 !important;
		@media (min-width: 1025px) {
			padding-bottom: 50px;
		}

		.post-inner {
			margin-bottom: 0;
		}
	}

	h2 {
		font-size: 1.25rem;
		line-height: 1.5rem;
		font-weight: 500;
		text-transform: uppercase;
		margin-top: 1.5rem;
	}

	.explug-page-header {

		.page-title-wrap {
			padding: 150px 0 150px;

			.page-title,
			.breadcrumb,
			.breadcrumb a {
				color: #fff;
			}

			.breadcrumb a:hover {
				color: var(--ff-color-yellow);
			}
		}

		.store-header-hero {

			img {
			  position: absolute;
			  top: 0;
			  left: 0;
			  z-index: 2;
			  width: 100%;
			  height: 100%;
			  object-fit: cover;
			  object-position: center;
			}
		}
	}

	.store-page-wrap {
		display: grid;
		grid-template-columns: 1fr;
		@media (min-width: 912px) {
			grid-template-columns: calc(45% - 1rem) calc(55% - 1rem);
			gap: 2rem;
		}

		/* .store-column {} */

		.store-franchisee {
			border-bottom: 1px solid #e0e0e0;
			margin-bottom: 1.5rem;
			padding-bottom: 0.5rem;

			img {
				margin: 0;
				max-width: 340px;
				height: auto;
			}

			figcaption {
				color: var(--ff-color-green);
				font-weight: 500;
			}
		}

		.store-hours {
			border-bottom: 1px solid #e0e0e0;
			margin-bottom: 1.5rem;
			padding-bottom: 0.5rem;

			ul {
				font-size: 1rem;
				list-style: none;
				padding-left: 0;

				li {
					display: flex;

					.day {
						flex: 0 1 120px;
						color: #656565;
					}

					.time {
						flex: 0 1 calc(100% - 120px);
						text-transform: lowercase;
					}
				}
			}
		}

		.store-comment-card {
			padding: 1.5rem 0;

			.btn {
				padding: 0.6rem 1rem;
			}
		}

		.store-info {

			ul {
				font-size: 1rem;
				list-style: none;
				padding-left: 0;

				> li {
					padding-bottom: 4px;
				}

				ul {
					list-style: disc;
					margin-bottom: 0;
					padding-left: 1.5rem;
				}
			}
		}

		.store-address {

			.address-header {
				font-size: 1.1rem;
				text-transform: unset;
			}

			ul {
				list-style: none;
				padding-left: 0;
			}
		}

		.store-app {
			padding-top: 1rem;

			.btn {
				border-color: var(--ff-black);
				background-color: var(--ff-black);
				margin-right: 1rem;
				padding: 0.6rem 1rem;

				&:hover {
					color: #fff;
					border-color: #fff;
					background-color: var(--ff-color-green);
				}
			}
		}
	}

	.store-bottom-container {
		background-color: #eff4f6;
		position: relative;
		left: 50%;
		margin-top: 2rem;
		margin-left: -50vw;
		padding: 7% 5% 8%;
		width: 100vw;

		.promo-header {
			font-weight: 600;
			text-align: center;
			margin-top: 0;
			margin-bottom: 2rem;
		}

		.store-current-promo {
			margin: 0 auto;
			@media (max-width: 992px) {
				max-width: 348px;
			}
			@media (min-width: 993px) {
				max-width: 1170px;
			}
		}
	}
}

/*
* MARK: featured CTA
*/
.ff-cta .feature-box-wrapper {
	padding-right: 0;
	padding-left: 0;

	.feature-box-inner {
		box-shadow: 0 1px 24px 7px rgb(0, 0, 0, 0.05), 0 0 0 1px rgb(0, 0, 0, 0.025);
		position: relative;
		z-index: 1;
		padding-top: 320px;

		.feature-box-title,
		.fbox-content,
		.cea-button-wrapper {
			background-color: #fff;
			position: relative;
			z-index: 4;
			margin: 0;
			width: calc(100% - 3rem);
		}

		.feature-box-title {
			font-size: 1.5rem;
			padding: 2rem 2rem 0;
			box-shadow: 0 -1px 0 0 rgb(0, 0, 0, 0.025), 1px 0 0 0 rgb(0, 0, 0, 0.025);
		}

		.fbox-content {
			padding: 0 2rem;
			box-shadow: 1px 0 0 0 rgb(0, 0, 0, 0.025);
		}

		.cea-button-wrapper {
			padding: 2rem;
			box-shadow: 1px 0 0 0 rgb(0, 0, 0, 0.025);
		}

		.cea-feature-box-img {
			position: absolute;
			inset: 0;
			z-index: 2;
			margin-bottom: 0 !important;

			img {
				position: absolute;
				top: 0;
				left: 0;
				z-index: 3;
				width: 100%;
				height: 100%;
				object-fit: cover;
				object-position: center;
				vertical-align: bottom;
			}
		}
	}
}

/*
 * MARK: timeline
 */
.application-timeline {

	.timeline::before {
		@media (max-width: 768px) {
			display: none;
		}
	}

	.timeline > li > .timeline-sep-title {
		@media (max-width: 768px) {
			font-size: 48px;
			width: 100%;
		}
		@media (min-width: 769px) and (max-width: 992px) {
			font-size: 26px;
			padding-right: 30px;
			padding-left: 30px;
		}

		&::before,
		&::after {
			@media (max-width: 768px) {
				display: none;
			}
		}
	}

	.timeline > li.timeline-inverted > .timeline-sep-title {
		@media (max-width: 768px) {
			left: auto;
		}
		@media (min-width: 769px) and (max-width: 992px) {
			left: -78px;
		}
	}
}

/*
 * MARK: testimonials
 */
.post-type-archive-famfare_testimonials .type-famfare_testimonials,
.family-fare-testimonial-slider,
.family-fare-featured-testimonial {

	.testimonial-img,
	.featured-testimonial-img {
		position: relative;
		z-index: 1;
		margin-bottom: 2rem;
		width: 100%;
		@media (min-width: 769px) {
			float: left;
			margin: 4px 2rem 2rem 0;
			width: 320px;
			height: 320px;
		}

	 	img {
			@media (min-width: 769px) {
				position: absolute;
				top: 0;
				left: 0;
				z-index: 2;
				width: 100%;
				height: 100%;
				object-fit: cover;
				object-position: center top;
			}
		}
	}

	.entry-content,
	.testimonial-content,
	.featured-testimonial-container {
		padding: 2.5rem;

		.testimonial-quote p,
		.featured-testimonial-quote p {
			font-weight: 500;
			@media (min-width: 769px) {
				font-size: 1.5rem;
				line-height: 2rem;
			}

			&:first-child::before {
				content: "“";
			}

			&:last-child::after {
				content: "”";
			}
		}

		.testimonial-name,
		.testimonial-title,
		.testimonial-years,
		.testimonial-location,
		.featured-testimonial-title {
			color: var(--ff-color-green);
			font-size: 1rem;
			clear: left;
			@media (min-width: 769px) {
				font-size: 1.25rem;
			}
		}
	}
}

/*
 * MARK: testimonial featured
 */
.family-fare-featured-testimonial {
	background-color: #fff;
	box-shadow: 0 1px 24px 7px rgb(0, 0, 0, 0.05), 0 0 0 1px rgb(0, 0, 0, 0.025);
	margin: 0 auto;
	width: 100%;
	max-width: 1170px;

	.featured-testimonial-container {

		.featured-testimonial-title {
			padding-top: 0.5rem;
		}
	}
}

/**
 * MARK: testimonial slider
 */
.slider-group {
	background-color: #eff4f6;
	padding: 8% 5% 5%;
}

.family-fare-testimonial-slider {

	.glide__slide {
		padding: 1rem 3rem;
	}

	.glide__arrows {

		.glide__arrow--left,
		.glide__arrow--right {
			background-color: white;

			&:hover {
				border-color: var(--ff-black);
				background-color: var(--ff-color-yellow);
			}
		}

		.glide__arrow--left {
			left: -1rem;
		}

		.glide__arrow--right {
			right: -1rem;
		}
	}

	.glide__bullets {

		.glide__bullet {
			background-color: var(--ff-black);

			&.glide__bullet--active {
				background-color: var(--ff-color-green);
			}
		}
	}

	.testimonial-container {
		margin: 0 auto;
		background-color: #fff;
		box-shadow: 0 1px 24px 7px rgb(0, 0, 0, 0.05), 0 0 0 1px rgb(0, 0, 0, 0.025);
		width: 100%;
		max-width: 1170px;

		.testimonial-content {

			.testimonial-title {
				padding-top: 0.5rem;
			}

			.testimonial-years,
			.testimonial-location {
				font-size: 0.94rem;
				padding-top: 0.25rem;
			}
		}
	}
}

/*
 * MARK: testimonial archive
 */
.post-type-archive-famfare_testimonials .type-famfare_testimonials {
	border-radius: 0;
	box-shadow: 0 1px 24px 7px rgb(0, 0, 0, 0.05), 0 0 0 1px rgb(0, 0, 0, 0.025);
	padding: 0;

	/* &:has(.testimonial-img) {} */

	.testimonial-img {

		.featured-media {
			margin: 0 !important;
		}
	}

	.post-inner {

		.testimonial-quote p {
			font-size: 1.1rem;
			line-height: 1.3;
		}

		.testimonial-name,
		.testimonial-years,
		.testimonial-location {
			font-size: 1rem;
			text-align: left;
		}
	}
}

/*
 * MARK: not admin
 */
body:not(.wp-admin) {

	.slider-group {
		position: relative;
		left: 50%;
		margin-left: -50vw;
		width: 100vw;
	}
}

/*
 * MARK: search results
 */
.search-results {

	article {
		border-radius: 0;
		box-shadow: 0 1px 24px 7px rgb(0, 0, 0, 0.05), 0 0 0 1px rgb(0, 0, 0, 0.025);

		.entry-title {
			margin-top: 0;

			a {
				text-decoration: none;

				&:hover {
					text-decoration: underline;
				}
			}
		}

		.top-meta-wrap {
			display: none;
		}

		.bottom-meta-wrap {
			border-style: none;
			margin: 0;
			padding: 0;
			min-height: auto;
		}
	}
}
