/* Lotes & Mapa — contact form ([lotes_contacto]).
 * Scoped under .lm-cf. Elementor / theme resets style buttons and inputs globally, so the
 * properties that matter carry !important (same pattern as the other front-end components). */

.lm-cf {
	--cf-blue:   #255699;
	--cf-gold:   #CD9A4D;
	--cf-cream:  #FFF9EA;
	--cf-ink:    #3D351F;
	--cf-muted:  #7A6F55;
	--cf-line:   #E3D6B8;
	--cf-wa:     #1F8F55;
	--cf-ok:     #15803d;
	--cf-err:    #b42318;
	color: var(--cf-ink);
	font-family: inherit;
	font-size: 15px;
	line-height: 1.45;
	max-width: 620px;
	margin: 0 auto;
	box-sizing: border-box;
}
.lm-cf *, .lm-cf *::before, .lm-cf *::after { box-sizing: border-box; }
.lm-cf [hidden] { display: none !important; }

.lm-cf-form {
	background: #fff;
	border: 1px solid #EADFC6;
	border-radius: 16px;
	padding: 24px;
	margin: 0;
}
@media (max-width: 520px) { .lm-cf-form { padding: 18px 16px; } }

.lm-cf-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 14px; }
@media (max-width: 560px) { .lm-cf-row { grid-template-columns: minmax(0, 1fr); } }

.lm-cf-field { display: block; margin: 0 0 4px; }
.lm-cf .lm-cf-label {
	display: block; margin: 0 0 5px; padding: 0;
	font-size: 13.5px; font-weight: 500; color: var(--cf-ink); letter-spacing: normal; text-transform: none;
}
.lm-cf-label i { font-style: normal; color: var(--cf-gold); }
.lm-cf-label em { font-style: normal; font-weight: 400; color: var(--cf-muted); }

