.cemi-public-navigation { position: sticky; top: 0; z-index: var(--cemi-visitor-z-navigation); border-bottom: 1px solid var(--cemi-visitor-border); background: var(--cemi-visitor-surface-bg); }
.cemi-public-navigation .cemi-container { display: flex; gap: 6px; overflow-x: auto; padding-block: 8px; }
.cemi-public-navigation a,
.cemi-public-navigation button { flex: 0 0 auto; padding: 9px 12px; color: var(--cemi-visitor-color-text); border: 0; background: transparent; text-decoration: none; cursor: pointer; font-weight: 700; }
.cemi-public-navigation .is-active { color: var(--cemi-visitor-color-accent); }

.cemi-detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--cemi-collection-gap); }
.cemi-detail-grid > div,
.cemi-progressive-grid article,
.cemi-context-grid article,
.cemi-tool-grid article {
  padding: var(--cemi-card-padding);
  border: 1px solid var(--cemi-visitor-border);
  border-radius: var(--cemi-visitor-radius);
  background: var(--cemi-visitor-card-bg);
}
.cemi-detail-grid strong { display:block; font-size:21px; }
.cemi-detail-grid span { color:var(--cemi-visitor-color-muted); }
.cemi-chip-row { display: flex; grid-column: 1 / -1; flex-wrap: wrap; gap: 8px; }
.cemi-chip-row span { padding: 7px 10px; border: 1px solid var(--cemi-visitor-border); border-radius: var(--cemi-visitor-radius); }
.cemi-property-description { max-width: 82ch; font-size: 18px; line-height: 1.75; }
.cemi-context-grid ul { margin: 16px 0 0; padding: 0; list-style: none; }
.cemi-context-grid li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-top: 1px solid var(--cemi-visitor-border); }

.cemi-overlay-backdrop { position: fixed; inset: 0; z-index: var(--cemi-visitor-z-backdrop); background: color-mix(in srgb, var(--cemi-visitor-color-primary) 56%, transparent); }
.cemi-overlay {
  position: fixed;
  top: 0;
  right: 0;
  z-index: var(--cemi-visitor-z-overlay);
  width: min(var(--cemi-visitor-overlay-width), 100%);
  height: 100dvh;
  overflow: auto;
  border-left: 1px solid var(--cemi-visitor-border);
  color: var(--cemi-visitor-color-text);
  background: var(--cemi-visitor-surface-bg);
  box-shadow: var(--cemi-visitor-shadow);
}
.cemi-overlay--compact { width: min(var(--cemi-visitor-overlay-compact-width), 100%); }
.cemi-overlay[hidden],
.cemi-overlay-backdrop[hidden] { display: none; }
.cemi-overlay > header { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 24px; border-bottom: 1px solid var(--cemi-visitor-border); background: inherit; }
.cemi-overlay__body { padding: 24px; }
.cemi-search-results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 20px 0; }
.cemi-tool-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cemi-tool-grid article { display: grid; align-content: start; gap: 14px; }
.cemi-tool-grid output { font-size: 24px; font-weight: 800; }
.cemi-overlay-open { overflow: hidden; }

