/* ============================================================
   M.P Events & Tours — Layout System
   layout.css — Containers, grid, sections, spacing utilities
   ============================================================ */

/* ── Page Shell ──────────────────────────────────────────────── */
.page-wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100svh;
}
.page-wrapper main {
  flex: 1;
}

/* ── Container ───────────────────────────────────────────────── */
.container {
  width: 100%;
  max-width: var(--max-w);
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2rem);
}
.container--narrow {
  max-width: var(--max-w-narrow);
}
.container--wide {
  max-width: var(--max-w-wide);
}
.container--full {
  max-width: 100%;
  padding-inline: 0;
}

/* ── Section ─────────────────────────────────────────────────── */
.section {
  padding-block: var(--section-pad-y);
}
.section--sm {
  padding-block: var(--section-pad-sm);
}
.section--flush {
  padding-block: 0;
}
.section--cream {
  background-color: var(--clr-cream);
}
.section--white {
  background-color: var(--clr-white);
}
.section--dark {
  background-color: var(--clr-secondary);
  color: var(--clr-text-on-dark);
}
.section--dark h1,
.section--dark h2,
.section--dark h3 {
  color: var(--clr-white);
}
.section--dark p {
  color: rgba(255, 255, 255, 0.8);
}
.section--primary {
  background-color: var(--clr-primary);
  color: var(--clr-text-on-primary);
}
.section--primary h1,
.section--primary h2,
.section--primary h3 {
  color: var(--clr-white);
}
.section--primary p {
  color: rgba(255, 255, 255, 0.85);
}

/* ── Section Header ──────────────────────────────────────────── */
.section-header {
  text-align: center;
  max-width: 680px;
  margin-inline: auto;
  margin-bottom: var(--sp-12);
}
.section-header--left {
  text-align: left;
  margin-inline: 0;
}
.section-eyebrow {
  display: inline-block;
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-caps);
  text-transform: uppercase;
  color: var(--clr-primary);
  margin-bottom: var(--sp-4);
}
.section--dark   .section-eyebrow { color: var(--clr-gold); }
.section--primary .section-eyebrow { color: rgba(255,255,255,0.75); }

.section-header h2 {
  margin-bottom: var(--sp-4);
}
.section-header p {
  font-size: var(--fs-lead);
  color: var(--clr-text-secondary);
  max-width: 60ch;
  margin-inline: auto;
}
.section--dark   .section-header p { color: rgba(255,255,255,0.75); }
.section--primary .section-header p { color: rgba(255,255,255,0.85); }

/* ── Grid ────────────────────────────────────────────────────── */
.grid {
  display: grid;
  gap: var(--grid-gap);
}
.grid--2 { grid-template-columns: repeat(2, 1fr); }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }
.grid--auto-fill { grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); }
.grid--auto-fit  { grid-template-columns: repeat(auto-fit,  minmax(min(280px, 100%), 1fr)); }

/* Destination grid: 5-up becomes 3-2 / 2-1 on smaller screens */
.grid--destinations {
  grid-template-columns: repeat(5, 1fr);
}

/* ── Flex helpers ────────────────────────────────────────────── */
.flex        { display: flex; }
.flex-center { display: flex; align-items: center; justify-content: center; }
.flex-between{ display: flex; align-items: center; justify-content: space-between; }
.flex-wrap   { flex-wrap: wrap; }
.flex-col    { flex-direction: column; }
.gap-2       { gap: var(--sp-2); }
.gap-3       { gap: var(--sp-3); }
.gap-4       { gap: var(--sp-4); }
.gap-6       { gap: var(--sp-6); }
.gap-8       { gap: var(--sp-8); }

/* ── Split layout (2-col with content + image) ───────────────── */
.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--grid-gap-lg);
  align-items: center;
}
.split--60-40 {
  grid-template-columns: 1.5fr 1fr;
}
.split--40-60 {
  grid-template-columns: 1fr 1.5fr;
}
.split__content {
  display: flex;
  flex-direction: column;
  gap: var(--sp-6);
}

/* ── Responsive grid breakpoints ────────────────────────────── */
@media (max-width: 1024px) {
  .grid--4           { grid-template-columns: repeat(2, 1fr); }
  .grid--destinations { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 768px) {
  .grid--2,
  .grid--3,
  .grid--4           { grid-template-columns: 1fr; }
  .grid--destinations { grid-template-columns: repeat(2, 1fr); }
  .split,
  .split--60-40,
  .split--40-60      { grid-template-columns: 1fr; }
  .split__image--first { order: -1; }
}

@media (max-width: 480px) {
  .grid--destinations { grid-template-columns: 1fr; }
}

/* ── Divider ─────────────────────────────────────────────────── */
.divider {
  width: 48px;
  height: 3px;
  background: var(--clr-primary);
  border-radius: var(--radius-pill);
  margin-block: var(--sp-4);
}
.divider--centered { margin-inline: auto; }
.divider--gold     { background: var(--clr-gold); }
.divider--white    { background: rgba(255,255,255,0.5); }
