/* === Unified placeholders (site-wide) === */
::placeholder,
input::placeholder,
textarea::placeholder {
    opacity: 0.6;
    font-size: var(--fs-sm);
    color: var(--Light_Text);
    font-family: var(--font-main);
    font-weight: var(--fw-light);
}

textarea, input, select {
    margin: 0.25em;
    border: 1px solid var(--element_border);
    border-radius: 4px;
    background-color: var(--element);
    transition: all 0.3s ease-in-out;
}

/* === Text sizing consistency for form fields === */
select,
input:not([type="radio"]),
textarea {
    width: 100%;
    box-sizing: border-box;
    font-family: var(--font-main);
    font-size: var(--fs-md);
    font-weight: var(--fw-regular);
    line-height: 1.25;
}

textarea {
    resize: vertical;
    min-height: 80px;
    padding: 0.75rem 0.2rem;
}

select {
    padding: var(--small-padding);
    height: 2.5em;
    flex-grow: 1;
}

input:focus, textarea:focus {
    outline: none;
    border-color: var(--orange);
    box-shadow: 0px 4px 8px var(--orange_shadow);
}

/* Radios */
input[type="radio"] {
    appearance: none;
    width: 18px;
    height: 18px;
    border: 2px solid var(--Default_Text);
    border-radius: 50%;
    background-color: white;
    display: inline-block;
    cursor: pointer;
    vertical-align: middle;
    flex-grow: 0 !important;
    /* keep radios independent of global width rule */
}

input[type="radio"]:checked::before {
    content: "";
    width: 10px;
    height: 10px;
    background-color: var(--navy) !important;
    border-radius: 50%;
    position: absolute;
    top: 3px;
    left: 3px;
}

input[type="radio"]:checked {
    background-color: var(--navy) !important;
    border: 2px solid var(--navy) !important;
}

/* Alignment for radio groups */
.radio-group, .radio-option {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    column-gap: 15px !important;
    row-gap: 10px !important;
    padding: 5px 0 !important;
}

.radio-group input[type="radio"] {
    margin-left: 10px !important;
    margin-right: 10px !important;
}

/* Force all inputs except radio buttons to expand */
input:not([type="radio"]) {
    width: 100%;
    height: 2.5em;
}

input[type="number" i] {
    flex-grow: 0;
    width: auto;
}

.field-error {
    border: 2px solid red;
    background-color: #ffe6e6;
}