/* ============================================================
   icons.css — sistem de iconuri liniare, inline SVG.
   Fără sprite, fără font de iconuri: fiecare <svg> stă în HTML
   și moștenește culoarea din context prin currentColor.

   Principiu (același ca în motion.css): nicio stare „ascuns" pe
   element. Micro-animațiile sunt opționale, adăugate prin clasă.
   ============================================================ */

.icon {
  width: 1.5rem;
  height: 1.5rem;
  flex: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
  /* rotațiile pe sub-elemente trebuie să se facă în jurul
     viewBox-ului, nu în jurul bounding box-ului propriu */
  transform-box: view-box;
  transform-origin: center;
}
.icon--sm { width: 1.125rem; height: 1.125rem; stroke-width: 2; }
.icon--lg { width: 2rem;     height: 2rem;     stroke-width: 1.5; }

/* iconuri pline (WhatsApp, logo-uri) — nu au contur */
.icon--solid { fill: currentColor; stroke: none; }

/* ------------------------------------------------------------
   Micro-animații generice. Se pun ca a doua clasă pe <svg>.
   ------------------------------------------------------------ */
@keyframes ic-nudge { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(3px); } }
@keyframes ic-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ic-tilt  { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(-8deg); } }
@keyframes ic-beat  { 0%, 100% { transform: scale(1); } 40% { transform: scale(1.12); } }

@media (hover: hover) {
  .ic-nudge:hover, a:hover > .ic-nudge, button:hover > .ic-nudge { animation: ic-nudge 600ms ease-in-out; }
  .ic-float:hover, a:hover > .ic-float, button:hover > .ic-float { animation: ic-float 900ms ease-in-out; }
  .ic-tilt:hover,  a:hover > .ic-tilt,  button:hover > .ic-tilt  { animation: ic-tilt 500ms ease-in-out; }
  .ic-beat:hover,  a:hover > .ic-beat,  button:hover > .ic-beat  { animation: ic-beat 480ms ease-in-out; }
}
