/* Association Membership — Task 004 application form
 * Scope every rule to the plugin wrapper to avoid theme/plugin conflicts.
 */

.association-membership-application {
    --am-color-primary: #2271b1;
    --am-color-text: #000000;
    --am-color-muted: #5f6868;
    --am-color-border: #d8dede;
    --am-color-surface: #ffffff;
    --am-color-soft: #f6f8f8;
    --am-color-success: #18794e;
    --am-color-success-bg: #edf8f2;
    --am-color-error: #b42318;
    --am-color-error-bg: #fff3f2;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 24px;
    color: var(--am-color-text);
    font-family: inherit;
    font-size: 16px;
    line-height: 1.5;
    box-sizing: border-box;
}

.association-membership-application *,
.association-membership-application *::before,
.association-membership-application *::after {
    box-sizing: border-box;
}

.association-membership-application__card {
    padding: 36px 40px 40px;
    background: var(--am-color-surface);
    border: 1px solid var(--am-color-border);
    border-radius: 10px;
    box-shadow: 0 8px 26px rgba(20, 36, 35, 0.08);
}

.association-membership-application__title {
    margin: 0 0 6px;
    color: var(--am-color-text);
    font-size: clamp(26px, 3vw, 34px);
    font-weight: 700;
    line-height: 1.2;
}

.association-membership-application__intro {
    margin: 0 0 30px;
    color: var(--am-color-muted);
}

.association-membership-application__notices:empty {
    display: none;
}

.association-membership-application__notice {
    margin: 0 0 24px;
    padding: 14px 16px;
    border: 1px solid currentColor;
    border-left-width: 4px;
    border-radius: 6px;
    color: var(--am-color-text);
    font-weight: 600;
}

.association-membership-application__notice--success {
    color: var(--am-color-success) !important;
    background: var(--am-color-success-bg) !important;
}

.association-membership-application__notice--error {
    color: var(--am-color-error) !important;
    background: var(--am-color-error-bg) !important;
}

.association-membership-application__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px 24px;
}

.association-membership-application__field {
    min-width: 0;
    margin: 0;
}

.association-membership-application__field--full {
    grid-column: 1 / -1;
}

.association-membership-application label {
    display: block;
    margin: 0 0 8px;
    color: var(--am-color-text) !important;
    font: inherit;
    font-weight: 600;
}

.association-membership-application__required {
    color: var(--am-color-primary);
}

.association-membership-application input[type="text"],
.association-membership-application input[type="email"],
.association-membership-application input[type="tel"],
.association-membership-application select,
.association-membership-application textarea {
    display: block;
    width: 100%;
    min-height: 50px;
    margin: 0;
    padding: 11px 14px;
    color: var(--am-color-text) !important;
    background: var(--am-color-surface) !important;
    border: 1px solid var(--am-color-border) !important;
    border-radius: 5px;
    box-shadow: none !important;
    font: inherit;
    line-height: 1.4;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.association-membership-application textarea {
    min-height: 120px;
    resize: vertical;
}

.association-membership-application input:focus,
.association-membership-application select:focus,
.association-membership-application textarea:focus {
    outline: 2px solid var(--am-color-primary);
    outline-offset: 1px;
    border-color: var(--am-color-primary) !important;
    box-shadow: none !important;
}

.association-membership-application input[readonly],
.association-membership-application input:disabled,
.association-membership-application select:disabled {
    color: #303737 !important;
    background: var(--am-color-soft) !important;
    cursor: not-allowed;
}

.association-membership-application__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px 24px;
    margin-top: 28px;
}

