/* ─────────────────────────────────────────────────────────────
   Fitosofia Modulo Recesso — Public CSS (v2.1)
   Namespace: .fito-recesso-*   |   Verde brand: #009557
   ───────────────────────────────────────────────────────────── */

.fito-recesso-wrap { max-width: 640px; margin: 0 auto; padding: 0 16px; }
.fito-recesso-title { margin: 0 0 8px; font-size: 22px; }
.fito-recesso-lead { margin: 0 0 24px; color: #555; line-height: 1.55; font-size: 15px; }

/* Avviso */
.fito-recesso-avviso {
    display: flex; gap: 16px; padding: 20px; border-radius: 6px; margin-bottom: 32px;
    background: #f4f9ef; border: 1px solid #cfe3bb;
}
.fito-recesso-avviso--warn { background: #fdf3e3; border-color: #f0d28a; }
.fito-recesso-avviso__icon { font-size: 22px; flex-shrink: 0; line-height: 1.2; }
.fito-recesso-avviso__text strong { font-size: 15px; }
.fito-recesso-wrap .fito-recesso-avviso__text p { margin: 8px 0 0; font-size: 14px !important; line-height: 1.5; }

/* Errori */
.fito-recesso-errors {
    padding: 16px 20px; background: #f8d7da; border: 1px solid #e8a0a0;
    border-radius: 6px; margin-bottom: 24px; color: #721c24;
}
.fito-recesso-errors ul { margin: 8px 0 0 20px; padding: 0; }
.fito-recesso-errors li { margin: 4px 0; font-size: 14px; }

/* Campi */
.fito-recesso-form__field { margin-bottom: 20px; }
.fito-recesso-form__field > label { display: block; margin-bottom: 6px; font-weight: 600; font-size: 14px; }
.fito-recesso-form__field input[type="text"],
.fito-recesso-form__field input[type="email"],
.fito-recesso-form__field input[type="date"],
.fito-recesso-form__field textarea,
.fito-recesso-form__field select {
    width: 100%; padding: 10px 12px; border: 1px solid #ccc; border-radius: 4px;
    font-size: 15px; font-family: inherit; box-sizing: border-box; transition: border-color .2s;
}
.fito-recesso-item__qty select { width: auto; min-width: 64px; }
.fito-recesso-form__field input:focus,
.fito-recesso-form__field textarea:focus,
.fito-recesso-form__field select:focus {
    border-color: #009557; outline: none; box-shadow: 0 0 0 2px rgba(0,149,87,.15);
}
.fito-recesso-form__field small { display: block; margin-top: 4px; color: #888; font-size: 13px; }
.fito-recesso-req { color: #c00; }
.fito-recesso-opt { font-weight: 400; color: #888; font-size: 13px; }

/* Checklist prodotti */
.fito-recesso-items { list-style: none; margin: 0; padding: 0; border: 1px solid #e5e5e5; border-radius: 6px; }
.fito-recesso-item {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 12px 14px; border-bottom: 1px solid #f0f0f0;
}
.fito-recesso-item:last-child { border-bottom: none; }
.fito-recesso-item__main { display: flex; align-items: center; gap: 10px; cursor: pointer; font-weight: 400; margin: 0; }
.fito-recesso-item__check { width: 18px; height: 18px; flex-shrink: 0; }
.fito-recesso-item__name { font-size: 15px; line-height: 1.3; }
.fito-recesso-item__qty { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: #666; white-space: nowrap; }
.fito-recesso-item__qty small { color: #999; }

/* Submit / bottoni */
.fito-recesso-form__submit { margin-top: 28px; }
.fito-recesso-btn {
    display: inline-block; width: 100%; padding: 14px 32px; background: #009557; color: #fff;
    border: none; border-radius: 4px; font-size: 16px; font-weight: 600; font-family: inherit;
    cursor: pointer; transition: background .2s;
}
.fito-recesso-btn:hover { background: #007a47; }
.fito-recesso-btn:disabled { background: #999; cursor: not-allowed; }
.fito-recesso-btn--ghost { background: #009557; color: #fff; border: 1px solid #009557; }
.fito-recesso-btn--ghost:hover { background: #007a47; color: #fff; }

/* Privacy */
.fito-recesso-form__privacy { margin-top: 16px; font-size: 13px; color: #888; line-height: 1.5; }
.fito-recesso-form__privacy a, .fito-recesso-lead a { color: #009557; }

/* Honeypot + form nascosto */
.fito-recesso-hp { position: absolute; left: -9999px; opacity: 0; height: 0; overflow: hidden; }
.fito-recesso-hidden-form { display: none; }

/* Valvola */
.fito-recesso-valve {
    margin-top: 24px; padding: 16px 20px; background: #f9fafb; border: 1px dashed #cbd5d1; border-radius: 6px;
}
.fito-recesso-valve p { margin: 0 0 12px; font-size: 14px; line-height: 1.5; }

/* Conferma / recap */
.fito-recesso-recap { margin: 0 0 24px; border: 1px solid #e5e5e5; border-radius: 6px; overflow: hidden; }
.fito-recesso-recap > div { display: grid; grid-template-columns: 38% 1fr; border-bottom: 1px solid #f0f0f0; }
.fito-recesso-recap > div:last-child { border-bottom: none; }
.fito-recesso-recap dt {
    padding: 10px 14px; background: #fafafa; font-weight: 600; font-size: 13px; color: #555;
    text-transform: uppercase; letter-spacing: .3px; margin: 0;
}
.fito-recesso-recap dd { padding: 10px 14px; margin: 0; font-size: 15px; line-height: 1.45; }
.fito-recesso-recap__list { margin: 0; padding-left: 18px; }
.fito-recesso-recap__list li { margin: 2px 0; }

.fito-recesso-confirm__actions { display: flex; flex-direction: column; gap: 12px; align-items: center; }
.fito-recesso-confirm__actions .fito-recesso-btn { max-width: 360px; }
.fito-recesso-back-btn {
    background: none; border: none; color: #009557; font-size: 14px; cursor: pointer; padding: 4px 8px; font-family: inherit;
}
.fito-recesso-back-btn:hover { text-decoration: underline; }

/* Successo */
.fito-recesso-success { max-width: 640px; margin: 0 auto; padding: 40px 16px; text-align: center; }
.fito-recesso-success__icon {
    width: 64px; height: 64px; margin: 0 auto 20px; background: #d4edda; border-radius: 50%;
    display: flex; align-items: center; justify-content: center; font-size: 32px; color: #155724; font-weight: 700;
}
.fito-recesso-success h2 { margin: 0 0 16px; font-size: 22px; }
.fito-recesso-success p { color: #555; line-height: 1.6; font-size: 15px; }
.fito-recesso-success a { color: #009557; }

/* Pulsante in area ordini */
.fito-recesso-order-cta { margin: 0 0 24px; }
.fito-recesso-order-btn {
    display: inline-block; padding: 10px 20px; background: #009557; color: #fff;
    border: 1px solid #009557; border-radius: 4px; text-decoration: none;
    font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px;
    transition: background .15s;
}
.fito-recesso-order-btn:hover { background: #007a47; color: #fff; }

@media (max-width: 520px) {
    .fito-recesso-item { flex-direction: column; align-items: flex-start; gap: 8px; }
    .fito-recesso-recap > div { grid-template-columns: 1fr; }
    .fito-recesso-recap dt { background: #fff; padding-bottom: 0; }
}

/* ─────────────────────────────────────────────────────────────
   Hardening allineamenti — neutralizza stili form del tema (Flatsome)
   Specificità alzata con .fito-recesso-wrap per vincere sul tema.
   ───────────────────────────────────────────────────────────── */

/* Checkbox: alcuni temi forzano width:100% o margini sugli input,
   spingendo il testo lontano dalla casella. Qui la fisso. */
.fito-recesso-wrap input[type="checkbox"] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    margin: 0;
    padding: 0;
    flex-shrink: 0;
    vertical-align: middle;
    box-shadow: none;
}
.fito-recesso-wrap .fito-recesso-item__main { gap: 10px; align-items: center; }

/* Select/Input: evita altezze fisse o line-height del tema che
   tagliano/spostano il testo (es. "— Seleziona —"). */
.fito-recesso-wrap .fito-recesso-form__field input,
.fito-recesso-wrap .fito-recesso-form__field textarea,
.fito-recesso-wrap .fito-recesso-form__field select {
    height: auto;
    min-height: 0;
    line-height: 1.4;
}
