/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme/
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: 1.0.1
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
*/





/* Hide Loop Grid widgets when Elementor renders its empty-result state. */
.elementor-element-f7d99a1:has(.e-loop-nothing-found-message),
.elementor-element-f7d99a1:not(:has(.e-loop-item)) {
	display: none !important;
}

/* Contact form */
.contact-form,
.contact-form .gform_wrapper.gravity-theme,
.contact-form .gform_wrapper.gravity-theme form {
	box-shadow: none;
}

.contact-form .gform_wrapper.gravity-theme .gform_fields {
	column-gap: 20px;
	row-gap: 24px;
}

.contact-form .gform_wrapper.gravity-theme .gfield_label {
	display: block;
	margin: 0 0 10px;
	color: #1f272b;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.25;
}

.contact-form .gform_wrapper.gravity-theme .gfield_required {
	display: none;
}

.contact-form .gform_wrapper.gravity-theme #field_1_8 .gfield_label::after {
	display: block;
	margin-top: 8px;
	content: "optional";
	font-size: 15px;
	font-style: italic;
	font-weight: 400;
	line-height: 1.25;
}

.contact-form .gform_wrapper.gravity-theme input[type="text"],
.contact-form .gform_wrapper.gravity-theme input[type="email"],
.contact-form .gform_wrapper.gravity-theme input[type="tel"],
.contact-form .gform_wrapper.gravity-theme input[type="date"],
.contact-form .gform_wrapper.gravity-theme select,
.contact-form .gform_wrapper.gravity-theme textarea {
	width: 100%;
	border: 1px solid #c8c4bd;
	border-radius: 0;
	background-color: #ffffff;
	box-shadow: none !important;
	color: #1f272b;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 16px;
	line-height: 1.4;
    outline: none !important;
}

.contact-form .gform_wrapper.gravity-theme input[type="text"],
.contact-form .gform_wrapper.gravity-theme input[type="email"],
.contact-form .gform_wrapper.gravity-theme input[type="tel"],
.contact-form .gform_wrapper.gravity-theme input[type="date"],
.contact-form .gform_wrapper.gravity-theme select {
	height: 46px;
	min-height: 46px;
	padding: 10px 12px;
}

.contact-form .gform_wrapper.gravity-theme .gform-phone__input-wrapper {
	display: flex !important;
	align-items: stretch;
	width: 100%;
	height: 46px;
}

.contact-form .gform_wrapper.gravity-theme .ginput_country-selector_container {
	display: flex;
	flex: 0 0 auto;
}

.contact-form .gform_wrapper.gravity-theme .gform-phone__country-selector {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 96px;
	height: 46px;
	min-height: 46px;
	margin: 0;
	padding: 0 12px;
	border: 1px solid #c8c4bd !important;
	border-right: 0 !important;
	border-radius: 0 !important;
	background: #ffffff !important;
	box-shadow: none !important;
	color: #1f272b !important;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 14px;
	line-height: 1;
}

.contact-form .gform_wrapper.gravity-theme .ginput_phone_container {
	display: block;
	flex: 1 1 auto;
	min-width: 0;
}

.contact-form .gform_wrapper.gravity-theme input.gform-phone__input {
	display: block;
	width: 100%;
	margin: 0;
}

.contact-form .gform_wrapper.gravity-theme .gform-phone__input-wrapper:focus-within {
	outline: 2px solid rgba(53, 94, 75, 0.25);
	outline-offset: 1px;
}

.contact-form .gform_wrapper.gravity-theme .gform-phone__input-wrapper:focus-within .gform-phone__country-selector,
.contact-form .gform_wrapper.gravity-theme .gform-phone__input-wrapper:focus-within input.gform-phone__input {
	border-color: #355e4b;
	outline: 0 !important;
}

.contact-form .gform_wrapper.gravity-theme .ginput_container_date input {
	padding-right: 44px;
}

.contact-form .gform_wrapper.gravity-theme textarea#input_1_9 {
	height: 118px;
	min-height: 118px;
	block-size: 118px;
	min-block-size: 118px;
	padding: 12px;
	resize: vertical;
}

