


body.contact-body .site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
}

.contact-page {
	position: relative;
	overflow-x: hidden;
}


.contact-frame {
	position: relative;
	width: 100%;
	aspect-ratio: 1920 / 2178;
	overflow: hidden;
	border-radius: 45px;
	color: var(--color-ink, #2b2f2a);
	
	background: linear-gradient(180deg,
		#666666 0%,
		#fbfbfb 50%,
		#666666 100%);
}


.contact-blob {
	position: absolute;
	top: 0;
	left: 3px;
	width: 1917px;
	height: 2178px;
	background: conic-gradient(from 240.67deg at 22.84% 41.2%,
		#556045 -51.08deg,
		#b0c68f 146.14deg,
		#ffffff 259.74deg,
		#556045 308.92deg,
		#b0c68f 506.14deg);
	filter: blur(162.85px);
	pointer-events: none;
	z-index: 0;
}


.contact-shade-blob {
	position: absolute;
	background: radial-gradient(56.01% 41.55% at 47.87% 43%, rgba(152, 255, 0, 0.2) 0%, rgba(255, 255, 255, 0.2) 100%);
	filter: blur(44.55px);
	pointer-events: none;
	z-index: 0;
}
.contact-shade-blob--1 { left: 560px; top: 1100px; width: 109px; height: 589px; transform: rotate(-75deg); }
.contact-shade-blob--2 { left: 610px; top: 1560px; width: 368.23px; height: 496.38px; }
.contact-shade-blob--3 { left: 900px; top: 1720px; width: 109px; height: 589px; transform: rotate(164deg); }


.contact-shade-vector {
	position: absolute;
	left: 183px;
	top: 57px;
	width: 1615.5px;
	height: 707px;
	background: rgba(0, 0, 0, 0.004);
	filter: blur(88.1px);
	transform: rotate(-90deg);
	pointer-events: none;
	z-index: 0;
}


.contact-circle {
	position: absolute;
	top: 0;
	left: 749px;
	width: 1171px;
	height: 1667px;
	background: url(../img/contact-circle.png) top left / 1171px 1667px no-repeat;
	pointer-events: none;
	z-index: 0;
}

.contact-hero,
.contact-cards,
.contact-cta { position: absolute; z-index: 1; }





.contact-hero { inset: 0; direction: rtl; pointer-events: none; }


.contact-hero__prefix {
	position: absolute;
	left: 440px;
	top: 257px;
	width: 266px;
	height: 74px;
	margin: 0;
	font-family: var(--font-body);
	font-size: 103px;
	font-weight: 400;
	line-height: 0.72;
	text-align: right;
	letter-spacing: -0.04em;
	text-transform: lowercase;
	color: #161616;
}


.contact-hero__brand {
	position: absolute;
	left: 86px;
	top: 344px;
	width: 620px;
	height: 81px;
	margin: 0;
	font-family: var(--font-brand, 'Georgia', serif);
	font-size: 112px;
	font-weight: 400;
	line-height: 0.72;
	text-align: right;
	letter-spacing: -0.04em;
	text-transform: uppercase;
	color: #161616;
}


.contact-hero__sub {
	position: absolute;
	left: 94px;
	top: 461px;
	width: 286px;
	height: 81px;
	margin: 0;
	font-family: var(--font-body);
	font-weight: 400;
	font-style: normal;
	font-size: 24px;
	line-height: 100%;
	letter-spacing: 0;
	text-align: justify;
	color: #161616;
}




.contact-cards {
	left: 53px;
	top: 633px;
	width: 785px;
	height: 245px;
	display: flex;
	direction: ltr; 
	gap: 25px;
}

.contact-card {
	position: relative;
	width: 245px;
	height: 245px;
	flex-shrink: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.24);
	border: 1px solid rgba(255, 255, 255, 0.55);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	box-shadow: 0 2px 18px rgba(80, 110, 60, 0.10);
	cursor: pointer;
	transition: background 200ms ease, border-color 200ms ease, box-shadow 200ms ease;
}
.contact-card:hover {
	background: rgba(255, 255, 255, 0.36);
	border-color: rgba(140, 190, 90, 0.85);
	box-shadow: 0 4px 26px rgba(110, 170, 70, 0.28);
}

.contact-card__icon {
	position: absolute;
	left: 0;
	top: 31px;
	width: 100%;
	display: flex;
	justify-content: center;
	color: #161616;
	opacity: 0.4;
}
.contact-card__icon svg { width: 40px; height: 40px; }

.contact-card__label {
	position: absolute;
	left: 0;
	top: 116px;
	width: 100%;
	font-size: 28px;
	line-height: 35px;
	text-align: center;
	color: #161616;
}
.contact-card__value {
	position: absolute;
	left: 0;
	top: 151px;
	width: 100%;
	font-size: 32px;
	font-weight: 400;
	line-height: 35px;
	text-align: center;
	direction: ltr;
	color: #161616;
	transition: color 150ms ease;
}
.contact-card__value:hover { color: var(--color-green-dark, #6f9350); }

.contact-card__value--handle { font-size: 22px; }




.contact-form-wrap {
	position: absolute;
	left: 1220px;
	top: 902px;
	width: 700px;
	height: 510px;
	box-sizing: border-box;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0.03) 100%);
	border: 1px solid rgba(176, 198, 143, 0.2);
	border-radius: 100px 0 0 100px;
	backdrop-filter: blur(30px);
	-webkit-backdrop-filter: blur(30px);
}
.contact-form__heading {
	position: absolute;
	left: 565px;
	top: 37px;
	width: 91px;
	margin: 0;
	font-size: 28px;
	font-weight: 400;
	line-height: 35px;
	text-align: center;
	color: #161616;
}
.contact-form {
	position: absolute;
	left: 43px;
	top: 98px;
	width: 613px;
}

.contact-form--pushed {
	top: 165px;
}
.contact-form__field { position: absolute; left: 0; width: 613px; }
.contact-form__field:nth-of-type(1) { top: 0; }
.contact-form__field:nth-of-type(2) { top: 69px; }
.contact-form__field--textarea { top: 138px; }
.contact-form__field input,
.contact-form__field textarea {
	box-sizing: border-box;
	width: 100%;
	height: 43px;
	padding: 0 24px;
	background: rgba(255, 255, 255, 0.14);
	border: none;
	border-radius: 10px;
	color: #161616;
	font-size: 20px;
	font-family: var(--font-body);
	text-align: right;
	direction: rtl;
	transition: background 150ms ease;
}
.contact-form__field input::placeholder,
.contact-form__field textarea::placeholder { color: rgba(22, 22, 22, 0.9); opacity: 1; }
.contact-form__field input:focus,
.contact-form__field textarea:focus { outline: none; background: rgba(255, 255, 255, 0.32); }
.contact-form__field--textarea textarea { height: 131px; padding-top: 14px; resize: none; }
.contact-form__submit {
	position: absolute;
	left: 0;
	top: 295px;
	width: 196px;
	height: 43px;
	background: rgba(255, 255, 255, 0.14);
	border: none;
	border-radius: 10px;
	color: #161616;
	font-size: 20px;
	font-family: var(--font-body);
	cursor: pointer;
	transition: background 150ms ease;
}
.contact-form__submit:hover { background: rgba(255, 255, 255, 0.28); }
.contact-form__success,
.contact-form__error {
	position: absolute;
	left: 43px;
	top: 98px;
	width: 613px;
	box-sizing: border-box;
	padding: 16px 20px;
	border-radius: 16px;
	font-size: 16px;
}
.contact-form__success { background: rgba(100, 150, 60, 0.15); border: 1px solid rgba(100, 150, 60, 0.35); color: #4f6f38; }
.contact-form__error   { background: rgba(200, 60, 60, 0.10); border: 1px solid rgba(200, 60, 60, 0.25); color: #c44; }


.contact-hours {
	position: absolute;
	left: 879px;
	top: 902px;
	width: 331px;
	height: 510px;
	box-sizing: border-box;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0.03) 100%);
	border: 1px solid rgba(176, 198, 143, 0.2);
	border-radius: 999px;
	backdrop-filter: blur(30px);
	-webkit-backdrop-filter: blur(30px);
}
.contact-hours__icon {
	position: absolute;
	left: 0;
	top: 31px;
	width: 100%;
	display: flex;
	justify-content: center;
	color: #161616;
	opacity: 0.4;
}
.contact-hours__icon svg { width: 40px; height: 40px; }
.contact-hours__heading {
	position: absolute;
	left: 0;
	top: 116px;
	width: 100%;
	margin: 0;
	font-size: 28px;
	line-height: 35px;
	text-align: center;
	color: #161616;
}
.contact-hours__list {
	position: absolute;
	left: 0;
	top: 167px;
	width: 100%;
	margin: 0;
	text-align: center;
}
.contact-hours__list dt {
	position: absolute;
	left: 0;
	width: 100%;
	margin: 0;
	font-size: 32px;
	line-height: 35px;
	color: #161616;
}
.contact-hours__list dd {
	position: absolute;
	left: 0;
	width: 100%;
	margin: 0;
	font-family: var(--font-brand, 'Georgia', serif);
	font-size: 32px;
	line-height: 35px;
	color: #161616;
	direction: ltr;
}
.contact-hours__list dt:nth-of-type(1) { top: 0; }
.contact-hours__list dd:nth-of-type(1) { top: 50px; }
.contact-hours__list dt:nth-of-type(2) { top: 106px; }
.contact-hours__list dd:nth-of-type(2) { top: 160px; }


.contact-location {
	position: absolute;
	left: 53px;
	top: 905px;
	width: 818px;
	height: 510px;
	box-sizing: border-box;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0.03) 100%);
	border: 1px solid rgba(176, 198, 143, 0.2); 
	border-radius: 800px 152px 920px 800px;
	backdrop-filter: blur(30px);
	-webkit-backdrop-filter: blur(30px);
}
.contact-location__kicker {
	position: absolute;
	left: 276px;
	top: 40px;
	width: 146px;
	font-size: 28px;
	line-height: 35px;
	text-align: center;
	color: #161616;
}
.contact-location__city {
	position: absolute;
	left: 84px;
	top: 131px;
	width: 223px;
	margin: 0;
	font-size: 60px;
	line-height: 35px;
	text-align: center;
	color: #6b8559; 
}
.contact-location__address {
	position: absolute;
	left: 4px;
	top: 231px;
	width: 353px;
	height: 113px;
	font-style: normal;
	font-size: 30px;
	line-height: 35px;
	text-align: center;
	color: #161616;
}
.contact-location__map-link {
	position: absolute;
	left: 115px;
	top: 393px;
	width: 196px;
	height: 43px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.14);
	border-radius: 10px;
	font-size: 20px;
	color: #161616;
	transition: background 150ms ease;
}
.contact-location__map-link:hover { background: rgba(255, 255, 255, 0.28); }

