/* ─────────────────────────────────────────────────────────
   TESTA — Layout
   ───────────────────────────────────────────────────────── */

/* ── Container ── */
.container {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 48px;
  position: relative;
  z-index: 1;
}
.container--narrow { max-width: 760px; margin: 0 auto; padding: 0 48px; }
.container--wide   { max-width: 1400px; margin: 0 auto; padding: 0 48px; }

/* ── Section spacing ── */
.section       { padding: var(--space-10) 0; position: relative; }
.section--lg   { padding: 140px 0; }
.section--sm   { padding: var(--space-8) 0; }

/* ── Grid ── */
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-5); }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-5); }
.grid-auto { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--space-5); }

/* ── Flex utils ── */
.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-col     { display: flex; flex-direction: column; }
.gap-1  { gap: var(--space-1); }
.gap-2  { gap: var(--space-2); }
.gap-3  { gap: var(--space-3); }
.gap-4  { gap: var(--space-4); }
.gap-5  { gap: var(--space-5); }
.gap-6  { gap: var(--space-6); }
.gap-7  { gap: var(--space-7); }

/* ── Divider ── */
.divider {
  width: 40px;
  height: 2px;
  background: var(--coral);
  border-radius: 1px;
  margin-bottom: var(--space-5);
}

/* ── Responsive ── */
@media (max-width: 1024px) {
  .container, .container--narrow, .container--wide { padding: 0 32px; }
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
  .container, .container--narrow, .container--wide { padding: 0 20px; }
  .section       { padding: 72px 0; }
  .section--lg   { padding: 88px 0; }
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
}
