/* =====================================================================
   ICONE LOCALI — nessuna dipendenza esterna
   Generato da tools/build-icons.py. Le icone sono maschere SVG inline:
   ereditano automaticamente il colore del testo (currentColor).
   ===================================================================== */

.fa-solid,
.fa-regular,
.fa-brands {
  display: inline-block;
  width: 1em;
  height: 1em;
  vertical-align: -0.125em;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-image: var(--fa-icon);
          mask-image: var(--fa-icon);
}

.fa-bars { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3.5 6.5h17M3.5 12h17M3.5 17.5h17' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-xmark { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6 6l12 12M18 6L6 18' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-chevron-down { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M5.5 9l6.5 6.5L18.5 9' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-arrow-right { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 12h15M13 6l6 6-6 6' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-circle-check { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='9' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M7.8 12.3l2.9 2.9 5.5-6' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-circle-info { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='9' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M12 11.2v5.3' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><circle cx='12' cy='7.4' r='1.2' fill='%23000'/></svg>"); }
.fa-clock { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='9' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M12 6.8V12l3.6 2.2' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-envelope { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='2.8' y='5' width='18.4' height='14' rx='2.2' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M3.6 6.6L12 13l8.4-6.4' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-phone { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.2 3.2h3.1l1.6 4-2.1 1.6a12.4 12.4 0 0 0 6.4 6.4l1.6-2.1 4 1.6v3.1a2 2 0 0 1-2.2 2C10.4 18.9 5.1 13.6 4.2 5.4a2 2 0 0 1 2-2.2z' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-print { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 8.5V3.4h10v5.1' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><rect x='3.2' y='8.5' width='17.6' height='7.6' rx='1.8' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M7 13.6h10v7H7z' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-location-dot { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 21.2s7.1-6.4 7.1-11.1a7.1 7.1 0 1 0-14.2 0c0 4.7 7.1 11.1 7.1 11.1z' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><circle cx='12' cy='9.9' r='2.6' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-building { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='4.2' y='2.8' width='15.6' height='18.4' rx='1.8' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M8.4 7.2h2.2M13.4 7.2h2.2M8.4 11.4h2.2M13.4 11.4h2.2M10 21.2v-4.6h4v4.6' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-house-chimney { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3.4 11.2L12 3.6l8.6 7.6' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M5.6 12.6v8.2h12.8v-8.2' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M9.8 20.8v-5.4h4.4v5.4' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M16.6 6.8V4.2h2.6v4.9' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-fire-flame-curved { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2.4c3.2 3.9 6.3 5.9 6.3 9.9a6.3 6.3 0 0 1-12.6 0c0-2.2 1-3.8 2.5-5.1.1 1.8 1 2.9 2.1 2.9 1.4 0 2-1.2 2-3 0-1.8-.3-3.3-.3-4.7z' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-gift { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='3.2' y='8.4' width='17.6' height='4.2' rx='1' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M4.8 12.6v7.2a1.6 1.6 0 0 0 1.6 1.6h11.2a1.6 1.6 0 0 0 1.6-1.6v-7.2M12 8.4v13' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M12 8.4S10.8 3 8.2 3a2.6 2.6 0 0 0 0 5.4zM12 8.4S13.2 3 15.8 3a2.6 2.6 0 0 1 0 5.4z' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-ruler-combined { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3.4 3.4h5.2v17.2H3.4z' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M8.6 15.4h12v5.2h-12' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M3.4 7.6h2.4M3.4 11.4h2.4M3.4 15.2h2.4M12.6 20.6v-2.4M16.4 20.6v-2.4' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-screwdriver-wrench { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M13.6 3.6a4.6 4.6 0 0 0 5.9 5.9l-8.4 8.4a2.8 2.8 0 1 1-3.9-3.9z' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M5.2 4.6l3.4 3.4M3.6 8.2l3.4-3.4' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-shield-halved { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2.6l7.6 3v6c0 5-3.2 8.4-7.6 9.8-4.4-1.4-7.6-4.8-7.6-9.8v-6z' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M12 2.6v18.8' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-file-signature { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M13.4 2.8H7.2a2 2 0 0 0-2 2v14.4a2 2 0 0 0 2 2h4.2' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M13.4 2.8l4.4 4.4v2.2' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M20.4 12.2l1.2 1.2-6 6-2 .6.6-2z' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-user-check { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='9.6' cy='7.8' r='3.8' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M3.2 20.4a6.4 6.4 0 0 1 12.8 0' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M16.6 13.4l2.1 2.1 3.1-3.4' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-star { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 3.2l2.7 5.6 6.1.9-4.4 4.3 1 6.1-5.4-2.9-5.4 2.9 1-6.1L3.2 9.7l6.1-.9z' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-star-half-stroke { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 3.2l2.7 5.6 6.1.9-4.4 4.3 1 6.1-5.4-2.9-5.4 2.9 1-6.1L3.2 9.7l6.1-.9z' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M12 3.6v14.3l-5 2.7.9-5.7-4.1-4 5.7-.8z' fill='%23000'/></svg>"); }
.fa-spinner { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 3.4v3.4M12 17.2v3.4M4.6 12H8M16 12h3.4M6.8 6.8l2.4 2.4M14.8 14.8l2.4 2.4M17.2 6.8l-2.4 2.4M9.2 14.8l-2.4 2.4' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-leaf { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 20c0-9 5.4-14.4 16-15.4C20 13.6 14.6 20 4 20z' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M4 20c3.4-4.6 6.9-7.4 11.4-9.4' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-euro-sign { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M19 5.6a7.4 7.4 0 0 0-10.8 2.8 9 9 0 0 0 0 7.2A7.4 7.4 0 0 0 19 18.4' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M4.4 10h9M4.4 14h9' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.fa-certificate { --fa-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='9.4' r='6.2' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M8.2 14.6L7 21.4l5-2.6 5 2.6-1.2-6.8' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }

/* --- Animazioni --- */
.fa-spin {
  animation: fa-spin 1.1s linear infinite;
}
@keyframes fa-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

.fa-beat {
  animation: fa-beat 1s ease-in-out infinite;
}
@keyframes fa-beat {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.18); }
}

@media (prefers-reduced-motion: reduce) {
  .fa-spin,
  .fa-beat { animation: none; }
}

/* Icone usate come pseudo-elementi in styles.css */
:root {
  --fa-icon-check: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='9' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M7.8 12.3l2.9 2.9 5.5-6' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  --fa-icon-chevron: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M5.5 9l6.5 6.5L18.5 9' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  --fa-icon-warning: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 3.4L21.4 20H2.6z' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M12 9.6v4.6' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/><circle cx='12' cy='17' r='1.2' fill='%23000'/></svg>");
}
