/* Card layout overrides — loaded last */

.node-wrap {
  gap: 0;
  margin: 0;
  align-self: stretch;
  height: 100%;
}

.node-wrap .node {
  margin-bottom: 0;
  flex: 1 1 auto;
}

/* First realm row: four equal columns on desktop (fixes gaps beside Dreamer) */
.grid-realm-four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 1100px) {
  .grid-realm-four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .grid-realm-four {
    grid-template-columns: 1fr;
  }
}

.node-wrap:has(.dropdown.open) .node {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.dropdown {
  flex: 0 0 auto;
}

.dropdown-body::after {
  margin-top: 16px;
  padding-top: 12px;
}

.chips {
  gap: 6px;
}

.dropdown-connections {
  margin-top: 16px;
  padding-top: 14px;
}

/* In counted grids, never span full row — wide is for single-column rows only (e.g. Builders) */
.grid[class*='grid-cols-'] > .node-wrap.wide,
.grid-trio-last-compact > .node-wrap.wide,
.grid-duo-last-compact > .node-wrap.wide {
  grid-column: auto;
}

/* Two-card rows: always 50/50 */
.grid-row-pair {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* End mobs: Endermite + Shulker wide, Ender Dragon narrow third column */
.grid-trio-last-compact {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(200px, 232px);
}

/* Myth: Null wide, Entity 303 narrow */
.grid-duo-last-compact {
  grid-template-columns: minmax(0, 1fr) minmax(200px, 232px);
}

.node-wrap-compact {
  max-width: 232px;
  width: 100%;
  min-width: 0;
  justify-self: stretch;
}

.node-wrap-compact .node {
  padding: 14px 12px 12px;
}

.node-wrap-compact .node-icon {
  font-size: 1.15rem;
  margin-bottom: 4px;
}

.node-wrap-compact .node-label {
  font-size: 13px;
  line-height: 1.25;
}

.node-wrap-compact .node-sub {
  font-size: 9px;
  line-height: 1.35;
  margin-top: 4px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.node-wrap-compact .node-arrow {
  font-size: 9px;
}

.node-wrap-compact .folio-index {
  font-size: 7px;
  letter-spacing: 0.08em;
}

.grid-trio-last-compact .node-wrap-compact.open-wrap,
.grid-duo-last-compact .node-wrap-compact.open-wrap {
  grid-column: 1 / -1;
  max-width: none;
  width: 100%;
}

.grid-cols-1 {
  grid-template-columns: minmax(0, 1fr);
}

/* Exact column count — full rows only */
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }

@media (max-width: 900px) {
  .grid-trio-last-compact {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
  .grid-trio-last-compact > .node-wrap-compact {
    grid-column: 1 / -1;
    max-width: 100%;
  }
  .grid-duo-last-compact {
    grid-template-columns: minmax(0, 1fr);
  }
  .grid-duo-last-compact > .node-wrap-compact {
    max-width: 100%;
  }
}

@media (max-width: 1100px) {
  .grid-cols-4,
  .grid-cols-5,
  .grid-cols-6 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid-row-pair {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .grid-cols-5 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .grid-trio-last-compact,
  .grid-duo-last-compact,
  .grid-row-pair,
  .grid-cols-2,
  .grid-cols-3,
  .grid-cols-4,
  .grid-cols-5,
  .grid-cols-6 {
    grid-template-columns: 1fr;
  }
  .node-wrap-compact {
    max-width: 100%;
  }
}

.section.mobs .grid:not([class*='grid-cols-']) {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
}
