/* ==========================================================================
   Owl Group — custom site styles
   --------------------------------------------------------------------------
   Loaded after the parent theme and child style.css. This is the place for
   site-specific CSS that complements Elementor's styling.
   ========================================================================== */

:root {
	--owl-grey-01: #373737;
	--owl-grey-02: #767676;
	--owl-grey-03: #CFCFCF;
	--owl-primary: #C1A01E;
	--owl-primary-dark: #A98C1A;
	--owl-primary-accent: #FAF8F0;
	--owl-secondary: #479EA2;
	--owl-secondary-dark: #30777A;
	--owl-secondary-accent: #DBEEEF;
	--owl-white: #FFFFFF;
	--owl-error: #b21111;
	--owl-font: "nexa-text", arial, sans-serif;
	--owl-transition: 0.25s ease-in-out;
}

html {
	scroll-behavior: smooth;
}

body {
	font-family: var(--owl-font);
	background-color: var(--owl-primary-accent);
	color: var(--owl-grey-01);
	overflow-x: clip;
}

/* --- 
	CSS Max Width Override 
--- */

.wp-child-theme-owl-group .elementor .inner-container,
body:not([class*=elementor-page-]).wp-child-theme-owl-group .site-main {
	max-width: min( 100%, 1250px ) !important;
}

/* --- 
	Site Wide Padding 
--- */

.wp-child-theme-owl-group .outer-container:not( .e-baad3b7-f18c304, .elementor-element-488cf84e, .e-604a475-47e90c5, .e-9802959-5bdc635 ) {
	padding-left: 1.5rem !important;
	padding-right: 1.5rem !important;

	@media screen and ( min-width: 1280px ) {
		padding-left: 2rem !important;
		padding-right: 2rem !important;
	}
}


/* ==========================================================================
   Typography
   ========================================================================== */

.wp-child-theme-owl-group {
	.elementor {
		h1, h2, h3, h4, h5, h6, p {
			margin-bottom: 1.5rem;
		}
		
		p {
			line-height: 1.6;
			
			strong {
				font-weight: 600;
			}
		}
	}
	
	.elementor-element-edit-mode {
		h1, h2, h3, h4, h5, h6, p {
			margin-bottom: 1.5rem !important;
			
			&:last-child {
				margin-bottom: 0;
			}
		}
	}
}


/* ==========================================================================
   Elementor Overrides
   ========================================================================== */

/* --- 
	UI Elements 
--- */

.wp-child-theme-owl-group {
	.elementor-icon {
		&:hover {
			transform: scale( 1.05 );
		}
	}
	
	.button-large {
		line-height: 1.2;
	}

	.link-with-arrow {
		display: inline-flex;
		align-items: center;
		gap: 1rem;
		padding-right: 0;
		transition: var(--owl-transition);
		
		&:after {
			content: '';
			position: relative;
			left: 0;
			width: 1rem;
			height: 1rem;
			mask-image: url('../images/chevron-right-icon.svg');
			mask-repeat: no-repeat;
			mask-position: center;
			mask-size: contain;
			background-color: var(--owl-primary);
			transition: var(--owl-transition);
		}
		
		&:hover {
			color: var(--owl-primary);
			
			&:after {
				left: 0.25rem;
			}
		}
	}
	
	.button-with-arrow {
		&:after {
			content: '';
			position: relative;
			margin-left: 0.5rem;
			width: 1rem;
			height: 1rem;
			mask-image: url('../images/chevron-right-icon.svg');
			mask-repeat: no-repeat;
			mask-position: center;
			mask-size: contain;
			background-color: var(--owl-grey-01);
			transition: var(--owl-transition);
		}
		
		&:hover {
			&:after {
				margin-left: 1rem;
			}
		}
	}
	
	.button-with-arrow.button-dark-grey {
		&:after {
			background-color: var(--owl-white);
		}
	}
	
	.button-with-arrow[download] {
		&:after {
			margin-left: 1rem;
			mask-image: url('../images/download-icon.svg');
			background-color: var(--owl-white);
		}
		
		&:hover {
			&:after {
				margin-top: 0.25rem;
			}
		}
	}

	/* -- Partner With Us: Teal Partnership Button -- */
	a.button-large[href*="owl-partnerships"] {
		background-color: var(--owl-secondary);
		color: var(--owl-white);

		&:after {
			background-color: var(--owl-white);
		}

		&:hover {
			background-color: var(--owl-secondary-dark);
		}
	}
	
	/* -- Stacked Buttons Margins -- */
	.button-large + .button-large {
		margin-top: 1rem;
	}
}

/* --- Lists --- */

.wp-child-theme-owl-group {
	.elementor-widget-text-editor {
		ul {
			margin-bottom: 1.5rem;
		}
	}
	
	ul.elementor-icon-list-items {
		li {
			svg {
				fill: var(--owl-primary);
			}
		}
	}
	
	.contact-details {
		ul {
			display: flex;
			justify-content: flex-start;
			flex-wrap: wrap;
			gap: 0.5rem !important;
			max-width: 400px;
			
			li {
				display: inline-flex;
				align-items: center;
				font-size: 0.9rem;
				margin: 0 !important;
				
				&:before {
					content: '';
					display: inline-flex;
					align-items: center;
					justify-content: center;
					height: 1.25rem;
					width: 1.375rem;
					margin: 0.25rem 0.75rem 0 0;
					mask-repeat: no-repeat;
					mask-position: top center;
					mask-size: 0.8rem;
					flex-shrink: 0;
					background-color: var(--owl-primary);
					mask-image: url('../images/map-marker-icon.svg');
				}
				
				a {
					transition: var(--owl-transition);
					
					&:hover {
						color: var(--owl-primary);
					}
				}
			}
			
			li:has([href^="mailto:"]) {
				&:before {
					mask-image: url('../images/envelope-icon.svg');
					mask-size: 1rem;
				}
			}
			
			li:has([href^="tel:"]) {
				&:before {
					mask-image: url('../images/phone-icon.svg');
					mask-size: 1rem;
				}
			}
		}
	}
}


/* ==========================================================================
   Hero
   ========================================================================== */

/* --- 
	Check if Hero element directly follows navigation 
	Rules to accommodate front-end markup and admin
--- */

body:has( .page-content > div > div.hero-image:first-child ),
body.elementor-editor-active:has( .page-content > div > div > div.hero-image:first-child ),
body:has( .elementor-location-single > div.hero-image:first-child ),
body.elementor-editor-active:has( .elementor-location-single > div > div.hero-image:first-child ),
body.elementor-editor-active:has( .elementor-location-single > div.hero-image:nth-child( 2 ) )  {
	header {
		position: absolute;
		top: 0;
		right: 0;
		width: 100%;
		z-index: 2;
		
		.outer-container {
			background-color: transparent;
		}
		
		.elementor-widget-theme-site-logo {
			a {
				width: 7rem;
				
				&:before {
					content: '';
					position: absolute;
					width: 100%;
					height: 100%;
					mask-image: url('../images/owl-group-logo.svg');
					mask-repeat: no-repeat;
					mask-position: center;
					mask-size: contain;
					background-color: var(--owl-white);
				}
				
				img {
					opacity: 0;
				}
			}
		}
		
		nav.elementor-nav-menu--main {
			ul.elementor-nav-menu {
				li.menu-item {
					a {
						color: var(--owl-white);
						
						span.sub-arrow {
							svg {
								fill: var(--owl-white);
							}
						}
					}
					
					ul.sub-menu {
						li.menu-item {
							a {
								color: var(--owl-grey-01);
							}
						}
					}
				}
			}
		}
		
		.elementor-nav-menu--dropdown-tablet {
			.elementor-menu-toggle {
				background-color: var(--owl-white);
				
				svg {
					fill: var(--owl-grey-01) !important;
				}
			}
		}
	}
}


/* --- 
	Navigation
--- */

