/* ===========================================================================
   DW PERFUMERIA - ICONOS
   FontAwesome 6.5.1 SUBSETEADO a los iconos que esta tienda usa de verdad.

   Antes: 273 KB de tipografia desde un CDN (156 de `solid` + 117 de `brands`)
   para 71 iconos, mas 100 KB de CSS con las ~2.000 definiciones de la libreria
   entera. Y el navegador registraba 47 familias tipograficas, porque la hoja
   del CDN declara FontAwesome 5 *y* 6, Free *y* Brands.

   Ahora: solo los glifos que se usan, servidos desde el propio dominio.

   Se conservan EXACTAMENTE las mismas clases (`fas fa-bars`, `fab fa-whatsapp`)
   para no tocar ni uno de los 179 `<i>` del markup. Cambiar el markup habria
   sido cambiar 179 sitios a mano, y un trazado mal copiado no da error: deja un
   hueco en blanco que nadie ve hasta que lo ve un cliente.

   COMO SE REGENERA, cuando se añada un icono nuevo:
     scratchpad/generar_iconos.py  (lee la lista de iconos usados del markup,
     corta las fuentes oficiales y reescribe este fichero). El guion comprueba
     glifo a glifo que ninguno se pierde en el corte.
   =========================================================================== */

@font-face {
  font-family: 'Font Awesome 6 Free';
  font-style: normal;
  font-weight: 900;
  font-display: block;
  src: url('../fuentes/fa-solid-900.woff2') format('woff2');
}
@font-face {
  font-family: 'Font Awesome 6 Free';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url('../fuentes/fa-regular-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Font Awesome 6 Brands';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url('../fuentes/fa-brands-400.woff2') format('woff2');
}

.fa, .fas, .far, .fab {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: var(--fa-display, inline-block);
  font-style: normal;
  font-variant: normal;
  line-height: 1;
  text-rendering: auto;
}
.fas { font-family: 'Font Awesome 6 Free'; font-weight: 900; }
.far { font-family: 'Font Awesome 6 Free'; font-weight: 400; }
.fab { font-family: 'Font Awesome 6 Brands'; font-weight: 400; }

/* `fa-spin` no es un icono: es el modificador que hace girar uno. Lo usa el
   boton de «Confirmando tu pedido...» del checkout. Respeta la quietud. */
.fa-spin { animation: fa-spin 2s linear infinite; }
@keyframes fa-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .fa-spin { animation: none; } }

/* --- los 71 iconos --- */
.fa-arrow-left::before { content: "\f060"; }
.fa-arrow-right::before { content: "\f061"; }
.fa-bag-shopping::before { content: "\f290"; }
.fa-bars::before { content: "\f0c9"; }
.fa-box::before { content: "\f466"; }
.fa-box-open::before { content: "\f49e"; }
.fa-building-columns::before { content: "\f19c"; }
.fa-calendar::before { content: "\f133"; }
.fa-chart-line::before { content: "\f201"; }
.fa-check::before { content: "\f00c"; }
.fa-chevron-down::before { content: "\f078"; }
.fa-chevron-left::before { content: "\f053"; }
.fa-chevron-right::before { content: "\f054"; }
.fa-circle-check::before { content: "\f058"; }
.fa-circle-exclamation::before { content: "\f06a"; }
.fa-circle-xmark::before { content: "\f057"; }
.fa-clock::before { content: "\f017"; }
.fa-comments::before { content: "\f086"; }
.fa-credit-card::before { content: "\f09d"; }
.fa-crown::before { content: "\f521"; }
.fa-envelope::before { content: "\f0e0"; }
.fa-external-link::before { content: "\f08e"; }
.fa-eye::before { content: "\f06e"; }
.fa-facebook::before { content: "\f09a"; }
.fa-facebook-f::before { content: "\f39e"; }
.fa-feather::before { content: "\f52d"; }
.fa-file-lines::before { content: "\f15c"; }
.fa-floppy-disk::before { content: "\f0c7"; }
.fa-gear::before { content: "\f013"; }
.fa-gem::before { content: "\f3a5"; }
.fa-hand-pointer::before { content: "\f25a"; }
.fa-images::before { content: "\f302"; }
.fa-instagram::before { content: "\f16d"; }
.fa-linkedin::before { content: "\f08c"; }
.fa-lock::before { content: "\f023"; }
.fa-money-bill-wave::before { content: "\f53a"; }
.fa-newspaper::before { content: "\f1ea"; }
.fa-paper-plane::before { content: "\f1d8"; }
.fa-pen-nib::before { content: "\f5ad"; }
.fa-pencil::before { content: "\f303"; }
.fa-percent::before { content: "\25"; }
.fa-plus::before { content: "\2b"; }
.fa-right-from-bracket::before { content: "\f2f5"; }
.fa-right-to-bracket::before { content: "\f2f6"; }
.fa-search::before { content: "\f002"; }
.fa-search-plus::before { content: "\f00e"; }
.fa-shield-alt::before { content: "\f3ed"; }
.fa-shield-halved::before { content: "\f3ed"; }
.fa-shirt::before { content: "\f553"; }
.fa-shopping-bag::before { content: "\f290"; }
.fa-shopping-cart::before { content: "\f07a"; }
.fa-spinner::before { content: "\f110"; }
.fa-store::before { content: "\f54e"; }
.fa-sun::before { content: "\f185"; }
.fa-tag::before { content: "\f02b"; }
.fa-tags::before { content: "\f02c"; }
.fa-tiktok::before { content: "\e07b"; }
.fa-times::before { content: "\f00d"; }
.fa-trash::before { content: "\f1f8"; }
.fa-trash-can::before { content: "\f2ed"; }
.fa-triangle-exclamation::before { content: "\f071"; }
.fa-truck::before { content: "\f0d1"; }
.fa-truck-fast::before { content: "\f48b"; }
.fa-undo::before { content: "\f0e2"; }
.fa-user::before { content: "\f007"; }
.fa-users::before { content: "\f0c0"; }
.fa-vial::before { content: "\f492"; }
.fa-wand-magic-sparkles::before { content: "\e2ca"; }
.fa-whatsapp::before { content: "\f232"; }
.fa-x-twitter::before { content: "\e61b"; }
.fa-xmark::before { content: "\f00d"; }
