/* Contact hero: fondo verde oscuro, imagen izquierda y formulario en tarjeta. */
.calera-contact-hero {
	background: #003c0f;
	color: #ffffff;
	width: 100%;
}

.calera-contact-hero__inner {
	width: min(100%, 1320px);
	margin: 0 auto;
	padding: clamp(40px, 4.2vw, 72px) clamp(14px, 2.2vw, 28px);
}

.calera-contact-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(16px, 1.8vw, 26px);
	align-items: center;
}

.calera-contact-hero__left {
	display: flex;
	flex-direction: column;
	gap: clamp(10px, 1.5vw, 18px);
}

.calera-contact-hero__back {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	width: fit-content;
	color: #e7f4e6;
	text-decoration: none;
	font-size: clamp(0.9rem, 0.95vw, 1rem);
}

.calera-contact-hero__back-icon {
	width: min(100%, 40px);
	max-width: 40px;
	height: auto;
	display: block;
	object-fit: contain;
	flex: 0 0 auto;
}

.calera-contact-hero__visual {
	position: relative;
	min-height: clamp(300px, 35vw, 500px);
	display: flex;
	align-items: flex-end;
	justify-content: center;
}

.calera-contact-hero__shape {
	position: absolute;
	inset: auto auto 0 50%;
	transform: translateX(-50%);
	width: min(88%, 430px);
	height: min(88%, 470px);
	border-radius: 50% 50% 46% 46%;
	display: none;
}

.calera-contact-hero__image {
	position: relative;
	z-index: 2;
	width: min(100%, 450px);
	height: auto;
	display: block;
}

.calera-contact-hero__right {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	text-align: center;
}

.calera-contact-hero__title {
	margin: 0;
	color: #ffffff;
	font-size: clamp(2.6rem, 3.4vw, 3.9rem);
	line-height: 0.98;
	font-weight: 700;
}

.calera-contact-hero__subtitle {
	margin: clamp(8px, 0.9vw, 12px) 0 0;
	max-width: 520px;
	color: #d7ead4;
	font-size: clamp(0.95rem, 1.1vw, 1.18rem);
	line-height: 1.25;
	font-weight: 400;
}

.calera-contact-hero__card {
	margin-top: clamp(14px, 1.6vw, 20px);
	width: 100%;
	max-width: 527px;
	margin-left: auto;
	margin-right: auto;
	background: #ececec;
	border-radius: 32px;
	padding: 22px 14px 26px;
	color: #234236;
}

.calera-contact-hero__placeholder {
	margin: 0;
	font-size: 0.95rem;
	color: #6a7a70;
}

.calera-contact-hero__form-wrap .wpcf7-form p {
	margin: 0;
}

.calera-contact-hero__form-wrap label {
	display: block;
	margin: 0 0 4px;
	text-align: left;
	font-size: 12px;
	line-height: 1.2;
	color: #5f7569;
}

.calera-contact-hero__form-wrap .calera-contact__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	margin-top: 8px;
}

.calera-contact-hero__form-wrap .calera-contact__row--full {
	grid-template-columns: 1fr;
}

.calera-contact-hero__form-wrap .calera-contact__row--submit {
	display: flex;
	justify-content: center;
}

.calera-contact-hero__form-wrap .calera-contact__row--documento .calera-contact__doc-fields {
	display: grid;
	grid-template-columns: 72px 1fr;
	gap: 6px;
	align-items: center;
	width: 100%;
}

.calera-contact-hero__form-wrap .calera-contact__row--documento .calera-contact__doc-fields > .wpcf7-form-control-wrap {
	display: block;
	min-width: 0;
}

/* Compatibilidad por si el formulario aún usa la clase anterior. */
.calera-contact-hero__form-wrap .calera-contact__row--documento .calera-contact__doc-group {
	display: grid;
	grid-template-columns: 72px 1fr;
	gap: 6px;
	align-items: center;
	width: 100%;
}

.calera-contact-hero__form-wrap .calera-contact__row--documento .calera-contact__doc-group > .wpcf7-form-control-wrap {
	display: block;
	min-width: 0;
}

.calera-contact-hero__form-wrap .calera-contact__row--documento .calera-contact__doc-type {
	width: 100%;
}

.calera-contact-hero__form-wrap .calera-contact__row--documento .calera-contact__doc-number {
	width: 100%;
}

/* Evita saltos de línea automáticos de CF7 dentro del bloque DNI. */
.calera-contact-hero__form-wrap .calera-contact__row--documento br {
	display: none !important;
}

.calera-contact-hero__form-wrap input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.calera-contact-hero__form-wrap select,
.calera-contact-hero__form-wrap textarea {
	width: 100%;
	border: 1px solid #7e9f91;
	border-radius: 15px;
	background: #ececec;
	padding: 0 14px;
	height: 42px;
	font-size: 0.84rem;
	color: #2a4a3d;
	outline: none;
	box-sizing: border-box;
}

