.membership-page {
    width: 100%;
    max-width: var(--layout-content-max-width);
    margin: 0;
    padding: 0 0 2rem;
    display: grid;
    gap: 1rem;
}

.membership-page > header {
    padding: var(--layout-header-padding);
}

.membership-page__special,
.membership-page__form-card,
.membership-form,
.membership-form__section,
.membership-form__grid,
.membership-form__field {
    display: grid;
}

.membership-page__special {
    gap: 0.65rem;
    color: var(--text-muted);
    line-height: 1.65;
}

.membership-page__special :is(p, ul, ol) {
    margin: 0;
}

.membership-page__form-card {
    gap: 1rem;
}

.membership-form {
    gap: 1.1rem;
}

.membership-form__section {
    gap: 0.75rem;
    padding-top: 0.2rem;
}

.membership-form__section + .membership-form__section {
    border-top: 1px solid var(--border);
    padding-top: 1rem;
}

.membership-form__section-title {
    margin: 0;
    color: var(--text-main);
    font-size: 1.05rem;
    line-height: 1.35;
}

.membership-form__grid {
    gap: 0.9rem;
    align-items: start;
}

.membership-form__field {
    gap: 0.35rem;
    min-width: 0;
}

.membership-form__field label,
.membership-form__choice-group > label,
.membership-form__choice-group > legend {
    color: var(--text-main);
    font-weight: 700;
}

.membership-form__field input:not([type="checkbox"]):not([type="radio"]),
.membership-form__field select,
.membership-form__field textarea {
    width: 100%;
    min-height: 2.75rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 0.65rem 0.75rem;
    background: var(--page-bg);
    color: var(--text-main);
    font: inherit;
}

.membership-form__field input:not([type="checkbox"]):not([type="radio"]):focus-visible,
.membership-form__field select:focus-visible,
.membership-form__field textarea:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
    border-color: var(--accent);
}

.membership-form__field input[type="file"] {
    cursor: pointer;
}

.membership-form__field input[type="file"]::file-selector-button {
    min-height: 2.25rem;
    border: 1px solid var(--border);
    border-radius: 6px;
    margin-right: 0.75rem;
    padding: 0.45rem 0.7rem;
    background: var(--surface);
    color: var(--text-main);
    cursor: pointer;
    font: inherit;
    font-weight: 700;
}

.membership-form__choice-group > div {
    display: grid;
    gap: 0.45rem;
}

.membership-form__choice-group > legend {
    margin: 0;
    padding: 0;
}

.membership-form__choice-group > div > div,
.membership-form__choice-group .form-check,
.membership-form__consents .form-check {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.55rem;
    align-items: start;
}

.membership-form__choice-group input[type="checkbox"],
.membership-form__choice-group input[type="radio"],
.membership-form__consents input[type="checkbox"],
.membership-form__choice-group .form-check-input,
.membership-form__consents .form-check-input {
    width: 1.1rem;
    height: 1.1rem;
    margin-top: 0.18rem;
    accent-color: var(--accent-strong);
}

.membership-form__choice-group > div label,
.membership-form__choice-group .form-check-label,
.membership-form__consents label,
.membership-form__consents .form-check-label {
    font-weight: 600;
    line-height: 1.45;
}

.membership-form__hint,
.membership-form__field .form-help {
    margin: 0;
    color: var(--text-muted);
    font-size: 0.92rem;
    line-height: 1.5;
}

.membership-form__legal-note {
    border: 1px solid var(--state-info-border);
    border-radius: 8px;
    background: var(--state-info-bg);
    color: var(--state-info-text);
    padding: 0.75rem 0.85rem;
    line-height: 1.55;
}

.membership-form__legal-note p {
    margin: 0;
}

@media (min-width: 768px) {
    .membership-page {
        gap: 1.25rem;
    }

    .membership-form__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .membership-form__field--full {
        grid-column: 1 / -1;
    }

    .membership-form__field--supporting {
        max-width: 22rem;
    }
}
