/**
 * Stili form Contaminazioni Fest (frontend).
 *
 * Nota sulla specificità: molti temi (Astra, Blocksy, Kadence…) e
 * page builder (Elementor, Divi) applicano stili globali ai tag
 * `button`, `input`, `select` con selettori ad alta specificità.
 * Per resistere a questi override usiamo la tecnica del "double class"
 * (`.cfest-form.cfest-form`) che raddoppia la specificità della
 * classe senza cambiare il markup, e aggiungiamo `!important` solo
 * sulle proprietà critiche (dimensioni, colori, bordi) dei pulsanti
 * e degli input. Proprietà puramente estetiche (transition, hover)
 * restano senza !important.
 */

.cfest-form.cfest-form {
    max-width: 640px !important;
    margin: 0 auto 30px !important;
    background: #fff !important;
    padding: 28px 30px !important;
    border: 1px solid #eee !important;
    border-radius: 12px !important;
    box-shadow: 0 6px 28px rgba(0,0,0,.08) !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
    color: #1a1a1a !important;
    box-sizing: border-box !important;
}
.cfest-form.cfest-form *,
.cfest-form.cfest-form *::before,
.cfest-form.cfest-form *::after { box-sizing: inherit !important; }

.cfest-form.cfest-form .cfest-form-row {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 14px !important;
    /* I .cfest-form-field al suo interno hanno già margin-bottom: non serve duplicarlo qui */
}
@media (max-width: 560px) {
    .cfest-form.cfest-form .cfest-form-row { grid-template-columns: 1fr !important; }
    .cfest-form.cfest-form { padding: 20px !important; }
}

.cfest-form.cfest-form .cfest-form-field { margin-bottom: 14px !important; }
.cfest-form.cfest-form .cfest-form-field label {
    display: block !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: #444 !important;
    margin-bottom: 6px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    line-height: 1.2 !important;
}

/* Input / select — override esplicito contro temi/Elementor */
.cfest-form.cfest-form .cfest-form-field input,
.cfest-form.cfest-form .cfest-form-field select {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 40px !important;
    padding: 10px 12px !important;
    font-size: 15px !important;
    line-height: 1.4 !important;
    border: 1.5px solid #ddd !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: #1a1a1a !important;
    font-family: inherit !important;
    box-shadow: none !important;
    transition: border-color .14s, box-shadow .14s;
}
.cfest-form.cfest-form .cfest-form-field input:focus,
.cfest-form.cfest-form .cfest-form-field select:focus {
    outline: none !important;
    border-color: #1a1a1a !important;
    box-shadow: 0 0 0 3px rgba(0,0,0,.06) !important;
}
.cfest-form.cfest-form .cfest-form-field input[readonly] {
    background: #f4f4f4 !important;
    cursor: not-allowed !important;
}
.cfest-form.cfest-form .cfest-form-field input.cfest-error,
.cfest-form.cfest-form .cfest-form-field select.cfest-error {
    border-color: #c0392b !important;
    background: #fff5f5 !important;
}
.cfest-form.cfest-form .cfest-form-field .cfest-field-err {
    font-size: 12px !important;
    color: #c0392b !important;
    margin-top: 4px !important;
    min-height: 1em !important;
}
.cfest-form.cfest-form .cfest-form-field .cfest-field-hint {
    display: block !important;
    font-size: 11px !important;
    color: #888 !important;
    margin-top: 4px !important;
    line-height: 1.3 !important;
}

.cfest-form.cfest-form .cfest-form-total {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 14px 18px !important;
    background: #fafafa !important;
    border: 1px solid #eee !important;
    border-radius: 8px !important;
    margin: 18px 0 !important;
    font-size: 14px !important;
    color: #1a1a1a !important;
}
.cfest-form.cfest-form .cfest-form-total .cfest-total-amount {
    font-size: 22px !important;
    font-weight: 800 !important;
    color: #1a1a1a !important;
}

/* ── Bottone submit (qui l'override Elementor è più aggressivo) ── */
.cfest-form.cfest-form button.cfest-submit-btn,
.cfest-form.cfest-form .cfest-submit-btn {
    display: block !important;
    width: 100% !important;
    min-height: 48px !important;
    padding: 14px 24px !important;
    margin: 0 !important;
    font-family: inherit !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: 0 !important;
    text-align: center !important;
    text-transform: none !important;
    text-decoration: none !important;
    color: #fff !important;
    background: #1a1a1a !important;
    background-image: none !important;
    border: none !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    cursor: pointer !important;
    transition: background .15s, transform .05s;
}
.cfest-form.cfest-form button.cfest-submit-btn:hover,
.cfest-form.cfest-form .cfest-submit-btn:hover {
    background: #333 !important;
    color: #fff !important;
    transform: none !important;
}
.cfest-form.cfest-form button.cfest-submit-btn:active,
.cfest-form.cfest-form .cfest-submit-btn:active {
    transform: translateY(1px) !important;
}
.cfest-form.cfest-form button.cfest-submit-btn[disabled],
.cfest-form.cfest-form .cfest-submit-btn[disabled] {
    opacity: .6 !important;
    cursor: not-allowed !important;
}