.calera-contact-hero__form-wrap textarea {
	padding-top: 10px;
	padding-bottom: 10px;
	height: auto;
	min-height: 86px;
}

.calera-contact-hero__form-wrap input::placeholder,
.calera-contact-hero__form-wrap textarea::placeholder {
	color: #8eaa9d;
}

.calera-contact-hero__form-wrap input:focus,
.calera-contact-hero__form-wrap select:focus,
.calera-contact-hero__form-wrap textarea:focus {
	border-color: #4a7e66;
}

.calera-contact-hero__form-wrap .wpcf7-submit {
	min-width: 170px;
	min-height: 48px;
	margin-top: 14px;
	border: 0;
	border-radius: 999px;
	background: #00974c;
	color: #ffffff;
	font-weight: 700;
	font-size: 0.95rem;
	letter-spacing: 0.02em;
	padding: 0 28px;
	cursor: pointer;
}

.calera-contact-form__submit {
	min-width: 170px;
	min-height: 48px;
	margin-top: 14px;
	border: 0;
	border-radius: 999px;
	background: #00974c;
	color: #ffffff;
	font-family: var(--calera-font-bold);
	font-weight: 700;
	font-size: 0.95rem;
	letter-spacing: 0.02em;
	padding: 0 28px;
	cursor: pointer;
}

.calera-contact-form__submit:disabled {
	opacity: 0.7;
	cursor: not-allowed;
}

.calera-contact-form__message {
	margin: 8px 0 0;
	font-size: 0.8rem;
	color: #587567;
	text-align: center;
	min-height: 18px;
}

.calera-contact-form__message.is-error {
	color: #b53b3b;
}

.calera-contact__file-input {
	position: absolute !important;
	opacity: 0 !important;
	pointer-events: none !important;
	width: 1px !important;
	height: 1px !important;
}

.calera-contact-dropzone {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	border: 1px dashed #bacac1;
	border-radius: 16px;
	padding: 10px 12px;
	background: #ececec;
	box-sizing: border-box;
	cursor: pointer;
}

.calera-contact-dropzone.is-dragover {
	border-color: #6e9782;
	background: #e7efea;
}

.calera-contact-dropzone__text {
	flex: 1 1 auto;
	min-width: 0;
	text-align: center;
}

.calera-contact-dropzone__title {
	display: block;
	font-size: 12px;
	line-height: 1.22;
	color: #6f8579;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.calera-contact-dropzone__help {
	display: block;
	margin-top: 6px;
	font-size: 10.63px;
	line-height: 1.26;
	color: #89a095;
}

.calera-contact-dropzone__button {
	flex: 0 0 auto;
	border: 1px solid #9cb4a8;
	border-radius: 999px;
	background: transparent;
	color: #6d8679;
	font-weight: 600;
	font-size: 0.84rem;
	line-height: 1;
	padding: 8px 14px;
	cursor: pointer;
}

.calera-contact-hero__right.is-success .calera-contact-hero__title,
.calera-contact-hero__right.is-success .calera-contact-hero__subtitle,
.calera-contact-hero__right.is-success .calera-contact-hero__card {
	display: none;
}

.calera-contact-hero__success {
	display: none;
	width: min(100%, 520px);
	min-height: 440px;
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: clamp(28px, 4vw, 54px) clamp(24px, 3.2vw, 44px);
	align-items: center;
	justify-content: center;
	flex-direction: column;
	text-align: center;
}

.calera-contact-hero__right.is-success .calera-contact-hero__success {
	display: flex;
}

.calera-contact-hero__success-icon {
	width: 94px;
	height: 94px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: transparent;
}

.calera-contact-hero__success-icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}

.calera-contact-hero__success-title {
	margin: 22px 0 0;
	color: #ffffff;
	font-size: clamp(2rem, 3vw, 3rem);
	line-height: 1.08;
	font-weight: 700;
	max-width: 520px;
}

.calera-contact-hero__success-text {
	margin: 14px 0 0;
	color: #d4e8d7;
	font-size: clamp(0.95rem, 1.05vw, 1.1rem);
}

.calera-contact-hero__success-button {
	margin-top: 28px;
	min-height: 52px;
	padding: 0 34px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: #00a652;
	color: #ffffff;
	text-decoration: none;
	font-weight: 700;
	font-size: 1rem;
}

.calera-contact-hero__form-wrap .wpcf7-spinner {
	display: block;
	margin: 8px auto 0;
}

.calera-contact-hero__form-wrap .filepond--root {
	margin-top: 2px;
	margin-bottom: 0;
	width: 100% !important;
	max-width: 100% !important;
}

.calera-contact-hero__form-wrap .filepond--panel-root {
	background: #ececec;
	border: 1px dashed #bacac1;
	border-radius: 16px;
	width: 100% !important;
	max-width: 100% !important;
}

