.asc-form {
    --asc-accent: #2563eb;
    --asc-radius: 8px;
    --asc-text: #1a1a1a;
    --asc-border: #d0d0d5;
    max-width: 560px;
}
.asc-form--cols-two { max-width: 720px; }
.asc-form--cols-two .asc-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.asc-form--cols-two .asc-field--full { grid-column: 1 / -1; }

.asc-field { margin-bottom: 18px; }
.asc-field label { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 6px; color: var(--asc-text); }
.asc-req { color: #c0392b; margin-left: 3px; }

.asc-field input,
.asc-field textarea {
    width: 100%;
    padding: 11px 13px;
    font-size: 0.95rem;
    font-family: inherit;
    border: 1px solid var(--asc-border);
    border-radius: var(--asc-radius);
    background: #fff;
    color: var(--asc-text);
    box-sizing: border-box;
}
.asc-field input:focus,
.asc-field textarea:focus { outline: none; border-color: var(--asc-accent); }
.asc-field textarea { resize: vertical; min-height: 120px; }

.asc-field--invalid input,
.asc-field--invalid textarea { border-color: #c0392b; }
.asc-error { display: block; min-height: 1.1em; font-size: 0.8rem; color: #c0392b; margin-top: 5px; }

/* Honeypot — off-screen, not display:none, and marked aria-hidden so
   screen-reader users never land on it either. */
.asc-field--hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.asc-btn {
    display: inline-block;
    padding: 12px 28px;
    font-size: 0.9rem;
    font-weight: 700;
    background: var(--asc-accent);
    color: #fff;
    border: none;
    border-radius: var(--asc-radius);
    cursor: pointer;
    transition: opacity .15s;
}
.asc-btn:hover { opacity: 0.9; }
.asc-btn:disabled { opacity: 0.6; cursor: not-allowed; }

.asc-form--btn-center { text-align: center; }
.asc-form--btn-full .asc-btn { display: block; width: 100%; }

.asc-notice { padding: 12px 16px; border-radius: var(--asc-radius); margin-bottom: 16px; font-size: 0.9rem; }
.asc-notice--success { background: #e6f4ea; color: #1e7b34; border: 1px solid #b7e1c2; }
.asc-notice--error { background: #fdecea; color: #a3261b; border: 1px solid #f3c1bd; }

@media (max-width: 560px) {
    .asc-form--cols-two .asc-fields { grid-template-columns: 1fr; }
}
