.cardContainer { position: relative; & + .cardContainer { margin-top: 64px; @media (--medium-up) { margin-top: 132px; } } } .header { margin: 0 auto 64px; text-align: center; max-width: 600px; } .heading { margin: 0; composes: g-type-display-2 from global; @nest .dark & { color: var(--white); } } .description { margin: 8px 0 0; composes: g-type-body-large from global; @nest .dark & { color: var(--gray-5); } } .subHeader { margin: 0 0 32px; display: flex; align-items: center; justify-content: space-between; @nest .dark & { color: var(--gray-5); } } .label { margin: 0; composes: g-type-display-4 from global; } .cardList { list-style: none; --minCol: 250px; --columns: var(--length); position: relative; gap: 32px; padding: 0; @media (--small) { display: flex; overflow-x: auto; -ms-overflow-style: none; scrollbar-width: none; margin: 0; padding: 6px 24px; left: 50%; margin-left: -50vw; width: 100vw; /* This is to ensure there is overflow padding right on mobile. */ &::after { content: ''; display: block; width: 1px; flex-shrink: 0; } } @media (--medium-up) { display: grid; grid-template-columns: repeat(var(--columns), minmax(var(--minCol), 1fr)); } &.threeUp { @media (--medium-up) { --columns: 3; --minCol: 0; } } &.fourUp { @media (--medium-up) { --columns: 3; --minCol: 0; } @media (--large) { --columns: 4; } } & > li { display: flex; @media (--small) { flex-shrink: 0; width: 250px; } } }