/* PK Contacto — estética de formularios .pk-form (marca PK: rojo #CF0501, negro #0E1319, petróleo #1B3F4A) */
.pk-form {
	--pk-red: #CF0501;
	--pk-ink: #0E1319;
	--pk-teal: #1B3F4A;
	--pk-gray: #A8B1BC;
	--pk-white: #FFFFFF;
	--pk-radius: 14px;
	--pk-font: "Montserrat", "Encode Sans", sans-serif;
	font-family: var(--pk-font);
}

/* ---------- Grilla y etiquetas ---------- */
.pk-form .elementor-form-fields-wrapper {
	row-gap: 18px;
	align-items: flex-start !important;
}
.pk-form .elementor-field-group {
	position: relative;
	margin-bottom: 0 !important;
}
.pk-form .elementor-field-group > label.elementor-field-label {
	color: var(--pk-white) !important;
	font-family: var(--pk-font) !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	letter-spacing: .01em;
	line-height: 1.3 !important;
	margin-bottom: 8px !important;
	padding: 0 !important;
}
.pk-form .elementor-field-group > label .pk-opt {
	font-weight: 400;
	opacity: .75;
	font-size: 12px;
}
.pk-form.elementor-widget-form .elementor-mark-required .elementor-field-label::after,
.pk-form .elementor-mark-required .elementor-field-label::after {
	color: var(--pk-white);
	opacity: .85;
}

/* ---------- Campos ---------- */
.pk-form .elementor-field-group .elementor-field.elementor-field-textual,
.pk-form .elementor-field-group select.elementor-field {
	width: 100%;
	min-height: 54px;
	padding: 14px 18px !important;
	background: var(--pk-white) !important;
	color: var(--pk-ink) !important;
	font-family: var(--pk-font) !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	line-height: 1.45 !important;
	border: 2px solid transparent !important;
	border-radius: var(--pk-radius) !important;
	box-shadow: 0 1px 0 rgba(14, 19, 25, .08), 0 6px 18px -10px rgba(14, 19, 25, .45);
	transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
	box-sizing: border-box;
	-webkit-appearance: none;
	appearance: none;
}
.pk-form textarea.elementor-field {
	min-height: 140px;
	resize: vertical;
}
.pk-form .elementor-field::placeholder {
	color: #8A939E;
	opacity: 1;
	font-weight: 400;
}
.pk-form .elementor-field-group .elementor-field.elementor-field-textual:hover {
	border-color: rgba(14, 19, 25, .18) !important;
}
.pk-form .elementor-field-group .elementor-field.elementor-field-textual:focus,
.pk-form .elementor-field-group .elementor-field.elementor-field-textual:focus-visible {
	outline: none !important;
	border-color: var(--pk-ink) !important;
	box-shadow: 0 0 0 4px rgba(255, 255, 255, .35);
}

/* Campo válido: check a la derecha */
.pk-form .elementor-field-group.pk-valid .elementor-field.elementor-field-textual:not(textarea) {
	padding-right: 46px !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11' fill='%231B3F4A'/%3E%3Cpath d='M7 12.5l3.2 3.2L17 9' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 16px center !important;
	background-size: 20px 20px !important;
}

/* Campo con error */
.pk-form .elementor-field-group.pk-invalid .elementor-field.elementor-field-textual,
.pk-form .elementor-field-group.elementor-error .elementor-field.elementor-field-textual {
	border-color: var(--pk-ink) !important;
	background-color: #FFF4F3 !important;
	box-shadow: 0 0 0 4px rgba(14, 19, 25, .22);
}

/* Mensajes bajo el campo (nuestros y los que devuelve Elementor) */
.pk-form .pk-help,
.pk-form .elementor-field-group .elementor-message.elementor-help-inline {
	display: flex !important;
	align-items: flex-start;
	gap: 7px;
	width: 100%;
	margin: 8px 0 0 !important;
	padding: 0 !important;
	font-family: var(--pk-font) !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	line-height: 1.35 !important;
	color: var(--pk-white) !important;
	background: none !important;
}
.pk-form .pk-help--error::before,
.pk-form .elementor-field-group .elementor-message.elementor-help-inline::before {
	content: "!" !important;
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	margin: 0 !important;
	border-radius: 50%;
	background: var(--pk-ink);
	color: var(--pk-white);
	font: 700 12px/18px var(--pk-font) !important;
	text-align: center;
	display: inline-block !important;
}
.pk-form .pk-help--hint {
	display: block !important;
	opacity: .95;
}
.pk-form .pk-sug {
	all: unset;
	cursor: pointer;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
	color: var(--pk-white);
}
.pk-form .pk-sug:focus-visible {
	outline: 2px solid var(--pk-white);
	outline-offset: 2px;
	border-radius: 3px;
}

