/* All rules are scoped. Existing site typography and custom button colours survive. */
.sa-portal { font-family:var(--sa-font-family,inherit); color:#15231b; font-size:16px; line-height:1.6; max-width:1200px; margin:32px auto; padding:0 20px; overflow-wrap:anywhere; }
.sa-portal *, .sa-search-v2 * { box-sizing:border-box; }
.sa-portal h2,.sa-portal h3 { color:inherit; line-height:1.2; font-family:inherit; }
.sa-portal h2 { font-size:clamp(24px,4vw,36px); margin:0 0 20px; }
.sa-portal h3 { font-size:22px; margin:12px 0; }
.sa-portal a:not(.sa-button) { color:#24573b; text-decoration:underline; text-underline-offset:3px; }
.sap-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; }
.sap-auth__intro { background:#193929; color:#fff; padding:clamp(24px,5vw,64px); }
.sap-auth__intro h2 { color:#fff; margin-top:30px; font-size:clamp(30px,4vw,48px); }
.sap-auth__intro ul { padding-left:20px; margin-top:32px; }
.sap-auth__intro li { margin:16px 0; }
.sap-auth__body { padding:clamp(24px,4vw,48px); min-width:0; }
.sap-kicker { font-size:12px; letter-spacing:.12em; font-weight:750; }
.sap-tabs,.sap-nav { display:flex; flex-wrap:wrap; gap:20px; align-items:center; padding-bottom:20px; margin-bottom:28px; border-bottom:1px solid #dce5df; }
.sap-tabs a,.sap-nav a { font-weight:650; }
.sap-nav form { margin:0 0 0 auto; }
.sap-header { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:20px; }
.sap-header h2 { margin:8px 0 0; }
.sap-form { margin:0; }
.sap-form fieldset { border:1px solid #dce5df; border-radius:16px; padding:24px; margin:24px 0; background:#fff; min-width:0; }
.sap-form legend { padding:0 8px; font-size:20px; font-weight:700; max-width:100%; }
.sap-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; }
.sap-field { display:flex; flex-direction:column; gap:8px; min-width:0; margin:0 0 20px; font-weight:600; }
.sap-field input,.sap-field select,.sap-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; }
.sap-field textarea { min-height:130px; resize:vertical; }
.sap-field input[readonly] { background:#f2f5f3; }
.sap-check { display:flex; align-items:flex-start; gap:10px; margin:0 0 14px; font-size:15px; cursor:pointer; }
.sap-check input { flex:0 0 auto; margin:4px 0 0; width:18px; height:18px; accent-color:#24573b; }
.sap-checks { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 16px; margin-top:16px; }
.sap-help { font-size:14px; color:#536159; margin:12px 0 20px; }
.sap-notice { background:#eef6ef; border:1px solid #b7d3bd; border-left:4px solid #28734d; padding:16px 20px; border-radius:8px; margin:0 0 24px; color:#193929; }
.sap-notice--error { background:#fff2ed; border-color:#c06b43; color:#712c12; }
.sap-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.sap-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:24px 0 32px; }
.sap-stats>div { display:flex; flex-direction:column; background:#f2f6f2; border:1px solid #dce5df; border-radius:12px; padding:20px; }
.sap-stats strong { font-size:32px; line-height:1.2; }
.sap-stats span { font-size:14px; }
.sap-list { display:grid; grid-template-columns:repeat(var(--sa-listing-columns,3),minmax(0,1fr)); gap:24px; }
.sap-property { border:1px solid #dce5df; border-radius:16px; overflow:hidden; background:#fff; display:flex; flex-direction:column; min-width:0; }
.sap-property__image { background:#edf2ed; aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; }
.sap-property__image img { width:100%; height:100%; object-fit:contain; display:block; }
.sap-property__body { padding:20px; flex:1; }
.sap-badge { background:#edf2ed; color:#193929; padding:5px 10px; border-radius:20px; display:inline-block; font-weight:700; font-size:12px; }
.sap-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px; }
.sap-actions form { margin:0; }
.sa-portal .sap-link { border:0; padding:8px 0; min-height:44px; background:none; color:#24573b; font:inherit; text-decoration:underline; cursor:pointer; }
.sa-portal .sap-link.sap-danger { color:#912b1c; }
.sa-portal .sap-secondary { border:1px solid #799884; color:#193929; background:#eef5f0; border-radius:8px; padding:12px 20px; font:600 16px/1.4 var(--sa-font-family,inherit); cursor:pointer; }
.sa-portal .sa-button { text-align:center; white-space:normal; line-height:1.4; }
.sap-empty { background:#f3f6f2; border-radius:16px; padding:40px; text-align:center; }
.sap-photos,.sap-previews { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:16px; margin:20px 0; }
.sap-photo { border:1px solid #dce5df; border-radius:8px; padding:8px; }
.sap-photo img,.sap-previews img { width:100%; height:120px; object-fit:contain; background:#f2f5f3; border-radius:6px; margin-bottom:8px; }
.sap-photo .sap-check { margin-bottom:6px; font-size:13px; }
.sap-upload { display:block; padding:24px; border:2px dashed #8fae99; border-radius:12px; background:#f2f7f3; }
.sap-upload span { display:block; margin-bottom:12px; font-weight:700; }
.sap-upload input { width:100%; max-width:100%; font-size:16px; color:#193929; }
.sap-upload-status { color:#712c12; }
.sap-pagination { display:flex; flex-wrap:wrap; gap:12px; margin:30px 0; }
.sap-pagination a { padding:8px 14px; border:1px solid #9cafa3; border-radius:6px; }
.sap-pagination a[aria-current] { background:#eef6ef; font-weight:750; }
.sa-portal :focus-visible,.sa-search-v2 :focus-visible { outline:3px solid #0875bb!important; outline-offset:3px; }
.sa-portal { container:sa-portal / inline-size; }
.sa-shortcode-listing { container:sa-listing / inline-size; }
.sa-search-wrap { container:sa-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. */
.sa-search-v2.sa-header-search,.sa-search-v2.sa-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; }
.sa-search-v2 .sa-search-v2__intro,.sa-search-v2 .sa-search-v2__footer { grid-column:1/-1; }
.sa-search-v2__intro strong { display:block; font-size:20px; line-height:1.3; }
.sa-search-v2__intro p { margin:6px 0 2px; font-size:14px; line-height:1.5; color:inherit; }
.sa-header-search .sa-search-v2__intro,.sa-header-search .sa-search-v2__footer { color:var(--sa-header-label,#fff); }
.sa-filters .sa-search-v2__intro { color:var(--sa-filter-label,#15231b); }
.sa-search-v2.sa-header-search .sa-header-search__field { border:0; padding:0; min-width:0; }
.sa-search-v2 select { cursor:pointer; width:100%; max-width:100%; min-width:0; box-sizing:border-box; }
.sa-search-v2.sa-filters select { background-color:var(--sa-filter-field-bg,#fff); padding:10px 12px; min-height:48px; }
.sa-search-v2.sa-header-search select { appearance:auto; background:var(--sa-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; }
.sa-search-v2 select.is-selected { box-shadow:inset 0 -3px 0 var(--sa-accent)!important; }
.sa-search-v2 option { color:#15231b; background:#fff; }
.sa-search-v2.sa-header-search .sa-header-search__button { display:flex; justify-content:center; align-items:center; align-self:end; gap:8px; margin:0; grid-column:auto; }
.sa-search-v2 .sa-button { gap:8px; }
.sa-search-v2 button { white-space:normal; }
.sa-search-v2 .sa-search-v2__footer { display:flex; align-items:center; flex-wrap:wrap; gap:16px; }
.sa-search-v2.sa-header-search .sa-filter-clear { color:inherit; }
.sa-search-v2 .sa-filter-clear { font-size:14px; text-decoration:underline; text-underline-offset:3px; margin:0; min-height:32px; display:inline-flex; align-items:center; }
.sa-search-v2__chips { display:flex; flex-wrap:wrap; gap:8px; font-size:12px; }
.sa-search-v2__chips span { border:1px solid currentColor; border-radius:30px; padding:4px 10px; }
@media(max-width:1024px) {
 .sa-search-v2.sa-header-search,.sa-search-v2.sa-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .sa-search-v2.sa-header-search .sa-header-search__button,.sa-search-v2.sa-filters .sa-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 .sa-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 .sa-search-wrap > .sa-header-search.sa-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 .sa-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;
 }
 .sa-search-v2.sa-header-search,.sa-search-v2.sa-filters { gap:12px; }
 .sa-search-v2.sa-filters { margin-bottom:20px; }
 .sa-search-v2 .sa-search-v2__footer { gap:8px 12px; }
 .sa-search-v2 .sa-filter-clear { min-height:44px; }
 /* Opt-in on the specific Elementor container/widget: never reset every section. */
 body .sa-mobile-sem-espaco,
 body .sa-mobile-sem-espaco > .e-con-inner,
 body .sa-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;
 }
 .sap-auth,.sap-list { grid-template-columns:1fr; }
 .sap-header { align-items:flex-start; flex-direction:column; }
 .sap-checks { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .sap-auth__intro h2 { margin:16px 0; }
 .sap-auth__intro ul { margin:16px 0 0; }
 .sap-auth__intro li { margin:6px 0; }
}
@media(max-width:520px) {
 .sa-portal { padding:0 12px; margin:24px auto; }
 .sap-grid,.sap-checks { grid-template-columns:1fr; }
 .sap-stats { gap:8px; }
 .sap-stats>div { padding:12px 8px; }
 .sap-stats strong { font-size:26px; }
 .sap-form fieldset { padding:16px; }
 .sap-nav { gap:16px; }
 .sap-nav form { margin-left:0; }
 .sap-actions>.sa-button,.sap-actions>.sap-secondary { width:100%; justify-content:center; }
 .sa-search-v2.sa-header-search,.sa-search-v2.sa-filters { grid-template-columns:minmax(0,1fr); }
 .sa-search-v2 select { font-size:max(16px,1em); }
}
@container sa-portal (max-width:720px) {
 .sap-auth,.sap-list,.sap-grid { grid-template-columns:1fr; }
 .sap-header { align-items:flex-start; flex-direction:column; }
 .sap-checks { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@container sa-portal (max-width:450px) {
 .sap-checks { grid-template-columns:1fr; }
 .sap-nav form { margin-left:0; }
}
@container sa-listing (max-width:850px) {
 .sa-search-v2.sa-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .sa-search-v2.sa-filters .sa-button { grid-column:1/-1; width:100%; }
 .sa-properties.sa-columns-3,.sa-properties.sa-columns-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@container sa-listing (max-width:520px) {
 .sa-search-v2.sa-filters,.sa-properties { grid-template-columns:minmax(0,1fr)!important; }
}
@container sa-search (max-width:850px) {
 .sa-search-v2.sa-header-search { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .sa-search-v2.sa-header-search .sa-header-search__button { grid-column:1/-1; width:100%; }
}
@container sa-search (max-width:520px) {
 .sa-search-v2.sa-header-search { grid-template-columns:minmax(0,1fr); }
}
.sap-account-status p:last-child { margin-bottom:0; }
/* Pair background and text together, including theme/Elementor submit-button overrides. */
body .sa-portal .sa-button,
body .sa-site-main .sa-button,
body .sa-shortcode-listing .sa-button,
body .sa-filters .sa-button,
body .sa-header-search .sa-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 .sa-portal .sa-button:hover,body .sa-portal .sa-button:focus-visible,
body .sa-site-main .sa-button:hover,body .sa-site-main .sa-button:focus-visible,
body .sa-shortcode-listing .sa-button:hover,body .sa-shortcode-listing .sa-button:focus-visible,
body .sa-filters .sa-button:hover,body .sa-filters .sa-button:focus-visible,
body .sa-header-search .sa-header-search__button:hover,body .sa-header-search .sa-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;
}