.availability-form .gform_wrapper.gravity-theme textarea#input_2_10 {
	height: 118px;
	min-height: 118px;
	block-size: 118px;
	min-block-size: 118px;
	padding: 12px;
	resize: vertical;
}

.availability-form .gform_wrapper.gravity-theme #field_2_5 .gfield_label::after,
.availability-form .gform_wrapper.gravity-theme #field_2_9 .gfield_label::after {
	margin-left: 6px;
	content: "optional";
	color: #555c5b;
	font-size: 14px;
	font-style: italic;
	font-weight: 400;
}

.contact-form .gform_wrapper.gravity-theme input:focus,
.contact-form .gform_wrapper.gravity-theme select:focus,
.contact-form .gform_wrapper.gravity-theme textarea:focus {
	border-color: #355e4b;
	outline: 2px solid rgba(53, 94, 75, 0.25);
	outline-offset: 1px;
}

.contact-form .gform_wrapper.gravity-theme .ginput_container_date {
	display: block;
	position: relative;
}

.contact-form .gform_wrapper.gravity-theme .ginput_container_date .gform-datepicker-toggle {
	display: inline-flex;
	position: absolute;
	top: 50%;
	right: 10px;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	margin: 0;
	padding: 0;
	transform: translateY(-50%);
	border: 0;
	background: transparent;
	box-shadow: none;
	color: #1f272b;
	cursor: pointer;
}

.contact-form .gform_wrapper.gravity-theme .ginput_container_date .gform-datepicker-toggle:focus-visible {
	outline: 2px solid #355e4b;
	outline-offset: 2px;
}

.contact-form .gform_wrapper.gravity-theme .gfield_error input,
.contact-form .gform_wrapper.gravity-theme .gfield_error select,
.contact-form .gform_wrapper.gravity-theme .gfield_error textarea {
	border-color: #b42318;
}

.contact-form .gform_wrapper.gravity-theme .gfield_error .gform-phone__country-selector {
	border-color: #b42318;
}

.contact-form .gform_wrapper.gravity-theme .gfield_validation_message {
	margin: 8px 0 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #b42318;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.4;
}

.contact-form .gform_wrapper.gravity-theme .gform_validation_errors {
	display: none;
}

.contact-form .gform_wrapper.gravity-theme .gform_footer {
	margin: 24px 0 0;
	padding: 0;
}

.contact-form .gform_wrapper.gravity-theme .gform_footer .gform_button {
	min-width: 133px;
	min-height: 48px;
	margin: 0;
	padding: 13px 20px;
	border: 1px solid #355e4b;
	border-radius: 0;
	background: #355e4b;
	box-shadow: none;
	color: #ffffff;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	transition: background-color 180ms ease, color 180ms ease;
}

.contact-form .gform_wrapper.gravity-theme .gform_footer .gform_button:hover,
.contact-form .gform_wrapper.gravity-theme .gform_footer .gform_button:focus-visible {
	background: #ffffff;
	color: #355e4b;
}

.contact-form .gform_wrapper.gravity-theme .gform_footer .gform_button:focus-visible {
	outline: 2px solid #355e4b;
	outline-offset: 3px;
}



