/* Marp slide overrides for continuous web flow */
.prez-block {
  width: 100%;
  overflow: visible;
}

.prez-block section {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  box-sizing: border-box;
  margin: 0 auto 2rem !important;
  display: block !important;
  position: relative !important;
  page-break-after: always;
  border-radius: 8px;
  overflow: hidden;
}

/* Remove Marp's absolute/fixed positioning from slide contents */
.prez-block section > * {
  position: relative !important;
}

/* Slide number badge */
.prez-block section::after {
  position: absolute !important;
  bottom: 1rem !important;
  right: 1rem !important;
}

/* Layout system (%%% layout: …) */
.prez-block .cols { display: grid; gap: 1.6rem; margin-top: .5rem; align-items: start; }
.prez-block .cols .cell { min-width: 0; }
.prez-block .cols .cell > :first-child { margin-top: 0; }
.prez-block .cols.two-columns   { grid-template-columns: 1fr 1fr; }
.prez-block .cols.three-columns { grid-template-columns: 1fr 1fr 1fr; gap: 1.2rem; }
.prez-block .cols.grid-2x2      { grid-template-columns: 1fr 1fr; gap: 1.2rem 1.6rem; }
.prez-block .cols.swimlanes     { grid-auto-flow: column; grid-auto-columns: 1fr; gap: 1rem; }
.prez-block .cols.swimlanes .cell {
  border-top: 4px solid var(--accent, #888);
  background: color-mix(in srgb, var(--accent, #888) 8%, transparent);
  border-radius: 8px; padding: .1rem 1rem 1rem;
}
.prez-block .cols.swimlanes .cell h2,
.prez-block .cols.swimlanes .cell h3 {
  font-size: .95rem; text-transform: uppercase; letter-spacing: .05em; border: 0; padding: 0;
}
.prez-block .cols.start,
.prez-block .cols.section,
.prez-block .cols.statement,
.prez-block .cols.quote,
.prez-block .cols.agenda {
  grid-template-columns: 1fr; align-content: center;
}
.prez-block .cols.metrics { grid-auto-flow: column; grid-auto-columns: 1fr; text-align: center; align-items: center; }
.prez-block .cols.metrics .cell h2 { border: 0; font-size: 3.2em; line-height: 1; color: var(--accent, #888); margin: 0; }
.prez-block .cols.comparison { grid-template-columns: 1fr 1fr; gap: 0; }
.prez-block .cols.comparison .cell { padding: 0 1.5rem; }
.prez-block .cols.comparison .cell:first-child { border-right: 2px solid var(--border, #ddd); padding-left: 0; }

/* Error state */
.prez-error {
  background: #fff5f5;
  border: 1px solid #fed7d7;
  border-radius: 6px;
  color: #c53030;
  padding: 1rem 1.5rem;
  margin-bottom: 1.5rem;
  font-size: .9rem;
}

/* Prose blocks */
.prose-block {
  margin-bottom: 1.5rem;
}
