/* ==========================================================
   Nuvola – programma fedeltà
   Caricato solo sulle pagine del programma (fedelta, punti).
   Le righe nel carrello, nell'header e nella scheda sono in nuvola.css del tema.
   ========================================================== */

.nv-fed{max-width:980px;margin:0 auto;padding:8px 0 56px}
.nv-fed__note{color:var(--nv-muted);line-height:1.65}
.nv-fed__small{margin:0 0 12px;color:var(--nv-muted);font-size:.92rem;line-height:1.55}

/* --- in cima --- */
.nv-fed__top{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:22px;align-items:stretch;margin:0 0 30px}
.nv-fed__lead{margin:0;font-size:1.08rem;line-height:1.7;color:var(--nv-muted)}
.nv-fed__lead strong{color:var(--nv-ink)}
.nv-fed__wallet{padding:22px 24px;border-radius:var(--nv-radius);background:var(--nv-cobalt);color:#fff}
.nv-fed__wallet p{margin:0}
.nv-fed__wallet-label{font-weight:600;opacity:.9}
.nv-fed__wallet-num{margin:4px 0 6px!important;font-size:1.15rem}
.nv-fed__wallet-num strong{font-size:2.6rem;font-weight:800;letter-spacing:-.03em;line-height:1.1}
.nv-fed__wallet-sub{font-size:.92rem;opacity:.9;line-height:1.5;margin-top:4px!important}
.nv-fed__wallet-links{margin-top:12px!important}
.nv-fed__wallet-links a{color:#fff;font-weight:700;text-decoration:underline}
.nv-fed__wallet--guest{background:var(--nv-cobalt-soft);color:var(--nv-ink)}
.nv-fed__wallet--guest .nv-fed__wallet-sub{color:var(--nv-muted);opacity:1}
.nv-fed__wallet-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px!important}

/* --- messaggi --- */
.nv-fed__alert{margin:0 0 26px;padding:18px 22px;border-radius:var(--nv-radius);line-height:1.6}
.nv-fed__alert p{margin:0 0 8px}
.nv-fed__alert p:last-child{margin:0}
.nv-fed__alert--ok{background:#E9F5ED;color:#1E5C38}
.nv-fed__alert--ok a{color:#1E5C38;font-weight:700}
.nv-fed__alert--error{background:#FBE9E8;color:#C8302A}

.nv-fed__code{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.nv-fed__code > span{padding:6px 12px;border:2px dashed currentColor;border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.05rem;font-weight:700;letter-spacing:.04em;user-select:all}
.nv-fed__copy{padding:6px 12px;border:1px solid var(--nv-line);border-radius:8px;background:var(--nv-surface);color:var(--nv-ink);font-weight:600;font-size:.88rem;cursor:pointer}
.nv-fed__copy:hover{border-color:var(--nv-cobalt)}

/* --- sezioni --- */
.nv-fed__section{margin:0 0 38px}
.nv-fed__title{margin:0 0 16px;font-size:1.35rem;font-weight:800;letter-spacing:-.02em;color:var(--nv-ink)}

.nv-fed__steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none;counter-reset:nvstep}
.nv-fed__steps li{position:relative;padding:20px 20px 20px 62px;border:1px solid var(--nv-line);border-radius:var(--nv-radius);background:var(--nv-surface);counter-increment:nvstep}
.nv-fed__steps li::before{content:counter(nvstep);position:absolute;left:18px;top:18px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--nv-cobalt-soft);color:var(--nv-cobalt);font-weight:800}
.nv-fed__steps strong{display:block;margin:0 0 6px;color:var(--nv-ink)}
.nv-fed__steps span{display:block;color:var(--nv-muted);font-size:.93rem;line-height:1.55}

/* --- premi --- */
.nv-fed__rewards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.nv-fed__reward{display:flex;flex-direction:column;padding:20px;border:1px solid var(--nv-line);border-radius:var(--nv-radius);background:var(--nv-surface)}
.nv-fed__reward.is-ready{border-color:var(--nv-cobalt);box-shadow:0 0 0 1px var(--nv-cobalt)}
.nv-fed__reward-cost{align-self:flex-start;margin:0 0 12px;padding:4px 10px;border-radius:999px;background:var(--nv-kraft-soft);color:var(--nv-ink);font-weight:800;font-size:.88rem}
.nv-fed__reward-name{margin:0 0 6px;font-size:1.1rem;font-weight:800;color:var(--nv-ink)}
.nv-fed__reward-sum{margin:0 0 6px;color:var(--nv-ink);line-height:1.5}
.nv-fed__reward-desc{margin:0 0 6px;color:var(--nv-muted);font-size:.92rem;line-height:1.5}
.nv-fed__reward-days{margin:0 0 16px;color:var(--nv-muted);font-size:.85rem}
.nv-fed__reward form,.nv-fed__reward-miss{margin-top:auto}
.nv-fed__reward-miss{margin-bottom:0;color:var(--nv-muted);font-weight:600;font-size:.92rem}

/* --- bonus --- */
.nv-fed__bonus{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.nv-fed__bonus-card{padding:20px;border-radius:var(--nv-radius);background:var(--nv-kraft-soft)}
.nv-fed__bonus-card h3{margin:0 0 6px;font-size:1.02rem;font-weight:800;color:var(--nv-ink)}
.nv-fed__bonus-card p{margin:0;color:var(--nv-muted);line-height:1.55;font-size:.93rem}
.nv-fed__bonus-pts{margin:0 0 6px!important;color:var(--nv-bio)!important;font-size:1.5rem!important;font-weight:800}

.nv-fed__invite{display:flex;gap:8px;margin:12px 0 0!important}
.nv-fed__invite input{flex:1 1 auto;min-width:0;padding:8px 10px;border:1px solid var(--nv-line);border-radius:8px;background:#fff;color:var(--nv-ink);font-size:.88rem}

/* --- regolamento --- */
.nv-fed__rules{padding:20px 24px;border:1px solid var(--nv-line);border-radius:var(--nv-radius);background:var(--nv-surface)}
.nv-fed__rules ol{margin:0;padding-left:20px;color:var(--nv-muted);line-height:1.65;font-size:.94rem}
.nv-fed__rules li{margin:0 0 10px}
.nv-fed__rules li:last-child{margin:0}
.nv-fed__faq{max-width:none}

/* --- area clienti --- */
.nv-fed--account{max-width:none;padding-top:0}
.nv-fed__summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px}
.nv-fed__stat{padding:18px 20px;border:1px solid var(--nv-line);border-radius:var(--nv-radius);background:var(--nv-surface)}
.nv-fed__stat:first-child{background:var(--nv-cobalt);border-color:var(--nv-cobalt);color:#fff}
.nv-fed__stat p{margin:0}
.nv-fed__stat-num{font-size:2rem;font-weight:800;letter-spacing:-.03em;line-height:1.15}
.nv-fed__stat-num--small{font-size:1.15rem;line-height:1.6}
.nv-fed__stat-label{margin-top:4px!important;font-size:.9rem;opacity:.85;line-height:1.4}
.nv-fed__cta{margin:0 0 30px;color:var(--nv-muted)}
.nv-fed__cta a:not(.nv-btn){color:var(--nv-cobalt);font-weight:700}

.nv-fed__vouchers{margin:0 0 10px;padding:0;list-style:none}
.nv-fed__vouchers li{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:14px 16px;margin:0 0 8px;border:1px solid var(--nv-line);border-radius:12px;background:var(--nv-surface)}
.nv-fed__voucher-name{font-weight:700;color:var(--nv-ink)}
.nv-fed__voucher-meta{color:var(--nv-muted);font-size:.88rem}

.nv-fed__table-wrap{overflow-x:auto}
.nv-fed__table{width:100%;border-collapse:collapse;font-size:.93rem}
.nv-fed__table th{padding:10px 12px;border-bottom:2px solid var(--nv-line);text-align:left;color:var(--nv-muted);font-weight:600;white-space:nowrap}
.nv-fed__table td{padding:12px;border-bottom:1px solid var(--nv-line);color:var(--nv-ink);vertical-align:top}
.nv-fed__table td small{display:block;color:var(--nv-muted);font-size:.82rem;margin-top:2px}
.nv-fed__table .nv-num{text-align:right;white-space:nowrap;font-weight:800}
.nv-fed__table .is-plus{color:var(--nv-bio)}
.nv-fed__table .is-minus{color:#C8302A}
.nv-fed__table tr.is-cancelled td{color:var(--nv-muted);text-decoration:line-through}
.nv-fed__table tr.is-cancelled td:last-child{text-decoration:none}

@media (max-width:767px){
  .nv-fed__top{grid-template-columns:1fr}
  .nv-fed__steps{grid-template-columns:1fr}
  .nv-fed__summary{grid-template-columns:1fr 1fr}
  .nv-fed__stat:last-child{grid-column:1 / -1}
  .nv-fed__wallet-num strong{font-size:2.2rem}
}

/* --- stagioni, saldo negativo (1.29.0) --- */
.nv-fed__lead .nv-leaf--lg{float:left;margin:4px 12px 0 0;width:40px;height:40px}
.nv-fed__lead--small{margin-top:12px!important;font-size:.95rem!important}
.nv-fed__wallet.is-negative{background:#C8302A}
.nv-fed__stat.is-negative{background:#C8302A;border-color:#C8302A}
.nv-fed__alert--info{background:var(--nv-kraft-soft);color:var(--nv-ink)}
.nv-fed__reward-cost .nv-leaf,.nv-fed__bonus-pts .nv-leaf{vertical-align:-.15em}
.nv-fed__stat-num .nv-leaf{width:.8em;height:.8em;vertical-align:-.05em}
.nv-fed__table tr.nv-fed__season th{padding:18px 12px 8px;border-bottom:2px solid var(--nv-cobalt);color:var(--nv-ink);font-size:1rem;font-weight:800}
.nv-fed__table tbody tr.nv-fed__season:first-child th{padding-top:8px}

/* --- Saldo più leggibile: verde foglia, testi scuri (1.29.2) ---
   Il tema colora i paragrafi della pagina: qui i colori vanno forzati. */
.nv-fed .nv-fed__wallet{background:#EEF6E8;border:1px solid #D3E8C3;color:var(--nv-ink)}
.nv-fed .nv-fed__wallet p{color:var(--nv-ink)!important;opacity:1}
.nv-fed .nv-fed__wallet .nv-fed__wallet-label{color:#3B6E12!important;font-weight:700}
.nv-fed .nv-fed__wallet .nv-fed__wallet-sub{color:var(--nv-muted)!important}
.nv-fed__wallet-num{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;font-weight:600}
.nv-fed__wallet-num strong{color:var(--nv-ink)}
.nv-fed__wallet-leaf{width:40px;height:40px;vertical-align:middle}
.nv-fed .nv-fed__wallet .nv-fed__wallet-links a{color:#2E6A0C!important}
.nv-fed .nv-fed__wallet.is-negative{background:#FBE9E8;border-color:#F2C6C3}
.nv-fed .nv-fed__wallet.is-negative strong{color:#C8302A}
.nv-fed .nv-fed__wallet--guest{background:var(--nv-cobalt-soft);border-color:transparent}

/* stessa cosa per il riquadro del saldo in I miei punti */
.nv-fed .nv-fed__stat:first-child{background:#EEF6E8;border-color:#D3E8C3;color:var(--nv-ink)}
.nv-fed .nv-fed__stat:first-child p{color:var(--nv-ink)!important;opacity:1}
.nv-fed .nv-fed__stat:first-child .nv-fed__stat-label{color:#3B6E12!important;font-weight:700}
.nv-fed .nv-fed__stat.is-negative{background:#FBE9E8;border-color:#F2C6C3}
.nv-fed .nv-fed__stat.is-negative .nv-fed__stat-num{color:#C8302A!important}
