/* =========================================================================
   SEZIONE — Moduli
   Copre il modulo di ricerca del tema e i campi generati dal plugin
   di contatto, senza dipendere dalla sua struttura interna.
   ========================================================================= */

.ex-searchform {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ex-space-sm);
}

.ex-searchform__input {
    flex: 1 1 260px;
}

/* --- Campi generici dei moduli ------------------------------------------ */

.ex-contact__form input[type='text'],
.ex-contact__form input[type='email'],
.ex-contact__form input[type='tel'],
.ex-contact__form input[type='url'],
.ex-contact__form input[type='date'],
.ex-contact__form select,
.ex-contact__form textarea {
    width: 100%;
    padding: 0.9rem 1rem;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--ex-border);
    border-radius: var(--ex-radius);
    color: var(--ex-cream);
    font-family: var(--ex-font-body);
    transition: border-color var(--ex-t-fast) var(--ex-ease), background var(--ex-t-fast) var(--ex-ease);
}

.ex-contact__form input:focus,
.ex-contact__form select:focus,
.ex-contact__form textarea:focus {
    outline: none;
    border-color: var(--ex-border-strong);
    background: rgba(255, 255, 255, 0.06);
}

.ex-contact__form textarea {
    min-height: 160px;
    resize: vertical;
}

.ex-contact__form label {
    display: block;
    margin-bottom: var(--ex-space-lg);
    font-family: var(--ex-font-label);
    font-size: var(--ex-fs-xs);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--ex-text-muted);
}

.ex-contact__form label > input,
.ex-contact__form label > textarea,
.ex-contact__form label > select,
.ex-contact__form label > span {
    margin-top: 0.5rem;
}

.ex-contact__form input[type='submit'],
.ex-contact__form button[type='submit'] {
    padding: 0.95rem 2rem;
    background: var(--ex-glass);
    border: 1px solid var(--ex-border-strong);
    border-radius: var(--ex-radius);
    color: var(--ex-cream);
    font-family: var(--ex-font-body);
    font-weight: 700;
    cursor: pointer;
    transition: all var(--ex-t) var(--ex-ease);
}

.ex-contact__form input[type='submit']:hover,
.ex-contact__form button[type='submit']:hover {
    color: var(--ex-dark);
    background: linear-gradient(135deg, #fff9e0 0%, #e2d4a8 50%, #fff9e0 100%);
    box-shadow: var(--ex-glow-gold);
    transform: translateY(-2px);
}

/* --- Messaggi di esito --------------------------------------------------- */

.ex-contact__form .wpcf7-response-output {
    margin: var(--ex-space-lg) 0 0;
    padding: var(--ex-space-md) var(--ex-space-lg);
    border: 1px solid var(--ex-border);
    border-radius: var(--ex-radius);
    font-size: var(--ex-fs-sm);
}

.ex-contact__form .wpcf7-not-valid-tip {
    display: block;
    margin-top: 0.4rem;
    font-family: var(--ex-font-label);
    font-size: var(--ex-fs-xs);
    text-transform: none;
    letter-spacing: 0;
    color: #ff9d9d;
}

.ex-contact__form .wpcf7-spinner {
    margin-left: 0.75rem;
}
