/**
 * Vertwo Premium — animated icon library
 *
 * v0.32.154 — extracted from page-services.css into a single shared
 * stylesheet, enqueued on every surface that displays icons:
 *   - /services/                (Core Service pillar cards + Other Services rows)
 *   - /careers/                 (Why-Vertwo card icons)
 *   - WP admin (icon pickers)   (live preview beside each select)
 *
 * All keyframes are gated by the `prefers-reduced-motion: reduce` media
 * query at the bottom. Animation ranges were re-tuned in v0.32.154 per
 * Vic's "make them more 'animate'" note — translations bumped from
 * 1–2px to 3–6px, opacities widened from 0.6→1 to 0.3→1, and rotation
 * arcs widened so each motion is unmistakable.
 *
 * Naming convention:
 *   .svc-icon                    Base class on every icon's <svg>.
 *   .svc-icon--<slug>            Per-icon root class.
 *   .svc-icon-<part>             Per-part class hook (used by keyframes).
 *
 * Adding a new icon: append a `case '<slug>':` branch to
 * vertwo_services_render_icon_svg() in inc/services-icons.php, add the
 * slug to vertwo_services_icon_choices(), and add a keyframe block
 * below this header.
 */

/* ─── BASE ──────────────────────────────────────────────────── */
.svc-icon {
  display: block;
  width: 100%;
  height: 100%;
  color: var(--orange, #F27A0F);
  stroke: currentColor;
}

/* ═══════════════════════════════════════════════════════════════
   ORIGINAL 16 (v0.24.0 — punched up in v0.32.154)
   ═══════════════════════════════════════════════════════════════ */

/* 1. pulse-line — heart-rate stroke draws across the path */
.svc-icon--pulse-line .svc-icon-stroke {
  stroke-dasharray: 38 38;
  stroke-dashoffset: 0;
  animation: svc-pulse-line 2.2s ease-in-out infinite;
}
@keyframes svc-pulse-line {
  0%, 100% { stroke-dashoffset:  38; opacity: 0.45; }
  50%      { stroke-dashoffset: -38; opacity: 1;    }
}

/* 2. globe-cross — meridians rotate (was 18s, now 8s) */
.svc-icon-spin-slow {
  transform-origin: 50% 50%;
  animation: svc-spin-slow 8s linear infinite;
}
@keyframes svc-spin-slow {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* 3. layers-stack — top + mid drift opposite, axis pulses */
.svc-icon--layers-stack .svc-icon-layer--top  { animation: svc-layer-top  3s ease-in-out infinite; transform-origin: 50% 50%; }
.svc-icon--layers-stack .svc-icon-layer--mid  { animation: svc-layer-mid  3s ease-in-out infinite; transform-origin: 50% 50%; }
.svc-icon--layers-stack .svc-icon-layer--axis { animation: svc-layer-axis 3s ease-in-out infinite; transform-origin: 50% 50%; }
@keyframes svc-layer-top  { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px) scale(1.05); } }
@keyframes svc-layer-mid  { 0%,100% { transform: translateY(0); } 50% { transform: translateY( 3px) scale(1.05); } }
@keyframes svc-layer-axis { 0%,100% { opacity: 0.45; transform: scaleY(1); }   50% { opacity: 1; transform: scaleY(1.2); } }

/* 4. shield-check — checkmark draws in repeatedly */
.svc-icon--shield-check .svc-icon-check {
  stroke-dasharray: 12 12;
  stroke-dashoffset: 12;
  animation: svc-check-draw 2.4s ease-out infinite;
  stroke-width: 2.4;
}
@keyframes svc-check-draw {
  0%, 8%   { stroke-dashoffset: 12; opacity: 0.4; }
  35%      { stroke-dashoffset: 0;  opacity: 1; }
  78%      { stroke-dashoffset: 0;  opacity: 1; }
  100%     { stroke-dashoffset: 12; opacity: 0.4; }
}

/* 5. bolt — strong pulse glow + scale */
.svc-icon--bolt .svc-icon-bolt {
  animation: svc-bolt-pulse 1.4s ease-in-out infinite;
  transform-origin: 50% 50%;
}
@keyframes svc-bolt-pulse {
  0%,100% { transform: scale(0.85); opacity: 0.55; }
  50%     { transform: scale(1.25); opacity: 1;    }
}

