/* Ipoteco CRM 0.5.3: isolated popup, form and account controls. */
.ipoteco-crm-popups,
.ipoteco-crm-popups *,
.ipoteco-crm-launch { box-sizing: border-box; }

.ipoteco-crm-launch {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 47px;
  max-width: 100%;
  padding: 11px 23px;
  border: 1px solid #057b55;
  border-radius: 12px;
  background: linear-gradient(115deg, #087c58 0%, #079f6b 100%);
  box-shadow: 0 9px 22px rgba(0, 117, 83, .2);
  color: #fff;
  font-family: "Lora", Georgia, serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  white-space: normal;
  cursor: pointer;
  transition: filter .16s ease, transform .16s ease;
}
.ipoteco-crm-launch:hover,
.ipoteco-crm-launch:focus { color: #fff; filter: brightness(.96); }
.ipoteco-crm-launch:hover { transform: translateY(-1px); }
.ipoteco-crm-launch--floating {
  position: fixed;
  right: 24px;
  bottom: 25px;
  z-index: 99930;
}
.ipoteco-crm-launch:focus-visible,
.ipoteco-crm-modal :is(button, input, a):focus-visible {
  outline: 3px solid #25b38a;
  outline-offset: 3px;
}
body.ipoteco-crm-modal-open { overflow: hidden; }
.ipoteco-crm-modal[hidden],
.ipoteco-crm-account-fields[hidden] { display: none !important; }
.ipoteco-crm-modal {
  --ipoteco-crm-ink: #112a42;
  --ipoteco-crm-muted: #526b7c;
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 100%;
  padding: 24px 16px;
  font-family: "Lora", Georgia, serif;
  font-size: 14px;
  line-height: 1.5;
  color: var(--ipoteco-crm-ink);
  text-align: left;
  isolation: isolate;
}
.ipoteco-crm-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(8, 26, 38, .7);
}
.ipoteco-crm-modal-dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 745px);
  max-height: min(90vh, 850px);
  max-height: min(90dvh, 850px);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 34px 40px 36px;
  border: 1px solid #dfebe5;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 32px 85px rgba(5, 26, 25, .29);
}
.ipoteco-crm-modal-close {
  position: absolute;
  top: 14px;
  right: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  border: 1px solid #dce8e3;
  border-radius: 50%;
  background: #f6faf8;
  color: #254558;
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
}
.ipoteco-crm-modal-close:hover { background: #e9f6ef; }
.ipoteco-crm-modal-head { margin: 0 38px 24px 0; }
.ipoteco-crm-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #087a56;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.ipoteco-crm-kicker::before {
  content: "";
  width: 18px;
  height: 3px;
  border-radius: 3px;
  background: #0a9c67;
}
.ipoteco-crm-modal-head h2 {
  margin: 9px 0 7px;
  padding: 0;
  color: #0e253c;
  font-family: inherit;
  font-size: clamp(22px, 2.5vw, 29px);
  font-weight: 700;
  line-height: 1.22;
  letter-spacing: -.025em;
}
.ipoteco-crm-modal-head p {
  margin: 0;
  color: #56707e;
  font-family: inherit;
  font-size: 13px;
  line-height: 1.55;
}
.ipoteco-crm-form,
.ipoteco-crm-form * { box-sizing: border-box; }
.ipoteco-crm-form { width: 100%; min-width: 0; margin: 0; color: inherit; font: inherit; }
.ipoteco-crm-form form { display: block; width: 100%; margin: 0; padding: 0; }
.ipoteco-crm-form .ipoteco-crm-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 17px 18px;
  width: 100%;
  min-width: 0;
}
.ipoteco-crm-form .ipoteco-crm-field {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 7px;
  width: 100%;
  min-width: 0;
}
.ipoteco-crm-form .ipoteco-crm-field-full { grid-column: 1 / -1; }
.ipoteco-crm-form .ipoteco-crm-field > label {
  display: block;
  margin: 0;
  padding: 0;
  color: #203a50;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
}
.ipoteco-crm-form .ipoteco-crm-field > label span { color: #058356; }
.ipoteco-crm-form .ipoteco-crm-field > input:not([type="hidden"]) {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: 45px;
  min-height: 45px;
  margin: 0;
  padding: 10px 13px;
  appearance: none;
  border: 1px solid #cddfdc;
  border-radius: 9px;
  outline: 0;
  background: #fbfdfc;
  box-shadow: none;
  color: #102c40;
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  transition: border-color .16s ease, box-shadow .16s ease;
}
.ipoteco-crm-form .ipoteco-crm-field > input:not([type="hidden"]):focus {
  border-color: #048965;
  box-shadow: 0 0 0 3px rgba(0, 141, 98, .12);
  background: #fff;
}
.ipoteco-crm-form .ipoteco-crm-field > input[readonly] {
  background: #f3f7f6;
  color: #5c6e77;
}
.ipoteco-crm-form .ipoteco-crm-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  max-width: 100%;
  margin: 18px 0 0;
  padding: 11px 24px;
  border: 1px solid #057b55;
  border-radius: 10px;
  background: linear-gradient(115deg, #087c58 0%, #079f6b 100%);
  box-shadow: 0 8px 19px rgba(0, 117, 83, .17);
  color: #fff;
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  white-space: normal;
  cursor: pointer;
}
.ipoteco-crm-form .ipoteco-crm-submit:hover { filter: brightness(.96); color: #fff; }
.ipoteco-crm-form .ipoteco-crm-notice,
.ipoteco-crm-account-summary {
  max-width: 100%;
  margin: 0 0 20px;
  padding: 13px 15px;
  overflow-wrap: anywhere;
  border-left: 3px solid #087e59;
  border-radius: 8px;
  background: #ecf9f2;
  color: #1a4c39;
  font-size: 13px;
}
.ipoteco-crm-form .ipoteco-crm-notice.ipoteco-crm-error {
  border-left-color: #bc5c35;
  background: #fff5ef;
  color: #75452c;
}
.ipoteco-crm-form .ipoteco-crm-notice p,
.ipoteco-crm-account-summary p { margin: 0 0 7px; }
.ipoteco-crm-form .ipoteco-crm-notice p:last-child,
.ipoteco-crm-account-summary p:last-child { margin-bottom: 0; }
.ipoteco-crm-form a { color: #007b58; text-decoration: underline; overflow-wrap: anywhere; }
.ipoteco-crm-form .ipoteco-crm-account {
  margin-top: 20px;
  padding: 15px 17px 13px;
  border: 1px solid #dbeae2;
  border-radius: 11px;
  background: #f6faf8;
}
.ipoteco-crm-account-choice {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  margin: 0;
  color: #163b3a;
  cursor: pointer;
}
.ipoteco-crm-account-choice input[type="checkbox"] {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 3px 0 0;
  accent-color: #07845b;
  cursor: pointer;
}
.ipoteco-crm-account-choice span { display: block; flex: 1 1 auto; min-width: 0; }
.ipoteco-crm-account-choice strong { display: block; font-size: 13px; line-height: 1.4; }
.ipoteco-crm-account-choice small {
  display: block;
  margin-top: 3px;
  color: #587283;
  font-size: 12px;
  line-height: 1.5;
}
.ipoteco-crm-account-fields { padding-top: 16px; }
.ipoteco-crm-form .ipoteco-crm-account-hint,
.ipoteco-crm-form .ipoteco-crm-signin {
  margin: 11px 0 0;
  color: #55707d;
  font-size: 12px;
  line-height: 1.6;
}
.ipoteco-crm-form .ipoteco-crm-signed-in { margin: 18px 0 4px; color: #50736a; font-size: 13px; }
.ipoteco-crm-form .ipoteco-crm-privacy { margin: 15px 0 0; color: #637785; font-size: 12px; line-height: 1.55; }
@media (max-width: 650px) {
  .ipoteco-crm-modal { padding: 12px; }
  .ipoteco-crm-modal-dialog { padding: 29px 21px 26px; border-radius: 15px; max-height: calc(100dvh - 24px); }
  .ipoteco-crm-modal-head { margin-right: 30px; }
  .ipoteco-crm-modal-head h2 { font-size: 23px; }
  .ipoteco-crm-form .ipoteco-crm-grid { grid-template-columns: 1fr; gap: 15px; }
  .ipoteco-crm-form .ipoteco-crm-field-full { grid-column: auto; }
  .ipoteco-crm-form .ipoteco-crm-submit { width: 100%; }
  .ipoteco-crm-launch--floating { right: 14px; bottom: 14px; }
}
@media (max-width: 380px) {
  .ipoteco-crm-modal { padding: 7px; }
  .ipoteco-crm-modal-dialog { padding: 24px 15px; max-height: calc(100dvh - 14px); }
  .ipoteco-crm-launch--floating { right: 10px; bottom: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .ipoteco-crm-launch,
  .ipoteco-crm-form input { transition: none; }
}
/* 0.6.0: explicit privacy consent, partner type and spam trap. */
.ipoteco-crm-trap { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.ipoteco-crm-form .ipoteco-crm-field select { width:100%; min-height:45px; padding:9px 12px; border:1px solid #cddfdc; border-radius:9px; background:#fff; color:#203a50; }
.ipoteco-crm-form .ipoteco-crm-privacy label { display:flex; align-items:flex-start; gap:8px; cursor:pointer; line-height:1.5; }
.ipoteco-crm-form .ipoteco-crm-privacy input { flex:0 0 auto; margin-top:4px; }
