.vbox { align-content: space-between; grid-area: vbox; display: grid; grid-template-rows: 1fr min-content; grid-template-columns: 1fr 4fr; grid-template-areas: "store-hdr info-combiner" "store store"; margin-bottom: 1em; // immediate children > div { padding: 0.5em; } label { line-height: 0; } .store { grid-area: store; border-right: 0.15em solid @gray; border-top: 0.15em solid @gray; } .store-hdr { grid-area: store-hdr; display: flex; flex-flow: column; text-align: center; border-left: 0.15em solid @gray; border-top: 0.15em solid @gray; h1 { margin-bottom: 0.5em; } button { line-height: 1.6; letter-spacing: 0.15em; background-color: #421010; &:hover { background-color: @red; } } } .vbox-hdr { grid-area: vbox-hdr; margin-bottom: 1em; height: 2em; } .vbox-items { display: grid; grid-template-columns: repeat(5, 1fr); grid-gap: 0.5em 1em; align-items: center; } .vbox-btn { width: 100%; margin: 0; background-color: @gray-box; line-height: 1em; border-width: 0; :active, :hover, :focus { color: white; } &[disabled] { background: black; border-width: 0.1em; }; } .info-combiner { grid-area: info-combiner; display: grid; grid-template-areas: "info" "combiner"; grid-template-rows: min-content 1fr; .info { grid-area: info; line-height: 1.6; height: 100%; h2 { text-transform: uppercase; } svg { display: inline; height: 1em; } figure { display: inline; height: 0.5em; svg { margin-right: 0.5em; } } figcaption { font-size: 1em; display: inline-block; vertical-align: middle; } margin-left: 1em; } // align-self: flex-end; } button { height: 5em; margin: 0; width: 100%; // text-transform: none; &.empty { border-style: dashed; } &.fade { opacity: 0.4; } &.highlight { background: @silver; // overwrite the classes on white svg elements svg { stroke-width: 0.75em; } } } // figures don't scale well figure { svg { height: 1.5em; stroke-width: 0.5em; } figcaption { line-height: initial; } } } @media (min-width: 2000px) { .vbox { button { height: 4.5em; } } }