/* 6. rocket — drift + flame flicker */
.svc-icon--rocket .svc-icon-rocket-body  { animation: svc-rocket-body  2.4s ease-in-out infinite; transform-origin: 50% 50%; }
.svc-icon--rocket .svc-icon-rocket-flame { animation: svc-rocket-flame 0.32s ease-in-out infinite alternate; transform-origin: 50% 50%; }
@keyframes svc-rocket-body  { 0%,100% { transform: translate(0,0); } 50% { transform: translate(1.5px,-3px); } }
@keyframes svc-rocket-flame { 0% { opacity: 0.35; transform: scale(0.7); } 100% { opacity: 1; transform: scale(1.3); } }

/* 7. compass — wide needle swing */
.svc-icon--compass .svc-icon-needle {
  transform-origin: 50% 50%;
  animation: svc-needle 3.5s ease-in-out infinite;
}
@keyframes svc-needle {
  0%,100% { transform: rotate(-20deg); }
  35%     { transform: rotate( 70deg); }
  70%     { transform: rotate(-50deg); }
}

/* 8. palette — 3 dots big pulse */
.svc-icon--palette .svc-icon-dot--1 { animation: svc-dot-pulse 1.8s ease-in-out infinite;            transform-origin: center; transform-box: fill-box; }
.svc-icon--palette .svc-icon-dot--2 { animation: svc-dot-pulse 1.8s ease-in-out infinite -0.6s;      transform-origin: center; transform-box: fill-box; }
.svc-icon--palette .svc-icon-dot--3 { animation: svc-dot-pulse 1.8s ease-in-out infinite -1.2s;      transform-origin: center; transform-box: fill-box; }
@keyframes svc-dot-pulse {
  0%,100% { transform: scale(0.7); opacity: 0.45; }
  50%     { transform: scale(1.7); opacity: 1;    }
}

/* 9. pen-nib — write tilt (wider) */
.svc-icon--pen-nib .svc-icon-pen-tilt {
  transform-origin: 50% 50%;
  animation: svc-pen-tilt 2.6s ease-in-out infinite;
}
@keyframes svc-pen-tilt {
  0%,100% { transform: rotate(-6deg); }
  50%     { transform: rotate( 10deg); }
}

/* 10. sparkles — three-star big twinkle */
.svc-icon--sparkles .svc-icon-spark--big { transform-origin: 12px 12px; animation: svc-twinkle 1.6s ease-in-out infinite; }
.svc-icon--sparkles .svc-icon-spark--mid { transform-origin: 19px 5px;  animation: svc-twinkle 1.6s ease-in-out infinite -0.55s; transform-box: fill-box; }
.svc-icon--sparkles .svc-icon-spark--sm  { transform-origin: 5px 19px;  animation: svc-twinkle 1.6s ease-in-out infinite -1.1s; transform-box: fill-box; }
@keyframes svc-twinkle {
  0%,100% { transform: scale(0.4); opacity: 0.25; }
  50%     { transform: scale(1.5); opacity: 1;    }
}

/* 11. target — concentric rings breathe */
.svc-icon--target .svc-icon-ring--out { transform-origin: 50% 50%; animation: svc-ring-breathe 2.2s ease-in-out infinite;        }
.svc-icon--target .svc-icon-ring--mid { transform-origin: 50% 50%; animation: svc-ring-breathe 2.2s ease-in-out infinite -0.35s; }
.svc-icon--target .svc-icon-ring--in  { transform-origin: 50% 50%; animation: svc-ring-breathe 2.2s ease-in-out infinite -0.7s; transform-box: fill-box; }
@keyframes svc-ring-breathe {
  0%,100% { transform: scale(0.78); opacity: 0.55; }
  50%     { transform: scale(1.18); opacity: 1;    }
}