.contact-location__map-image {
	box-sizing: border-box;
	position: absolute;
	left: 349px;
	top: 40px;
	width: 424.29px;
	height: 388.83px;
	overflow: hidden;
	box-shadow: inset 0 4px 69px rgba(0, 0, 0, 0.25);
	border-radius: 1500px 152px 1800px 500px;
	transform: rotate(-1.03deg);
	pointer-events: auto;
	background: #dfe6d4; 
}
.contact-location__map-fallback {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.contact-location__map-image.is-loading::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(223, 230, 212, 0) 0%, rgba(223, 230, 212, 0.55) 50%, rgba(223, 230, 212, 0) 100%);
	background-size: 200% 100%;
	animation: contact-map-skeleton 1.4s ease-in-out infinite;
}
@keyframes contact-map-skeleton {
	0%   { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}
.contact-location__map-image .leaflet-control-attribution {
	font-size: 10px;
}


.leaflet-popup-content-wrapper {
	background: #ffffff;
	border-radius: 14px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}
.leaflet-popup-tip {
	background: #ffffff;
}
.contact-map-popup {
	font-family: var(--font-body);
	text-align: center;
	color: #161616;
}
.contact-map-popup__title {
	display: block;
	margin-bottom: 4px;
	color: #6b8559; 
	font-size: 15px;
}
.contact-map-popup__address {
	margin: 0 0 6px;
	font-size: 13px;
	line-height: 1.5;
}
.contact-map-popup__phone {
	display: inline-block;
	color: #6b8559; 
	font-size: 13px;
	text-decoration: none;
}
.contact-map-popup__phone:hover {
	text-decoration: underline;
}


.contact-cta {
	left: 87.94px;
	top: 1507.01px;
	width: 1765.06px;
	height: 508.03px;
	border-radius: 42.24px;
	overflow: hidden;
	display: block;
	background-color: #16180f;
	background-size: cover;
	background-position: center right;
	background-repeat: no-repeat;
}

.contact-cta__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg,
		#0f110c 0%,
		#0f110c 54%,
		rgba(15, 17, 12, 0.62) 66%,
		rgba(15, 17, 12, 0.22) 76%,
		rgba(15, 17, 12, 0.00) 88%);
	pointer-events: none;
}
.contact-cta__content {
	position: absolute;
	top: 50%;
	left: 170px;
	transform: translateY(-50%);
	width: 470px;
	direction: rtl;
	text-align: right;
	color: #f4f7ee;
}
.contact-cta__title {
	margin: 0 0 22px;
	width: 100%;
	font-size: 40px;
	font-weight: 700;
	line-height: 1.5;
	white-space: normal;
	color: #f6f9f0;
}
.contact-cta__text {
	margin: 0 0 30px;
	width: 100%;
	max-width: 470px;
	font-size: 18.24px;
	line-height: 1.85;
	color: rgba(244, 247, 238, 0.64);
}
.contact-cta__btn {
	display: inline-flex;
	align-items: center;
	gap: 15.36px;
	margin-top: 5.76px;
	padding: 15.36px 42.24px;
	background: #a9c47f;
	border-radius: 999px;
	color: #1c2116;
	font-size: 18.24px;
	font-weight: 700;
	transition: background 180ms ease, transform 180ms ease;
}
.contact-cta__btn:hover { background: #b7cf8f; transform: translateY(-1px); }
.contact-cta__arrow { font-size: 20.16px; line-height: 1; }
