/* IOMI r19 — venda off-market: selo azul-marinho com aro dourado, requisitos, factos verificados. */
.badge-offmarket {
  display: inline-flex; align-items: center; gap: 0.3rem;
  background: #012B57; color: #F7F2E6; box-shadow: inset 0 0 0 1px rgba(227, 196, 126, 0.55);
}
.badge + .badge-offmarket, .badge-offmarket + .badge { margin-left: 0.35rem; }
:root[data-theme="planta"] .badge-offmarket { background: #0E3361; color: #F7F2E6; box-shadow: inset 0 0 0 1px #D9B25E; }

.om-kicker { display: inline-flex; align-items: center; gap: 0.4rem; margin: 0 0 0.35rem; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--seal-deep, #7E5D1D); }
.om-kicker .i { width: 1rem; height: 1rem; }
:root[data-theme="planta"] .om-kicker { color: #E3C47E; }

.om-price { display: grid; justify-items: end; gap: 0.2rem; }
.om-price .prop-price { font-size: 1.5rem; }
.om-discreet { margin-bottom: 1.25rem; }

.om-thumb { display: grid; place-items: center; color: #E3C47E; background: radial-gradient(120% 120% at 28% 0%, #0B4A8A 0%, #012B57 46%, #001A36 100%); }
.om-thumb .i { width: 1.75rem; height: 1.75rem; }

.om-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 0.5rem; }
.om-photos img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; }

.om-steps { margin: 1rem 0 0; padding: 0; list-style: none; counter-reset: om; display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.om-steps li { counter-increment: om; position: relative; padding: 1rem 1rem 1rem 3.1rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); font-size: 0.92rem; line-height: 1.5; }
.om-steps li::before {
  content: counter(om); position: absolute; left: 1rem; top: 1rem; width: 1.6rem; height: 1.6rem; border-radius: 50%;
  display: grid; place-items: center; font-weight: 700; font-size: 0.85rem; color: #E3C47E; background: #012B57; box-shadow: inset 0 0 0 1px rgba(227, 196, 126, 0.6);
}
.om-steps strong { display: block; margin-bottom: 0.2rem; }

.om-req { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; max-width: 48rem; }
.om-req li { display: flex; gap: 0.75rem; align-items: flex-start; padding: 0.8rem 1rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.om-req li > .i { flex: none; width: 1.35rem; height: 1.35rem; margin-top: 0.1rem; color: var(--ink-soft); }
.om-req li div { display: grid; gap: 0.15rem; }
.om-req li span { font-size: 0.875rem; color: var(--ink-soft); }
.om-req li.is-met > .i { color: var(--ok); --icon-accent: var(--ok); }
.om-req li.is-missing { border-color: rgba(163, 58, 43, 0.35); }
.om-req li.is-missing > .i { color: var(--danger); --icon-accent: var(--danger); }

.om-rules { margin: 0.4rem 0 0; padding-left: 1.1rem; display: grid; gap: 0.35rem; font-size: 0.9rem; }

.om-districts { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 0.25rem 0.75rem; }
.om-districts legend { grid-column: 1 / -1; margin-bottom: 0.35rem; }

.om-choose { display: grid; gap: 0.5rem; max-height: 22rem; overflow: auto; padding-right: 0.25rem; }
.om-org span { display: grid; gap: 0.15rem; }
.om-org small { color: var(--ink-soft); font-size: 0.8rem; }
.om-org .badge { justify-self: start; }

.om-facts { list-style: none; margin: 0.75rem 0 0; padding: 0; display: grid; gap: 0.4rem; }
.om-facts li { display: flex; gap: 0.5rem; align-items: flex-start; font-size: 0.9rem; }
.om-facts .i { flex: none; width: 1.1rem; height: 1.1rem; margin-top: 0.15rem; }

.offmarket-option strong .i { display: inline-block; width: 1rem; height: 1rem; vertical-align: -0.12em; margin-right: 0.2rem; }
.offmarket-option.is-disabled { opacity: 0.75; cursor: default; }

.vault-offmarket { border: 1px solid rgba(227, 196, 126, 0.55); border-radius: var(--radius); padding: 1.25rem 1.35rem; background: var(--surface); }
.vault-offmarket h2 { display: flex; align-items: center; gap: 0.45rem; }
.om-owner .section-head h2 { display: flex; align-items: center; gap: 0.45rem; }

/* Ícones nos títulos de secção (r19) e listas de cartões sem marcas. */
h2 > .i, h3 > .i { width: 1.05em; height: 1.05em; flex: none; vertical-align: -0.15em; margin-right: 0.35rem; }
.card-list { list-style: none; padding-left: 0; margin-left: 0; }
.facts + .section { margin-top: 2rem; }
.two-col > .section:first-child, .two-col > .section:first-child + .section { margin-top: 0; }
.status-badges { display: inline-flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; }
.status-badges .badge + .badge { margin-left: 0; }
.om-org-name { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; }
