.form-block {
    margin-top: 1em;
    margin-bottom: 3em;
}

.measurement-label {
    align-self: center;
    font-weight: bold;
}

.measurement-label:first-child {
    width: 20%;
    text-align: right;
}

.form-group:has(.measurement-label) { /* @TODO give form group class names */
    width: 100%;
}


div.horiz-seperator {
    display:block;
    width:100%;
    flex:0 0 100%;
}




.input-block:has([name="patient[addr_street]"]) {
    flex-basis: calc(100% * 2 / 3 - var(--form-gap-x, 0));
}
.input-block:has([name="patient[addr_postal]"]) {
    flex-basis: calc(100% / 3 - var(--form-gap-x, 0));
}
.input-block:has([name="patient[addr_city]"]),
.input-block:has([name="patient[addr_state]"]),
.input-block:has([name="patient[addr_country]"]),
.input-block:has([name="patient[country_code]"]) {
    flex-basis: calc(100% / 4 - var(--form-gap-x, 0));
}
.input-block:has([name="patient[phone_cell]"]),
.input-block:has([name="patient[phone_home]"]),
.input-block:has([name="patient[phone_homeext]"]) {
    flex-basis: calc(100% / 3 - var(--form-gap-x, 0));
}
.input-block:has([name="patient[phone_work]"]),
.input-block:has([name="patient[phone_workext]"]),
.input-block:has([name="patient[phone_fax]"]),
.input-block:has([name="patient[phone_other]"]) {
    flex-basis: calc(100% / 4 - var(--form-gap-x, 0));
}

.input-block:has([name="patient[email]"]),
.input-block:has([name="patient[emailtwo]"]),
.input-block:has([name="patient[emailthree]"]) {
    flex-basis: calc(100% / 3 - var(--form-gap-x, 0));
}

.input-block-text:has(textarea) {
    flex-basis: 100%
}
.input-block-radiolist:has([name^="spine"]) {
    flex-basis: 100%
}



.input-block:has([name="spine[liaison]"]) {
    margin-left: auto;
    flex: 0 0 50%;
}

.input-block-button:has([type="submit"]) {
    margin-left: auto;
    flex: 0 0 25%;
    margin-bottom: 1em;
}