.row {
    display: grid;
    grid-gap: 20px;
    grid-template-columns: 100%;
}

.row.half-three-and-half {
    grid-template-columns: 12.5% calc(87.5% - 20px);
}

.row.one-one {
    grid-template-columns: 50% 50%;
}

.row.one-three {
    grid-template-columns: 25% calc(75% - 20px);
}

.row.three-one {
    grid-template-columns: 75% 25%;
}

.row.one-two-one {
    grid-template-columns: 25% 50% calc(25% - 20px);
}

.row.one-one-one-one {
    grid-template-columns: 25% calc(25% - 30px) 25% calc(25% - 30px);
}

.row.half-two-half-two {
    grid-template-columns: 12.5% calc(37.5% - 30px) 12.5% calc(37.5% - 30px);
}

.row.half-two-half-half-two {
    grid-template-columns: 5% calc(42.5% - 40px) 5% 5% calc(42.5% - 40px);
}

.row.two-half-half-two-half {
    grid-template-columns: calc(42% - 40px) 5% 5% calc(42% - 40px) 5%;
}

.row.one-one-fifth-one-one-fifth {
    grid-template-columns: 25% calc(20% - 30px) calc(5% - 20px) 25% calc(20% - 30px) calc(5% - 20px);
}

.row.ten-sixty-thirty {
    grid-template-columns: 10% 60% 30%;
}

.row.fifteen-seventy-fifteen {
    grid-template-columns: calc(15% - 20px) 70% calc(15% - 20px);
}

.row.one-two-half-half {
    grid-template-columns: 25% calc(50% - 60px) 12.5% 12.5%;
}

.row.one-one-one {
    grid-template-columns: 25% 25% calc(50% - 20px);
}

.row.one-one-one-equal {
    grid-template-columns: 33.33% 33.33% 33.33%;
}

.row.one-one-half {
    grid-template-columns: 25% calc(25% - 30px) 12.5%;
}

.row.ten-fifty-fifteen-fifteen-ten {
    grid-template-columns: 10% calc(50% - 60px) 15% 15% 10%;
}

.row.thirty-seventy {
    grid-template-columns: calc(30%) calc(70% - 10px);
}

.row.seventy-thirty {
    grid-template-columns: calc(70% - 10px) calc(30% - 10px);
}

.row .selectize-control {
    height: 41px;
}

.row.fifty-fifty {
    grid-template-columns: calc(50% - 10px) calc(50% - 10px);
}

.row.fifty-fifty.double-gap {
    grid-template-columns: calc(50% - 20px) calc(50% - 20px);
}

.row.one-two-half-two-half {
    grid-template-columns: 25% calc(30% - 30px) 7.5% calc(30% - 30px) 7.5%;
}

.row .item {
    display: inline-block;
    align-self: center;
    max-width: 100%;
}

.row .item.label.center {
    text-align: center;
}

.row .item.label.right {
    text-align: right;
}

.row .item.small {
    max-width: 250px;
}

.row input[type=text].item.small, 
.row input[type=password].item.small {
    max-width: 230px;
}

.section-box .row .item.label {
    width: calc(100% - 20px);
}

@media only screen and (max-width: 812px) {
    .row {
        grid-gap: 10px;
    }

    .row.one-one,
    .row.one-one-one,
    .row.one-one-half,
    .row.one-two-one,
    .row.one-one-one-one,
    .row.one-one-one-equal,
    .row.half-two-half-two,
    .row.one-one-fifth-one-one-fifth,
    .row.half-two-half-half-two,
    .row.two-half-two-half,
    .row.one-two-half-half,
    .row.two-half-half-two-half,
    .row.one-three,
    .row.three-one,
    .row.ten-sixty-thirty,
    .row.fifteen-seventy-fifteen,
    .row.ten-fifty-fifteen-fifteen-ten:not(.solution-header),
    .row.fifty-fifty:not(.login),
    .row.one-two-half-two-half {
        grid-template-columns: 100% !important;
    }

    .row .item.label {
        width: 100% !important;
        padding-top: 0;
    }

    .row .item.label:not(:first-child):not(.unit) {
        margin-top: 10px;
    }

    .row .item.small,
    .row input[type=text].item.small, 
    .row input[type=password].item.small {
        max-width: none;
    }

    .row .item.label:not(.login),
    .row input[type=text], 
    .row input[type=password] {
        text-align: left !important;
    }

    .row .item.hidden {
        margin-top: 0 !important;
        display: none;
    }

    .row .item:not(input).hidden {
        padding-top: 0 !important;
    }
}