/* How it works: five numbered steps with the real screen for each. A column
   of rows on phones, one row of five on wide screens. Nothing is hidden. */
.demo { background: var(--cream-2); }
.demo__steps { list-style: none; display: grid; gap: 28px; margin-top: 40px; counter-reset: none; }
.demo__step { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 20px; align-items: center; }
.demo__media { display: flex; justify-content: center; }
.demo__media .phone { --phone-w: 120px; box-shadow: var(--shadow-card), 0 8px 18px rgba(30, 43, 41, 0.12); }
.demo__paper { width: 116px; transform: rotate(-3deg); border-radius: 8px; box-shadow: 0 8px 18px rgba(30, 43, 41, 0.14); }
.demo__text h3 { font-size: 1.1875rem; font-weight: 700; letter-spacing: -0.01em; }
.demo__text .step-num { margin-bottom: 10px; }
.demo__text p { margin-top: 6px; color: var(--ink-2); font-size: 1rem; }

/* Step number on a small folded card */
.step-num {
  --fold-size: 9px; --fold-bg: var(--cream-2);
  position: relative; display: grid; place-items: center;
  width: 30px; height: 30px; border-radius: 8px;
  background: var(--teal); color: #fff; font-size: 0.9375rem; font-weight: 800;
}
.step-num::after {
  content: ""; position: absolute; top: 0; right: 0; width: 9px; height: 9px;
  background: linear-gradient(225deg, var(--cream-2) 0 50%, var(--amber) 50% 100%);
  border-bottom-left-radius: 2px;
}

@media (min-width: 960px) {
  .demo__steps { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; margin-top: 56px; }
  .demo__step { grid-template-columns: 1fr; align-items: start; gap: 22px; }
  .demo__media { min-height: 420px; align-items: flex-end; }
  .demo__media .phone { --phone-w: 190px; }
  .demo__paper { width: 180px; margin-bottom: 40px; }
}