/* 12. chart-bar — 3 bars shimmer hard */
.svc-icon--chart-bar .svc-icon-bar--1 { transform-origin: 6.5px 20px;  transform-box: fill-box; animation: svc-bar 1.6s ease-in-out infinite;          }
.svc-icon--chart-bar .svc-icon-bar--2 { transform-origin: 12.5px 20px; transform-box: fill-box; animation: svc-bar 1.6s ease-in-out infinite -0.3s;    }
.svc-icon--chart-bar .svc-icon-bar--3 { transform-origin: 18.5px 20px; transform-box: fill-box; animation: svc-bar 1.6s ease-in-out infinite -0.6s;    }
@keyframes svc-bar {
  0%,100% { transform: scaleY(0.45); opacity: 0.55; }
  50%     { transform: scaleY(1.5);  opacity: 1;    }
}

/* 13. cog-spin — fast rotation (matches gears) */
.svc-icon--cog-spin .svc-icon-spin-slow {
  animation: svc-spin-slow 5s linear infinite;
}

/* 14. eye — blink with pupil scan */
.svc-icon--eye .svc-icon-eye-lid   { transform-origin: 50% 50%; animation: svc-eye-lid 3s ease-in-out infinite; }
.svc-icon--eye .svc-icon-eye-pupil { transform-origin: 50% 50%; animation: svc-eye-pupil 3s ease-in-out infinite; }
@keyframes svc-eye-lid   {
  0%, 78%, 100% { transform: scaleY(1); }
  85%, 92%      { transform: scaleY(0.05); }
}
@keyframes svc-eye-pupil {
  0%, 35%, 100% { transform: translateX(0)     scale(1);   opacity: 1; }
  20%           { transform: translateX(-2.5px) scale(1.1); opacity: 1; }
  50%           { transform: translateX(2.5px) scale(1.1); opacity: 1; }
  85%, 92%      { transform: translateX(0)     scale(0.5); opacity: 0; }
}

/* 15. book-open — page flip wider */
.svc-icon--book-open .svc-icon-page--left  { transform-origin: 12px 12px; animation: svc-page-l 3s ease-in-out infinite; }
.svc-icon--book-open .svc-icon-page--right { transform-origin: 12px 12px; animation: svc-page-r 3s ease-in-out infinite; }
@keyframes svc-page-l { 0%,100% { transform: scaleX(1); }     50% { transform: scaleX(0.78); } }
@keyframes svc-page-r { 0%,100% { transform: scaleX(1); }     50% { transform: scaleX(1.18); } }

/* 16. infinity — loop trace */
.svc-icon--infinity .svc-icon-loop {
  stroke-dasharray: 56 56;
  stroke-dashoffset: 0;
  animation: svc-infinity-loop 3s linear infinite;
}
@keyframes svc-infinity-loop {
  0%   { stroke-dashoffset:  56; }
  100% { stroke-dashoffset: -56; }
}


/* ═══════════════════════════════════════════════════════════════
   v0.32.150 — Games / Visual & Motion expansion (punched up)
   ═══════════════════════════════════════════════════════════════ */

/* 17. gamepad — A/B button strong pop, offset phase */
.svc-icon--gamepad .svc-icon-btn--a { transform-origin: center; transform-box: fill-box; animation: svc-gamepad-btn 0.9s ease-in-out infinite; }
.svc-icon--gamepad .svc-icon-btn--b { transform-origin: center; transform-box: fill-box; animation: svc-gamepad-btn 0.9s ease-in-out 0.45s infinite; }
@keyframes svc-gamepad-btn {
  0%,100% { opacity: 0.35; transform: scale(0.7); }
  50%     { opacity: 1;    transform: scale(1.55); }
}

/* 18. brush — big stroke sweep */
.svc-icon--brush .svc-icon-brush-tilt {
  transform-origin: 20px 4px;
  animation: svc-brush-sweep 2.2s ease-in-out infinite;
}
@keyframes svc-brush-sweep {
  0%,100% { transform: rotate(-12deg); }
  50%     { transform: rotate( 12deg); }
}

/* 19. camera — dramatic shutter pulse */
.svc-icon--camera .svc-icon-shutter {
  transform-origin: 12px 13px; transform-box: fill-box;
  animation: svc-camera-shutter 1.6s ease-in-out infinite;
}
@keyframes svc-camera-shutter {
  0%,100% { transform: scale(1);   opacity: 0.7; }
  50%     { transform: scale(0.5); opacity: 1;   }
}

