/**
 * Kreebi Container — responsive grid wrapper.
 *
 * Normal spacing by default (1.5rem gap, 1.5em bottom margin), with no
 * doubled rhythm: each block's first/last-child margins are zeroed so
 * the article typography (headings 1.75em/0.6em, paragraphs 1.25em…)
 * doesn't compound with the grid. Tighter layouts via gap="none|sm".
 * Dividers (hr) keep their own breathing room. Mobile-first: a single
 * column. At 769px and up the grid opens to the requested column count
 * (matches the 768px mobile breakpoint used by kreebi-base.css and
 * kreebi-utilities.css).
 */

.kreebi-ai-site-builder .kreebi-container {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5rem;
  margin: 0 0 1.5em;
}

.kreebi-ai-site-builder .kreebi-container > * {
  min-width: 0;
}

/* First/last element inside each section: no outer margins, so the
 * article typography (headings 1.75em/0.6em, paragraphs 1.25em…)
 * doesn't compound with the grid. Rhythm *within* a section
 * (e.g. between paragraphs of one text block) is preserved. */
.kreebi-ai-site-builder .kreebi-container .kreebi-content > :first-child:not(hr) {
  margin-top: 0;
}

.kreebi-ai-site-builder .kreebi-container .kreebi-content > :last-child:not(hr) {
  margin-bottom: 0;
}

.kreebi-ai-site-builder .kreebi-container--gap-none {
  gap: 0;
}

.kreebi-ai-site-builder .kreebi-container--gap-sm {
  gap: 0.75rem;
}

.kreebi-ai-site-builder .kreebi-container--gap-md {
  gap: 1.5rem;
}

.kreebi-ai-site-builder .kreebi-container--gap-lg {
  gap: 2.5rem;
}

@media (min-width: 769px) {
  .kreebi-ai-site-builder .kreebi-container--cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .kreebi-ai-site-builder .kreebi-container--cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .kreebi-ai-site-builder .kreebi-container--cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