.cfest-form.cfest-form .cfest-form-msg {
    margin-top: 14px !important;
    padding: 0 !important;
    font-size: 14px !important;
    min-height: 1em !important;
}
.cfest-form.cfest-form .cfest-form-msg.is-error {
    padding: 12px 14px !important;
    background: #fff5f5 !important;
    border: 1px solid #f5c6c6 !important;
    border-radius: 6px !important;
    color: #c0392b !important;
}
.cfest-form.cfest-form .cfest-form-msg.is-success {
    padding: 12px 14px !important;
    background: #f0fdf4 !important;
    border: 1px solid #bbf7d0 !important;
    border-radius: 6px !important;
    color: #2d8a4e !important;
}
.cfest-form.cfest-form .cfest-form-msg.is-warning {
    padding: 12px 14px !important;
    background: #fff8e1 !important;
    border: 1px solid #ffe082 !important;
    border-radius: 6px !important;
    color: #7a4e00 !important;
}

/* ── Alert / summary / radio ── */
.cfest-form.cfest-form .cfest-form-alert {
    padding: 12px 14px !important;
    border-radius: 8px !important;
    margin-bottom: 18px !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
}
.cfest-form.cfest-form .cfest-form-alert-info {
    background: #eef6ff !important;
    border: 1px solid #bfdbfe !important;
    color: #1a4d8a !important;
}
.cfest-form.cfest-form .cfest-form-alert-warning {
    background: #fff8e1 !important;
    border: 1px solid #ffe082 !important;
    color: #7a4e00 !important;
}

.cfest-form.cfest-form .cfest-form-summary {
    padding: 12px 16px !important;
    background: #f0fdf4 !important;
    border: 1px solid #bbf7d0 !important;
    border-radius: 8px !important;
    margin: 14px 0 !important;
    font-size: 13px !important;
}
.cfest-form.cfest-form .cfest-form-summary-row {
    display: flex !important; justify-content: space-between !important; align-items: center !important;
}

.cfest-form.cfest-form .cfest-form-step2-trigger {
    margin: 18px 0 !important;
    padding: 16px 18px !important;
    background: #fafafa !important;
    border: 1px solid #eaeaea !important;
    border-radius: 8px !important;
}
.cfest-form.cfest-form .cfest-form-step2-trigger p { margin: 0 0 10px !important; font-size: 14px !important; }

.cfest-form.cfest-form .cfest-radio {
    display: block !important;
    padding: 10px 14px !important;
    margin-bottom: 6px !important;
    border: 1.5px solid #e0e0e0 !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    font-size: 14px !important;
    background: #fff !important;
    color: #1a1a1a !important;
    transition: border-color .14s, background .14s;
}
.cfest-form.cfest-form .cfest-radio:hover { border-color: #c0c0c0 !important; }
.cfest-form.cfest-form .cfest-radio input[type="radio"] { margin-right: 8px !important; }
.cfest-form.cfest-form .cfest-radio:has(input:checked) {
    border-color: #1a1a1a !important;
    background: #f9f9f9 !important;
    font-weight: 600 !important;
}

.cfest-form.cfest-form .cfest-form-extra {
    margin-top: 14px !important;
    padding-top: 14px !important;
    border-top: 1px dashed #ddd !important;
}

/* ── Intestatari per biglietto ── */
.cfest-form.cfest-form .cfest-holders { margin: 18px 0 6px !important; }
.cfest-form.cfest-form .cfest-holders:empty { display: none !important; }
.cfest-form.cfest-form .cfest-holders-title {
    margin: 0 0 10px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    color: #666 !important;
}
.cfest-form.cfest-form .cfest-holder-row {
    padding: 14px 16px !important;
    border: 1.5px solid #eaeaea !important;
    border-radius: 8px !important;
    margin-bottom: 10px !important;
    background: #fcfcfc !important;
}
.cfest-form.cfest-form .cfest-holder-head {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin-bottom: 10px !important;
}
.cfest-form.cfest-form .cfest-holder-num {
    font-family: monospace !important;
    font-weight: 700 !important;
    color: #1a1a1a !important;
    font-size: 14px !important;
}
.cfest-form.cfest-form .cfest-holder-tag {
    font-size: 10px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    padding: 2px 8px !important;
    border-radius: 10px !important;
    color: #fff !important;
}
.cfest-form.cfest-form .cfest-badge-free { background: #2d8a4e !important; }
.cfest-form.cfest-form .cfest-badge-paid { background: #1a6bb5 !important; }

.cfest-form-locked {
    max-width: 640px;
    margin: 30px auto;
    padding: 28px 30px;
    background: #fafafa;
    border: 1px dashed #ccc;
    border-radius: 12px;
    text-align: center;
    color: #555;
}
.cfest-form-locked h3 { margin: 0 0 8px; font-size: 1.2rem; }
.cfest-form-locked p { margin: 0; font-size: 14px; line-height: 1.5; }
