/**
 * MLS Genie — [mlsg_form] lead forms (buyer search, home valuation, newsletter).
 * Moved out of the form markup so it is cached once instead of printed with
 * every form.
 */
/* Address confirmation feedback. Sits under the field so it does not
   shift the layout when it appears. */
.mlsg-gf__addr-note { display:block; margin-top:6px; font-size:0.8125rem; line-height:1.5; }
.mlsg-gf__addr-note--ok   { color:var(--mlsg-success-dark); }
.mlsg-gf__addr-note--warn { color:var(--mlsg-warning-dark); }
/* Google renders its suggestion list in a container appended to the
   body, which sits under modals and sticky headers without this. */
.pac-container { z-index: 100000; }
.mlsg-gf { font-family:inherit; }
.mlsg-gf__title    { font-size:1.5rem; font-weight:700; color:var(--mlsg-gf-primary); margin:0 0 6px; line-height:1.25; }
.mlsg-gf__subtitle { font-size:0.9375rem; color:var(--mlsg-text-muted); margin:0 0 24px; }
.mlsg-gf__fields   { display:flex; flex-direction:column; gap:16px; }
.mlsg-gf__row      { --gf-cols:1; display:flex; flex-wrap:wrap; gap:16px; }
.mlsg-gf__row > *  { flex:0 0 calc((100% - (var(--gf-cols) - 1) * 16px) / var(--gf-cols)); min-width:0; box-sizing:border-box; }
.mlsg-gf__row--2   { --gf-cols:2; }
.mlsg-gf__row--3   { --gf-cols:3; }
/* Cities + Notes side by side — each column stretches to match the other */
.mlsg-gf__row--cities-notes { --gf-cols:2; align-items:stretch; }
.mlsg-gf__row--cities-notes .mlsg-gf__field { display:flex; flex-direction:column; }
.mlsg-gf__cities-select { flex:1; min-height:120px; height:100%; }
.mlsg-gf__notes-area    { flex:1; min-height:120px; resize:none; }
@media(max-width:640px){
	.mlsg-gf__row--cities-notes { --gf-cols:1; }
	.mlsg-gf__cities-select { height:auto; min-height:100px; }
	.mlsg-gf__notes-area    { min-height:90px; resize:vertical; }
}
@media(max-width:560px){
	.mlsg-gf__row--2,
	.mlsg-gf__row--3 { --gf-cols:1; }
}
.mlsg-gf__field label  { display:block; font-size:0.8125rem; font-weight:600; color:var(--mlsg-text-medium); margin-bottom:5px; }
.mlsg-gf__req          { color:var(--mlsg-gf-accent); }
.mlsg-gf__field input[type="text"],
.mlsg-gf__field input[type="email"],
.mlsg-gf__field input[type="tel"],
.mlsg-gf__field select,
.mlsg-gf__field textarea { width:100%; padding:10px 14px; border:1px solid var(--mlsg-border-light); border-radius:8px; font-size:0.875rem; font-family:inherit; color:var(--mlsg-text); background:var(--mlsg-white); box-sizing:border-box; transition:border-color .12s; }
.mlsg-gf__field input:focus,
.mlsg-gf__field select:focus,
.mlsg-gf__field textarea:focus { outline:none; border-color:var(--mlsg-gf-primary); box-shadow:0 0 0 3px rgba(26,26,46,.08); }
.mlsg-gf__field textarea { resize:vertical; min-height:90px; line-height:1.6; }
.mlsg-gf__hint { font-size:0.75rem; color:var(--mlsg-text-muted); margin:4px 0 0; }
.mlsg-gf__consent { font-size:0.8125rem; color:var(--mlsg-text-secondary); line-height:1.5; }
.mlsg-gf__consent a { color:var(--mlsg-gf-primary); text-decoration:underline; }
.mlsg-gf__consent { display:flex; flex-direction:column; gap:10px; }
.mlsg-gf__consent .mlsg-gf__consent-label { display:flex; align-items:flex-start; gap:10px; margin:0; cursor:pointer; font-weight:400; }
.mlsg-gf__consent input[type="checkbox"] { margin-top:3px; flex-shrink:0; }
.mlsg-gf__submit   { width:100%; padding:13px 20px; background:var(--mlsg-gf-accent); color:var(--mlsg-on-brand); border:none; border-radius:8px; font-size:0.9375rem; font-weight:700; font-family:inherit; cursor:pointer; transition:opacity .12s; }
.mlsg-gf__submit:hover   { opacity:.88; }
.mlsg-gf__submit:disabled { opacity:.55; cursor:not-allowed; }
.mlsg-gf__success { padding:14px 18px; background:var(--mlsg-bg-light); border:1px solid var(--mlsg-success-border); border-radius:8px; color:var(--mlsg-success); font-size:0.875rem; font-weight:600; line-height:1.5; }
.mlsg-gf__error   { padding:14px 18px; background:var(--mlsg-bg-subtle); border:1px solid var(--mlsg-danger-border); border-radius:8px; color:var(--mlsg-danger); font-size:0.875rem; line-height:1.5; }
/* Phone input validation states */
.mlsg-gf .mlsg-gf__field input.mlsg-gf__phone-input.is-valid   { border-color:var(--mlsg-success); background:var(--mlsg-success-bg); }
.mlsg-gf .mlsg-gf__field input.mlsg-gf__phone-input.is-invalid { border-color:var(--mlsg-danger); background:var(--mlsg-danger-bg); }
.mlsg-gf__phone-hint { font-size:0.6875rem; margin:4px 0 0; display:none; }
.mlsg-gf__phone-hint.is-valid   { display:block; color:var(--mlsg-success); }
.mlsg-gf__phone-hint.is-invalid { display:block; color:var(--mlsg-danger); }

/* Shown by genie-forms.js once a message is set. */
.mlsg-gf__success:not(.is-shown),
.mlsg-gf__error:not(.is-shown) { display:none; }
.mlsg-gf__fields.is-done { display:none; }
