.main { display: flex; flex: 1 1 0%; flex-flow: column; .program { display: grid; width: 80rem; max-width: 90vw; align-self: center; grid-template-columns: repeat(3, calc(80rem / 3)); grid-auto-rows: max-content; &+.program { margin-top: 2rem; } h3 { grid-column: 1 / -1; font-family: var(--font-details); margin: 0.25rem 0px; font-size: 2rem; font-weight: 400; justify-self: stretch; } } .map { width: auto; grid-column: span 2; place-self: stretch; border: medium; } .featuring { display: grid; grid-template-columns: repeat(2, calc(80rem / 6)); place-self: stretch; padding: 0px 0.5rem; place-items: stretch; align-content: start; grid-auto-rows: max-content; h3 { font-family: var(--font-details); grid-column: 1 / -1; margin: 0.25rem 0px; font-size: 2rem; font-weight: 400; justify-self: stretch; max-width: 80vw; } .introduction { grid-column: 1 / -1; justify-self: stretch; text-align: left; max-width: 90vw; padding-right: 2rem; } p { margin-top: 0px; } } h2 { align-self: center; font-family: var(--font-details); font-size: 2rem; font-weight: 400; } } @media only screen and (max-width: 80rem) { .main { .program { grid-template-columns: repeat(2, calc(50vw - 3rem)); } } } @media only screen and (max-width: 60rem) { .main { .program { grid-template-columns: repeat(1, 90vw); } .featuring { .introduction { padding-right: unset; } } } }