/* ===========================================================================
   Icone del sito e del CMS.
   Sostituisce FontAwesome mantenendone i nomi delle classi (fa-solid fa-pen,
   fa-brands fa-whatsapp, ...) così il markup esistente non cambia.
   Sono SVG inline applicati come mask: prendono automaticamente il colore
   del testo (currentColor) e non richiedono nessun file esterno né CDN.
   =========================================================================== */

/* :where() azzera la specificità di questa regola, altrimenti il suo --i di
   ripiego vincerebbe sul disegno delle singole classi .fa-* qui sotto. */
:where(i[class*="fa-"], span[class*="fa-"]) {
    /* icona vuota: se la classe non corrisponde a nessun disegno non si vede
       nulla, invece di un quadratino colorato */
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3C/svg%3E");

    display: inline-block;
    width: 1em;
    height: 1em;
    vertical-align: -.125em;
    background-color: currentColor;
    -webkit-mask-image: var(--i);    mask-image: var(--i);
    -webkit-mask-repeat: no-repeat;  mask-repeat: no-repeat;
    -webkit-mask-position: center;   mask-position: center;
    -webkit-mask-size: contain;      mask-size: contain;
}

/* --- aree e contenuti del sito ------------------------------------------ */
.fa-code {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 18l-6-6 6-6M16 6l6 6-6 6'/%3E%3C/svg%3E");
}
.fa-cube {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 8.5l-9-5-9 5v7l9 5 9-5zM3 8.5l9 5 9-5M12 13.5V21'/%3E%3C/svg%3E");
}
.fa-graduation-cap {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 9L12 4.5 2 9l10 4.5L22 9zM6 11v4.5c0 1.7 2.7 3 6 3s6-1.3 6-3V11'/%3E%3C/svg%3E");
}
.fa-print {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9V3h12v6M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2M6 14h12v7H6z'/%3E%3C/svg%3E");
}
.fa-briefcase {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16a1 1 0 0 1 1 1v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a1 1 0 0 1 1-1zM8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E");
}
.fa-heart-pulse {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.8 5.6a5 5 0 0 0-7.1 0L12 7.3l-1.7-1.7a5 5 0 1 0-7.1 7.1l8.8 8.8 8.8-8.8a5 5 0 0 0 0-7.1z'/%3E%3Cpath d='M2.5 12.5h4l1.5-3 2.5 6 2-4.5 1.2 1.5h7.8'/%3E%3C/svg%3E");
}
.fa-store {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l1.4-4.3A1.5 1.5 0 0 1 5.8 3.7h12.4a1.5 1.5 0 0 1 1.4 1L21 9M4.5 9.5V19a1.5 1.5 0 0 0 1.5 1.5h12a1.5 1.5 0 0 0 1.5-1.5V9.5M3 9a3 3 0 0 0 6 0 3 3 0 0 0 6 0 3 3 0 0 0 6 0M9.5 20.5V14h5v6.5'/%3E%3C/svg%3E");
}
.fa-users {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2M9 3.5a4 4 0 1 1 0 8 4 4 0 0 1 0-8M22 21v-2a4 4 0 0 0-3-3.9M16 3.6a4 4 0 0 1 0 7.8'/%3E%3C/svg%3E");
}
.fa-check-to-slot {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2zM6 11V3.5h12V11M9 7l2 2 4-4'/%3E%3C/svg%3E");
}
.fa-laptop {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5.5h16v10H4zM2 18.5h20'/%3E%3C/svg%3E");
}
.fa-shield {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.5l8 3v6c0 4.6-3.3 8.4-8 10-4.7-1.6-8-5.4-8-10v-6zM9 12l2 2 4-4'/%3E%3C/svg%3E");
}
.fa-calendar {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5.5h16a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6.5a1 1 0 0 1 1-1zM3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E");
}
.fa-credit-card {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5.5h18a1 1 0 0 1 1 1v11a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-11a1 1 0 0 1 1-1zM2 10h20M6 14.5h3'/%3E%3C/svg%3E");
}
.fa-car {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 11l1.6-4.3A2 2 0 0 1 8.5 5.4h7a2 2 0 0 1 1.9 1.3L19 11M4 11h16a1 1 0 0 1 1 1v5H3v-5a1 1 0 0 1 1-1zM6.5 17v2H4.2v-2M19.8 17v2h-2.3v-2M6.5 14h1.5M16 14h1.5'/%3E%3C/svg%3E");
}
.fa-wine {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 3h8l-.7 5.6a3.4 3.4 0 0 1-6.6 0zM12 12.5V18M8.5 21h7'/%3E%3C/svg%3E");
}

/* --- interfaccia -------------------------------------------------------- */
.fa-arrow-right {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E");
}
.fa-envelope {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2zM22 7l-10 6.5L2 7'/%3E%3C/svg%3E");
}
.fa-phone {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.5 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 1.6 4.2 2 2 0 0 1 3.6 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L7.6 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E");
}
.fa-location-dot {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21.5s7-6.2 7-11a7 7 0 1 0-14 0c0 4.8 7 11 7 11zM12 8.4a2.1 2.1 0 1 1 0 4.2 2.1 2.1 0 0 1 0-4.2z'/%3E%3C/svg%3E");
}
.fa-check {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6.5L9 17.5l-5-5'/%3E%3C/svg%3E");
}
.fa-bars {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3.5 7h17M3.5 12h17M3.5 17h17'/%3E%3C/svg%3E");
}
.fa-xmark {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");
}
.fa-globe {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.5a9.5 9.5 0 1 0 0 19 9.5 9.5 0 0 0 0-19zM2.5 12h19M12 2.5c2.5 2.6 3.8 6 3.8 9.5S14.5 18.9 12 21.5c-2.5-2.6-3.8-6-3.8-9.5S9.5 5.1 12 2.5z'/%3E%3C/svg%3E");
}

