* { box-sizing: border-box; } fieldset.radio { width: 30rem; display: flex; flex-direction: row; flex-wrap: nowrap; column-gap: 2%; border-color: var(--theme-border-input); } fieldset.radio.theme { margin-block: 1rem 2rem; } @media screen and (max-width: 500px) { fieldset.radio { width: calc(100vw - 5rem); } } label { width: 32%; height: 2rem; display: block; position: relative; } input { appearance: none; display: block; background: transparent; position: absolute; top: 0; left: 0; right: 0; bottom: 0; } input:not(:checked) { cursor: pointer; background: var(--theme-bg-button-primary); } input:checked { background: var(--theme-bg-button-primary-hover); } span { z-index: 2; position: relative; pointer-events: none; text-align: center; display: block; height: 100%; line-height: 2rem; }