/* ==========================================================================
   LAYOUT (ClassCreator Spacing Match)
   ========================================================================== */

.wrap {
  width: 100%;
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--sp-6);
}

@media (max-width: 480px) {
  .wrap {
    padding: 0 16px;
  }
}

.wrap--narrow {
  max-width: 760px;
}

/* Sections */
.sec, .section {
  padding: 80px 0;
  width: 100%;
}

.sec--sm {
  padding: 48px 0;
}

.sec--alt, .section--alt {
  background-color: var(--gray-50);
}

.sec--dark, .section--dark {
  background-color: var(--gray-900);
  color: var(--gray-400);
}

.sec--dark h2, .sec--dark h3, .sec--dark h4 {
  color: var(--white);
}

/* Section header */
.sec-hd, .section-header {
  margin-bottom: 48px;
}

.sec-hd--center, .section-header--center {
  text-align: center;
}

.sec-hd--center p, .section-header--center p {
  margin-left: auto;
  margin-right: auto;
}

/* Grids */
.grid {
  display: grid;
  gap: var(--sp-8);
}

.grid--2, .grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--sp-8); }
.grid--3, .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-8); }
.grid--4, .grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-8); }

/* Responsive */
@media (max-width: 1024px) {
  .sec, .section { padding: 64px 0; }
  h1 { font-size: var(--text-4xl); }
  h2 { font-size: var(--text-2xl); }
  .grid--3, .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .grid--4, .grid-4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
  .sec, .section { padding: 48px 0; }
  h1 { font-size: var(--text-3xl); }
  h2 { font-size: var(--text-2xl); }
  .grid--2, .grid-2, .grid--3, .grid-3, .grid--4, .grid-4 { grid-template-columns: 1fr; }
  .grid { gap: var(--sp-6); }
}
