/* ==========================================================================
   NPPCP Theme — Layout: Grid & Section Structures
   ========================================================================== */

/* --- Section Wrapper --- */
.nppcp-section {
  padding: 4rem 0;
}

.nppcp-section--sm {
  padding: 2.5rem 0;
}

.nppcp-section--lg {
  padding: 6rem 0;
}

/* --- Grid System --- */
.nppcp-grid {
  display: grid;
  gap: 2rem;
}

.nppcp-grid--2 {
  grid-template-columns: repeat(2, 1fr);
}

.nppcp-grid--3 {
  grid-template-columns: repeat(3, 1fr);
}

.nppcp-grid--4 {
  grid-template-columns: repeat(4, 1fr);
}

/* --- Split Layout (60/40) --- */
.nppcp-split {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: 3rem;
  align-items: center;
}

.nppcp-split--reverse {
  grid-template-columns: 2fr 3fr;
}

/* --- Full-width Breakout --- */
.nppcp-full-width {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}

/* --- Flex Utility Layouts --- */
.nppcp-flex {
  display: flex;
  gap: 1.5rem;
}

.nppcp-flex--center {
  align-items: center;
  justify-content: center;
}

.nppcp-flex--between {
  align-items: center;
  justify-content: space-between;
}

.nppcp-flex--wrap {
  flex-wrap: wrap;
}

/* --- Text Alignment Helpers --- */
.nppcp-text-center {
  text-align: center;
}

.nppcp-text-left {
  text-align: left;
}

.nppcp-text-right {
  text-align: right;
}
