/* All rules are scoped. Existing site typography and custom button colours survive. */
.ig-portal { font-family:var(--ig-font-family,inherit); color:#15231b; font-size:16px; line-height:1.6; max-width:1200px; margin:32px auto; padding:0 20px; overflow-wrap:anywhere; }
.ig-portal *, .ig-search-v2 * { box-sizing:border-box; }
.ig-portal h2,.ig-portal h3 { color:inherit; line-height:1.2; font-family:inherit; }
.ig-portal h2 { font-size:clamp(24px,4vw,36px); margin:0 0 20px; }
.ig-portal h3 { font-size:22px; margin:12px 0; }
.ig-portal a:not(.ig-button) { color:#24573b; text-decoration:underline; text-underline-offset:3px; }
.igp-auth { display:grid; grid-template-columns:1fr 1fr; border:1px solid #dce5df; border-radius:24px; overflow:hidden; box-shadow:0 12px 40px #15231b0d; background:#fff; }
.igp-auth__intro { background:#193929; color:#fff; padding:clamp(24px,5vw,64px); }
.igp-auth__intro h2 { color:#fff; margin-top:30px; font-size:clamp(30px,4vw,48px); }
.igp-auth__intro ul { padding-left:20px; margin-top:32px; }
.igp-auth__intro li { margin:16px 0; }
.igp-auth__body { padding:clamp(24px,4vw,48px); min-width:0; }
.igp-kicker { font-size:12px; letter-spacing:.12em; font-weight:750; }
.igp-tabs,.igp-nav { display:flex; flex-wrap:wrap; gap:20px; align-items:center; padding-bottom:20px; margin-bottom:28px; border-bottom:1px solid #dce5df; }
.igp-tabs a,.igp-nav a { font-weight:650; }
.igp-nav form { margin:0 0 0 auto; }
.igp-header { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:20px; }
.igp-header h2 { margin:8px 0 0; }
.igp-form { margin:0; }
.igp-form fieldset { border:1px solid #dce5df; border-radius:16px; padding:24px; margin:24px 0; background:#fff; min-width:0; }
.igp-form legend { padding:0 8px; font-size:20px; font-weight:700; max-width:100%; }
.igp-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; }
.igp-field { display:flex; flex-direction:column; gap:8px; min-width:0; margin:0 0 20px; font-weight:600; }
.igp-field input,.igp-field select,.igp-field textarea { width:100%; max-width:100%; min-width:0; border:1px solid #9cafa3; border-radius:8px; color:#15231b; background:#fff; padding:12px; font:inherit; font-size:16px; font-weight:400; line-height:1.5; min-height:48px; box-shadow:none; }
.igp-field textarea { min-height:130px; resize:vertical; }
.igp-field input[readonly] { background:#f2f5f3; }
.igp-check { display:flex; align-items:flex-start; gap:10px; margin:0 0 14px; font-size:15px; cursor:pointer; }
.igp-check input { flex:0 0 auto; margin:4px 0 0; width:18px; height:18px; accent-color:#24573b; }
.igp-checks { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 16px; margin-top:16px; }
.igp-help { font-size:14px; color:#536159; margin:12px 0 20px; }
.igp-notice { background:#eef6ef; border:1px solid #b7d3bd; border-left:4px solid #28734d; padding:16px 20px; border-radius:8px; margin:0 0 24px; color:#193929; }
.igp-notice--error { background:#fff2ed; border-color:#c06b43; color:#712c12; }
.igp-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.igp-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:24px 0 32px; }
.igp-stats>div { display:flex; flex-direction:column; background:#f2f6f2; border:1px solid #dce5df; border-radius:12px; padding:20px; }
.igp-stats strong { font-size:32px; line-height:1.2; }
.igp-stats span { font-size:14px; }
.igp-list { display:grid; grid-template-columns:repeat(var(--ig-listing-columns,3),minmax(0,1fr)); gap:24px; }
.igp-property { border:1px solid #dce5df; border-radius:16px; overflow:hidden; background:#fff; display:flex; flex-direction:column; min-width:0; }
.igp-property__image { background:#edf2ed; aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; }
.igp-property__image img { width:100%; height:100%; object-fit:contain; display:block; }
.igp-property__body { padding:20px; flex:1; }
.igp-badge { background:#edf2ed; color:#193929; padding:5px 10px; border-radius:20px; display:inline-block; font-weight:700; font-size:12px; }
.igp-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px; }
.igp-actions form { margin:0; }
.ig-portal .igp-link { border:0; padding:8px 0; min-height:44px; background:none; color:#24573b; font:inherit; text-decoration:underline; cursor:pointer; }
.ig-portal .igp-link.igp-danger { color:#912b1c; }
.ig-portal .igp-secondary { border:1px solid #799884; color:#193929; background:#eef5f0; border-radius:8px; padding:12px 20px; font:600 16px/1.4 var(--ig-font-family,inherit); cursor:pointer; }
.ig-portal .ig-button { text-align:center; white-space:normal; line-height:1.4; }
.igp-empty { background:#f3f6f2; border-radius:16px; padding:40px; text-align:center; }
.igp-photos,.igp-previews { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:16px; margin:20px 0; }
.igp-photo { border:1px solid #dce5df; border-radius:8px; padding:8px; }
.igp-photo img,.igp-previews img { width:100%; height:120px; object-fit:contain; background:#f2f5f3; border-radius:6px; margin-bottom:8px; }
.igp-photo .igp-check { margin-bottom:6px; font-size:13px; }
.igp-upload { display:block; padding:24px; border:2px dashed #8fae99; border-radius:12px; background:#f2f7f3; }
.igp-upload span { display:block; margin-bottom:12px; font-weight:700; }
.igp-upload input { width:100%; max-width:100%; font-size:16px; color:#193929; }
.igp-upload-status { color:#712c12; }
.igp-pagination { display:flex; flex-wrap:wrap; gap:12px; margin:30px 0; }
.igp-pagination a { padding:8px 14px; border:1px solid #9cafa3; border-radius:6px; }
.igp-pagination a[aria-current] { background:#eef6ef; font-weight:750; }
.ig-portal :focus-visible,.ig-search-v2 :focus-visible { outline:3px solid #0875bb!important; outline-offset:3px; }
.ig-portal { container:ig-portal / inline-size; }
.ig-shortcode-listing { container:ig-listing / inline-size; }
.ig-search-wrap { container:ig-search / inline-size; width:100%; min-width:0; height:auto; min-height:0; }

/* Distinct, visible fields in BOTH filter placements. Native selects remain keyboard-friendly. */
.ig-search-v2.ig-header-search,.ig-search-v2.ig-filters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)) auto; grid-auto-rows:auto; align-items:end; align-content:start; height:auto; min-height:0; gap:16px; box-sizing:border-box; }
.ig-search-v2 .ig-search-v2__intro,.ig-search-v2 .ig-search-v2__footer { grid-column:1/-1; }
.ig-search-v2__intro strong { display:block; font-size:20px; line-height:1.3; }
.ig-search-v2__intro p { margin:6px 0 2px; font-size:14px; line-height:1.5; color:inherit; }
.ig-header-search .ig-search-v2__intro,.ig-header-search .ig-search-v2__footer { color:var(--ig-header-label,#fff); }
.ig-filters .ig-search-v2__intro { color:var(--ig-filter-label,#15231b); }
.ig-search-v2.ig-header-search .ig-header-search__field { border:0; padding:0; min-width:0; }
.ig-search-v2 select { cursor:pointer; width:100%; max-width:100%; min-width:0; box-sizing:border-box; }
.ig-search-v2.ig-filters select { background-color:var(--ig-filter-field-bg,#fff); padding:10px 12px; min-height:48px; }
.ig-search-v2.ig-header-search select { appearance:auto; background:var(--ig-header-field-bg,#203b2a)!important; border:1px solid currentColor!important; border-radius:8px; padding:10px 12px!important; height:auto; min-height:52px; line-height:1.5; }
.ig-search-v2 select.is-selected { box-shadow:inset 0 -3px 0 var(--ig-accent)!important; }
.ig-search-v2 option { color:#15231b; background:#fff; }
.ig-search-v2.ig-header-search .ig-header-search__button { display:flex; justify-content:center; align-items:center; align-self:end; gap:8px; margin:0; grid-column:auto; }
.ig-search-v2 .ig-button { gap:8px; }
.ig-search-v2 button { white-space:normal; }
.ig-search-v2 .ig-search-v2__footer { display:flex; align-items:center; flex-wrap:wrap; gap:16px; }
.ig-search-v2.ig-header-search .ig-filter-clear { color:inherit; }
.ig-search-v2 .ig-filter-clear { font-size:14px; text-decoration:underline; text-underline-offset:3px; margin:0; min-height:32px; display:inline-flex; align-items:center; }
.ig-search-v2__chips { display:flex; flex-wrap:wrap; gap:8px; font-size:12px; }
.ig-search-v2__chips span { border:1px solid currentColor; border-radius:30px; padding:4px 10px; }
@media(max-width:1024px) {
 .ig-search-v2.ig-header-search,.ig-search-v2.ig-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .ig-search-v2.ig-header-search .ig-header-search__button,.ig-search-v2.ig-filters .ig-button { grid-column:1/-1; width:100%; }
}
@media(max-width:780px) {
 /* Standalone search: content-sized flow on mobile, without containment/flex
    height feedback from Elementor. The viewport rules below remain active. */
 body .ig-search-wrap {
  container-type:normal;
  display:flow-root;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  margin-bottom:0!important;
  padding-bottom:0!important;
 }
 body .ig-search-wrap > .ig-header-search.ig-search-v2 {
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  grid-template-rows:none;
  grid-auto-rows:max-content;
  align-content:start;
  margin-bottom:0!important;
 }
 /* JS marks only a single-child chain leading to this filter. It stops at
    a heading, another widget, a spacer or any other content. Never global. */
 html body .elementor .ig-search-host {
  --height:auto;
  --min-height:0px;
  --container-widget-height:auto;
  --margin-bottom:0px;
  --padding-bottom:0px;
  --flex-grow:0;
  --flex-basis:auto;
  --flex-wrap:nowrap;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  flex:0 1 auto!important;
  flex-wrap:nowrap!important;
  justify-content:flex-start!important;
  align-content:flex-start!important;
  margin-bottom:0!important;
  padding-bottom:0!important;
 }
 .ig-search-v2.ig-header-search,.ig-search-v2.ig-filters { gap:12px; }
 .ig-search-v2.ig-filters { margin-bottom:20px; }
 .ig-search-v2 .ig-search-v2__footer { gap:8px 12px; }
 .ig-search-v2 .ig-filter-clear { min-height:44px; }
 /* Opt-in on the specific Elementor container/widget: never reset every section. */
 body .ig-mobile-sem-espaco,
 body .ig-mobile-sem-espaco > .e-con-inner,
 body .ig-mobile-sem-espaco > .elementor-widget-container {
  --min-height:0px;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin-bottom:0!important;
  padding-bottom:0!important;
 }
 .igp-auth,.igp-list { grid-template-columns:1fr; }
 .igp-header { align-items:flex-start; flex-direction:column; }
 .igp-checks { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .igp-auth__intro h2 { margin:16px 0; }
 .igp-auth__intro ul { margin:16px 0 0; }
 .igp-auth__intro li { margin:6px 0; }
}
@media(max-width:520px) {
 .ig-portal { padding:0 12px; margin:24px auto; }
 .igp-grid,.igp-checks { grid-template-columns:1fr; }
 .igp-stats { gap:8px; }
 .igp-stats>div { padding:12px 8px; }
 .igp-stats strong { font-size:26px; }
 .igp-form fieldset { padding:16px; }
 .igp-nav { gap:16px; }
 .igp-nav form { margin-left:0; }
 .igp-actions>.ig-button,.igp-actions>.igp-secondary { width:100%; justify-content:center; }
 .ig-search-v2.ig-header-search,.ig-search-v2.ig-filters { grid-template-columns:minmax(0,1fr); }
 .ig-search-v2 select { font-size:max(16px,1em); }
}
@container ig-portal (max-width:720px) {
 .igp-auth,.igp-list,.igp-grid { grid-template-columns:1fr; }
 .igp-header { align-items:flex-start; flex-direction:column; }
 .igp-checks { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@container ig-portal (max-width:450px) {
 .igp-checks { grid-template-columns:1fr; }
 .igp-nav form { margin-left:0; }
}
@container ig-listing (max-width:850px) {
 .ig-search-v2.ig-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .ig-search-v2.ig-filters .ig-button { grid-column:1/-1; width:100%; }
 .ig-properties.ig-columns-3,.ig-properties.ig-columns-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@container ig-listing (max-width:520px) {
 .ig-search-v2.ig-filters,.ig-properties { grid-template-columns:minmax(0,1fr)!important; }
}
@container ig-search (max-width:850px) {
 .ig-search-v2.ig-header-search { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .ig-search-v2.ig-header-search .ig-header-search__button { grid-column:1/-1; width:100%; }
}
@container ig-search (max-width:520px) {
 .ig-search-v2.ig-header-search { grid-template-columns:minmax(0,1fr); }
}
.igp-account-status p:last-child { margin-bottom:0; }
/* Pair background and text together, including theme/Elementor submit-button overrides. */
body .ig-portal .ig-button,
body .ig-site-main .ig-button,
body .ig-shortcode-listing .ig-button,
body .ig-filters .ig-button,
body .ig-header-search .ig-header-search__button {
 background:var(--igb-bg,#24573b)!important;
 color:var(--igb-text,#fff)!important;
 -webkit-text-fill-color:var(--igb-text,#fff)!important;
 border:1px solid var(--igb-bg,#24573b)!important;
 text-shadow:none!important;
 opacity:1!important;
}
body .ig-portal .ig-button:hover,body .ig-portal .ig-button:focus-visible,
body .ig-site-main .ig-button:hover,body .ig-site-main .ig-button:focus-visible,
body .ig-shortcode-listing .ig-button:hover,body .ig-shortcode-listing .ig-button:focus-visible,
body .ig-filters .ig-button:hover,body .ig-filters .ig-button:focus-visible,
body .ig-header-search .ig-header-search__button:hover,body .ig-header-search .ig-header-search__button:focus-visible {
 background:var(--igb-hover,#173d28)!important;
 border-color:var(--igb-hover,#173d28)!important;
 color:var(--igb-hover-text,#fff)!important;
 -webkit-text-fill-color:var(--igb-hover-text,#fff)!important;
}