.cemi-unavailable-hero { padding: 88px 0; color: var(--cemi-visitor-color-secondary); background: var(--cemi-visitor-color-primary); }
.cemi-unavailable-hero h1 { max-width: 18ch; font-size: clamp(38px, 6vw, 68px); }
.cemi-unavailable-hero p:not(.cemi-eyebrow) { max-width: 68ch; line-height: 1.7; }
.cemi-property-contact,
.cemi-property-visit { color: var(--cemi-visitor-color-text); }
.cemi-property-contact__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.cemi-property-contact__actions a,
.cemi-property-contact__actions button,
.cemi-property-visit button { min-height: 44px; padding: 10px 14px; border: 1px solid var(--cemi-visitor-border); border-radius: var(--cemi-visitor-radius); color: var(--cemi-visitor-color-primary); background: var(--cemi-visitor-surface-bg); text-decoration: none; font-weight: 800; cursor: pointer; }
.cemi-property-visit fieldset { margin: 18px 0; padding: 14px; border: 1px solid var(--cemi-visitor-border); }
.cemi-property-visit__steps,
.cemi-property-visit__dates,
.cemi-property-visit__slots { display: flex; flex-wrap: wrap; gap: 8px; }
.cemi-property-visit__steps span,
.cemi-property-visit__dates label,
.cemi-property-visit__slots label { padding: 7px 9px; border: 1px solid var(--cemi-visitor-border); border-radius: var(--cemi-visitor-radius); }
.cemi-property-visit__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cemi-property-visit__fields label { display: grid; gap: 6px; }
.cemi-property-visit__fields input,
.cemi-property-visit__fields textarea { width: 100%; padding: 10px; border: 1px solid var(--cemi-visitor-border); border-radius: var(--cemi-visitor-radius); }
.cemi-property-visit__fields .is-wide { grid-column: 1 / -1; }
.cemi-property-visit__result { margin-top: 12px; padding: 12px; border-left: 3px solid var(--cemi-visitor-color-accent); background: var(--cemi-visitor-bg); }


.cemi-catalog-alternatives{margin-top:36px;padding-top:28px;border-top:1px solid var(--cemi-public-line,#c7d5df)}.cemi-catalog-alternatives h2{margin-bottom:8px}.cemi-catalog-alternatives__group{margin-top:26px}.cemi-catalog-alternatives__group>p{color:var(--cemi-public-muted,#4a6274)}.cemi-catalog-alternatives .cemi-home-actions{display:flex;gap:12px;flex-wrap:wrap}.cemi-catalog-alternatives .cemi-home-actions a{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border:1px solid currentColor;border-radius:5px;text-decoration:none;font-weight:700}



/* SP-R2: Single map framing remains component-owned. */


/* P1B — public catalog keeps the Home search intent visible and editable. */
.cemi-catalog-active-filters{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;margin-top:16px;padding:14px 16px;border:1px solid var(--cemi-public-line,#c7d5df);border-radius:8px;background:#f4f7f9}
.cemi-catalog-active-filters>strong{white-space:nowrap}
.cemi-catalog-active-filters>div{display:flex;gap:8px;flex-wrap:wrap}
.cemi-catalog-active-filters>div a{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:5px 10px;border:1px solid var(--cemi-public-line,#c7d5df);border-radius:999px;background:#fff;color:var(--cemi-public-text,#071522);text-decoration:none;font-size:13px;font-weight:700}
.cemi-catalog-active-filters>div a span{font-size:18px;line-height:1;color:#6a7e8d}
.cemi-catalog-active-filters__clear{white-space:nowrap;color:var(--cemi-public-accent,#d91467);font-weight:800}
@media(max-width:760px){.cemi-catalog-active-filters{grid-template-columns:1fr}.cemi-catalog-active-filters__clear{justify-self:start}}

/* P1C — public Single conversion band and contact flow. */
.cemi-contact-band--property{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;margin:8px 0 4px;padding:24px;border:1px solid var(--cemi-visitor-border);border-radius:var(--cemi-visitor-radius);background:var(--cemi-visitor-surface-bg);box-shadow:0 10px 28px rgba(17,24,32,.06)}
.cemi-contact-band--property h2{margin:2px 0 8px;font-size:clamp(24px,3vw,34px)}
.cemi-contact-band--property p{margin:0;max-width:64ch;color:var(--cemi-visitor-color-muted)}
.cemi-contact-band--property .cemi-action-row{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.cemi-button--quiet{background:transparent!important}
.cemi-property-contact__property{font-weight:800;color:var(--cemi-visitor-color-primary)}
@media(max-width:760px){.cemi-contact-band--property{grid-template-columns:1fr;padding:18px}.cemi-contact-band--property .cemi-action-row{justify-content:flex-start}.cemi-contact-band--property .cemi-action-row>*{flex:1 1 100%;justify-content:center;text-align:center}}
