/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.4.9
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Global design system */

html {
	scroll-padding-top: 120px;
}

body {
	font-family: "Geologica", sans-serif;
}

/* Homepage hero */

.home {
	overflow-x: hidden;
}

.elementor-element.elementor-element-c3d4e5f {
	background-position: center top !important;
	background-repeat: no-repeat !important;
	background-size: cover !important;
	box-sizing: border-box;
	height: 780px;
	max-height: 780px;
	min-height: 780px;
	overflow: hidden;
	padding: 0 !important;
	position: relative;
	width: 100%;
}

.elementor-element.elementor-element-c3d4e5f::after {
	background: linear-gradient(
		to bottom,
		rgba(255, 255, 255, 0) calc(52% + 50px),
		rgba(255, 255, 255, 0.16) calc(62% + 50px),
		rgba(255, 255, 255, 0.74) calc(86% + 50px),
		#ffffff 100%
	);
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: 1;
}

/* Elementor has no native icon-rotation hover control. The reusable class is
   stored on the widget, so it is preserved when the button is duplicated. */

.pfa-read-more-button .elementor-button-icon {
	transition: transform 300ms ease;
}

.pfa-read-more-button .elementor-button-icon svg {
	fill: none !important;
	height: 22px;
	width: 22px;
}

.pfa-read-more-button .elementor-button-icon svg path {
	fill: none !important;
}

.pfa-read-more-button .elementor-button:hover .elementor-button-icon,
.pfa-read-more-button .elementor-button:focus-visible .elementor-button-icon {
	transform: rotate(45deg);
}

/* The collaboration image, overlay, and content remain separate Elementor
   elements. CSS only layers them and expands the 1520 px stage on interaction. */

.pfa-expand-banner {
	aspect-ratio: 1920 / 453;
	flex: 0 0 auto;
	height: auto !important;
	max-width: none !important;
	overflow: hidden;
	position: relative;
	transition: width 800ms cubic-bezier(0.4, 0, 0.2, 1);
	width: min(1520px, 100%) !important;
}

.pfa-expand-banner:hover,
.pfa-expand-banner:focus-within {
	width: 100% !important;
}

.pfa-expand-banner__image,
.pfa-expand-banner__overlay {
	height: 100% !important;
	inset: 0;
	min-height: 0 !important;
	position: absolute !important;
	width: 100% !important;
}

.pfa-expand-banner__image {
	z-index: 0;
}

.pfa-expand-banner__image .elementor-widget-container,
.pfa-expand-banner__image img {
	display: block;
	height: 100% !important;
	object-fit: cover;
	object-position: center center;
	width: 100% !important;
}

.pfa-expand-banner__overlay {
	pointer-events: none;
	z-index: 1;
}

.pfa-expand-banner > .pfa-expand-banner__content {
	flex: 0 0 auto;
	margin-left: auto;
	margin-right: auto;
	max-width: 1280px !important;
	position: relative;
	width: min(1280px, calc(100% - 80px)) !important;
	z-index: 2;
}

@media (max-width: 767px) {
	.pfa-expand-banner {
		aspect-ratio: auto;
	}

	.pfa-expand-banner > .pfa-expand-banner__content {
		width: calc(100% - 40px) !important;
	}
}

/* Reusable carousel navigation */

.pfa-carousel-nav {
	align-items: center;
	display: flex;
	gap: 24px;
	margin: 30px auto 0;
	max-width: 760px;
	width: 100%;
}

.pfa-carousel-nav__edge {
	align-items: center;
	display: flex;
	flex: 1 1 0;
	gap: 20px;
}

.pfa-carousel-nav__edge--next {
	justify-content: flex-end;
}

.pfa-carousel-nav__button {
	appearance: none;
	background: transparent !important;
	background-color: transparent !important;
	border: 0;
	color: #000000;
	cursor: pointer;
	font-family: "Geologica", sans-serif;
	font-size: 20px;
	font-weight: 400;
	line-height: normal;
	margin: 0;
	padding: 0;
	transition: color 300ms ease;
}

.pfa-carousel-nav__line {
	background-color: #000000;
	display: block;
	flex: 1 1 auto;
	height: 1px;
	transition: background-color 300ms ease;
}

.pfa-carousel-nav__edge:hover .pfa-carousel-nav__button,
.pfa-carousel-nav__edge:focus-within .pfa-carousel-nav__button {
	color: #beb2a9;
}

.pfa-carousel-nav__edge:hover .pfa-carousel-nav__line,
.pfa-carousel-nav__edge:focus-within .pfa-carousel-nav__line {
	background-color: #beb2a9;
}