/* 20. film — sprocket holes pan visibly */
.svc-icon--film .svc-icon-film-holes {
  animation: svc-film-pan 2.8s linear infinite;
}
@keyframes svc-film-pan {
  0%   { transform: translateX(-4px); }
  50%  { transform: translateX( 4px); }
  100% { transform: translateX(-4px); }
}

/* 21. music note — strong bob + tilt */
.svc-icon--music-note .svc-icon-note-bob {
  transform-origin: 50% 50%;
  animation: svc-note-bob 2s ease-in-out infinite;
}
@keyframes svc-note-bob {
  0%,100% { transform: translateY(0) rotate(-3deg); }
  50%     { transform: translateY(-4px) rotate(4deg); }
}

/* 22. chat bubble — typing dot wave */
.svc-icon--chat-bubble .svc-icon-dot--1 { transform-origin: center; transform-box: fill-box; animation: svc-typing 1s ease-in-out 0.0s infinite; }
.svc-icon--chat-bubble .svc-icon-dot--2 { transform-origin: center; transform-box: fill-box; animation: svc-typing 1s ease-in-out 0.18s infinite; }
.svc-icon--chat-bubble .svc-icon-dot--3 { transform-origin: center; transform-box: fill-box; animation: svc-typing 1s ease-in-out 0.36s infinite; }
@keyframes svc-typing {
  0%,100% { opacity: 0.2; transform: translateY(0) scale(0.8); }
  50%     { opacity: 1;   transform: translateY(-3px) scale(1.3); }
}

/* 23. sound wave — EQ bar dramatic shimmer */
.svc-icon--sound-wave .svc-icon-eq {
  transform-origin: center; transform-box: fill-box;
}
.svc-icon--sound-wave .svc-icon-eq--1 { animation: svc-eq 0.9s ease-in-out 0.0s  infinite; }
.svc-icon--sound-wave .svc-icon-eq--2 { animation: svc-eq 0.9s ease-in-out 0.15s infinite; }
.svc-icon--sound-wave .svc-icon-eq--3 { animation: svc-eq 0.9s ease-in-out 0.3s  infinite; }
.svc-icon--sound-wave .svc-icon-eq--4 { animation: svc-eq 0.9s ease-in-out 0.45s infinite; }
@keyframes svc-eq {
  0%,100% { transform: scaleY(0.3); }
  50%     { transform: scaleY(1.6); }
}

/* 24. lightbulb — strong bulb glow */
.svc-icon--lightbulb .svc-icon-bulb {
  animation: svc-bulb-glow 1.8s ease-in-out infinite;
}
@keyframes svc-bulb-glow {
  0%,100% { opacity: 0.3; filter: drop-shadow(0 0 0 currentColor); }
  50%     { opacity: 1;   filter: drop-shadow(0 0 2px currentColor); }
}

