:root { --bg-color: hsl(0.0, 0.0%, 90.2%); --primary: hsl(82.3, 54.4%, 44.7%); --secondary: hsl(194.5, 100.0%, 26.9%); --gray: hsl(37.5, 25.0%, 93.7%); --container: hsl(37.5, 50.0%, 96.9%); } body { background: var(--bg-color) !important; } .stepper { .slider { display: flex; flex-wrap: nowrap; scroll-snap-type: x proximity; scroll-behavior: smooth; overflow-x: hidden; & > * { flex: 0 0 100%; scroll-snap-align: start; } } .button-row { display: grid; grid-template-columns: max-content 1fr; grid-gap: 0.5rem; } form { font-family: sans-serif; background: var(--bg-color); & > div { h2 { margin: 3rem auto; font-size: 2.3rem; color: var(--secondary); text-align: center; } .radio-grid { display: grid; grid-gap: 2rem; grid-template-columns: repeat(3, 1fr); margin-top: 1rem; label { height: 20rem; position: relative; input { visibility: hidden; z-index: -99; position: absolute; } input + span { border: 1px var(--primary) solid; border-radius: 2rem; overflow: hidden; cursor: pointer; background: white; display: flex; flex-direction: column; align-items: center; position: absolute; top: 0; left: 0; width: 100%; height: 100%; span:first-child { display: flex; flex: 1 0 0; justify-content: center; align-items: center; } span:nth-child(2) { flex: 0 0 4rem; background: var(--gray); display: flex; width: 100%; justify-content: center; align-items: center; } } input:checked + span { border-color: var(--secondary); } svg { color: var(--secondary); fill: currentColor; width: 8rem; height: 8rem; } } } .form-container { background: var(--container); border-radius: 2rem; padding: 3rem; display: grid; grid-gap: 1rem; .separator { background: white; height: 5px; } .form-grid { display: grid; grid-gap: 0.5rem; grid-template-columns: 2fr 3fr 30px; align-items: center; input[type="text"], input[type="number"] { font-weight: bold; border: var(--primary) 1px solid; text-align: right; } .unit { text-align: right; } .comment { grid-column: 1 / -1; font-size: 1.5rem; } } } } } .step { height: 5px; position: relative; div { position: absolute; transition: width 0.5s; top: 0; left: 0; height: 100%; background: var(--primary); } } }