.wp-child-theme-owl-group {
	header {
		nav.elementor-nav-menu--main {
			ul.elementor-nav-menu {
				li.menu-item {
					a {
						font-size: 1.1rem;
						transition: var(--owl-transition);
					}
					
					ul.sub-menu {
						border-radius: 0.5rem;
						box-shadow: 0 0 10px rgba( 0, 0, 0, 0.05 );
						overflow: clip;
						
						li {
							border-bottom: 1px solid var(--owl-primary-accent);
							
							&:last-child {
								border: none;
							}
							
							a {
								font-size: 1rem;
								background-color: var(--owl-white);
								
								&:hover {
									color: var(--owl-primary) !important;
									background-color: var(--owl-white) !important;
								}
							}
						}
					}
				}
			}
		}
		
		.elementor-nav-menu--dropdown-tablet {
			order: 3;
			
			.elementor-menu-toggle {
				height: 3rem;
				width: 3rem;
				border-radius: 50%;
				background-color: var(--owl-grey-01);
				
				svg {
					fill: var(--owl-white) !important;
				}
				
				+ nav.elementor-nav-menu--dropdown {
					top: 100% !important;
					padding: 1.5rem;
					background-color: transparent !important;
					
					ul.elementor-nav-menu {
						border-radius: 0.5rem;
						box-shadow: 0 0 10px rgba( 0, 0, 0, 0.05 );
						overflow: clip;
						
						li.menu-item {
							border-bottom: 1px solid var(--owl-primary-accent);
							
							&:last-child {
								border: none;
							}
							
							a {
								font-size: 1.1rem;
								color: var(--owl-grey-01);
								background-color: var(--owl-white);
								transition: var(--owl-transition);
								
								&:hover {
									color: var(--owl-primary) !important;
									background-color: var(--owl-white) !important;
								}
							}
							
							ul.sub-menu {							
								li {
									border-bottom: 1px solid color-mix( in srgb, var(--owl-primary-accent), var(--owl-primary) 10% );
									
									&:last-child {
										border: none;
									}
									
									a {
										font-size: 1rem;
										background-color: var(--owl-primary-accent);
										
										&:hover {
											background-color: var(--owl-primary-accent) !important;
										}
									}
								}
							}
						}
					}
				}
			}
		}
		
		a.button-large {
			order: 2;
			padding: 0 1.5rem;
			
			@media screen and ( min-width: 768px ) {
				padding: 0 4rem;
			}
			
			@media screen and ( min-width: 1024px ) {
				order: 3;
			}
		}
	}
}


/* --- 
	Hero Image
--- */

.wp-child-theme-owl-group {
	.hero-image {
		min-height: unset;
		background-color: var(--owl-primary-accent);
				
		@media screen and ( max-width: 767px ) {
			padding-top: 7rem;
		}
		
		h1, p {
			color: var(--owl-grey-01);
		}
		
		p {
			font-size: 1.1rem;
			
			&:last-child {
				margin: 0;
			}
		}
	}
	
	.hero-image:has( img ) {
		min-height: 80vh;
		background-color: var(--owl-grey-01);
		
		&:before {
			content: '';
			position: absolute;
			z-index: 1;
			inset: 0;
			height: 100%;
			width: 100%;
			background: linear-gradient( 0deg, rgba( 0, 0, 0, 0.45 ) 0%, rgba( 0, 0, 0, 0.65 ) 100% );
		}
		
		img.e-image-base {
			opacity: 1;
		}
		
		h1, p {
			color: var(--owl-white);
		}
	}
}

/* --- 
	Default page header in case hero not used
--- */

.wp-child-theme-owl-group {
	.page-header {
		padding-top: 6rem;
		padding-bottom: 6rem;
		text-align: center;
		
		h1.entry-title {
			max-width: 66.6%;
			margin: 0 auto;
		}
	}
}


/* ==========================================================================
   Footer - Inc Global Banner Bar
   ========================================================================== */
   
.wp-child-theme-owl-group {
	.banner-bar {
		h3 {
			margin-bottom: 0;
		}
	}
	
	footer {
		h4 {
			font-size: 1.25rem;
		}
		
		p.e-paragraph-base {
			margin-bottom: 0 !important;
		}
		
		ul.elementor-icon-list-items {
			li.elementor-icon-list-item {
				a {
					display: flex;
					align-items: center;
					
					.elementor-icon-list-icon {
						height: 1.25rem;
						width: 1.25rem;
						margin: 0 0.5rem 0 0 !important;
					}
					
					.elementor-icon-list-text {
						white-space: nowrap;
					}
				}
			}
		}
	}
}


/* ==========================================================================
   Loop Items - Post, Projects, Careers, Testimonials, Overlay and Showcase
   ========================================================================== */