/* --- CMS ---------------------------------------------------------------- */
.fa-gauge-high {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.9 18a9 9 0 1 1 14.2 0M12 13.2l4-3.6'/%3E%3C/svg%3E");
}
.fa-user {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-1.5A5.5 5.5 0 0 0 14.5 14h-5A5.5 5.5 0 0 0 4 19.5V21M12 3.5a4 4 0 1 1 0 8 4 4 0 0 1 0-8z'/%3E%3C/svg%3E");
}
.fa-user-plus {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15.5 21v-1.5A5.5 5.5 0 0 0 10 14H7a5.5 5.5 0 0 0-5.5 5.5V21M8.5 3.5a4 4 0 1 1 0 8 4 4 0 0 1 0-8zM19 8.5v5M21.5 11h-5'/%3E%3C/svg%3E");
}
.fa-right-from-bracket {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3.5h3.5A1.5 1.5 0 0 1 20 5v14a1.5 1.5 0 0 1-1.5 1.5H15M9.5 16.5L14 12 9.5 7.5M14 12H3'/%3E%3C/svg%3E");
}
.fa-plus {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
}
.fa-pen {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16.5 3.2a2.6 2.6 0 0 1 3.7 3.7L7.5 19.6 2.8 21l1.4-4.7z'/%3E%3C/svg%3E");
}
.fa-trash {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 6.5h17M9 6.5V4.2a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2.3M18.5 6.5l-.9 13.1a1.5 1.5 0 0 1-1.5 1.4H7.9a1.5 1.5 0 0 1-1.5-1.4L5.5 6.5'/%3E%3C/svg%3E");
}
.fa-eye {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.7-6.5 10-6.5S22 12 22 12s-3.7 6.5-10 6.5S2 12 2 12zM12 9a3 3 0 1 1 0 6 3 3 0 0 1 0-6z'/%3E%3C/svg%3E");
}
.fa-floppy-disk {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 3.5h11L20.5 8v11.5A1.5 1.5 0 0 1 19 21H5a1.5 1.5 0 0 1-1.5-1.5v-14A1.5 1.5 0 0 1 5 3.5zM7.5 3.5v5h8M7.5 21v-7h9v7'/%3E%3C/svg%3E");
}
.fa-lock {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 10.5h13V21h-13zM8.5 10.5V7a3.5 3.5 0 1 1 7 0v3.5'/%3E%3C/svg%3E");
}
.fa-file-lines {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13.5 2.5H7A1.5 1.5 0 0 0 5.5 4v16A1.5 1.5 0 0 0 7 21.5h10a1.5 1.5 0 0 0 1.5-1.5V7.5zM13.5 2.5V7.5h5M9 12.5h6M9 16.5h6'/%3E%3C/svg%3E");
}
.fa-inbox {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 13.5h5l1.5 2.5h5l1.5-2.5h5M5.2 4.7h13.6l2.2 8.8V19a1.5 1.5 0 0 1-1.5 1.5H4.5A1.5 1.5 0 0 1 3 19v-5.5z'/%3E%3C/svg%3E");
}
.fa-language {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 5.5h9M7 3.5v2M9.5 5.5c0 4-3 7.5-7 8.5M4.5 9c1 2 3 3.8 5.5 4.6M12.5 20.5l4-10 4 10M14 17.5h5'/%3E%3C/svg%3E");
}

/* --- social ------------------------------------------------------------- */
.fa-whatsapp {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.6a9.4 9.4 0 0 0-8.1 14.1L2.6 21.4l4.8-1.3A9.4 9.4 0 1 0 12 2.6z'/%3E%3Cpath d='M8.9 8.3c.3-.6.6-.6.9-.6h.6c.2 0 .5 0 .7.6l.6 1.6c.1.3 0 .5-.1.6l-.5.6c-.2.2-.2.4-.1.6.5 1 1.4 1.9 2.5 2.4.2.1.4.1.6-.1l.5-.6c.2-.2.4-.2.6-.1l1.5.8c.4.2.4.4.4.6v.7c0 .3-.1.5-.6.8-.6.3-1.5.4-2.4.1-2.5-.8-4.5-2.8-5.3-5.3-.3-1-.2-1.9.1-2.7z'/%3E%3C/svg%3E");
}
.fa-linkedin {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M4.6 9.4h3.1V20H4.6zM6.1 3.9a1.9 1.9 0 1 1 0 3.8 1.9 1.9 0 0 1 0-3.8zM10.4 9.4h3v1.5h.1c.6-1 1.8-1.8 3.4-1.8 2.5 0 3.9 1.5 3.9 4.4V20h-3.1v-5.7c0-1.4-.4-2.4-1.7-2.4-1.1 0-1.7.7-2 1.5-.1.2-.1.6-.1.9V20h-3.5z'/%3E%3C/svg%3E");
}
.fa-facebook {
    --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M14.4 8.4V6.7c0-.7.2-1.1 1.2-1.1h1.6V2.8c-.3 0-1.2-.1-2.3-.1-2.3 0-3.9 1.4-3.9 4v1.7H8.6v3.2h2.4V21h3.4v-9.4h2.4l.4-3.2z'/%3E%3C/svg%3E");
}