.pfa-carousel-nav__button:disabled {
	cursor: default;
	opacity: 0.35;
}

.pfa-carousel-nav__bullets {
	align-items: center;
	display: flex;
	gap: 8px;
	justify-content: center;
}

@media (max-width: 767px) {
	.pfa-carousel-nav__bullets {
		flex: 0 1 182px;
		flex-wrap: wrap;
		max-width: 182px;
		width: 100%;
	}
}

.pfa-carousel-nav__dot {
	align-items: center;
	appearance: none;
	background: transparent !important;
	background-color: transparent !important;
	border: 1px solid transparent;
	border-radius: 50%;
	box-sizing: border-box;
	cursor: pointer;
	display: inline-flex;
	height: 30px;
	justify-content: center;
	margin: 0;
	padding: 0;
	transition: border-color 300ms ease;
	width: 30px;
}

.pfa-carousel-nav__button:hover,
.pfa-carousel-nav__button:focus,
.pfa-carousel-nav__button:focus-visible,
.pfa-carousel-nav__dot:hover,
.pfa-carousel-nav__dot:focus,
.pfa-carousel-nav__dot:focus-visible {
	background: transparent !important;
	background-color: transparent !important;
}

.pfa-carousel-nav__dot span {
	background-color: #beb2a9;
	border-radius: 50%;
	display: block;
	height: 10px;
	transition: background-color 300ms ease;
	width: 10px;
}

.pfa-carousel-nav__dot:hover span,
.pfa-carousel-nav__dot:focus-visible span,
.pfa-carousel-nav__dot.is-active span {
	background-color: #000000;
}

.pfa-carousel-nav__dot.is-active {
	border-color: #beb2a9;
}

.pfa-carousel-nav__dot:focus-visible {
	outline: 1px solid #000000;
	outline-offset: 2px;
}

/* Home header */

.elementor-location-header {
	position: sticky;
	top: 0;
	z-index: 1000;
}

.admin-bar .elementor-location-header {
	top: 32px;
}

.elementor-element.elementor-element-a1b2c3d {
	--align-items: center;
	--display: flex;
	--flex-direction: row;
	--flex-wrap: nowrap;
	--gap: 0;
	--justify-content: space-between;
	background-color: #f3f3f3;
	box-sizing: border-box;
	display: flex;
	height: 120px;
	max-height: 120px;
	min-height: 0;
	padding: 0 5.35%;
	position: relative;
	width: 100%;
}

.elementor-element.elementor-element-b1c2d3e {
	--align-items: center;
	--display: flex;
	--flex-direction: row;
	--width: 310px;
	flex: 0 0 310px;
	padding: 0 !important;
	width: 310px;
}

.elementor-element.elementor-element-c1d2e3f {
	flex: 0 0 310px !important;
	max-width: none !important;
	width: 310px !important;
}

.elementor-element.elementor-element-c1d2e3f .elementor-widget-container,
.elementor-element.elementor-element-c1d2e3f a {
	display: block;
	line-height: 0;
}

.elementor-element.elementor-element-c1d2e3f img {
	display: block;
	filter: brightness(0);
	height: auto;
	max-height: 75px;
	max-width: 100%;
	object-fit: contain;
	width: auto;
}

.elementor-element.elementor-element-d1e2f3a {
	--align-items: center;
	--display: flex;
	--flex-direction: row;
	--flex-wrap: nowrap;
	--gap: 0;
	--justify-content: flex-end;
	--width: auto;
	flex: 1 1 0 !important;
	max-width: none !important;
	padding: 0 !important;
	width: auto !important;
}

.elementor-element.elementor-element-e1f2a3b {
	--display: flex;
	--flex-direction: row;
	--width: auto;
	flex: 0 0 auto !important;
	flex-direction: row !important;
	max-width: none !important;
	min-width: max-content;
	padding: 0 !important;
	width: auto !important;
}

.elementor-element.elementor-element-a2b3c4d,
.elementor-element.elementor-element-a2b3c4d .elementor-widget-container {
	flex: 0 0 auto !important;
	max-width: none !important;
	width: auto !important;
}

.elementor-element.elementor-element-a2b3c4d .elementor-nav-menu a[href*="/contact/"] {
	font-weight: 700;
}