.wp-child-theme-owl-group {
	.e-loop-item.type-post {
		display: flex;
		background-color: var(--owl-primary-accent);
		
		> .elementor-element {
			padding: 0;
						
			&:hover {
				.elementor-widget-theme-post-featured-image {
					img {
						transform: scale( 1.05 );
					}
				}
				
				.link-with-arrow {
					color: var(--owl-primary);
					
					&:after {
						left: 0.25rem;
					}
				}
			}
			
			.e-con-inner {
				gap: 0.75rem;
				padding: 0;
				
				.elementor-widget-theme-post-featured-image {
					overflow: clip;
					
					img {
						aspect-ratio: 16 / 10;
						object-fit: cover;
						transition: var(--owl-transition);
					}
				}
				
				.elementor-widget-post-info,
				.elementor-widget-theme-post-title,
				.elementor-widget-theme-post-excerpt,
				.link-with-arrow {
					padding: 0 1.5rem;
				}
				
				.elementor-widget-post-info {
					margin-top: 0.75rem;
					
					span {
						time {
							font-size: 0.9rem;
							color: var(--owl-grey-02);
						}
					}
				}
				
				.elementor-widget-theme-post-title {
					h3 {
						font-size: 1.5rem;
						line-height: 1.3;
						margin-bottom: 0 !important;
					}
				}
				
				.elementor-widget-theme-post-excerpt {
					
				}
				
				.link-with-arrow {
					gap: 0.5rem;
					margin: auto 0 1.5rem;
					font-weight: 500;
					
					&:before {
						content: '';
						position: absolute;
						inset: 0;
						height: 100%;
						width: 100%;
					}
				}
			}
		}
	}
	
	.e-loop-item.type-projects {
		display: flex;
		background-color: var(--owl-primary-accent);
		
		.project_origin-partnerships {			
			/* -- Homes or Partnerships -- */
			.elementor-element-3fd32e2 {
				background-color: var(--owl-secondary);
			}
		}
		
		> .elementor-element {
			padding: 0;
			
			&:has( a ) {
				.e-con-inner {
					padding-bottom: 3rem;
					
					&:before,
					&:after {
						content: '';
						position: absolute;
						bottom: 1.5rem;
						right: 1.5rem;
						height: 2.25rem;
						width: 2.25rem;
						border-radius: 50%;
						transition: var(--owl-transition);
						pointer-events: none;
					}
					
					&:before {
						background-color: var(--owl-grey-01);
					}
					
					&:after {
						z-index: 1;
						mask-image: url('../images/chevron-right-icon.svg');
						mask-repeat: no-repeat;
						mask-position: center;
						mask-size: 0.5rem;
						background-color: var(--owl-white);
					}
				}
				
				.elementor-widget-theme-post-featured-image {
					overflow: clip;
					
					img {
						transition: var(--owl-transition);
					}
				}
				
				.elementor-widget-theme-post-title {
					a {
						&:before {
							content: '';
							position: absolute;
							z-index: 1;
							inset: 0;
							height: 100%;
							width: 100%;
						}
					}	
				}
				
				&:hover {
					.e-con-inner {
						&:after {
							right: 1.375rem;
						}
					}
					
					.elementor-widget-theme-post-featured-image {
						img {
							transform: scale( 1.05 );
						}
					}
				}
			}
			
			.e-con-inner {
				gap: 1rem;
				padding: 0;
				
				/* -- Status Badge -- */
				.elementor-element-21142b0 {
					position: absolute;
					z-index: 1;
					top: 1rem;
					left: 1rem;
					height: 2rem;
					border-radius: 2rem;
					padding: 0 1.5rem;
					display: flex;
					align-items: center;
					justify-content: center;
					font-size: 0.9rem;
					background-color: var(--owl-white);
				}
				
				.elementor-widget-theme-post-featured-image {					
					img {
						aspect-ratio: 4 / 3;
					}
				}
				
				.elementor-element-bec2c03 {
					padding: 0;
					
					/* -- Homes or Partnerships -- */
					.elementor-element-3fd32e2 {
						margin-top: calc( -1rem + 2px );
						padding: 0.375rem 1.5rem;
						width: 100%;
						font-size: 0.9rem;
						font-weight: 700;
					}
					
					/* -- Partnership Logo -- */
					.elementor-element-6188952 {
						position: absolute;
						top: 0;
						right: 1.5rem;
						transform: translateY( calc( -100% + 0.5rem + 2px ) );
						height: 4rem;
						width: 4rem;
						padding: 0.5rem;
						border-radius: 50%;
						overflow: clip;
						background-color: var(--owl-white);
						
						img {
							height: 100%;
							width: 100%;
							object-fit: contain;
	
						}
					}
				}
				
				.elementor-widget-theme-post-title {
					position: unset;
					padding: 0 1.5rem;
					
					h3 {
						font-size: 1.5rem;
						line-height: 1.3;
						margin-bottom: 0 !important;
					}
				}
				
				/* -- Project Details List -- */
				.elementor-element-5fefd29 {
					padding: 0 1.5rem;
					
					ul.elementor-post-info {
						display: flex;
						flex-wrap: wrap;
						gap: 0.75rem;
						
						li {
							width: calc( 100% - 5rem );	
							font-size: 0.9rem;
							
							&:before {
								content: '';
								display: inline-flex;
								align-items: center;
								justify-content: center;
								height: 1.5rem;
								width: 1.5rem;
								margin-right: 0.5rem;
								mask-repeat: no-repeat;
								mask-position: center;
								background-color: var(--owl-grey-02);
							}
						}
						
						li.elementor-repeater-item-7ada3c1 {
							&:before {
								mask-image: url('../images/map-marker-icon.svg');
							}
						}
						
						li.elementor-repeater-item-af14057 {
							&:before {
								mask-image: url('../images/house-icon.svg');
							}
						}
						
						li.elementor-repeater-item-c9151e4 {
							&:before {
								mask-image: url('../images/houses-icon.svg');
							}
						}
					}
				}
			}
		}
	}
	
	/* -- Projects Overrides -- */
	.e-loop-item.type-projects.project_origin-partnerships {	
		.e-con-inner {		
			/* -- Homes or Partnerships -- */
			.elementor-element-3fd32e2 {
				background-color: var(--owl-secondary);
				
				span {
					color: var(--owl-white);
				}
			}
			
			/* -- Project Details List -- */
			.elementor-element-5fefd29 {
				ul.elementor-post-info {
					li {
						&:before {
							background-color: var(--owl-secondary);
						}
					}
				}
			}
		}
	}
	
	.e-loop-item.type-projects.project_origin-homes {	
		.e-con-inner {		
			/* -- Homes or Partnerships -- */
			.elementor-element-3fd32e2 {
				background-color: var(--owl-primary);
			}
			
			/* -- Project Details List -- */
			.elementor-element-5fefd29 {
				ul.elementor-post-info {
					li {
						&:before {
							background-color: var(--owl-primary);
						}
					}
				}
			}
		}
	}
	
	.e-loop-item.type-careers {
		> .elementor-element {
			gap: 0;
			padding: 1.5rem 0.75rem;
			background-color: var(--owl-white);
			
			@media screen and ( min-width: 1024px ) {
				padding: 1.5rem;
			}
			
			/* -- Title -- */
			.elementor-widget-theme-post-title {
				h3 {
					line-height: 1.2;
					font-size: 1.5rem;
					padding-right: 3.5rem;
					
					@media screen and ( min-width: 1024px ) {
						font-size: 2rem;
					}
				}
			}
			
			/* -- Type -- */
			.elementor-element-508973c {
				display: inline-flex;
				align-items: center;
				height: 2.25rem;
				border-radius: 2.25rem;
				padding: 0 1.5rem;
				font-weight: 500;
				background-color: var(--owl-primary);
				max-width: fit-content;
				margin-bottom: 1.5rem;
				order: 2;
				
				@media screen and ( min-width: 1024px ) {
					position: absolute;
					top: 2.75rem;
					right: 7.5rem;
				}
			}
			
			/* -- Vacancy Details List -- */
			.elementor-element-319cc45 {		
				order: 3;
							
				ul.elementor-post-info {
					display: flex;
					gap: 0.75rem;
					
					li {
						font-size: 0.9rem;
						
						&:before {
							content: '';
							display: inline-flex;
							align-items: center;
							justify-content: center;
							height: 1.5rem;
							width: 1.5rem;
							margin-right: 0.5rem;
							mask-repeat: no-repeat;
							mask-position: center;
							background-color: var(--owl-primary);
						}
					}
					
					li.elementor-repeater-item-febc976 {
						&:before {
							mask-image: url('../images/map-marker-icon.svg');
						}
					}
					
					li.elementor-repeater-item-4d3ed9f {
						&:before {
							mask-image: url('../images/laptop-icon.svg');
						}
					}
					
					li.elementor-repeater-item-70d9db7 {
						&:before {
							mask-image: url('../images/money-icon.svg');
						}
					}
				}
			}
			
			&:has( .e-n-accordion-item  ) {
				&:before,
				&:after {
					content: '';
					position: absolute;
					inset: unset;
					top: 1.5rem;
					right: 1.5rem;
					height: 1.75rem;
					width: 1.75rem;
					border-radius: 50%;
					pointer-events: none;
					transition: var(--owl-transition);
					
					@media screen and ( min-width: 1024px ) {
						top: 2.75rem;
						height: 2.25rem;
						width: 2.25rem;
					}
				}
				
				&:before {
					background-color: var(--owl-grey-01);
				}
				
				&:after {
					z-index: 1;
					mask-image: url('../images/chevron-down-icon.svg');
					mask-repeat: no-repeat;
					mask-position: center;
					mask-size: 1rem;
					background-color: var(--owl-white);
				}
				
				&:hover {
					&:after {
						top: calc( 1.5rem + 2px );
						
						@media screen and ( min-width: 1024px ) {
							top: calc( 2.75rem + 2px );
						}
					}
				}
				
				&:has( details:open ) {					
					&:after {
						top: 1.5rem;
						transform: rotate( 180deg );
						
						@media screen and ( min-width: 1024px ) {
							top: 2.75rem;
						}
					}
					
					&:hover {
						&:after {
							top: calc( 1.5rem - 2px );
							
							@media screen and ( min-width: 1024px ) {
								top: calc( 2.75rem - 2px );
							}
						}
					}					
				}
				
				.elementor-widget-n-accordion {
					position: unset;
					order: 4;
					
					.e-n-accordion {
						position: unset;
						
						.e-n-accordion-item {
							position: unset;
							
							.e-n-accordion-item-title {
								position: unset;
								border: none;
								padding: 0 3.25rem 0 0;
								
								@media screen and ( min-width: 1024px ) {
									padding: 0;
								}
								
								&:before {
									content: '';
									position: absolute;
									inset: 0;
									height: 100%;
									width: 100%;
								}
								
								.e-n-accordion-item-title-header {
									opacity: 0;
									height: 1px;
								}
							}
							
							.elementor-widget-text-editor {
								border-top: 1px solid var(--owl-grey-03);
								padding-top: 1rem;
								
								h4, h5, h6 {
									margin-bottom: 1rem;
								}						
								
								h4 {
									font-size: 1.25rem;
								}						
								
								h5 {
									font-size: 1.125rem;
								}		
							}
							
							.elementor-element-ee60e22 {
								text-align: left;
								
								a.elementor-button {
									height: 3rem;
									padding: 0 1.5rem;
									border-radius: 4rem;
									background-color: var(--owl-grey-01);
									display: inline-flex;
									align-items: center;
									font-weight: 500;
									color: var(--owl-white);
									
									&:after {
										content: '';
										position: relative;
										margin-left: 0.5rem;
										width: 1rem;
										height: 1rem;
										mask-image: url('../images/chevron-right-icon.svg');
										mask-repeat: no-repeat;
										mask-position: center;
										mask-size: contain;
										background-color: var(--owl-white);
										transition: var(--owl-transition);
									}
									
									&:hover {
										&:after {
											margin-left: 1rem;
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	
	/* -- Overlay Loop Container -- */
	.elementor-widget-loop-grid:has( .elementor-1136 ) {
		width: 100%;
	}
	
	/* -- Overlay Loop Item -- */
	.e-loop-item.elementor-1136 {
		position: relative;
		min-height: 22rem;
		width: 100%;
		background-color: var(--owl-grey-02);
		border-bottom: 10px solid var(--owl-grey-01);
		
		&:has( a ) {
			&:before,
			&:after {
				content: '';
				position: absolute;
				top: 1.5rem;
				right: 1.5rem;
				height: 2.25rem;
				width: 2.25rem;
				border-radius: 50%;
				transition: var(--owl-transition);
			}
			
			&:before {
				z-index: 1;
				background-color: var(--owl-white);
			}
			
			&:after {
				z-index: 2;
				mask-image: url('../images/chevron-right-icon.svg');
				mask-repeat: no-repeat;
				mask-position: center;
				mask-size: 0.5rem;
				background-color: var(--owl-grey-01);
			}
			
			.elementor-widget-theme-post-featured-image {
				overflow: clip;
				
				&:before {
					transition: var(--owl-transition);
				}
				
				img {
					transition: var(--owl-transition);
				}
			}
			
			&:hover {
				&:after {
					right: 1.375rem;
				}
				
				.elementor-widget-theme-post-featured-image {
					&:before {
						height: 33.3%;
					}
					
					img {
						transform: scale( 1.05 );
					}
				}
			}
		}
		
		> .elementor-element {
			justify-content: flex-end;
			
			.elementor-widget-theme-post-featured-image {
				position: absolute;
				inset: 0;
				height: 100%;
				width: 100%;
				
				&:before {
					content: '';
					position: absolute;
					z-index: 3;
					right: 0;
					bottom: 0;
					height: 75%;
					width: 100%;
					background: linear-gradient( 180deg, rgba( 0, 0, 0, 0.00 ) 25%, rgba( 0, 0, 0, 0.5 ) 100% );
				}
				
				img {
					height: 100%;
					width: 100%;
					object-fit: cover;
				}
			}
			
			.elementor-widget-theme-post-title {
				position: unset;
				z-index: 4;
				padding: 1rem 0.5rem;
				
				h3 {
					font-size: 1.375rem;
					color: var(--owl-white);
					
					a {
						&:before {
							content: '';
							position: absolute;
							z-index: 3;
							inset: 0;
							height: 100%;
							width: 100%;
						}
					}
				}
			}
		}
	}
	
	/* -- Overlay Loop Item - Owl Homes Post ID Styles -- */
	.e-loop-item.elementor-1136.post-1011 {
		border-color: var(--owl-primary);
	}
	
	/* -- Overlay Loop Item - Owl Partnerships Post ID Styles -- */
	.e-loop-item.elementor-1136.post-1013 {
		border-color: var(--owl-secondary);
	}
	
	/* -- Overlay Component -- */
	.e-56dbf23-abe0312 {
		position: relative;
		display: flex;
		flex-direction: column;
		min-height: 22rem;
		background-color: var(--owl-grey-02);
		border-bottom: 10px solid var(--owl-grey-01);
		
		&:has( a ) {
			&:before,
			&:after {
				content: '';
				position: absolute;
				inset: unset;
				top: 1.5rem;
				right: 1.5rem;
				height: 2.25rem;
				width: 2.25rem;
				border-radius: 50%;
				transition: var(--owl-transition);
			}
			
			&:before {
				z-index: 1;
				background-color: var(--owl-white);
			}
			
			&:after {
				z-index: 2;
				mask-image: url('../images/chevron-right-icon.svg');
				mask-repeat: no-repeat;
				mask-position: center;
				mask-size: 0.5rem;
				background-color: var(--owl-grey-01);
			}
			
			.e-7dfc279-54213e7 {
				overflow: clip;
				
				&:before {
					transition: var(--owl-transition);
				}
				
				img {
					transition: var(--owl-transition);
				}
			}
			
			&:hover {
				&:after {
					right: 1.375rem;
				}
				
				.e-7dfc279-54213e7 {
					&:before {
						height: 33.3%;
					}
					
					img {
						transform: scale( 1.05 );
					}
				}
			}
		}
			
		.e-7dfc279-54213e7 {
			position: absolute;
			inset: 0;
			height: 100%;
			width: 100%;
			padding: 0;
			
			&:before {
				content: '';
				position: absolute;
				z-index: 3;
				inset: unset;
				right: 0;
				bottom: 0;
				height: 75%;
				width: 100%;
				background: linear-gradient( 180deg, rgba( 0, 0, 0, 0.00 ) 25%, rgba( 0, 0, 0, 0.5 ) 100% );
			}
			
			img {
				height: 100%;
				width: 100%;
				object-fit: cover;
			}
		}
		
		.e-24d9c5b-1501e40 {
			position: unset;
			z-index: 4;
			margin-top: auto;
			padding: 1.5rem;
			
			h3 {
				font-size: 1.375rem;
				color: var(--owl-white);
				margin: 0;
				
				a {
					font-size: 1.375rem;
					color: var(--owl-white);
					
					&:before {
						content: '';
						position: absolute;
						z-index: 3;
						inset: 0;
						height: 100%;
						width: 100%;
					}
				}
			}
		}
	}
			
	/* -- Owl Homes Post Styles -- */
	.e-56dbf23-abe0312:has( a[href*="homes"] ) {
		border-color: var(--owl-primary);
	}
	.e-56dbf23-abe0312:has( a[href*="partnership"] ) {
		border-color: var(--owl-secondary);
	}
	
	/* -- Showcase Component -- */
	.e-div-block-base.e-7d84759-9ca1036 {
		display: flex;
		flex-wrap: wrap;
		background-color: var(--owl-white);
		
		/* -- Hover -- */	
		&:has( a ) {
			overflow: clip;
			
			img[data-interaction-id="764b9ea"] {
				transition: var(--owl-transition);
			}
			
			a.button-large {
				position: unset;
				margin-top: auto;				
				margin-right: auto;
				
				&:before {
					content: '';
					position: absolute;
					inset: 0;
					height: 100%;
					width: 100%;
				}
			}	
			
			&:hover {					
				img[data-interaction-id="764b9ea"] {
					transform: scale( 1.05 );
				}
			}	
		}
		
		/* -- Content Wrapper -- */
		.e-f0ac818-260ae0b {
			position: unset;
			display: flex;
			flex-direction: column;
			z-index: 1;
			padding: 1.5rem;
			width: 100%;
			background-color: var(--owl-white);
			border-bottom: 6px solid var(--owl-grey-02);
			transition: none;
			
			@media screen and ( min-width: 1024px ) {
				width: 55%;
			}
			
			/* -- Logo -- */
			img {
				position: relative;
				display: inline-block;
				height: 3.5rem;
				width: 100%;
				object-fit: contain;
				object-position: left center;
				margin-bottom: 1.5rem;
			}
			
			/* -- Visually Hidden Heading -- */
			h3 {
				border: 0;
				clip-path: inset(50%);
				height: 1px;
				margin: 0;
				overflow: hidden;
				position: absolute;
				white-space: nowrap;
				width: 1px;
			}	
		}
		
		/* -- Background Image -- */
		img[data-interaction-id="764b9ea"] {
			@media screen and ( min-width: 1024px ) {
				position: absolute;
				top: 0;
				right: 0;
				width: 45%;
				height: 100%;
				object-fit: cover;
			}
		}
		
		/* -- Owl Homes Post Styles -- */
		.e-f0ac818-260ae0b:has( a[href*="homes"] ) {
			border-color: var(--owl-primary);
			
			.button-large {
				background-color: var(--owl-primary);
				color: var(--owl-grey-01);
				
				&:after {
					background-color: var(--owl-grey-01);
				}
			}
		}
		
		.e-f0ac818-260ae0b:has( a[href*="partnership"] ) {
			border-color: var(--owl-secondary);
			
			.button-large {
				background-color: var(--owl-secondary);
			}
		}
	}
	
	/* -- Team Member Block -- */
	.elementor-element[data-interaction-id="6d0bbe7"] {
		background-color: var(--owl-primary-accent);
		padding: 0;
		
		img {
			aspect-ratio: 1 / 1;
			object-fit: cover;
		}
		
		.button-large {
			position: absolute;
			top: 1.5rem;
			right: 1.5rem;
			text-indent: -99999rem;
			white-space: nowrap;
			overflow: hidden;
			background-color: var(--owl-white);
			padding: 0;
			border-radius: 50%;
			height: 2.5rem;
			width: 2.5rem;
			color: transparent;
			transition: var(--owl-transition);
			
			&:before {
				content: '';
				position: absolute;
				inset: 0;
				width: 100%;
				height: 100%;
				mask-repeat: no-repeat;
				mask-position: center;
				background-color: var(--owl-grey-01);
				mask-image: url('../images/linkedin-icon.svg');
			}
			
			&:hover {
				transform: scale( 1.05 );
				background-color: var(--owl-primary);
			}
		}

		button.button-large {
			display: none;
		}

		.elementor-element {
			padding: 1rem;
			
			h3 {
				font-size: 1.25rem;
				margin-bottom: 0.5rem;
				
				+ p {
					font-weight: 500;
					margin-bottom: 0.75rem;
				}
			}
			
			p[data-interaction-id="d392136"] {
				display: inline-flex;
				align-items: center;
				gap: 0.25rem;
				margin: 0;
					
				&:before {
					content: '';
					display: inline-flex;
					align-items: center;
					justify-content: center;
					height: 1.5rem;
					width: 1.5rem;
					mask-repeat: no-repeat;
					mask-position: center;
					mask-image: url('../images/map-marker-icon.svg');
					background-color: var(--owl-primary);
				}
			}
		}
	}
	
	/* -- Testimonial Loop Item -- */
	.e-loop-item.type-testimonials {
		padding: 1.5rem;
		background-color: var(--owl-grey-01);
		
		@media screen and ( min-width: 768px ) {
			padding: 3rem;
		}
		
		.e-con-inner {
			.elementor-widget-text-editor {
				width: 100%;
				font-size: 1.25rem;
				font-weight: 700;
				color: var(--owl-white);
				
				&:before,
				&:after {
					content: '"';
					display: inline-block;
					margin: 0;
				}
			}
			
			.e-child {
				display: flex;
				flex-wrap: nowrap;
				flex-direction: row;
				align-items: center;
				justify-content: flex-start;
				padding: 0 4rem 0 0;
				margin-top: auto;
				gap: 1.5rem;
				
				&:after {
					content: '';
					position: absolute;
					right: 0;
					width: 2.5rem;
					height: 2.5rem;
					mask-image: url('../images/quote-mark-icon.svg');
					mask-repeat: no-repeat;
					mask-position: center;
					mask-size: contain;
					background-color: var(--owl-secondary);
				}
				
				.elementor-widget-image {
					display: inline-block;
					flex-shrink: 0;
					height: 4.25rem;
					width: 4.25rem;
					padding: 0.25rem;
					border-radius: 50%;
					overflow: clip;
					background-color: var(--owl-white);
					
					img {
						height: 100%;
						width: 100%;
						object-fit: contain;
					}
				}
				
				.elementor-widget-post-info {								
					ul {
						li {
							width: 100%;
							margin: 0;
							color: var(--owl-white);
							font-weight: 500;
						}
					}
				}
			}
		}
	}
}


/* ==========================================================================
   Single - All CPTs
   ========================================================================== */

/* --- 
   Post Info and Share Buttons
--- */

.wp-child-theme-owl-group {
	.elementor-post-info {
		time {
			color: var(--owl-grey-02);
		}
	}
	
	.elementor-widget-breadcrumbs {
		p {
			font-size: 0.9rem;
			
			a {
				font-weight: 500;
				text-decoration: underline;
				transition: var(--owl-transition);
				
				&:hover {
					text-decoration: none;
				}
			}
			
			.breadcrumb_last {
				color: var(--owl-grey-02);
			}
		}
	}
	
	.elementor-widget-share-buttons {
		.elementor-grid {
			display: flex;
			gap: 0.25rem;
			padding: 0.25rem 1rem;
			border-radius: 3rem;
			background-color: var(--owl-primary);
			
			.elementor-grid-item {
				margin: 0;
				
				.elementor-share-btn {
					height: 2.25rem;
					width: 2.25rem;
					background-color: var(--owl-primary);
					transition: var(--owl-transition);
					
					&:hover {
						filter: unset;
						background-color: var(--owl-primary-dark);
					}
					
					.elementor-share-btn__icon {
						&:after {
							content: '';
							position: relative;
							width: 100%;
							height: 100%;
							mask-repeat: no-repeat;
							mask-position: center;
							background-color: var(--owl-grey-01);
						}
						
						svg {
							display: none;
						}
					}
				}
				
				.elementor-share-btn_facebook {
					.elementor-share-btn__icon {
						&:after {
							mask-image: url('../images/facebook-icon.svg');
						}
					}
				}
				
				.elementor-share-btn_linkedin {
					.elementor-share-btn__icon {
						&:after {
							mask-image: url('../images/linkedin-icon.svg');
						}
					}
				}
				
				.elementor-share-btn_x-twitter {
					.elementor-share-btn__icon {
						&:after {
							mask-image: url('../images/x-icon.svg');
						}
					}
				}
				
				.elementor-share-btn_email {
					.elementor-share-btn__icon {
						&:after {
							mask-image: url('../images/envelope-icon.svg');
						}
					}
				}
			}
		}
	}
}


/* ==========================================================================
   Single - Project
   ========================================================================== */
  
.wp-child-theme-owl-group.single-projects {
	/* --- Hero --- */
	div.hero-image:has( img ) {
		.elementor-element {
			ul.elementor-post-info {
				display: flex;
				justify-content: center;
				
				li.elementor-repeater-item-89cb9db {
					height: 2rem;
					border-radius: 2rem;
					padding: 0 1.5rem;
					display: inline-flex;
					align-items: center;
					justify-content: center;
					margin-bottom: 2.5rem;
					background-color: var(--owl-white);
				}
				
				li.elementor-repeater-item-87af695 {
					margin-top: 1rem;
					
					span {
						font-weight: 500;
						color: var(--owl-white);
					}
				}
			}
		}
	}
	
	/* -- Homes or Partnerships -- */
	.elementor-element-554d1b6b {
		margin-top: 2px;
		padding: 0.5rem 1.5rem;
		font-weight: 700;
		background-color: var(--owl-grey-03);
		
		&:has( img ) {
			img {
				position: absolute;
				z-index: 1;
				top: 0;
				right: 0;
				transform: translateY( calc( -100% + 0.5rem + 2px ) );
				height: 5rem;
				width: 5rem;
				padding: 0.5rem;
				border-radius: 50%;
				object-fit: contain;
				background-color: var(--owl-white);
			}
		}
	}
	
	/* -- Project Details List -- */
	.elementor-element-ac2137a {		
		ul.elementor-post-info {
			display: flex;
			flex-wrap: wrap;
			gap: 0.75rem;
			
			li {		
				display: inline-flex;
				align-items: center;
				gap: 0.25rem;
				padding: 0 0.75rem;	
				margin: 0;
				height: 2rem;
				border-radius: 2rem;
				background-color: var(--owl-primary-accent);
				font-weight: 500;
					
				&:before {
					content: '';
					display: inline-flex;
					align-items: center;
					justify-content: center;
					height: 1.5rem;
					width: 1.5rem;
					mask-repeat: no-repeat;
					mask-position: center;
					background-color: var(--owl-grey-02);
				}
			}
			
			li.elementor-repeater-item-008ec6a {
				&:before {
					mask-image: url('../images/map-marker-icon.svg');
				}
			}
			
			li.elementor-repeater-item-6cc04d4 {
				&:before {
					mask-image: url('../images/house-icon.svg');
				}
			}
			
			li.elementor-repeater-item-7bfbe5b {
				&:before {
					mask-image: url('../images/houses-icon.svg');
				}
			}
		}
	}
	
	/* -- Post Content - If White Section -- */
	.elementor-widget-theme-post-content {
		.elementor {
			> .white-section:first-child {
				padding-top: 1rem;
			}
		}
	}
	
	.project_origin-homes {
		/* -- Homes or Partnerships -- */
		.elementor-element-554d1b6b {
			background-color: var(--owl-primary);
		}
		
		/* -- Project Details List -- */
		.elementor-element-ac2137a {
			
			ul.elementor-post-info {
				li {				
					&:before {
						background-color: var(--owl-primary);
					}
				}
			}
		}
	}
	
	.project_origin-partnerships {
		/* -- Homes or Partnerships -- */
		.elementor-element-554d1b6b {
			background-color: var(--owl-secondary);
			color: var(--owl-white);
		}
		
		/* -- Project Details List -- */
		.elementor-element-ac2137a {
			
			ul.elementor-post-info {
				li {				
					&:before {
						background-color: var(--owl-secondary);
					}
				}
			}
		}
	}
}


/* ==========================================================================
   Forms and Filters
   ========================================================================== */

.wp-child-theme-owl-group {
	form {
		input, 
		select {
			background-color: var(--owl-white);
			border-color: var(--owl-grey-03);
			border-radius: 2.5rem;
			box-shadow: 0 0 0 2px transparent;
			color: var(--owl-grey-01);
			outline: none;
			height: 2.5rem;
			
			&:active,
			&:focus {
				border-color: var(--owl-primary);
				box-shadow: 0 0 0 1px var(--owl-primary);
			}
		}
		
		select {
			transition: var(--owl-transition);
			appearance: none;
			background: var(--owl-white) url('../images/chevron-down-icon.svg') right 1rem center no-repeat;
			background-size: 0.9rem;
		}
		
		textarea {
			background-color: var(--owl-white);
			border-color: var(--owl-grey-03);
			border-radius: 0.5rem;
			box-shadow: none;
			outline: none;
			transition: var(--owl-transition);
			
			&:active,
			&:focus {
				border-color: var(--owl-primary);
				box-shadow: 0 0 0 1px var(--owl-primary);
			}
		}	
		
		input:where([type="checkbox"], [type="radio"]) {
			-webkit-appearance: none;
			appearance: none;
			width: 1.25rem !important;
			height: 1.25rem;
			vertical-align: top;
			margin: 0.125rem 0 0 0;
			border: 1px solid var(--owl-grey-03);
			border-radius: 4px;
			background: #fff no-repeat center center;
		}
		
		input[type="radio"] {
			border-radius: 50%;
		}
		
		input:where([type="checkbox"], [type="radio"]):where(:active:not(:disabled), :focus) {
			border-color: var(--owl-primary);
			outline: none;
		}
		
		input:where([type="checkbox"], [type="radio"]):disabled {
			opacity: 0.75;
		}
		
		input[type="checkbox"]:checked {
			background-image: url('../images/check-icon.svg');
			background-size: 75%;
		}
		
		input[type="radio"]:checked {
			background-image: url('../images/circle-icon.svg');
			background-size: 75%;
		}
		
		input[type="submit"] {
			display: inline-flex;
			align-items: center;
			font-weight: 500;
			color: var(--owl-grey-01);
			height: 3rem;
			padding: 0 2.5rem;
			border: none;
			border-radius: 3rem;
			background-color: var(--owl-primary);
		}
	}
	
	.nf-field-container {
		margin-bottom: 1rem;
	}
	
	.nf-after-field {
		text-align: left;
		font-weight: 500;
	}
	
	.nf-after-form-content .nf-error-field-errors {
		font-weight: 500;
	}
	
	.nf-response-msg p {
		color: var(--owl-grey-01);
	}
	
	.nf-error .ninja-forms-field {
		border-color: var(--owl-error);
	}
	
	.nf-error-msg, .ninja-forms-req-symbol {
		color: var(--owl-error);
	}
	
	.nf-fu-fileinput-button {
		display: inline-flex;
		align-items: center;
		font-weight: 500;
		font-size: 0.9rem;
		color: var(--owl-white);
		height: 2rem;
		padding: 0 2rem;
		border: none;
		border-radius: 2rem;
		background-color: var(--owl-grey-01);
	}
	
	.nf-fu-progress {
		height: 8px;
		border-radius: 8px;
		box-shadow: none;
		background-color: var(--owl-grey-03);
		margin: 0.5rem 0;
	}
	
	.nf-fu-progress-bar {
		height: 8px;
		border-radius: 8px;
		box-shadow: none;
		background-color: var(--owl-primary);
	}
	
	.files_uploaded {
		text-indent: -9999rem;
		
		a {
			position: absolute;
			left: 0;
			display: inline-flex;
			align-items: center;
			font-weight: 500;
			font-size: 0.8rem;
			color: var(--owl-grey-01);
			height: 1.5rem;
			padding: 0 1.5rem;
			border: none;
			border-radius: 2rem;
			background-color: var(--owl-primary);
			text-indent: -9999rem;
			margin: 0.25rem 0 0;
			
			&:before {
				content: 'Delete';
				text-indent: 0;
			}
		}
	}
	
	.nf-fu-button-cancel {
		display: none !important;
	}
	
	.elementor-element {
		.e-div-block-base:has( > .elementor-widget-facetwp-facet ) {
			background-color: var(--owl-white);
			border-radius: 1rem;
			padding: 0.5rem;
			gap: 0.5rem; 
			flex-wrap: wrap;
			margin: 1.5rem 0.75rem 0;
			
			@media screen and ( min-width: 768px ) {
				flex-wrap: nowrap;
				border-radius: 3.5rem;
				margin: 4.5rem 0 0;
				width: auto;
				min-width: 66.6%;
			}
		}
		
		.elementor-widget-facetwp-facet:not( :has( .facetwp-reset ) ) {
			flex: 100%;
			
			@media screen and ( min-width: 768px ) {
				flex: 1;
			}
		}
		
		.elementor-widget-facetwp-facet:has( .facetwp-hidden ) {
			display: none;
		}
		
		.facetwp-facet {
			margin: 0;
			
			select {
				height: 2.5rem;
				outline: none;
				appearance: none;
				color: var(--owl-grey-01);
				border-radius: 2.5rem;
				border: 1px solid var(--owl-grey-03);
				background: var(--owl-white) url('../images/chevron-down-icon.svg') right 1rem center no-repeat;
				background-size: 0.9rem;
			}
			
			button.facetwp-reset {
				height: 2.5rem;
				border: none;
				border-radius: 2.5rem;
				color: var(--owl-grey-01);
				background-color: var(--owl-primary);
				transition: var(--owl-transition);
				
				&:hover {
					background-color: var(--owl-primary-dark);
				}
			}
			
			&:has( .facetwp-load-more ) {
				margin-top: -1.5rem;
				
				button.facetwp-load-more {
					display: inline-flex;
					align-items: center;
					gap: 0.5rem;
					height: 2.5rem;
					border: none;
					border-radius: 2.5rem;
					color: var(--owl-white);
					background-color: var(--owl-grey-01);
					margin-bottom: 6rem;
					transition: var(--owl-transition);
					
					&:after {
						content: '';
						position: relative;
						margin-left: 0.5rem;
						display: inline-block;
						width: 1rem;
						height: 1rem;
						mask-image: url('../images/plus-icon.svg');
						mask-repeat: no-repeat;
						mask-position: center;
						mask-size: 0.9rem;
						background-color: var(--owl-white);
					}
					
					&:hover {
						background-color: var(--owl-grey-02);
					}
				}
			}
		}
	}
}


/* ==========================================================================
   Content Modules
   ========================================================================== */

/* --- 
   Icon Box
--- */

.wp-child-theme-owl-group {
	.elementor-element.elementor-widget-icon-box {
		.elementor-icon-box-wrapper {
			gap: 1.5rem;
			
			.elementor-icon-box-icon {
				.elementor-icon {
					pointer-events: none;
					
					svg {
						max-width: 2rem;
						max-height: 1.75rem;
					}
				}
			}
			
			.elementor-icon-box-content {
				h3, h3 span {
					font-size: 1.375rem;
					margin: 0 0 1rem !important;
				}
			}
		}
	}
}


/* --- 
   Counter
--- */

.wp-child-theme-owl-group {
	.elementor-element.elementor-widget-counter {
		.elementor-counter {
			gap: 0.75rem;
			
			.elementor-counter-number-wrapper {
				span {
					font-size: 2.75rem;
					color: var(--owl-primary);
				}
			}
			
			.elementor-counter-title {
				font-size: 1rem;
				line-height: 1.5;
				text-align: center;
				margin-bottom: 0 !important;
			}
		}
	}
}


/* --- 
   Accordion / FAQs
--- */

.wp-child-theme-owl-group {
	.elementor-element.elementor-widget-n-accordion {
		.e-n-accordion {
			details.e-n-accordion-item {
				summary.e-n-accordion-item-title {
					justify-content: space-between;
					padding: 1rem 0;
					border: none;
					border-bottom: 1px solid var(--owl-grey-03);
					
					.e-n-accordion-item-title-text {
						font-size: 1.1rem;
						font-weight: 500;
						transition: var(--owl-transition);
						
						&:hover {
							color: var(--owl-primary);
						}
					}
					
					.e-n-accordion-item-title-icon {
						margin-right: 0.5rem;
						
						svg {
							fill: var(--owl-primary);
						}
					}
					
					+ div {
						padding: 1rem 0;
						border: none;
						
						p:last-child {
							margin-bottom: 0 !important;
						}
					}
				}
			}
		}
		
		.e-n-accordion:has( .contact-details ) {
			details.e-n-accordion-item {
				summary.e-n-accordion-item-title {					
					.e-n-accordion-item-title-icon {
						height: 2rem;
						width: 2rem;
						border-radius: 50%;
						background-color: var(--owl-grey-01);
						transition: var(--owl-transition);
						
						&:before {
							content: '';
							position: absolute;
							z-index: 1;
							inset: 0;
							height: 100%;
							width: 100%;
							mask-image: url('../images/chevron-down-icon.svg');
							mask-repeat: no-repeat;
							mask-position: center;
							mask-size: 0.75rem;
							background-color: var(--owl-white);
							transition: var(--owl-transition);
						}
						
						svg {
							display: none;
						}
					}
					
					&:hover {
						.e-n-accordion-item-title-icon {
							background-color: var(--owl-primary);
						}
					}
				}
				
				summary.e-n-accordion-item-title[aria-expanded="true"] {
					.e-n-accordion-item-title-icon {
						&:before {
							transform: rotate( 180deg );
						}	
					}
				}
			}
		}
	}
}


/* --- 
   Icon List / Benefits
--- */

.wp-child-theme-owl-group {
	.elementor-location-single {
		.elementor-element.elementor-widget-icon-list {
			ul.elementor-icon-list-items {
				justify-content: space-between;
				gap: 1.5rem;
				margin: 0;
				
				li.elementor-icon-list-item {
					margin: 0 0 1rem 0;
					width: 100%;
					text-align: left;
					align-items: flex-start;
					
					.elementor-icon-list-icon {
						height: 1.375rem;
						width: 1.375rem;
						margin: 0 0.75rem 0 0;	
						flex-shrink: 0;				
						
						&:before {
							content: '';
							position: absolute;
							z-index: 1;
							inset: 0;
							height: 100%;
							width: 100%;
							mask-image: url('../images/check-circle-icon.svg');
							mask-repeat: no-repeat;
							mask-position: center;
							mask-size: contain;
							background-color: var(--owl-primary);
							transition: var(--owl-transition);
						}
						
						svg {
							display: none;
						}
					}
					
					.elementor-icon-list-text {
						align-self: flex-start;
						font-weight: 500;
					}
				}
				
				li.elementor-icon-list-item.elementor-inline-item {		
					margin: 0;			
					
					@media screen and ( min-width: 768px ) {
						width: calc( 50% - 1rem );
					}
					
					@media screen and ( min-width: 1024px ) {
						width: calc( 33.3% - 1rem );
					}
				}
			}
		}
	}
}


/* --- 
   Image Box / Block Grid
--- */

.wp-child-theme-owl-group {
	.elementor-element.elementor-widget-image-box {
		background-color: var(--owl-grey-01);
		align-self: stretch;
		width: 100%;
		
		@media screen and ( min-width: 768px ) {
			width: calc( 50% - 1rem );
		}
		
		@media screen and ( min-width: 1024px ) {
			width: calc( 33.3% - 1rem );
		}
		
		.elementor-image-box-wrapper {
			&:has( a ) {
				padding-bottom: 4rem;
				
				&:before,
				&:after {
					content: '';
					position: absolute;
					bottom: 1.5rem;
					right: 1.5rem;
					height: 2.25rem;
					width: 2.25rem;
					border-radius: 50%;
					transition: var(--owl-transition);
				}
				
				&:before {
					background-color: var(--owl-white);
				}
				
				&:after {
					z-index: 1;
					mask-image: url('../images/chevron-right-icon.svg');
					mask-repeat: no-repeat;
					mask-position: center;
					mask-size: 0.5rem;
					background-color: var(--owl-grey-01);
				}
				
				figure.elementor-image-box-img {
					overflow: clip;
					
					img {
						transition: var(--owl-transition);
					}
				}
				
				&:hover {
					&:after {
						right: 1.375rem;
					}
					
					figure.elementor-image-box-img {
						img {
							transform: scale( 1.05 );
						}
					}
				}
			}
			
			figure.elementor-image-box-img {
				width: 100%;
				margin: 0;
				
				img {
					aspect-ratio: 16 / 9;
					object-fit: cover;
				}
			}
			
			.elementor-image-box-content {
				padding: 1.5rem;
				text-align: left;
				
				.elementor-image-box-title {
					font-size: 1.5rem;
					margin: 0 0 1rem !important;
					color: var(--owl-white);
					
					a {
						color: var(--owl-white);
						
						&:after {
							content: '';
							position: absolute;
							inset: 0;
							height: 100%;
							width: 100%;
						}
					}
				}
				
				.elementor-image-box-description {
					color: var(--owl-white);
					
					&:last-child {
						margin-bottom: 0 !important;
					}
				}
			}
		}
	}
}


/* --- 
   Side By Side Image and Content
--- */

.e-9802959-5bdc635.outer-container,
.e-604a475-47e90c5.outer-container,
.e-488cf84e-0cc8a24.outer-container {			
	@media screen and ( max-width: 767px ) {
		padding-top: 0;
		padding-bottom: 0;
		
		.e-253039e6-51cd386,
		.e-287b48e3-eff648e {
			padding-right: 1.5rem;
			padding-left: 1.5rem;
		}
	}
}


/* --- 
   Elementor Carousel Defaults
--- */

.wp-child-theme-owl-group {
	.swiper-pagination-bullets {
		display: flex;
		justify-content: center;
		gap: 0.75rem;
		
		.swiper-pagination-bullet {
			height: 0.9rem;
			width: 0.9rem;
			opacity: 1;
			border: 1px solid var(--owl-secondary);
			background-color: transparent;
			margin: 0;
			transition: var(--owl-transition);
			
			&:hover {
				background-color: var(--owl-secondary-accent);
			}
		}
		
		.swiper-pagination-bullet.swiper-pagination-bullet-active {
			background-color: var(--owl-secondary);
		}
	}
	
	.elementor-swiper-button {
		height: 2.5rem;
		width: 2.5rem;
		background-color: var(--owl-grey-01);
		border-radius: 50%;
		transition: var(--owl-transition);
		
		svg {
			display: none;
		}	
		
		&:after {
			content: '';
			position: absolute;
			inset: 0;
			height: 100%;
			width: 100%;
			z-index: 1;
			mask-image: url('../images/chevron-right-icon.svg');
			mask-repeat: no-repeat;
			mask-position: center;
			mask-size: 0.675rem;
			background-color: var(--owl-white);
		}
		
		&:hover {
			background-color: var(--owl-primary);
		}
	}
	
	.elementor-swiper-button-prev {
		&:after {
			left: -2px;
			transform: scaleX( -1 );
		}				
		
		@media screen and ( min-width: 1024px ) {
			left: 33.3%;
		}
	}
	
	.elementor-swiper-button-next {
		&:after {
			right: -2px;
		}			
		
		@media screen and ( min-width: 1024px ) {
			right: 33.3%;
		}
	}
	
	.swiper-button-disabled {
		opacity: 0 !important;
		pointer-events: none;
	}
}


/* --- 
   Image Carousel
--- */

.wp-child-theme-owl-group {
	.elementor-element.elementor-widget-image-carousel {
		.elementor-image-carousel-wrapper {
			.elementor-image-carousel {
				display: flex;
				align-items: stretch;
				
				.swiper-slide {		
					height: auto;
					padding: 0 0.5rem;
					
					.swiper-slide-inner {		
						height: 100%;
						
						img {
							height: 100%;
							object-fit: cover;
						}
					}
				}				
				
				@media screen and ( min-width: 1024px ) {
					.swiper-slide {	
						padding: 0 1rem;			
						
						.swiper-slide-inner {
							background-color: var(--owl-grey-white);
						}	
						
						img {
							transition: var(--owl-transition);	
							opacity: 0.9;
						}
					}
					
					.swiper-slide.swiper-slide-next {																			
						img {
							opacity: 1;
						}
					}
				}
			}
		}
	}
}

/* --- 
   Logo Carousel
--- */

.wp-child-theme-owl-group {
	.elementor-element.logo-carousel {
		.elementor-image-carousel-wrapper {
			padding: 0;
			margin-bottom: 1.5rem;
			
			.elementor-image-carousel {
				.swiper-slide {
					.swiper-slide-inner {	
						padding: 0 2rem;
												
						img {
							height: 100%;
							object-fit: contain;
						}
					}
				}
			}
		}
	}
}

/* --- 
   Testimonial Carousel
--- */

.wp-child-theme-owl-group {
	.elementor-element.testimonial-carousel {
		.swiper {
			padding: 0;
			overflow: visible;
			margin-bottom: 1.5rem;
			
			.swiper-wrapper {
				.swiper-slide {
					transition: var(--owl-transition);	
					opacity: 0;
				}
				
				.swiper-slide-active,
				.swiper-slide-next {
					opacity: 1;
				}
			}
		}
		
		.swiper-pagination {
			position: relative;
			display: inline-flex;
			justify-content: center;
			width: 100%;
			inset: unset;
			transform: unset;
		}
	}
}


/* --- 
   Icon Block Carousel
--- */

.wp-child-theme-owl-group {
	.elementor-element.icon-block-carousel {
		padding: 0 1.5rem;
		
		.swiper {
			padding: 0;
			margin-bottom: 1.5rem;
			
			.swiper-wrapper {
				.swiper-slide {
					padding: 1.5rem;
					background-color: var(--owl-white);
					
					.elementor-widget-icon-box {
						.elementor-icon-box-wrapper {
							text-align: left;
							
							.elementor-icon-box-icon {
								.elementor-icon {
									
								}
							}
						}
						
						.elementor-icon-box-content {
							.elementor-icon-box-title {
								
							}
							
							.elementor-icon-box-description {
								
							}
						}
					}
				}
			}
		}
	}
}


/* --- 
   Custom Individual Testimonial
--- */

.wp-child-theme-owl-group {
	.elementor-element[data-interaction-id="600dd301"] {
		padding: 3rem;
		
		> p {
			width: 100%;
			font-size: 1.25rem;
			font-weight: 700;
			color: var(--owl-grey-01);
			
			&:before,
			&:after {
				content: '"';
				display: inline-block;
				margin: 0;
			}
		}
		
		.elementor-element[data-interaction-id="0298fad"] {
			display: flex;
			flex-wrap: nowrap;
			flex-direction: row;
			align-items: center;
			justify-content: flex-start;
			padding: 0;
			margin-top: auto;
			gap: 1.5rem;		
			
			@media screen and ( min-width: 1024px ) {
				padding: 0 4rem 0 0;
			}
			
			&:after {
				content: '';
				position: absolute;
				top: 0;
				right: 0;
				width: 1.5rem;
				height: 1.5rem;
				mask-image: url('../images/quote-mark-icon.svg');
				mask-repeat: no-repeat;
				mask-position: center;
				mask-size: contain;
				background-color: var(--owl-primary);	
				
				@media screen and ( min-width: 1024px ) {
					top: unset;
					width: 2.5rem;
					height: 2.5rem;
				}
			}
			
			img {
				display: inline-block;
				flex-shrink: 0;
				height: 4.5rem;
				width: 4.5rem;
				border-radius: 50%;
				overflow: clip;
				object-fit: contain;
				background-color: var(--owl-white);
			}
			
			.elementor-element[data-interaction-id="88818d0"] {
				p {
					margin-bottom: 0;
					
					&:first-child {
						font-weight: 500;
					}
				}
			}
		}
	}
	
	.primary-accent-section {
		.elementor-element[data-interaction-id="600dd301"] {
			background-color: var(--owl-white);	
		}
		
		.elementor-element[data-interaction-id="0298fad"] {
			img {
				border: 1px solid var(--owl-grey-03);
			}
		}
	}
}


/* ==========================================================================
   Backgrounds and Overrides
   ========================================================================== */
   
.wp-child-theme-owl-group {
	.dark-grey-section {
		h1,
		h2,
		h3,
		h4,
		h5,
		h6,
		p,
		a:not( .button-large ) {
			color: var(--owl-white);
		}
		
		.button-with-arrow {
			color: var(--owl-grey-01);
			background-color: var(--owl-white);
			
			&:after {
				background-color: var(--owl-grey-01);
			}
		}
	}
	
	.primary-accent-section,
	.white-section {
		h1,
		h2,
		h3,
		h4,
		h5,
		h6,
		p,
		a {
			color: var(--owl-grey-01);
		}
		
		.button-with-arrow {
			color: var(--owl-white);
			background-color: var(--owl-grey-01);
			
			&:after {
				background-color: var(--owl-white);
			}
		}
		
		.dark-grey-section {
			h1,
			h2,
			h3,
			h4,
			h5,
			h6,
			p,
			a:not( .button-large ) {
				color: var(--owl-white);
			}
			
			.button-with-arrow {
				color: var(--owl-grey-01);
				background-color: var(--owl-white);
				
				&:after {
					background-color: var(--owl-grey-01);
				}
			}
		}
	}
	
	.project_origin-partnerships,
	.partnership-section {
		.button-with-arrow {
			color: var(--owl-white);
			background-color: var(--owl-secondary);
			
			&:after {
				background-color: var(--owl-white);
			}
		}
				
		ul.elementor-icon-list-items {
			li.elementor-icon-list-item {
				.elementor-icon-list-icon {
					&:before {
						background-color: var(--owl-secondary) !important;
					}
				}
			}
		}
		
		.elementor-icon-box-icon {
			.elementor-icon {
				svg {
					path {
						fill: var(--owl-secondary) !important;
					}
				}
			}
		}
		
		.elementor-counter {
			.elementor-counter-number-wrapper {
				span {
					color: var(--owl-secondary) !important;
				}
			}
		}
		
		.e-loop-item.type-testimonials {
			background-color: var(--owl-secondary) !important;
		}
	}
	
	.partnership-section {		
		.e-loop-item.type-testimonials {
			background-color: var(--owl-secondary) !important;
			
			.elementor-element .e-con-inner .e-child:after {
				background-color: var(--owl-white) !important;
			}
		}
	}
	
	.project_origin-homes {		
		.e-loop-item.type-testimonials {
			.elementor-element .e-con-inner .e-child:after {
				background-color: var(--owl-primary) !important;
			}
		}
		
		.swiper-pagination-bullets {
			.swiper-pagination-bullet {
				border-color: var(--owl-primary);
				
				&:hover {
					background-color: var(--owl-primary-accent);
				}
			}
			
			.swiper-pagination-bullet.swiper-pagination-bullet-active {
				background-color: var(--owl-primary);
			}
		}
	}
	
	/* -- Remove top padding when 2 container same background colour -- */
	.white-section + .white-section,
	.dark-grey-section + .dark-grey-section,
	.primary-accent-section + .primary-accent-section {
		padding-top: 0;
	}
	
	/* -- Project loop item background colour override -- */
	.primary-accent-section {
		.e-loop-item.type-post,
		.e-loop-item.type-projects {
			background-color: var(--owl-white);
		}
	}
	
	.white-section {
		.elementor-element.icon-block-carousel {
			.swiper {
				.swiper-wrapper {
					.swiper-slide {
						padding: 1.5rem;
						background-color: var(--owl-primary-accent);
					}
				}
			}
		}
	}
}

/* ==========================================================================
   Pop Up Maker Plugin
   ========================================================================== */
   
html.pum-open.pum-open-overlay.pum-open-scrollable body>:not([aria-modal=true]) {
	padding-right: unset !important;
}

.wp-child-theme-owl-group {
	.pum-overlay {
		background-color: rgba( 0, 0, 0, 0.30 );
		
		.pum-container {
			top: 1.5rem !important;
			padding: 3rem;
			background-color: var(--owl-white);
			box-shadow: 0 0 1rem 0 rgba( 0, 0, 0, 0.15 );
			
			@media screen and ( min-width: 768px ) {
				padding: 3rem 6rem;
			}
			
			.pum-close {
				position: absolute;
				inset: unset;
				top: 1.5rem;
				right: 1.5rem;
				height: 2.25rem;
				width: 2.25rem;
				text-indent: -9999rem;
				border-radius: 50%;
				background-color: var(--owl-grey-01);
				transition: var(--owl-transition);
				
				&:after {
					content: '';
					position: absolute;
					z-index: 1;
					inset: 0;
					height: 100%;
					width: 100%;
					mask-image: url('../images/close-icon.svg');
					mask-repeat: no-repeat;
					mask-position: center;
					mask-size: 0.8rem;
					background-color: var(--owl-white);
				}
				
				&:hover {
					background-color: var(--owl-primary);
				}
			}
			
			.pum-title {
				color: var(--owl-grey-01);
				font-size: 2rem;
				font-weight: 700;
				margin-bottom: 1rem;
				box-shadow: unset;
				line-height: unset;
				text-align: center;
			}
			
			.nf-form-cont {
				#nf-field-32-container {
					margin-bottom: 2rem;
					
					label {
						display: none;
					}	
					
					input {
						border: none;
						padding: 0;
						pointer-events: none;
						text-align: center;
						font-size: 1.5rem;
						font-weight: 500;
					}
				}
				
				label {
					color: var(--owl-grey-01);
				}
				
				.nf-response-msg p {
					color: var(--owl-grey-01);
					text-align: center;
				}
			}
		}
	}
}