/* form.css — moduli di contatto e newsletter
   Usa i token del tema (--space-*, --radius-*, --primary…): nessun colore fisso. */

.form-page {
    padding-block: var(--space-3xl);
}

.form-page__head {
    max-width: 46rem;
    margin-bottom: var(--space-2xl);
}

.form-page__sub {
    margin-top: var(--space-xs);
    color: var(--dark-60);
    font-size: var(--text-m);
    line-height: 1.6;
}

/* ---- form ---- */

.form-card {
    display: flex;
    flex-direction: column;
    gap: var(--space-m);
    padding: var(--space-xl);
    background: var(--light);
    border-radius: var(--radius-l);
    box-shadow: var(--shadow-m);
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-m);
}

.form-field {
    display: flex;
    flex-direction: column;
    gap: var(--space-4xs);
}

.form-field--full {
    grid-column: 1 / -1;
}

.form-label {
    color: var(--text-title);
    font-size: var(--text-s);
    font-weight: 600;
}

.form-label__req {
    color: var(--error);
}

.form-field .input,
.form-field .select {
    width: 100%;
}

textarea.input {
    min-height: 9rem;
    resize: vertical;
    font-family: inherit;
}

.form-privacy {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2xs);
    color: var(--dark-70);
    font-size: var(--text-s);
    line-height: 1.5;
}

.form-privacy a {
    color: var(--primary);
    text-decoration: underline;
}

.form-actions {
    display: flex;
    align-items: center;
    gap: var(--space-m);
    flex-wrap: wrap;
}

.form-nota {
    color: var(--dark-50);
    font-size: var(--text-xs);
}

/* Trappola antispam: mai visibile, mai raggiungibile da tastiera o screen reader */
.form-hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* ---- esito invio ---- */

.form-esito {
    padding: var(--space-m) var(--space-l);
    border-radius: var(--radius-m);
    font-size: var(--text-m);
}

.form-esito--ok {
    background: var(--success-10);
    color: var(--success-80);
    border: 1px solid var(--success-30);
}

.form-esito--ko {
    background: var(--error-10);
    color: var(--error-80);
    border: 1px solid var(--error-30);
}

/* ---- colonna recapiti ---- */

.form-aside {
    display: flex;
    flex-direction: column;
    gap: var(--space-l);
    padding: var(--space-l);
    background: var(--primary);
    color: var(--light);
    border-radius: var(--radius-l);
}

.form-aside__title {
    font-size: var(--text-l);
    font-weight: 700;
}

.form-aside__block {
    display: flex;
    flex-direction: column;
    gap: var(--space-4xs);
    font-size: var(--text-s);
    line-height: 1.6;
}

.form-aside__label {
    color: var(--light-60);
    font-size: var(--text-xs);
    text-transform: uppercase;
    letter-spacing: .04em;
}

.form-aside a {
    color: var(--light);
    text-decoration: none;
}

.form-aside a:hover {
    text-decoration: underline;
}

@media (max-width: 900px) {
    .form-grid { grid-template-columns: minmax(0, 1fr); }
}