@media (max-width: 767px) {
	.elementor-element.elementor-element-a1b2c3d {
		height: 90px;
		max-height: 90px;
		padding-left: 5.35%;
		padding-right: 5.35%;
	}

	.elementor-element.elementor-element-b1c2d3e,
	.elementor-element.elementor-element-c1d2e3f {
		flex-basis: 217px !important;
		max-width: 217px !important;
		width: 217px !important;
	}

	.elementor-element.elementor-element-c1d2e3f img {
		max-height: 52.5px;
		max-width: 70%;
	}

	.elementor-element.elementor-element-e1f2a3b,
	.elementor-element.elementor-element-a2b3c4d,
	.elementor-element.elementor-element-a2b3c4d .elementor-widget-container {
		min-width: 0;
	}

	.elementor-element.elementor-element-f1a2b3c {
		margin-left: 12px;
		padding-left: 12px !important;
	}

}

/* Global footer WordPress menus and replaceable image assets */

.pfa-footer__inner {
	margin-left: auto;
	margin-right: auto;
	max-width: 1520px !important;
	width: min(1520px, calc(100% - 40px)) !important;
}

.pfa-footer__logo img {
	display: block;
	filter: brightness(0);
	height: auto;
	max-height: 70px;
	object-fit: contain;
	width: 210px;
}

.pfa-footer__socials {
	flex: 0 0 50% !important;
	justify-content: flex-end !important;
	margin-left: auto;
	max-width: 50% !important;
	width: 50% !important;
}

.pfa-footer__logo {
	flex: 0 0 50% !important;
	justify-content: flex-start !important;
	max-width: 50% !important;
	text-align: left !important;
	width: 50% !important;
}

.pfa-footer__logo a,
.pfa-footer__logo img {
	margin-left: 0;
	margin-right: auto;
}

.pfa-footer__menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pfa-footer__menu li {
	margin: 0 0 13px;
	padding: 0;
}

.pfa-footer__menu a {
	color: #262626;
	font-family: "Geologica", sans-serif;
	font-size: 17px;
	font-weight: 300;
	line-height: 1.35;
	text-decoration: none;
	transition: color 300ms ease;
}

.pfa-footer__menu a:hover,
.pfa-footer__menu a:focus-visible {
	color: #ffffff;
}

.pfa-footer__social-icon,
.pfa-footer__social-icon img {
	display: block;
	height: 30px;
	object-fit: contain;
	width: 30px;
}

.pfa-footer__divider {
	height: 1px !important;
	min-height: 1px !important;
	padding: 0 !important;
}

.pfa-footer__legal {
	align-items: center !important;
}

.pfa-footer__legal .elementor-widget-container,
.pfa-footer__legal p {
	margin-bottom: 0;
	margin-top: 0;
}

.pfa-footer__credit {
	height: 100%;
}

.pfa-footer__social-icon img,
.pfa-footer__aboutnet img {
	transition: opacity 300ms ease;
}

.pfa-footer__social-icon a:hover img,
.pfa-footer__social-icon a:focus-visible img,
.pfa-footer__aboutnet a:hover img,
.pfa-footer__aboutnet a:focus-visible img {
	opacity: 0.6;
}

/* Reusable cropped logo treatment for brand slides */

.pfa-brand-logo img {
	border: 1px solid #000000;
	box-sizing: border-box;
	padding-bottom: 4px;
	padding-top: 4px;
}

.pfa-brand-logo--black img {
	filter: brightness(0);
}

.pfa-brand-logo-frame {
	border: 1px solid #000000;
	box-sizing: border-box;
	height: 60px;
	overflow: hidden;
	padding-bottom: 4px;
	padding-top: 4px;
}

.elementor-element.elementor-element-f1a2b3c {
	--align-items: center;
	--display: flex;
	--flex-direction: row;
	--width: auto;
	border-left: 1px solid rgba(0, 0, 0, 0.08);
	flex: 0 0 auto !important;
	flex-direction: row !important;
	margin-left: clamp(28px, 1.45vw, 42px);
	max-width: none !important;
	padding: 0 0 0 clamp(28px, 1.45vw, 42px) !important;
	width: auto !important;
}

.elementor-element.elementor-element-b2c3d4e {
	width: 25px;
}

.elementor-element.elementor-element-b2c3d4e .elementor-widget-container,
.elementor-element.elementor-element-b2c3d4e a {
	display: block;
	line-height: 0;
}

.elementor-element.elementor-element-b2c3d4e img {
	display: block;
	height: 25px;
	object-fit: contain;
	transition: opacity 300ms ease;
	width: 25px;
}

.elementor-element.elementor-element-b2c3d4e a:hover img,
.elementor-element.elementor-element-b2c3d4e a:focus-visible img {
	opacity: 0.55;
}

@media (max-width: 782px) {
	.admin-bar .elementor-location-header {
		top: 46px;
	}
}