.calera-contact-hero__form-wrap .filepond--drop-label {
	color: #7f948a;
	font-size: 0.8rem;
	line-height: 1.2;
	min-height: 70px;
	width: 100%;
	padding: 0 10px;
	box-sizing: border-box;
}

.calera-contact-hero__form-wrap .filepond--drop-label label {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	width: 100%;
	max-width: 100%;
	flex-wrap: nowrap;
}

.calera-contact-hero__form-wrap .filepond--drop-label .calera-pond__text {
	display: block;
	flex: 1 1 auto;
	min-width: 0;
	text-align: center;
	font-size: 12px;
	line-height: 1.22;
	color: #6f8579;
	letter-spacing: 0.01em;
}

.calera-contact-hero__form-wrap .filepond--drop-label .calera-pond__text small {
	display: block;
	margin-top: 8px;
	font-size: 10.63px;
	line-height: 1.26;
	color: #89a095;
}

.calera-contact-hero__form-wrap .filepond--label-action {
	color: #6d8679;
	text-decoration: none;
	font-weight: 600;
	border: 1px solid #9cb4a8;
	border-radius: 999px;
	padding: 7px 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	max-width: 100%;
	margin-left: 0;
	white-space: nowrap;
	font-size: 0.9rem;
}

@media (max-width: 640px) {
	.calera-contact-hero__form-wrap .filepond--drop-label {
		min-height: 74px;
	}

	.calera-contact-hero__form-wrap .filepond--drop-label label {
		gap: 8px;
	}

	.calera-contact-hero__form-wrap .filepond--drop-label .calera-pond__text {
		font-size: 0.88rem;
	}

	.calera-contact-hero__form-wrap .filepond--drop-label .calera-pond__text small {
		margin-top: 6px;
		font-size: 0.77rem;
	}

	.calera-contact-hero__form-wrap .filepond--label-action {
		padding: 6px 12px;
		font-size: 0.84rem;
	}
}

.calera-contact-hero__form-wrap .filepond--drip {
	background: rgba(0, 151, 76, 0.1);
}

.calera-contact-hero__form-wrap .filepond--item-panel {
	background-color: #00974c;
}

@media (max-width: 1024px) {
	.calera-contact-hero__grid {
		grid-template-columns: 1fr;
		align-items: start;
	}

	.calera-contact-hero__left {
		order: 1;
	}

	.calera-contact-hero__right {
		order: 2;
	}

	.calera-contact-hero__visual {
		min-height: clamp(260px, 62vw, 460px);
	}

	.calera-contact-hero__image {
		width: min(100%, 450px);
	}

	.calera-contact-hero__form-wrap .calera-contact__row {
		grid-template-columns: 1fr;
		gap: 6px;
		margin-top: 7px;
	}

	.calera-contact-hero__form-wrap .calera-contact__row--documento .calera-contact__doc-fields {
		grid-template-columns: 72px 1fr;
	}

	.calera-contact-hero__form-wrap .calera-contact__row--documento .calera-contact__doc-group {
		grid-template-columns: 72px 1fr;
	}

	.calera-contact-hero__success {
		min-height: 360px;
	}

	.calera-contact-hero__card {
		max-width: 100%;
	}
}

@media (max-width: 640px) {
	.calera-contact-hero__inner {
		padding: 16px 10px 24px;
	}

	.calera-contact-hero__back {
		font-size: 0.95rem;
	}

	.calera-contact-hero__title {
		font-size: clamp(1.6rem, 7.6vw, 2.1rem);
	}

	.calera-contact-hero__subtitle {
		font-size: 0.88rem;
		line-height: 1.2;
	}

	.calera-contact-hero__card {
		border-radius: 18px;
		padding: 10px;
		max-width: 100%;
	}

	.calera-contact-hero__form-wrap label {
		font-size: 11px;
		margin-bottom: 3px;
	}

	.calera-contact-hero__form-wrap input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
	.calera-contact-hero__form-wrap select,
	.calera-contact-hero__form-wrap textarea {
		height: 36px;
		padding: 0 10px;
		font-size: 12px;
		border-radius: 12px;
	}

	.calera-contact-dropzone {
		padding: 8px;
		gap: 8px;
		border-radius: 12px;
		flex-wrap: wrap;
		justify-content: center;
	}

	.calera-contact-dropzone__text {
		flex: 1 1 100%;
		width: 100%;
	}

	.calera-contact-dropzone__title {
		font-size: 11px;
	}

	.calera-contact-dropzone__help {
		font-size: 9.6px;
		margin-top: 4px;
	}

	.calera-contact-dropzone__button {
		padding: 6px 10px;
		font-size: 12px;
		margin: 0 auto;
	}

	.calera-contact-form__submit {
		min-height: 42px;
		min-width: 150px;
		font-size: 0.88rem;
		padding: 0 22px;
		margin-top: 10px;
	}
}
