/* ============================================================
   ELYOS FX — glow coerente su tutto il sito (card + badge)
   Stesso linguaggio dell'homepage: sfumatura morbida arancio/blu.
   Solo CSS: leggero, responsive, nessun JS.
   ============================================================ */

/* --- badge minimal "interventi oggi" (social proof) — glow come gli altri badge --- */
.fx-today{display:inline-flex;align-items:center;gap:6px;
  font-size:12px;font-weight:700;color:#16A34A;
  background:rgba(22,163,74,.1);border:1px solid rgba(22,163,74,.28);
  border-radius:999px;padding:5px 12px;line-height:1.2;white-space:nowrap;
  animation:fxGlowG 1.9s ease-in-out infinite}
.fx-today-dot{width:7px;height:7px;border-radius:50%;background:#16A34A;flex:none}
.fx-today strong{font-weight:800;font-variant-numeric:tabular-nums}

/* --- niente flash azzurro al tap su mobile (look "app") --- */
*{-webkit-tap-highlight-color:transparent}
a,button,.path-card,.serv-card,.split-card,.partner-card,.partner-card-link,
[onclick],[role="button"]{-webkit-tap-highlight-color:transparent}

/* --- battiti glow --- */
@keyframes fxPulseO{0%,100%{box-shadow:0 4px 14px rgba(255,107,43,.06)}50%{box-shadow:0 6px 28px rgba(255,107,43,.30)}}
@keyframes fxPulseB{0%,100%{box-shadow:0 4px 14px rgba(58,175,232,.06)}50%{box-shadow:0 6px 28px rgba(58,175,232,.30)}}
@keyframes fxBadgeGlow{0%,100%{filter:drop-shadow(0 0 0 transparent);transform:scale(1)}50%{filter:drop-shadow(0 0 3px currentColor);transform:scale(1.02)}}
@keyframes fxGlowG{0%,100%{box-shadow:0 0 0 0 rgba(34,197,94,0);transform:scale(1)}50%{box-shadow:0 0 10px 1px rgba(34,197,94,.35);transform:scale(1.025)}}
@keyframes fxGlowO{0%,100%{box-shadow:0 0 0 0 rgba(255,107,43,0);transform:scale(1)}50%{box-shadow:0 0 10px 1px rgba(255,107,43,.35);transform:scale(1.025)}}
@keyframes fxGlowB{0%,100%{box-shadow:0 0 0 0 rgba(59,143,255,0);transform:scale(1)}50%{box-shadow:0 0 10px 1px rgba(59,143,255,.35);transform:scale(1.025)}}

/* --- card: transizione morbida (ELENCO UNICO di tutte le card del sito) --- */
.review-card,.blog-card,.signal-card,.step-card,.value-card,.val-card,.contact-card,
.split-card,.partner-card,.partner-card-link,.why-card,.serv-card,.path-card,
.criteria-item,.tecnici-visual,.problem-card,.faq-item,.related-card,.partner-big,
.partner-chip,.service-item,.model-step,.stat-box{
  transition:box-shadow .3s ease, transform .25s ease, border-color .3s ease;
  will-change:box-shadow,transform;
}

/* --- card dispari = glow ARANCIO --- */
.review-card:nth-child(odd),.blog-card:nth-child(odd),.signal-card:nth-child(odd),
.step-card:nth-child(odd),.value-card:nth-child(odd),.val-card:nth-child(odd),
.contact-card:nth-child(odd),.split-card:nth-child(odd),.partner-card:nth-child(odd),
.criteria-item:nth-child(odd),.why-card:nth-child(odd),.path-card:nth-child(odd),
.serv-card:nth-child(odd),.related-card:nth-child(odd),.partner-big:nth-child(odd),
.partner-chip:nth-child(odd),.service-item:nth-child(odd),
.model-step:nth-child(odd),.stat-box:nth-child(odd){
  animation:fxPulseO 1.5s ease-in-out infinite;
}

/* --- card pari = glow BLU (sfasato) --- */
.review-card:nth-child(even),.blog-card:nth-child(even),.signal-card:nth-child(even),
.step-card:nth-child(even),.value-card:nth-child(even),.val-card:nth-child(even),
.contact-card:nth-child(even),.split-card:nth-child(even),.partner-card:nth-child(even),
.criteria-item:nth-child(even),.tecnici-visual,.why-card:nth-child(even),
.path-card:nth-child(even),.serv-card:nth-child(even),.related-card:nth-child(even),
.partner-big:nth-child(even),.partner-chip:nth-child(even),.service-item:nth-child(even),
.model-step:nth-child(even),.stat-box:nth-child(even){
  animation:fxPulseB 1.5s ease-in-out infinite;animation-delay:.6s;
}

/* --- card con filo: il glow segue ESATTAMENTE il colore del filo --- */
.hw-frame[data-wire="orange"]{animation:fxPulseO 1.5s ease-in-out infinite!important}
.hw-frame[data-wire="blue"]{animation:fxPulseB 1.5s ease-in-out infinite!important;animation-delay:.6s}

/* --- hover: STANDARD UNICO — le CARD non si alzano mai (resta solo il glow). --- */
/*     !important per battere le regole :hover inline delle singole pagine.        */
/*     I bottoni (btn-*) NON sono qui: il loro sollevamento resta.                 */
.review-card:hover,.blog-card:hover,.signal-card:hover,.step-card:hover,.value-card:hover,
.val-card:hover,.contact-card:hover,.split-card:hover,.partner-card:hover,
.partner-card-link:hover,.why-card:hover,.criteria-item:hover,.problem-card:hover,
.faq-item:hover,.tecnici-visual:hover,.path-card:hover,.serv-card:hover,
.related-card:hover,.partner-big:hover,.partner-chip:hover,.service-item:hover,
.model-step:hover,.stat-box:hover{
  transform:none!important;
}

/* --- badge colorati: glow soffice nel loro colore --- */
.badge-g{animation:fxGlowG 1.8s ease-in-out infinite}
.badge-o{animation:fxGlowO 1.8s ease-in-out infinite;animation-delay:.4s}
.badge-b{animation:fxGlowB 1.8s ease-in-out infinite;animation-delay:.8s}

/* --- badge/pillole generiche: glow nel proprio colore --- */
.card-badge,.hcard-badge{will-change:filter,transform}

/* --- scheda form con glow avvolgente (orange<->blu, effetto RGB) --- */
@keyframes fxFormGlow{0%,100%{box-shadow:0 6px 30px rgba(255,107,43,.18)}50%{box-shadow:0 8px 36px rgba(58,175,232,.22)}}
.fx-form-card{background:var(--card,#fff);border:1px solid var(--border);border-radius:20px;padding:30px;animation:fxFormGlow 4s ease-in-out infinite}

/* --- box statistiche (interventi) --- */
.counter-box{transition:box-shadow .3s ease,transform .25s ease}
.counter-box:nth-child(odd){animation:fxPulseO 1.5s ease-in-out infinite}
.counter-box:nth-child(even){animation:fxPulseB 1.5s ease-in-out infinite;animation-delay:.6s}

/* --- badge LIVELLO partner (stile Booking) — colore per tier --- */
.lvl-badge{display:inline-flex;align-items:center;gap:6px;margin-left:8px;
  font-size:12px;font-weight:800;letter-spacing:.2px;
  border-radius:999px;padding:5px 12px;line-height:1.2;white-space:nowrap;
  color:#fff;background:#3AAFE8;vertical-align:middle}
.lvl-badge.lvl-exc{background:#16A34A}
.lvl-badge.lvl-ott{background:#0EA5E9}
.lvl-badge.lvl-good{background:#3AAFE8}
.lvl-badge.lvl-ok{background:#F59E0B}
.lvl-badge.lvl-new{background:#94A3B8}

/* --- barra recensioni che scorre (sotto il menu, tutte le pagine) --- */
.rev-ticker{display:flex;align-items:center;gap:10px;
  border-top:1px solid var(--border,rgba(0,0,0,.08));
  padding:6px 28px;max-width:1160px;margin:0 auto;overflow:hidden}
.rev-ticker-tag{flex:none;display:inline-flex;align-items:center;gap:5px;
  font-size:10px;font-weight:800;letter-spacing:.1em;color:#fff;
  background:var(--orange,#FF6B2B);border-radius:999px;padding:3px 10px}
.rev-ticker-tag i{font-size:11px}
.rev-ticker-track{position:relative;flex:1;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent);
  mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent)}
.rev-ticker-move{display:inline-flex;white-space:nowrap;
  animation:revTicker 45s linear infinite;will-change:transform}
.rev-ticker-move .rev-item{display:inline-flex;align-items:center;gap:7px;margin-right:34px;
  font-size:12.5px;color:var(--text2,#5C6678)}
.rev-ticker-move .rev-stars{color:#F5A623;letter-spacing:1px;font-size:12px;flex:none}
.rev-ticker-move .rev-txt{font-style:italic}
.rev-ticker-move .rev-name{font-weight:700;color:var(--text,#1a1a1a);font-style:normal}
.rev-ticker:hover .rev-ticker-move{animation-play-state:paused}
@keyframes revTicker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.rev-ticker-move{animation:none}}
@media(max-width:640px){.rev-ticker{padding:5px 14px}.rev-ticker-move .rev-item{font-size:12px}}

/* --- pulsante condividi articolo su WhatsApp --- */
.blog-share{display:inline-flex;align-items:center;gap:8px;margin-top:36px;
  padding:11px 20px;border-radius:10px;font-size:14px;font-weight:700;
  text-decoration:none;background:#25D366;color:#fff;transition:transform .2s ease,box-shadow .2s ease}
.blog-share:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(37,211,102,.3)}
.blog-share i{font-size:18px}

/* --- badge scarsità posti partner --- */
.scarcity-badge{display:inline-flex;align-items:center;gap:6px;
  font-size:12px;font-weight:700;color:#D97706;
  background:rgba(217,119,6,.1);border:1px solid rgba(217,119,6,.3);
  border-radius:999px;padding:5px 12px;line-height:1.2;white-space:nowrap;
  animation:fxGlowO 2s ease-in-out infinite}
.scarcity-badge i{font-size:14px}
.scarcity-badge strong{font-weight:800}

/* --- badge stato disponibilità fuori orario (8–20) --- */
[data-fx-status].fx-closed{color:#D97706!important;background:rgba(217,119,6,.12)!important;border-color:rgba(217,119,6,.28)!important}
[data-fx-status].fx-closed .status-dot{background:#D97706!important;box-shadow:0 0 6px #D97706!important}

/* --- icona WhatsApp nell'header (solo mobile) --- */
.nav-wa{display:none}
@media(max-width:768px){
  .nav-wa{display:inline-flex;align-items:center;justify-content:center;
    width:40px;height:40px;border-radius:10px;flex:none;margin-left:auto;
    background:#25D366;color:#fff;text-decoration:none}
  .nav-wa i{font-size:21px}
  /* l'hamburger non deve più spingere a destra: ci pensa il margin-left del .nav-wa */
  .nav-inner .hamburger{margin-left:10px}
}

/* --- barra sticky mobile (Chiama + WhatsApp) — solo su schermi piccoli --- */
.elyos-mbar{display:none}
@media(max-width:768px){
  .elyos-mbar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:200;
    background:rgba(250,247,242,.98);border-top:1px solid var(--border,rgba(0,0,0,.08));
    padding:7px 12px calc(7px + env(safe-area-inset-bottom));
    box-shadow:0 -4px 18px rgba(0,0,0,.08)}
  .mbar-status{display:flex;align-items:center;justify-content:center;gap:6px;
    font-size:11px;font-weight:700;color:#16A34A;margin-bottom:6px;line-height:1.2}
  .elyos-mbar.is-closed .mbar-status{color:#D97706}
  .mbar-dot{width:7px;height:7px;border-radius:50%;background:#16A34A;flex:none}
  .elyos-mbar.is-closed .mbar-dot{background:#D97706}
  .mbar-btns{display:flex;gap:8px}
  .mbar-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;
    padding:11px 12px;border-radius:10px;font-size:14px;font-weight:700;
    text-decoration:none;white-space:nowrap}
  .mbar-call{background:var(--orange,#FF6B2B);color:#fff}
  .mbar-wa{background:#25D366;color:#fff}
  .mbar-btn i{font-size:17px}
  /* spazio in fondo così la barra non copre il footer */
  body{padding-bottom:72px}
}

/* --- fili (wire) disegnati dall'engine elyos-fx.js --- */
.hw-trace{fill:none;opacity:.07}
.hw-snake{fill:none;stroke-linecap:round;stroke-linejoin:round}
.hw-pad{fill:none;opacity:.55}
.hw-pad-dot{opacity:.7}
.hw-energy{transform-box:fill-box;transform-origin:center;opacity:.5}

/* rispetta chi preferisce meno movimento */
@media (prefers-reduced-motion: reduce){
  .review-card,.blog-card,.signal-card,.step-card,.value-card,.val-card,.contact-card,
  .split-card,.partner-card,.partner-card-link,.badge-g,.badge-o,.badge-b{animation:none}
}