/* 25. gears — counter-rotating pair (fast) */
.svc-icon--gears .svc-icon-gear--big   { animation: svc-spin-cw  4s linear infinite; }
.svc-icon--gears .svc-icon-gear--small { animation: svc-spin-ccw 3s linear infinite; }
@keyframes svc-spin-cw  { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes svc-spin-ccw { from { transform: rotate(0deg); } to { transform: rotate(-360deg);} }

/* 26. cube-3d — wide tumble */
.svc-icon--cube-3d .svc-icon-cube {
  animation: svc-cube-tumble 4s ease-in-out infinite;
}
@keyframes svc-cube-tumble {
  0%,100% { transform: rotate(-18deg) scale(0.9); }
  50%     { transform: rotate( 18deg) scale(1.1); }
}

/* 27. grid-ui — sequential tile pulse (visible fill) */
.svc-icon--grid-ui .svc-icon-tile {
  transform-origin: center; transform-box: fill-box;
  fill: currentColor;
}
.svc-icon--grid-ui .svc-icon-tile--1 { animation: svc-tile 1.6s ease-in-out 0.0s  infinite; }
.svc-icon--grid-ui .svc-icon-tile--2 { animation: svc-tile 1.6s ease-in-out 0.4s  infinite; }
.svc-icon--grid-ui .svc-icon-tile--3 { animation: svc-tile 1.6s ease-in-out 1.2s  infinite; }
.svc-icon--grid-ui .svc-icon-tile--4 { animation: svc-tile 1.6s ease-in-out 0.8s  infinite; }
@keyframes svc-tile {
  0%,100% { fill-opacity: 0;    transform: scale(1); }
  50%     { fill-opacity: 0.85; transform: scale(1.1); }
}

/* 28. wand — wide tilt + sparkle twinkle */
.svc-icon--wand .svc-icon-wand-tilt {
  animation: svc-wand-tilt 2.2s ease-in-out infinite;
}
@keyframes svc-wand-tilt {
  0%,100% { transform: rotate(-15deg); }
  50%     { transform: rotate( 15deg); }
}
.svc-icon--wand .svc-icon-wand-spark {
  animation: svc-wand-sparkle 1s ease-in-out infinite;
}
@keyframes svc-wand-sparkle {
  0%,100% { opacity: 0.2; transform: scale(0.7); transform-origin: center; transform-box: fill-box; }
  50%     { opacity: 1;   transform: scale(1.3); }
}

/* 29. megaphone — dramatic cone wave expand */
.svc-icon--megaphone .svc-icon-mega-wave {
  transform-origin: 10px 12px;
}
.svc-icon--megaphone .svc-icon-mega-wave--1 { animation: svc-mega 1.1s ease-out 0s    infinite; }
.svc-icon--megaphone .svc-icon-mega-wave--2 { animation: svc-mega 1.1s ease-out 0.3s  infinite; }
@keyframes svc-mega {
  0%   { opacity: 0;   transform: scale(0.4); }
  35%  { opacity: 1;   }
  100% { opacity: 0;   transform: scale(1.6); }
}

/* 30. monitor — strong scanline drift */
.svc-icon--monitor .svc-icon-scan {
  animation: svc-scan 1.6s linear infinite;
  stroke-width: 2.2;
}
@keyframes svc-scan {
  0%   { transform: translateY(-7px); opacity: 0.1; }
  50%  { transform: translateY(0);    opacity: 1;   }
  100% { transform: translateY( 7px); opacity: 0.1; }
}

/* 31. clipboard-check — strong check stroke */
.svc-icon--clipboard-check .svc-icon-cbcheck {
  stroke-dasharray: 12 12;
  stroke-dashoffset: 12;
  animation: svc-cbcheck 2.2s ease-in-out infinite;
  stroke-width: 2.4;
}
@keyframes svc-cbcheck {
  0%   { stroke-dashoffset: 12; opacity: 0.35; }
  35%  { stroke-dashoffset: 0;  opacity: 1;    }
  78%  { stroke-dashoffset: 0;  opacity: 1;    }
  100% { stroke-dashoffset: 12; opacity: 0.35; }
}


/* ═══════════════════════════════════════════════════════════════
   v0.32.154 — 15 NEW icon animations
   ═══════════════════════════════════════════════════════════════ */

/* 32. heart-beat — strong heart pulse */
.svc-icon--heart-beat .svc-icon-heart {
  transform-origin: 12px 13px;
  animation: svc-heart-beat 1.1s ease-in-out infinite;
}
@keyframes svc-heart-beat {
  0%, 60%, 100% { transform: scale(1); }
  20%           { transform: scale(1.35); }
  35%           { transform: scale(1.05); }
}

/* 33. microphone — sound wave rings */
.svc-icon--microphone .svc-icon-mic-wave--1 { transform-origin: 12px 14px; animation: svc-mic-wave 1.2s ease-out 0s    infinite; }
.svc-icon--microphone .svc-icon-mic-wave--2 { transform-origin: 12px 14px; animation: svc-mic-wave 1.2s ease-out 0.4s  infinite; }
@keyframes svc-mic-wave {
  0%   { opacity: 0;    transform: scaleX(0.4) scaleY(0.4); }
  50%  { opacity: 0.9;  }
  100% { opacity: 0;    transform: scaleX(1.4) scaleY(1.4); }
}

/* 34. headphones — EQ bars + cup pulse */
.svc-icon--headphones .svc-icon-hp-bar--1 { transform-origin: bottom; transform-box: fill-box; animation: svc-hp-bar 0.7s ease-in-out 0s    infinite; }
.svc-icon--headphones .svc-icon-hp-bar--2 { transform-origin: bottom; transform-box: fill-box; animation: svc-hp-bar 0.7s ease-in-out 0.15s infinite; }
.svc-icon--headphones .svc-icon-hp-bar--3 { transform-origin: bottom; transform-box: fill-box; animation: svc-hp-bar 0.7s ease-in-out 0.3s  infinite; }
@keyframes svc-hp-bar {
  0%,100% { transform: scaleY(0.3); }
  50%     { transform: scaleY(1.6); }
}

/* 35. flame — flicker */
.svc-icon--flame .svc-icon-flame-body {
  transform-origin: 50% 90%;
  animation: svc-flame-flicker 0.7s ease-in-out infinite;
}
@keyframes svc-flame-flicker {
  0%, 100% { transform: scaleY(1)   scaleX(1)    rotate(-3deg); opacity: 0.85; }
  25%      { transform: scaleY(1.15) scaleX(0.95) rotate( 5deg); opacity: 1;    }
  50%      { transform: scaleY(0.92) scaleX(1.06) rotate(-2deg); opacity: 0.9;  }
  75%      { transform: scaleY(1.08) scaleX(0.97) rotate( 3deg); opacity: 1;    }
}

/* 36. trophy — shimmer + slight bob */
.svc-icon--trophy .svc-icon-trophy-cup {
  transform-origin: 50% 60%;
  animation: svc-trophy-bob 2.4s ease-in-out infinite;
}
@keyframes svc-trophy-bob {
  0%,100% { transform: translateY(0)    rotate(-2deg); }
  50%     { transform: translateY(-2.5px) rotate( 2deg); }
}
.svc-icon--trophy .svc-icon-trophy-shine {
  animation: svc-trophy-shine 2.4s ease-in-out infinite;
}
@keyframes svc-trophy-shine {
  0%, 30%, 100% { opacity: 0; }
  50%, 65%      { opacity: 1; }
}

/* 37. arrow-up — bob with fade */
.svc-icon--arrow-up .svc-icon-arrow-up-body {
  animation: svc-arrow-up 1.4s ease-in-out infinite;
}
@keyframes svc-arrow-up {
  0%,100% { transform: translateY(2px);  opacity: 0.65; }
  50%     { transform: translateY(-3px); opacity: 1;    }
}

/* 38. arrow-down — bob with fade */
.svc-icon--arrow-down .svc-icon-arrow-down-body {
  animation: svc-arrow-down 1.4s ease-in-out infinite;
}
@keyframes svc-arrow-down {
  0%,100% { transform: translateY(-2px); opacity: 0.65; }
  50%     { transform: translateY( 3px); opacity: 1;    }
}

/* 39. cloud-rain — rain drops fall */
.svc-icon--cloud-rain .svc-icon-rain--1 { transform-origin: center; transform-box: fill-box; animation: svc-rain 1.1s linear 0s    infinite; }
.svc-icon--cloud-rain .svc-icon-rain--2 { transform-origin: center; transform-box: fill-box; animation: svc-rain 1.1s linear 0.35s infinite; }
.svc-icon--cloud-rain .svc-icon-rain--3 { transform-origin: center; transform-box: fill-box; animation: svc-rain 1.1s linear 0.7s  infinite; }
@keyframes svc-rain {
  0%   { opacity: 0; transform: translateY(-4px); }
  25%  { opacity: 1; }
  75%  { opacity: 1; }
  100% { opacity: 0; transform: translateY( 5px); }
}

/* 40. lock — click motion (shackle hops) */
.svc-icon--lock .svc-icon-lock-shackle {
  transform-origin: 12px 12px;
  animation: svc-lock-click 2.4s ease-in-out infinite;
}
@keyframes svc-lock-click {
  0%, 50%, 100% { transform: translateY(0); }
  20%           { transform: translateY(-2.5px); }
  30%           { transform: translateY(0); }
}

/* 41. key — turn rotation */
.svc-icon--key .svc-icon-key-body {
  transform-origin: 8px 12px;
  animation: svc-key-turn 2.6s ease-in-out infinite;
}
@keyframes svc-key-turn {
  0%, 45%, 100% { transform: rotate(0deg); }
  20%           { transform: rotate(-25deg); }
  30%           { transform: rotate(0deg); }
}

/* 42. globe-net — concentric network pulse */
.svc-icon--globe-net .svc-icon-net-ring--1 { transform-origin: 50% 50%; animation: svc-net-pulse 1.6s ease-out 0s    infinite; }
.svc-icon--globe-net .svc-icon-net-ring--2 { transform-origin: 50% 50%; animation: svc-net-pulse 1.6s ease-out 0.4s  infinite; }
.svc-icon--globe-net .svc-icon-net-ring--3 { transform-origin: 50% 50%; animation: svc-net-pulse 1.6s ease-out 0.8s  infinite; }
@keyframes svc-net-pulse {
  0%   { opacity: 0;   transform: scale(0.3); }
  40%  { opacity: 0.9; }
  100% { opacity: 0;   transform: scale(1.4); }
}

/* 43. chip — electric pulse + corner light */
.svc-icon--chip .svc-icon-chip-pulse {
  transform-origin: 50% 50%;
  animation: svc-chip-pulse 1.2s ease-in-out infinite;
}
@keyframes svc-chip-pulse {
  0%,100% { opacity: 0.3; transform: scale(0.85); }
  50%     { opacity: 1;   transform: scale(1.15); }
}

/* 44. puzzle-click — two halves click together */
.svc-icon--puzzle-click .svc-icon-puzzle--L { transform-origin: 50% 50%; animation: svc-puzzle-L 2s ease-in-out infinite; }
.svc-icon--puzzle-click .svc-icon-puzzle--R { transform-origin: 50% 50%; animation: svc-puzzle-R 2s ease-in-out infinite; }
@keyframes svc-puzzle-L { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-2px); } }
@keyframes svc-puzzle-R { 0%,100% { transform: translateX(0); } 50% { transform: translateX( 2px); } }