/* ---------- Botón ---------- */
.pk-form .e-form__buttons {
	margin-top: 6px;
}
.pk-form .elementor-field-type-submit .elementor-button {
	width: 100%;
	min-height: 56px;
	padding: 16px 28px !important;
	border: 0 !important;
	border-radius: var(--pk-radius) !important;
	background-color: var(--pk-ink) !important;
	color: var(--pk-white) !important;
	font-family: var(--pk-font) !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	letter-spacing: .06em;
	text-transform: uppercase;
	box-shadow: 0 10px 24px -12px rgba(14, 19, 25, .8);
	transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease;
	cursor: pointer;
}
.pk-form .elementor-field-type-submit .elementor-button .elementor-button-text::after {
	content: "";
	display: inline-block;
	width: 18px;
	height: 18px;
	margin-left: 10px;
	vertical-align: -3px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h13M13 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h13M13 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .2s ease;
}
.pk-form .elementor-field-type-submit .elementor-button:hover {
	background-color: var(--pk-teal) !important;
	transform: translateY(-1px);
	box-shadow: 0 14px 28px -12px rgba(14, 19, 25, .85);
}
.pk-form .elementor-field-type-submit .elementor-button:hover .elementor-button-text::after {
	transform: translateX(4px);
}
.pk-form .elementor-field-type-submit .elementor-button:focus-visible {
	outline: 3px solid var(--pk-white) !important;
	outline-offset: 3px;
}

/* Enviando… */
.pk-form .elementor-form-waiting .elementor-button {
	cursor: progress;
	opacity: .85;
}
.pk-form .elementor-form-waiting .elementor-button .elementor-button-text::after {
	-webkit-mask: none;
	mask: none;
	background: none;
	border: 2.5px solid rgba(255, 255, 255, .35);
	border-top-color: var(--pk-white);
	border-radius: 50%;
	width: 14px;
	height: 14px;
	animation: pk-spin .7s linear infinite;
	vertical-align: -2px;
}
.pk-form .elementor-form-waiting .elementor-form-spinner {
	display: none;
}
@keyframes pk-spin { to { transform: rotate(360deg); } }

/* Mensaje general de error de Elementor (servidor) */
.pk-form .elementor-form > .elementor-message-danger {
	margin-top: 14px !important;
	padding: 12px 16px !important;
	border-radius: 12px;
	background: var(--pk-ink) !important;
	color: var(--pk-white) !important;
	font: 500 14px/1.4 var(--pk-font) !important;
}
.pk-form .elementor-form > .elementor-message-danger::before {
	color: var(--pk-white) !important;
}

/* reCAPTCHA v3 sin hueco */
.pk-form .elementor-field-type-recaptcha_v3 {
	margin: 0 !important;
	padding: 0 !important;
}

/* ---------- Estado enviado: panel de éxito ---------- */
.pk-form.pk-form--sent .elementor-form {
	display: none;
}
.pk-success {
	color: var(--pk-white);
	font-family: var(--pk-font);
	animation: pk-in .45s cubic-bezier(.2, .8, .2, 1) both;
}
@keyframes pk-in {
	from { opacity: 0; transform: translateY(12px); }
	to { opacity: 1; transform: none; }
}
.pk-success__head {
	display: flex;
	gap: 16px;
	align-items: flex-start;
}
.pk-success__icon {
	flex: 0 0 52px;
	width: 52px;
	height: 52px;
	color: var(--pk-white);
}
.pk-success__icon svg {
	width: 100%;
	height: 100%;
	display: block;
}
.pk-success__icon circle {
	stroke-dasharray: 151;
	stroke-dashoffset: 151;
	animation: pk-draw .6s .1s ease-out forwards;
}
.pk-success__icon path {
	stroke-dasharray: 40;
	stroke-dashoffset: 40;
	animation: pk-draw .35s .55s ease-out forwards;
}
@keyframes pk-draw { to { stroke-dashoffset: 0; } }

