/* HILCAM CONTACT — scoped, responsive split layout. */
.hilcam-contact,
.hilcam-contact * { box-sizing: border-box; }

.hilcam-contact .hilcam-contact__shell {
	display: grid;
	grid-template-columns: minmax(0, var(--hc-left-width, 50%)) minmax(0, calc(100% - var(--hc-left-width, 50%)));
	width: 100%;
	min-height: var(--hc-min-height, 760px);
	overflow: hidden;
	background: #93a089;
}

.hilcam-contact .hilcam-contact__left {
	position: relative;
	display: grid;
	place-items: center;
	min-width: 0;
	padding: var(--hc-padding-desktop, 54px);
	overflow: hidden;
	color: var(--hc-text-color, #fff);
}

.hilcam-contact .hilcam-contact__background,
.hilcam-contact .hilcam-contact__overlay {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.hilcam-contact .hilcam-contact__background { object-fit: cover; }
.hilcam-contact .hilcam-contact__overlay { background: var(--hc-overlay, rgba(22, 34, 25, .35)); }

.hilcam-contact .hilcam-contact__left-content {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.5rem;
	width: min(100%, var(--hc-panel-width, 560px));
}

.hilcam-contact .hilcam-contact__form {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	width: 100%;
	padding: clamp(1.4rem, 4vw, 2.75rem);
	border: 7px solid var(--hc-panel-border, rgba(243, 238, 230, .26));
	border-radius: var(--hc-panel-radius, 42px);
	background: var(--hc-panel-background, rgba(243, 238, 230, .22));
	-webkit-backdrop-filter: blur(var(--hc-panel-blur, 10px));
	backdrop-filter: blur(var(--hc-panel-blur, 10px));
}

.hilcam-contact .hilcam-contact__title {
	margin: 0;
	color: inherit;
	font-family: var(--hc-title-font-family, inherit);
	font-size: var(--hc-title-font-size-desktop, 44px);
	font-weight: var(--hc-title-font-weight, 700);
	font-style: var(--hc-title-font-style, normal);
	line-height: var(--hc-title-line-height, 1.02);
	letter-spacing: var(--hc-title-letter-spacing, 0);
	text-transform: var(--hc-title-text-transform, none);
}

.hilcam-contact .hilcam-contact__intro,
.hilcam-contact .hilcam-contact__field,
.hilcam-contact .hilcam-contact__submit,
.hilcam-contact .hilcam-contact__status {
	font-family: var(--hc-body-font-family, inherit);
	font-size: var(--hc-body-font-size-desktop, 16px);
	font-weight: var(--hc-body-font-weight, 400);
	font-style: var(--hc-body-font-style, normal);
	line-height: var(--hc-body-line-height, 1.3);
	letter-spacing: var(--hc-body-letter-spacing, 0);
	text-transform: var(--hc-body-text-transform, none);
}

.hilcam-contact .hilcam-contact__intro p { margin: 0; line-height: inherit; }
.hilcam-contact .hilcam-contact__field { display: block; margin: 0; }

.hilcam-contact .hilcam-contact__field input,
.hilcam-contact .hilcam-contact__field textarea {
	display: block;
	width: 100%;
	min-height: 58px;
	margin: 0;
	padding: 1rem 1.25rem;
	border: 1px solid rgba(54, 86, 63, .1);
	border-radius: 0;
	background: var(--hc-field-background, #fff);
	color: var(--hc-field-color, #36563f);
	font: inherit;
	line-height: 1.25;
}

.hilcam-contact .hilcam-contact__field textarea { min-height: 140px; resize: vertical; }
.hilcam-contact .hilcam-contact__field input::placeholder,
.hilcam-contact .hilcam-contact__field textarea::placeholder { color: currentColor; opacity: .9; text-transform: uppercase; }

.hilcam-contact .hilcam-contact__field input:focus-visible,
.hilcam-contact .hilcam-contact__field textarea:focus-visible,
.hilcam-contact .hilcam-contact__submit:focus-visible,
.hilcam-contact .hilcam-contact__info-link:focus-visible {
	outline: 3px solid var(--hc-icon-color, #c7ad7e);
	outline-offset: 3px;
}

.hilcam-contact .hilcam-contact__submit {
	min-height: 58px;
	padding: .8rem 1.5rem;
	border: 0;
	border-radius: 999px;
	background: var(--hc-button-background, #94a18a);
	color: var(--hc-button-color, #fff);
	font-weight: 700;
	text-transform: uppercase;
	cursor: pointer;
	transition: filter 180ms ease, transform 180ms ease;
}

.hilcam-contact .hilcam-contact__submit:hover { filter: brightness(.96); transform: translateY(-1px); }
.hilcam-contact .hilcam-contact__submit[disabled] { cursor: wait; opacity: .7; transform: none; }
.hilcam-contact .hilcam-contact__honeypot { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.hilcam-contact .hilcam-contact__status { min-height: 1.35em; line-height: 1.35; }
.hilcam-contact .hilcam-contact__status.is-error { color: #ffe1d8; }

.hilcam-contact .hilcam-contact__info-list {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	flex-wrap: wrap;
	gap: 1rem 1.75rem;
	width: 100%;
}

/*
 * Divi 5.14 nested modules can place the native Contact Form in this list.
 * It occupies the full panel width while HILCAM information children remain
 * in their compact row underneath it.
 */
.hilcam-contact .hilcam-contact__info-list > :not(.hilcam-contact-info-item) {
	flex: 1 0 100%;
	width: 100%;
	max-width: 100%;
}

.hilcam-contact .hilcam-contact__info-list > .et_pb_contact_form_container,
.hilcam-contact .hilcam-contact__info-list > :has(.et_pb_contact_form_container),
.hilcam-contact .hilcam-contact__info-list > :has(form.et_pb_contact_form) {
	order: -1;
}

/* Use Divi's form delivery when a native form is nested in HILCAM CONTACTO. */
.hilcam-contact .hilcam-contact__left-content:has(.hilcam-contact__info-list .et_pb_contact_form_container) > .hilcam-contact__form,
.hilcam-contact .hilcam-contact__left-content:has(.hilcam-contact__info-list form.et_pb_contact_form) > .hilcam-contact__form {
	display: none;
}

.hilcam-contact .hilcam-contact__info-list .et_pb_contact_form_container {
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: clamp(1.4rem, 4vw, 2.75rem);
	border: 7px solid var(--hc-panel-border, rgba(243, 238, 230, .26));
	border-radius: var(--hc-panel-radius, 42px);
	background: var(--hc-panel-background, rgba(243, 238, 230, .22));
	color: var(--hc-text-color, #fff);
	-webkit-backdrop-filter: blur(var(--hc-panel-blur, 10px));
	backdrop-filter: blur(var(--hc-panel-blur, 10px));
}

.hilcam-contact .hilcam-contact-info-item,
.hilcam-contact .hilcam-contact-info-item .et_pb_module_inner { display: contents; }

.hilcam-contact .hilcam-contact__info-item {
	display: flex;
	align-items: center;
	gap: .6rem;
	min-width: 0;
	max-width: 100%;
	font-family: var(--hc-info-font-family, inherit);
	font-size: var(--hc-info-font-size-desktop, 14px);
	font-weight: var(--hc-info-font-weight, 400);
	font-style: var(--hc-info-font-style, normal);
	line-height: var(--hc-info-line-height, 1.3);
	letter-spacing: var(--hc-info-letter-spacing, 0);
	text-transform: var(--hc-info-text-transform, none);
}

.hilcam-contact .hilcam-contact__info-icon {
	display: grid;
	place-items: center;
	flex: 0 0 var(--hc-icon-size, 30px);
	width: var(--hc-icon-size, 30px);
	height: var(--hc-icon-size, 30px);
	color: var(--hc-icon-color, #c7ad7e);
}

.hilcam-contact .hilcam-contact__info-icon img,
.hilcam-contact .hilcam-contact__info-icon svg { display: block; width: 100%; height: 100%; object-fit: contain; }
.hilcam-contact .hilcam-contact__info-copy { display: flex; flex-direction: column; min-width: 0; }
.hilcam-contact .hilcam-contact__info-title { font-weight: 700; }
.hilcam-contact .hilcam-contact__info-text p { display: inline; margin: 0; }
.hilcam-contact .hilcam-contact__info-link { display: inline-flex; align-items: center; gap: .6rem; min-width: 0; color: inherit; text-decoration: none; }
.hilcam-contact .hilcam-contact__info-link:hover .hilcam-contact__info-text { text-decoration: underline; text-underline-offset: .18em; }

.hilcam-contact .hilcam-contact__map { position: relative; min-width: 0; min-height: 100%; background: #d9eadb; }
.hilcam-contact .hilcam-contact__map-frame { display: block; width: 100%; height: 100%; min-height: var(--hc-min-height, 760px); border: 0; }
.hilcam-contact .hilcam-contact__map-placeholder { display: grid; place-items: center; min-height: inherit; height: 100%; padding: 2rem; color: #36563f; text-align: center; }

@media (max-width: 980px) {
	.hilcam-contact .hilcam-contact__left { padding: var(--hc-padding-tablet, 38px); }
	.hilcam-contact .hilcam-contact__title { font-size: var(--hc-title-font-size-tablet, 36px); }
	.hilcam-contact .hilcam-contact__intro,
	.hilcam-contact .hilcam-contact__field,
	.hilcam-contact .hilcam-contact__submit,
	.hilcam-contact .hilcam-contact__status { font-size: var(--hc-body-font-size-tablet, 16px); }
	.hilcam-contact .hilcam-contact__info-item { font-size: var(--hc-info-font-size-tablet, 14px); }
}

@media (max-width: 860px) {
	.hilcam-contact .hilcam-contact__shell { grid-template-columns: minmax(0, 1fr); }
	.hilcam-contact .hilcam-contact__left { min-height: var(--hc-min-height, 760px); padding: var(--hc-padding-mobile, 22px); }
	.hilcam-contact .hilcam-contact__map { min-height: var(--hc-map-mobile-height, 420px); }
	.hilcam-contact .hilcam-contact__map-frame { min-height: var(--hc-map-mobile-height, 420px); }
	.hilcam-contact .hilcam-contact__title { font-size: var(--hc-title-font-size-mobile, 32px); }
	.hilcam-contact .hilcam-contact__intro,
	.hilcam-contact .hilcam-contact__field,
	.hilcam-contact .hilcam-contact__submit,
	.hilcam-contact .hilcam-contact__status { font-size: var(--hc-body-font-size-mobile, 15px); }
	.hilcam-contact .hilcam-contact__info-item { font-size: var(--hc-info-font-size-mobile, 13px); }
}

@media (max-width: 560px) {
	.hilcam-contact .hilcam-contact__form,
	.hilcam-contact .hilcam-contact__info-list .et_pb_contact_form_container { border-width: 5px; border-radius: min(var(--hc-panel-radius, 42px), 32px); }
	.hilcam-contact .hilcam-contact__info-list { justify-content: flex-start; }
	.hilcam-contact .hilcam-contact__info-item { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
	.hilcam-contact .hilcam-contact__submit { transition-duration: .01ms !important; }
}
