#bg {
        position: fixed !important;
        top: 0;
        left: 0;
        margin-bottom: 0 !important;
        z-index: 0;
    }
    #bg-wrapper { position: static; }
    main { background: transparent; }
    .form-section, #contact-wrapper {
        position: relative;
        z-index: 1;
    }

    .form-section {
        --form-accent: #00E5FF;
        --form-accent-rgb: 0, 229, 255;
        --form-accent-hover: #38BDF8;
        --form-label: #7dd3fc;
        --form-field-rgb: 56, 189, 248;
        --form-section-mid: #050a18;
        position: relative;
        background: linear-gradient(180deg, #010208 0%, var(--form-section-mid) 50%, #010208 100%);
        padding: 7rem clamp(1.5rem, 6vw, 6rem) 8rem;
        overflow: hidden;
    }
    .form-section--red {
        --form-accent: #ff4d4d;
        --form-accent-rgb: 255, 77, 77;
        --form-accent-hover: #ff6b6b;
        --form-label: #ff9b9b;
        --form-field-rgb: 255, 77, 77;
        --form-section-mid: #16060a;
    }
    .form-section--yellow {
        --form-accent: #ffb800;
        --form-accent-rgb: 255, 184, 0;
        --form-accent-hover: #ffd14a;
        --form-label: #ffd76a;
        --form-field-rgb: 255, 184, 0;
        --form-section-mid: #171204;
    }
    .form-section::before {
        content: '';
        position: absolute; top: 0; left: 0; right: 0;
        height: 1px;
        background: linear-gradient(to right, transparent, rgba(var(--form-accent-rgb), .45), transparent);
        box-shadow: 0 0 24px rgba(var(--form-accent-rgb), .35);
    }

    .form-section-inner {
        max-width: 720px;
        margin: 0 auto;
        position: relative;
        z-index: 1;
    }

    .form-eyebrow {
        font-size: 0.65rem; font-weight: 500;
        letter-spacing: 0.28em; text-transform: uppercase;
        color: var(--form-accent); opacity: .6;
        margin-bottom: 1rem;
        text-align: center;
        opacity: 0;
        transform: translateY(16px);
        transition: opacity .8s ease, transform .8s ease;
    }

    .form-heading {
        font-size: clamp(1.8rem, 4.5vw, 2.8rem);
        font-weight: 700; letter-spacing: -0.02em;
        color: #f0f9ff;
        text-align: center;
        margin-bottom: 0.75rem;
        opacity: 0;
        transform: translateY(20px);
        transition: opacity .9s ease .08s, transform .9s ease .08s;
    }
    .form-heading span {
        color: var(--form-accent);
        text-shadow: 0 0 18px rgba(var(--form-accent-rgb), .45);
    }

    .form-sub {
        font-size: clamp(0.85rem, 1.5vw, 0.95rem);
        color: #94a3b8; line-height: 1.7;
        text-align: center;
        max-width: 46ch;
        margin: 0 auto 3rem;
        opacity: 0;
        transform: translateY(20px);
        transition: opacity 1s ease .16s, transform 1s ease .16s;
    }

    .olmo-form {
        position: relative;
        background: rgba(6, 10, 22, 0.6);
        backdrop-filter: blur(14px);
        border: 1px solid rgba(var(--form-accent-rgb), .12);
        border-radius: 6px;
        padding: clamp(1.5rem, 3vw, 2.5rem);
        opacity: 0;
        transform: translateY(30px) scale(.98);
        transition: opacity 1s cubic-bezier(.4,0,.2,1) .24s,
                    transform 1s cubic-bezier(.4,0,.2,1) .24s,
                    box-shadow .4s ease;
        box-shadow: 0 0 0 rgba(var(--form-accent-rgb), 0);
    }
    .olmo-form::before {
        content: '';
        position: absolute; top: 0; left: 0; right: 0;
        height: 2px;
        background: linear-gradient(to right, transparent, var(--form-accent), transparent);
        opacity: .7;
    }

    .form-section.is-visible .form-eyebrow,
    .form-section.is-visible .form-heading,
    .form-section.is-visible .form-sub,
    .form-section.is-visible .olmo-form {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
    .form-section.is-visible .olmo-form {
        box-shadow: 0 0 60px rgba(var(--form-accent-rgb), .08), 0 0 0 1px rgba(var(--form-accent-rgb), .08) inset;
    }

    .olmo-form .field {
        opacity: 0;
        transform: translateY(14px);
        transition: opacity .55s ease, transform .55s ease;
    }
    .olmo-form.fields-in .field { opacity: 1; transform: translateY(0); }
    .olmo-form .field { margin-bottom: 1.25rem; }
    .olmo-form .field:last-of-type { margin-bottom: 0; }

    .olmo-form label {
        display: block;
        font-size: 0.65rem; font-weight: 500;
        letter-spacing: 0.18em; text-transform: uppercase;
        color: var(--form-label);
        margin-bottom: 0.5rem;
    }
    .olmo-form label .req { color: var(--form-accent); margin-left: 0.2em; }

    .olmo-form input[type=text],
    .olmo-form input[type=email],
    .olmo-form input[type=tel],
    .olmo-form input[type=number],
    .olmo-form input[type=password],
    .olmo-form textarea,
    .olmo-form select {
        width: 100%;
        background: rgba(2,6,14,.55);
        border: 1px solid rgba(var(--form-field-rgb), .18);
        border-radius: 3px;
        color: #e2e8f0;
        font-family: inherit;
        font-size: 0.9rem;
        padding: 0.85em 1em;
        transition: border-color .25s, background .25s, box-shadow .25s;
        outline: none;
    }
    .olmo-form textarea { min-height: 130px; resize: vertical; }
    .olmo-form input:focus,
    .olmo-form textarea:focus,
    .olmo-form select:focus {
        border-color: rgba(var(--form-accent-rgb), .55);
        background: rgba(var(--form-accent-rgb), .04);
        box-shadow: 0 0 0 3px rgba(var(--form-accent-rgb), .08);
    }
    /* Nota informativa privacy: sostituisce la vecchia checkbox di consenso
       (rimossa: base giuridica art. 6(1)(b) GDPR), stessa tipografia della label. */
    .olmo-form .form-privacy-note {
        margin: 0;
        letter-spacing: 0.06em;
        text-transform: none;
        font-size: 0.78rem;
        color: #94a3b8;
        line-height: 1.5;
    }
    .form-section--red .form-privacy-note a,
    .form-section--yellow .form-privacy-note a {
        color: var(--form-accent) !important;
    }

    .olmo-form .field.has-error input,
    .olmo-form .field.has-error textarea,
    .olmo-form .field.has-error select {
        border-color: rgba(248,113,113,.6);
        background: rgba(248,113,113,.05);
    }
    .olmo-form .field-error {
        margin-top: 0.4rem;
        font-size: 0.72rem; letter-spacing: 0.05em;
        color: #fda4af;
    }

    .form-actions {
        display: flex;
        align-items: center;
        gap: 1rem;
        margin-top: 1.75rem;
    }
    .form-submit {
        display: inline-flex; align-items: center; gap: 0.55rem;
        font-family: inherit;
        font-size: 0.72rem; font-weight: 600;
        letter-spacing: 0.18em; text-transform: uppercase;
        color: #010208;
        background: var(--form-accent);
        border: 1px solid var(--form-accent);
        border-radius: 3px;
        padding: 0.9em 1.6em;
        cursor: pointer;
        transition: gap .2s, background .25s, box-shadow .25s, transform .15s, opacity .2s;
    }
    .form-submit:hover {
        gap: 0.85rem;
        background: var(--form-accent-hover);
        border-color: var(--form-accent-hover);
        box-shadow: 0 0 26px rgba(var(--form-accent-rgb), .4);
    }
    .form-submit:active { transform: translateY(1px); }
    .form-submit:disabled {
        opacity: .55;
        cursor: progress;
        box-shadow: none;
    }
    /* Stato loading: data-attach-loading (framework.extras) disabilita il bottone
       e applica .wn-loading durante la request — spinner testuale via ::after */
    .form-submit.wn-loading::after {
        content: '';
        width: .85em;
        height: .85em;
        border: 2px solid currentColor;
        border-top-color: transparent;
        border-radius: 50%;
        animation: form-submit-spin .7s linear infinite;
    }
    @keyframes form-submit-spin { to { transform: rotate(360deg); } }
    @media (prefers-reduced-motion: reduce) {
        .form-submit.wn-loading::after { animation: none; opacity: .6; }
    }
    /* Campo marcato invalido dal wiring a11y colocato nel componente */
    .olmo-form .is-invalid {
        border-color: #fda4af;
    }

    .form-status {
        font-size: 0.72rem; letter-spacing: 0.1em;
        color: #64748b;
    }
    .form-status.is-success { color: #6ee7b7; }
    .form-status.is-error { color: #fda4af; }

    .form-loading,
    .form-empty {
        text-align: center;
        font-size: 0.75rem;
        letter-spacing: 0.15em;
        text-transform: uppercase;
        color: #475569;
        padding: 2rem 0;
    }
    .form-empty code {
        display: block;
        margin-top: 0.6rem;
        font-size: 0.75rem;
        letter-spacing: 0.02em;
        text-transform: none;
        color: var(--form-label);
        background: rgba(var(--form-accent-rgb), .05);
        padding: 0.55em 0.85em;
        border-radius: 3px;
    }

    @media (max-width: 640px) {
        .form-section { padding: 5rem 1.25rem 6rem; }
        .form-actions { flex-direction: column; align-items: stretch; }
        .form-submit { justify-content: center; }
    }
