/* SP-R2: public viewport and full-bleed contract. */
html:has(body.cemi-property-public-runtime) { margin: 0 !important; padding: 0 !important; }
body.cemi-property-public-runtime {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: clip;
}
.cemi-property-public-runtime .cemi-site-header,
.cemi-property-public-runtime .cemi-property-hero,
.cemi-property-public-runtime .cemi-public-navigation,
.cemi-property-public-runtime .cemi-public-preview-banner {
  width: 100vw !important;
  max-width: none !important;
  margin-inline: calc(50% - 50vw) !important;
}

/* SP-R1: canonical public canvas. The Single owns its viewport; theme/global CSS may not collapse it. */
.cemi-property-public-runtime,
.cemi-property-public-runtime .cemi-public-site-main,
.cemi-property-public-runtime .cemi-property-page,
.cemi-property-public-runtime .cemi-property-flow {
  width: 100% !important;
  max-width: none !important;
  min-width: 0;
  margin-inline: 0 !important;
}

.cemi-property-public-runtime .cemi-public-site-main,
.cemi-property-public-runtime .cemi-property-page {
  padding-inline: 0 !important;
  float: none !important;
}

.cemi-property-public-runtime .cemi-property-page,
.cemi-property-public-runtime .cemi-property-flow,
.cemi-property-public-runtime .cemi-section,
.cemi-property-public-runtime .cemi-property-hero {
  min-width: 0;
}

.cemi-property-public-runtime .cemi-section,
.cemi-property-public-runtime .cemi-property-hero {
  width: 100%;
  max-width: none;
}

.cemi-public-site-header {
  position: relative;
  z-index: var(--cemi-visitor-z-header);
  border-bottom: 1px solid var(--cemi-visitor-border);
  background: var(--cemi-visitor-surface-bg);
}
.cemi-public-site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(calc(100% - 32px), var(--cemi-visitor-content-width));
  min-height: 64px;
  margin: auto;
}
.cemi-public-site-header__brand { color: var(--cemi-visitor-color-primary); text-decoration: none; font-size: 19px; }
.cemi-property-flow { padding-bottom: 96px; }
.cemi-property-summary { display: grid; grid-template-columns: minmax(240px, .8fr) minmax(0, 1.2fr); gap: var(--cemi-visitor-space-10); }
.cemi-progressive-grid,
.cemi-context-grid { display: grid; grid-template-columns: repeat(var(--cemi-grid-columns, 3), minmax(0, 1fr)); gap: var(--cemi-grid-gap, var(--cemi-visitor-space-4)); }
.cemi-contact-band { display: flex; align-items: center; justify-content: space-between; gap: var(--cemi-visitor-space-6); padding: 56px 0; }
