/* =========================
   STRUCTURE & FRAMEWORK
========================= */

* {
    box-sizing: border-box;
}

body, html {
    margin: 0;
    padding: 0;
    width: 100%;
    font-family: 'Roboto', sans-serif;
    background-color: #212b3c;
}

.row {
  width: 100%;
  padding: 40px 0px;
}

.desktopContainer {
  max-width: 1200px; /* Framework Max Width set to 1200px */
  margin: 0 auto;
  padding: 0 20px;
}

.fullContainer {
  max-width: 100%;
  margin: 0 auto;
}

.debug {
    outline: 1px solid red;
    outline-offset: -1px;
}

.nested-box {
  background: #e8f5e9;
  min-height: 250px;
}

/* Optional background layer */
.bg {
  background: rgba(0,0,0,0.05);
  z-index: -1;
}

/* =========================
   GRID SYSTEM
========================= */

.grid { display: grid; gap: 20px; }
.grid0gap { display: grid; gap: 0px; }

.cols-2 { grid-template-columns: repeat(2, 1fr); }
.cols-3 { grid-template-columns: repeat(3, 1fr); }
.cols-4 { grid-template-columns: repeat(4, 1fr); }
.cols-5 { grid-template-columns: repeat(5, 1fr); }
.cols-6 { grid-template-columns: repeat(6, 1fr); }

/* =========================
   9 POINT ALIGNMENT
========================= */

.layer > * { grid-area: 1 / 1; }

.tl { place-self: start start; }
.tc { place-self: start center; }
.tr { place-self: start end; }

.cl { place-self: center start; }
.cc { place-self: center; }
.cr { place-self: center end; }

.bl { place-self: end start; }
.bc { place-self: end center; }
.br { place-self: end end; }

/* =========================
   CARDS
========================= */

.card {
  background: #fff3e0;
  padding: 20px;
  border: 1px solid #ffb74d;
  display: flex;
  flex-direction: column;
}

.card button {
  margin-top: auto;
}

.cols-300-auto {
  grid-template-columns: 300px 1fr;
}
.cols-auto-250 {
  grid-template-columns: 1fr 250px;
}

/* =========================
   DEMO STYLES
========================= */

.box {
  background: #e3f2fd;
  padding: 20px;
  border: 0px solid #90caf9;
}

.demo-9point {
  height: 200px;
  background: #ffcdd2;
}

.altoUno {
  height: auto;
  background-color: cyan;
  padding: 20px;
  min-height: 800px;
}

/* =========================
   RESPONSIVE
========================= */

@media (max-width: 768px) {
  .desktopContainer {
    max-width: 100%;
  }

  .cols-2, .cols-3, .cols-4, .cols-5, .cols-6, .cols-300-auto, .cols-auto-250 {
    grid-template-columns: 1fr;
  }

  .m-cols-2 {
    grid-template-columns: repeat(2, 1fr);
  }
}