.pk-form .pk-success__title {
	margin: 2px 0 6px !important;
	color: var(--pk-white) !important;
	font-family: var(--pk-font) !important;
	font-size: clamp(22px, 2.2vw, 28px) !important;
	font-weight: 700 !important;
	line-height: 1.15 !important;
	outline: none;
}
.pk-form .pk-success__text {
	margin: 0 !important;
	color: var(--pk-white) !important;
	font-size: 15px !important;
	line-height: 1.5 !important;
	opacity: .95;
}
.pk-success__kicker {
	margin: 26px 0 12px !important;
	padding-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, .28);
	font-size: 12px !important;
	font-weight: 700 !important;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pk-white) !important;
}
.pk-success__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}
.pk-success__grid .pk-serv:last-child:nth-child(odd) {
	grid-column: 1 / -1;
}
.pk-form a.pk-serv {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 16px 16px 14px;
	border-radius: 14px;
	background: var(--pk-white);
	color: var(--pk-ink) !important;
	text-decoration: none !important;
	box-shadow: 0 8px 20px -14px rgba(14, 19, 25, .7);
	transition: transform .2s ease, background-color .2s ease, color .2s ease;
}
.pk-serv__t {
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
}
.pk-serv__d {
	font-size: 12.5px;
	line-height: 1.4;
	color: #535353;
	transition: color .2s ease;
}
.pk-serv__go {
	margin-top: auto;
	padding-top: 4px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--pk-red);
	transition: color .2s ease, gap .2s ease;
}
.pk-form a.pk-serv:hover,
.pk-form a.pk-serv:focus-visible {
	background: var(--pk-ink);
	color: var(--pk-white) !important;
	transform: translateY(-2px);
	outline: none;
}
.pk-form a.pk-serv:hover .pk-serv__d,
.pk-form a.pk-serv:focus-visible .pk-serv__d {
	color: var(--pk-gray);
}
.pk-form a.pk-serv:hover .pk-serv__go,
.pk-form a.pk-serv:focus-visible .pk-serv__go {
	color: var(--pk-white);
	gap: 10px;
}
.pk-success__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 18px;
}
.pk-form .pk-btn {
	flex: 1 1 180px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 12px 20px !important;
	border-radius: 14px !important;
	font-family: var(--pk-font) !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	letter-spacing: .04em;
	text-transform: uppercase;
	text-decoration: none !important;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.pk-form .pk-btn--light {
	background: var(--pk-ink) !important;
	color: var(--pk-white) !important;
	border: 2px solid var(--pk-ink) !important;
}
.pk-form .pk-btn--light:hover {
	background: var(--pk-teal) !important;
	border-color: var(--pk-teal) !important;
}
.pk-form .pk-btn--ghost {
	background: transparent !important;
	color: var(--pk-white) !important;
	border: 2px solid rgba(255, 255, 255, .7) !important;
}
.pk-form .pk-btn--ghost:hover {
	background: var(--pk-white) !important;
	color: var(--pk-ink) !important;
	border-color: var(--pk-white) !important;
}
.pk-form .pk-btn:focus-visible {
	outline: 3px solid var(--pk-white) !important;
	outline-offset: 3px;
}
/* El mensaje verde de Elementor queda oculto: lo reemplaza el panel */
.pk-form.pk-form--sent .elementor-message-success {
	display: none !important;
}

/* ---------- Móvil ---------- */
@media (max-width: 767px) {
	.pk-form .elementor-field-group.elementor-col-50 {
		width: 100% !important;
	}
	.pk-form .elementor-field-group .elementor-field.elementor-field-textual {
		font-size: 16px !important; /* evita el zoom automático de iOS */
	}
	.pk-success__grid {
		grid-template-columns: 1fr;
	}
	.pk-success__head {
		gap: 12px;
	}
	.pk-success__icon {
		flex-basis: 44px;
		width: 44px;
		height: 44px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pk-form *,
	.pk-success,
	.pk-success * {
		animation: none !important;
		transition: none !important;
	}
	.pk-success__icon circle,
	.pk-success__icon path {
		stroke-dashoffset: 0;
	}
}

/* ---------- Teléfono: prefijo +56 fijo ---------- */
.pk-form .pk-tel {
	position: relative;
	display: block;
	width: 100%;
}
.pk-form .pk-tel__prefix {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 2px;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 7px;
	padding: 0 12px 0 16px;
	font-family: var(--pk-font);
	font-size: 15px;
	font-weight: 700;
	color: var(--pk-ink);
	pointer-events: none; /* el clic pasa al input */
}
.pk-form .pk-tel__prefix::after {
	content: "";
	position: absolute;
	right: 0;
	top: 14px;
	bottom: 14px;
	width: 1px;
	background: rgba(14, 19, 25, .18);
}
.pk-form .pk-tel__flag {
	width: 20px;
	height: 14px;
	border-radius: 2px;
	box-shadow: 0 0 0 1px rgba(14, 19, 25, .15);
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 20'%3E%3Crect width='30' height='20' fill='%23D52B1E'/%3E%3Crect width='30' height='10' fill='%23fff'/%3E%3Crect width='10' height='10' fill='%230039A6'/%3E%3Cpath d='M5 2.2l.9 2.7h2.8l-2.3 1.7.9 2.7L5 7.6 2.7 9.3l.9-2.7-2.3-1.7h2.8z' fill='%23fff'/%3E%3C/svg%3E") center / cover no-repeat;
}
.pk-form .pk-tel .elementor-field.elementor-field-textual {
	padding-left: 92px !important;
}