/* Portfolio gallery: first image full-width, followed by a compact two-column grid. */
.custom-gallery .elementor-image-gallery .gallery {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.custom-gallery .elementor-image-gallery .gallery-item {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
}
.custom-gallery .elementor-image-gallery .gallery-item img{
	aspect-ratio: 2 / 1.2;
	object-fit: cover;
}

.custom-gallery .elementor-image-gallery .gallery-item:first-child {
	grid-column: 1 / -1;
}

.custom-gallery .elementor-image-gallery .gallery-item.mattis-gallery-item-hidden {
	display: none !important;
}

.custom-gallery .mattis-gallery-load-more {
	display: block;
	min-width: 150px;
	margin: 36px auto 0;
	padding: 14px 24px;
	border: 1px solid #355e4b;
	border-radius: 0;
	background: #355e4b;
	box-shadow: none;
	color: #ffffff;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
	transition: background-color 180ms ease, color 180ms ease;
}

.custom-gallery .mattis-gallery-load-more:hover{
	background: transparent;
	color: #355e4b;
}

.custom-gallery .mattis-gallery-load-more[hidden] {
	display: none;
}


/* Dynamic portfolio gallery shortcode. */
.mattis-portfolio-gallery {
	--gallery-ivory: var(--e-global-color-d73d412, #f6f3ed);
	--gallery-green: var(--e-global-color-secondary, #365747);
	--gallery-taupe: var(--e-global-color-4b7c7ec, #ded8cf);
	width: 100%;
	min-width: 0;
	background: var(--e-global-color-primary, #252a2c);
}
.mattis-portfolio-gallery__stage {
	position: relative;
	width: 100%;
	margin-inline: auto;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--e-global-color-primary, #252a2c);
	touch-action: pan-y;
}
.mattis-portfolio-gallery__stage.is-enhanced { cursor: grab; }
.mattis-portfolio-gallery__stage.is-dragging { cursor: grabbing; }
.mattis-portfolio-gallery__stage.is-enhanced .mattis-portfolio-gallery__image {
	position: absolute;
	inset: 0;
	opacity: 0;
	pointer-events: none;
	transition: opacity .6s cubic-bezier(.22, .61, .36, 1);
	will-change: opacity;
}
.mattis-portfolio-gallery__stage.is-enhanced .mattis-portfolio-gallery__image.is-visible { opacity: 1; }
.mattis-portfolio-gallery .mattis-portfolio-gallery__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0;
	user-select: none;
}
.mattis-portfolio-gallery__navigation {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 16px;
}
.mattis-portfolio-gallery button {
	border: 0;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	background: transparent;
	cursor: pointer;
}
.mattis-portfolio-gallery .mattis-portfolio-gallery__arrow {
	opacity: 1 !important;
	filter: none !important;
	transform: none;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	padding: 0;
	border-radius: 50%;
	background-color: var(--gallery-green);
	color: var(--gallery-ivory);
	font-size: 24px;
	transition: color .2s, background-color .2s;
}
.mattis-portfolio-gallery .mattis-portfolio-gallery__arrow:focus:not(:hover),
.mattis-portfolio-gallery .mattis-portfolio-gallery__arrow:active:not(:hover) {
	color: var(--gallery-ivory);
	background-color: var(--gallery-green);
	box-shadow: none;
}
.mattis-portfolio-gallery .mattis-portfolio-gallery__arrow:disabled {
	color: var(--gallery-taupe);
	background-color: var(--gallery-green);
	cursor: not-allowed;
}
.mattis-portfolio-gallery .mattis-portfolio-gallery__arrow:hover:not(:disabled) {
	color: var(--gallery-green);
	background-color: var(--gallery-ivory);
}
.mattis-portfolio-gallery__thumbnails {
	position: relative;
	display: flex;
	flex: 1;
	min-width: 0;
	gap: 10px;
	overflow-x: auto;
	scrollbar-width: none;
	scroll-snap-type: x mandatory;
	overscroll-behavior-x: contain;
}
.mattis-portfolio-gallery__thumbnails::-webkit-scrollbar { display: none; }
.mattis-portfolio-gallery .mattis-portfolio-gallery__thumbnail {
	padding: 0;
	border: 0;
	background: transparent;
	position: relative;
	flex: 0 0 calc((100% - 50px) / 6);
	aspect-ratio: 16 / 9;
	overflow: hidden;
	opacity: .58;
	scroll-snap-align: start;
	transition: opacity .2s;
}
.mattis-portfolio-gallery__thumbnail img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0;
}
.mattis-portfolio-gallery .mattis-portfolio-gallery__thumbnail.is-active,
.mattis-portfolio-gallery .mattis-portfolio-gallery__thumbnail:hover { opacity: 1; }
.mattis-portfolio-gallery__thumbnail.is-active::after {
	content: '';
	position: absolute;
	inset: 0;
	border: 2px solid var(--gallery-taupe);
	pointer-events: none;
}
.mattis-portfolio-gallery button:focus-visible {
	outline: 2px solid var(--gallery-ivory);
	outline-offset: -2px;
}
.mattis-portfolio-gallery__status {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
	.mattis-portfolio-gallery button { transition: none; }
	.mattis-portfolio-gallery__stage.is-enhanced .mattis-portfolio-gallery__image { transition: none; }
}



/* Available Home photo preview and masonry popup. */
.mattis-available-gallery {
	width: 100%;
}

.mattis-available-gallery__preview {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(220px, 1fr);
	grid-template-rows: repeat(2, minmax(0, 1fr));
	gap: 8px;
	height: clamp(420px, 49vw, 700px);
	overflow: hidden;
	border-radius: 16px;
}

.mattis-available-gallery__preview-item {
	min-width: 0;
	min-height: 0;
	margin: 0;
}

.mattis-available-gallery__preview-item--main {
	grid-row: 1 / 3;
}

.mattis-available-gallery__preview-link {
	display: block;
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
	background: #252a2c;
	cursor: zoom-in;
}

.mattis-available-gallery__preview-link::after {
	position: absolute;
	inset: 0;
	background: rgba(37, 42, 44, .18);
	content: '';
	opacity: 0;
	pointer-events: none;
	transition: opacity 180ms ease;
}

.mattis-available-gallery__preview-link:hover::after,
.mattis-available-gallery__preview-link:focus-visible::after {
	opacity: 1;
}

.mattis-available-gallery__preview-link:focus-visible {
	z-index: 2;
	outline: 3px solid #fff;
	outline-offset: -5px;
}

.mattis-available-gallery__preview-link img {
	display: block;
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100% !important;
	border: 0;
	border-radius: 0;
	object-fit: cover;
	transition: transform 250ms ease;
}

.mattis-available-gallery__preview-link:hover img {
	transform: scale(1.018);
}

.mattis-available-gallery__count {
	display: inline-flex;
	position: absolute;
	right: 14px;
	bottom: 14px;
	z-index: 2;
	align-items: center;
	gap: 7px;
	padding: 8px 11px;
	border-radius: 5px;
	background: rgba(37, 42, 44, .82);
	color: #fff;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
}

.mattis-available-gallery__count-icon {
	display: block;
	position: relative;
	width: 15px;
	height: 13px;
	border: 2px solid currentColor;
}

.mattis-available-gallery__count-icon::before {
	position: absolute;
	top: 2px;
	left: 2px;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: currentColor;
	content: '';
}

.mattis-available-gallery__count-icon::after {
	position: absolute;
	right: 1px;
	bottom: 1px;
	width: 7px;
	height: 5px;
	background: currentColor;
	clip-path: polygon(0 100%, 48% 15%, 100% 100%);
	content: '';
}

.mattis-available-gallery__popup[hidden] {
	display: none;
}

.mattis-available-gallery__popup {
	display: grid;
	position: fixed;
	z-index: 999999;
	inset: 0;
	place-items: center;
	padding: 20px;
}

.mattis-available-gallery__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(18, 21, 22, .92);
	cursor: zoom-out;
}

.mattis-available-gallery__popup-panel {
	position: relative;
	z-index: 1;
	width: min(1440px, 100%);
	max-height: calc(100vh - 40px);
	padding: 0 24px 24px;
	overflow-y: auto;
	border-radius: 10px;
	background: #f6f3ed;
	box-shadow: 0 20px 70px rgba(0, 0, 0, .4);
	overscroll-behavior: contain;
}

.mattis-available-gallery__popup-header {
	display: flex;
	position: sticky;
	z-index: 3;
	top: 0;
	align-items: center;
	justify-content: space-between;
	min-height: 74px;
	margin: 0 -24px 20px;
	padding: 12px 24px;
	border-bottom: 1px solid #d8d2c9;
	background: rgba(246, 243, 237, .97);
}

.mattis-available-gallery__popup-header h2 {
	margin: 0;
	color: #252a2c;
	font-family: Georgia, serif;
	font-size: clamp(28px, 3vw, 42px);
	font-weight: 400;
	line-height: 1.1;
}

.mattis-available-gallery__popup-header h2 span {
	font-family: Arial, Helvetica, sans-serif;
	font-size: .43em;
	font-weight: 700;
	vertical-align: top;
}

.mattis-available-gallery .mattis-available-gallery__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid #355e4b !important;
	border-radius: 50%;
	background: #355e4b !important;
	box-shadow: none;
	color: #fff !important;
	cursor: pointer;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 34px;
	font-weight: 300;
	line-height: 1;
}

.mattis-available-gallery .mattis-available-gallery__close:hover {
	background: #fff !important;
	color: #355e4b !important;
}

.mattis-available-gallery__close:focus-visible {
	outline: 2px solid #355e4b;
	outline-offset: 3px;
}

.mattis-available-gallery__masonry {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 8px;
}

.mattis-available-gallery__masonry-item {
	grid-column: span 3;
	margin: 0;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: #252a2c;
}

.mattis-available-gallery__masonry-item:nth-child(5n + 3),
.mattis-available-gallery__masonry-item:nth-child(5n + 4),
.mattis-available-gallery__masonry-item:nth-child(5n + 5) {
	grid-column: span 2;
}

.mattis-available-gallery__masonry-item img {
	display: block;
	width: 100%;
	height: 100% !important;
	border: 0;
	border-radius: 0;
	object-fit: cover;
}

body.mattis-gallery-lightbox-open {
	overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
	.mattis-available-gallery__preview-link::after,
	.mattis-available-gallery__preview-link img {
		transition: none;
	}
}





/*Responsive*/
@media (min-width: 1025px) {
    .header .elementor-widget-theme-site-logo img{
        transition: width 0.3s ease-in-out;
    }
    .header.elementor-sticky--effects .elementor-widget-theme-site-logo img {
        width: 90px !important;
    }
}

@media (max-width: 1024px) {
	.mattis-portfolio-gallery .mattis-portfolio-gallery__thumbnail { flex-basis: calc((100% - 30px) / 4); }
}

@media (max-width: 767px) {
	.custom-gallery .elementor-image-gallery .gallery {
		grid-template-columns: 1fr;
	}
	.mattis-portfolio-gallery__stage { width: 100%; }
	.mattis-portfolio-gallery__navigation { gap: 8px; margin-top: 12px; }
	.mattis-portfolio-gallery__thumbnails { gap: 8px; }
	.mattis-portfolio-gallery .mattis-portfolio-gallery__thumbnail { flex-basis: calc((100% - 16px) / 3); }
	.mattis-portfolio-gallery .mattis-portfolio-gallery__arrow { flex-basis: 40px; width: 40px; height: 40px; font-size: 22px; }
	.mattis-available-gallery__preview {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: minmax(250px, 65vw) minmax(120px, 32vw);
		height: auto;
		border-radius: 10px;
	}

	.mattis-available-gallery__preview-item--main {
		grid-column: 1 / -1;
		grid-row: auto;
	}

	.mattis-available-gallery__count {
		right: 9px;
		bottom: 9px;
	}

	.mattis-available-gallery__popup {
		padding: 0;
	}

	.mattis-available-gallery__popup-panel {
		width: 100%;
		max-height: 100vh;
		min-height: 100vh;
		padding: 0 12px 12px;
		border-radius: 0;
	}

	.mattis-available-gallery__popup-header {
		min-height: 64px;
		margin: 0 -12px 12px;
		padding: 10px 14px;
	}

	.mattis-available-gallery__masonry {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}

	.mattis-available-gallery__masonry-item,
	.mattis-available-gallery__masonry-item:nth-child(5n + 3),
	.mattis-available-gallery__masonry-item:nth-child(5n + 4),
	.mattis-available-gallery__masonry-item:nth-child(5n + 5) {
		grid-column: span 1;
	}
}

@media (max-width: 640px) {
	.contact-form .gform_wrapper.gravity-theme .gform_fields {
		row-gap: 20px;
	}

	.contact-form .gform_wrapper.gravity-theme .gfield--width-half {
		grid-column: 1 / -1;
	}
}