/* 45. flag-wave — flag fabric wave */
.svc-icon--flag-wave .svc-icon-flag {
  transform-origin: 5px 12px;
  animation: svc-flag-wave 2s ease-in-out infinite;
}
@keyframes svc-flag-wave {
  0%,100% { transform: skewX(0deg)   scaleX(1);    }
  25%     { transform: skewX(8deg)   scaleX(0.95); }
  50%     { transform: skewX(0deg)   scaleX(1);    }
  75%     { transform: skewX(-8deg)  scaleX(0.95); }
}

/* 46. bell-ring — bell tilts side to side */
.svc-icon--bell-ring .svc-icon-bell {
  transform-origin: 50% 4px;
  animation: svc-bell-ring 1.2s ease-in-out infinite;
}
@keyframes svc-bell-ring {
  0%, 100% { transform: rotate(0deg); }
  15%      { transform: rotate(15deg); }
  30%      { transform: rotate(-12deg); }
  45%      { transform: rotate(8deg); }
  60%      { transform: rotate(-5deg); }
  75%      { transform: rotate(2deg); }
}


/* ═══════════════════════════════════════════════════════════════
   CAREERS / CONTACT shared idle (gentle breathe)
   Applied to careers icons via .cr-why-icon svg in page-careers.css;
   exposed here so the admin preview can re-use it.
   ═══════════════════════════════════════════════════════════════ */

.vw-careers-icon-breathe { animation: vw-careers-breathe 4.2s ease-in-out infinite; transform-origin: center; }
@keyframes vw-careers-breathe {
  0%, 100% { transform: scale(1)    rotate(0deg); }
  50%      { transform: scale(1.12) rotate(3deg); }
}


/* ═══════════════════════════════════════════════════════════════
   Reduced-motion users: kill all icon animations.
   ═══════════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  .svc-icon *,
  .vw-careers-icon-breathe { animation: none !important; }
}