.lm-cf input[type="text"],
.lm-cf input[type="tel"],
.lm-cf input[type="email"],
.lm-cf select,
.lm-cf textarea {
	display: block !important; width: 100% !important; margin: 0 !important;
	border: 1px solid var(--cf-line) !important; border-radius: 10px !important;
	background: #fff !important; color: var(--cf-ink) !important; box-shadow: none !important;
	font-family: inherit !important; font-size: 15px !important; line-height: 1.4 !important;
	padding: 10px 12px !important; min-height: 0 !important;
	transition: border-color .15s, box-shadow .15s;
}
.lm-cf input[type="text"], .lm-cf input[type="tel"], .lm-cf input[type="email"], .lm-cf select { height: 46px !important; }
.lm-cf select {
	-webkit-appearance: none !important; appearance: none !important; padding-right: 36px !important;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237A6F55' stroke-width='2' stroke-linecap='round'><path d='M6 9l6 6 6-6'/></svg>") !important;
	background-repeat: no-repeat !important; background-position: right 12px center !important; background-size: 16px !important;
}
.lm-cf textarea { resize: vertical; margin-bottom: 14px !important; }
.lm-cf input::placeholder, .lm-cf textarea::placeholder { color: #B3A88E !important; opacity: 1; }
.lm-cf input:focus, .lm-cf select:focus, .lm-cf textarea:focus {
	border-color: var(--cf-blue) !important; outline: 0 !important; box-shadow: 0 0 0 3px rgba(37, 86, 153, .14) !important;
}
.lm-cf .is-invalid input { border-color: var(--cf-err) !important; }

/* Reserved height: errors never push the form around. */
.lm-cf label, .lm-cf .lm-cf-err, .lm-cf .lm-cf-type-box, .lm-cf .lm-cf-status, .lm-cf .lm-cf-choose { text-transform: none !important; letter-spacing: normal !important; }
.lm-cf .lm-cf-err, .lm-cf .lm-cf-type-box { font-weight: 400 !important; }
.lm-cf-err { display: block; height: 20px; padding-top: 3px; font-size: 12.5px; line-height: 1.3; color: var(--cf-err); overflow: hidden; }

/* Message type cards */
.lm-cf-types { border: 0 !important; padding: 0 !important; margin: 0 0 16px !important; min-width: 0; }
.lm-cf-types legend { padding: 0 !important; }
.lm-cf-type-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
@media (max-width: 560px) { .lm-cf-type-grid { grid-template-columns: minmax(0, 1fr); } }
.lm-cf-type { position: relative; display: block; cursor: pointer; margin: 0; }
.lm-cf-type input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.lm-cf-type-box {
	display: flex; align-items: center; gap: 10px; height: 100%; min-height: 56px;
	padding: 10px 14px; border: 1px solid var(--cf-line); border-radius: 12px; background: #fff;
	font-size: 14px; line-height: 1.3; color: var(--cf-ink);
	transition: border-color .15s, background .15s, box-shadow .15s;
}
.lm-cf-type-box svg { flex: none; color: var(--cf-gold); }
.lm-cf-type:hover .lm-cf-type-box { border-color: var(--cf-gold); }
.lm-cf-type input:checked + .lm-cf-type-box { border-color: var(--cf-blue); background: #F2F6FB; box-shadow: 0 0 0 1px var(--cf-blue); }
.lm-cf-type input:checked + .lm-cf-type-box svg { color: var(--cf-blue); }
.lm-cf-type input:focus-visible + .lm-cf-type-box { box-shadow: 0 0 0 3px rgba(37, 86, 153, .25); }

/* Preferred date is hidden (but keeps its space) when the type isn't "cita". */
.lm-cf [data-when].is-off { visibility: hidden; }
@media (max-width: 560px) { .lm-cf [data-when].is-off { display: none; } }

/* Honeypot */
.lm-cf-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Buttons — fixed-height row; the WhatsApp chooser swaps in at the same height. */
.lm-cf-actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; min-height: 50px; }
.lm-cf-actions.is-single { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 420px) { .lm-cf-actions { grid-template-columns: minmax(0, 1fr); } }

.lm-cf .lm-cf-btn {
	display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 8px !important;
	width: 100% !important; height: 50px !important; margin: 0 !important; padding: 0 16px !important;
	border: 0 !important; border-radius: 12px !important; box-shadow: none !important;
	font-family: inherit !important; font-size: 15px !important; font-weight: 600 !important; line-height: 1 !important;
	letter-spacing: normal !important; text-transform: none !important; text-decoration: none !important;
	color: #fff !important; cursor: pointer; white-space: nowrap;
	transition: background .15s, transform .05s;
}
.lm-cf .lm-cf-btn:active { transform: scale(.985); }
.lm-cf .lm-cf-btn:focus-visible { outline: 3px solid rgba(37, 86, 153, .35) !important; outline-offset: 2px !important; }
.lm-cf .lm-cf-btn-mail { background: var(--cf-blue) !important; }
.lm-cf .lm-cf-btn-mail:hover { background: #1d4680 !important; }
.lm-cf .lm-cf-btn-wa { background: var(--cf-wa) !important; }
.lm-cf .lm-cf-btn-wa:hover { background: #187446 !important; }
.lm-cf .lm-cf-btn[aria-busy="true"] { opacity: .75; cursor: progress; }

.lm-cf-choose {
	grid-column: 1 / -1; display: flex; align-items: center; gap: 6px; flex-wrap: nowrap;
	min-height: 50px; padding: 6px 6px 6px 14px; border-radius: 12px; background: #E9F5EE; border: 1px solid #BFE3CB;
	font-size: 14px; color: #173404;
}
.lm-cf-choose > span { margin-right: auto; white-space: nowrap; }
.lm-cf-choose.is-many { flex-wrap: wrap; } /* 3+ advisors: allow a second line */
.lm-cf .lm-cf-choose button {
	height: 38px !important; margin: 0 !important; padding: 0 14px !important;
	border-radius: 9px !important; border: 0 !important; box-shadow: none !important;
	background: var(--cf-wa) !important; color: #fff !important;
	font-family: inherit !important; font-size: 14px !important; font-weight: 500 !important; line-height: 1 !important;
	text-transform: none !important; letter-spacing: normal !important; cursor: pointer;
}
.lm-cf .lm-cf-choose button.lm-cf-cancel { background: #fff !important; color: var(--cf-ink) !important; border: 1px solid #BFE3CB !important; padding: 0 12px !important; }

.lm-cf-status { min-height: 22px; margin: 10px 0 0 !important; font-size: 13.5px; text-align: center; color: var(--cf-muted); }
.lm-cf-status.is-err { color: var(--cf-err); }
.lm-cf-status.is-ok  { color: var(--cf-ok); }
.lm-cf-status a { color: inherit !important; text-decoration: underline !important; }

/* Sent state */
.lm-cf-done { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 6px; padding: 16px 8px; }
.lm-cf-done-icon {
	width: 52px; height: 52px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
	background: #E9F5EE; color: var(--cf-ok); margin-bottom: 6px;
}
.lm-cf .lm-cf-done h3 { margin: 0 !important; font-size: 20px !important; font-weight: 600 !important; color: var(--cf-blue) !important; line-height: 1.3 !important; }
.lm-cf-done p { margin: 0; color: var(--cf-muted); font-size: 14.5px; max-width: 380px; }
.lm-cf .lm-cf-again {
	margin: 10px 0 0 !important; padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important;
	color: var(--cf-blue) !important; font-family: inherit !important; font-size: 14px !important; font-weight: 400 !important;
	text-decoration: underline !important; text-transform: none !important; letter-spacing: normal !important; cursor: pointer;
}

@media (prefers-reduced-motion: reduce) { .lm-cf * { transition: none !important; } }