.association-membership-application__submit {
    min-height: 48px;
    margin: 0;
    padding: 12px 24px;
    color: #ffffff !important;
    background: var(--am-color-primary) !important;
    border: 1px solid var(--am-color-primary) !important;
    border-radius: 5px;
    box-shadow: none;
    font: inherit;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.association-membership-application__submit:hover,
.association-membership-application__submit:focus-visible {
    color: #ffffff !important;
    background: var(--am-color-primary) !important;
    border-color: var(--am-color-primary) !important;
    filter: brightness(0.82);
}

.association-membership-application__submit:focus-visible {
    outline: 3px solid var(--am-color-primary);
    outline-offset: 3px;
}

.association-membership-application__submit:active {
    transform: translateY(1px);
}

.association-membership-application__privacy {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: var(--am-color-muted);
    font-size: 14px;
}

.association-membership-application__privacy::before {
    content: "\1F512";
    color: var(--am-color-primary);
    font-size: 17px;
    line-height: 1;
}

@media (max-width: 767px) {
    .association-membership-application {
        margin: 0 auto;
        padding: 0 16px;
    }

    .association-membership-application__card {
        padding: 26px 20px 28px;
    }

    .association-membership-application__grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .association-membership-application__field--full {
        grid-column: auto;
    }

    .association-membership-application__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .association-membership-application__submit {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .association-membership-application input,
    .association-membership-application select,
    .association-membership-application textarea,
    .association-membership-application__submit {
        transition: none;
    }
}

.association-membership-application__progress { margin: 0 0 24px; }
.association-membership-application__progress ol { display:grid;grid-template-columns:repeat(4,1fr);gap:8px;list-style:none;margin:0;padding:0; }
.association-membership-application__progress li { position:relative;color:var(--am-color-muted);font-size:.9rem;text-align:center;list-style:none; }
.association-membership-application__progress li::before,
.association-membership-application__progress li::after { content:none!important;display:none!important; }
.association-membership-application__progress li span { display:flex;align-items:center;justify-content:center;width:34px;height:34px;margin:0 auto 6px;border:2px solid var(--am-color-border);border-radius:50%;background:#fff;font-weight:700; }
.association-membership-application__progress li.is-current,.association-membership-application__progress li.is-complete { color:var(--am-color-text); }
.association-membership-application__progress li.is-current span,.association-membership-application__progress li.is-complete span { color:#fff;background:var(--am-color-primary);border-color:var(--am-color-primary); }
.association-membership-honeypot { position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important; }
.association-membership-application fieldset { grid-column:1/-1;margin:26px 0 0;padding:20px;border:1px solid var(--am-color-border); }
.association-membership-application legend { padding:0 8px;color:var(--am-color-text);font-weight:700; }
.association-membership-application__field-error { display:block;margin-top:6px;color:var(--am-color-error);font-weight:600; }
.association-membership-application [aria-invalid="true"] { border-color:var(--am-color-error)!important; }
.association-membership-application__check { display:block!important;margin:10px 0!important;font-weight:400!important; }
.association-membership-application__choices { display:grid;gap:16px; }
.association-membership-application__choice { display:block!important;padding:20px;border:2px solid var(--am-color-border);border-radius:8px; }
.association-membership-application__choice > span { display:block;margin:8px 0 0;color:var(--am-color-muted); }
.association-membership-application__summary h3 { margin-top:28px; }
.association-membership-application__summary dl { display:grid;grid-template-columns:minmax(140px,1fr) 2fr;gap:8px 20px; }
.association-membership-application__summary dt { font-weight:700; }.association-membership-application__summary dd { margin:0;overflow-wrap:anywhere; }
.association-membership-application__back { min-height:48px;padding:12px 24px;border:1px solid var(--am-color-primary)!important;border-radius:5px;background:var(--am-color-primary)!important;color:#fff!important;font:inherit;font-weight:700;cursor:pointer; }
.association-membership-application__back:hover,
.association-membership-application__back:focus-visible,
.association-membership-application__back:active { color:#fff!important;background:var(--am-color-primary)!important;border-color:var(--am-color-primary)!important;filter:brightness(.82); }
.association-membership-application__completed { color:var(--am-color-text); }
@media(max-width:767px){.association-membership-application__progress li{font-size:.75rem}.association-membership-application__summary dl{grid-template-columns:1fr}.association-membership-application__summary dd{margin-bottom:10px}}

.association-membership-application__section {
    margin: 32px 0 0;
    padding-top: 28px;
    border-top: 1px solid var(--am-color-border);
}
.association-membership-application__section:first-of-type { margin-top: 22px; }
.association-membership-application__section > h3 {
    margin: 0 0 20px;
    color: var(--am-color-text);
    font-family: inherit;
    font-size: 1.25rem;
    line-height: 1.3;
}
.association-membership-application__section > h3 span { color: var(--am-color-muted);font:inherit;font-size:.8em;font-weight:400; }
.association-membership-application__grid--compact { gap: 16px 20px; }
.association-membership-application input::placeholder { color:#8a9292;opacity:1; }
.association-membership-application__interest-groups { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px; }
.association-membership-application__interest-group { margin:0!important;padding:16px 18px!important;border:1px solid var(--am-color-border)!important;border-radius:6px;background:var(--am-color-soft); }
.association-membership-application__interest-group legend { font-family:inherit;font-size:1rem; }
.association-membership-application__empty-state { margin:0;padding:16px 18px;color:var(--am-color-muted);background:var(--am-color-soft);border-radius:6px; }
.association-membership-application__progress,
.association-membership-application__progress *,
.association-membership-application__card,
.association-membership-application__title,
.association-membership-application__section,
.association-membership-application__section h3,
.association-membership-application label,
.association-membership-application input,
.association-membership-application select,
.association-membership-application textarea,
.association-membership-application button { font-family:inherit; }
@media(max-width:767px){.association-membership-application__interest-groups{grid-template-columns:1fr}.association-membership-application__section{margin-top:26px;padding-top:22px}}
